1 changed files with 222 additions and 0 deletions
@ -0,0 +1,222 @@ |
|||||
|
--- |
||||
|
title: "Génie logiciel, Séance 6, Language UML" |
||||
|
author: [SCHINDLER Hugo] |
||||
|
date: \today |
||||
|
titlepage: true |
||||
|
... |
||||
|
|
||||
|
\newpage |
||||
|
|
||||
|
# I/Introduction |
||||
|
|
||||
|
Orienté objet |
||||
|
|
||||
|
Expression des besoins Puis spécification des besoins Puis conception |
||||
|
|
||||
|
# II/ Diagremme de classe |
||||
|
|
||||
|
## 1/ Les classes |
||||
|
|
||||
|
Visibilité des éléments |
||||
|
|
||||
|
- -privé |
||||
|
- +public |
||||
|
- $\#$protected |
||||
|
|
||||
|
Schéma 1 |
||||
|
|
||||
|
## 2/ Associations entre classes |
||||
|
|
||||
|
Schéma 2 |
||||
|
|
||||
|
Une personne travaille pour une entreprise |
||||
|
|
||||
|
Une personne voit l'entreprise comme son employeur |
||||
|
|
||||
|
L'entreprise voit une personne comme son employé |
||||
|
|
||||
|
Une personne travaille pour une seule entreprise |
||||
|
|
||||
|
Une entreprise employe une a plusieurs entreprises |
||||
|
|
||||
|
- 1: exactement 1 |
||||
|
- 1...* : un à plusieurs |
||||
|
- n: exactement n |
||||
|
- 0..1: 0 ou 1 |
||||
|
- 0..*: 0 à plusieurs |
||||
|
|
||||
|
Traduction d'une association en language JAVA |
||||
|
|
||||
|
**Association 1 à 1** |
||||
|
|
||||
|
Schéma 3 |
||||
|
|
||||
|
public class A { |
||||
|
private B Rb |
||||
|
|
||||
|
public A() { |
||||
|
Rb=Numm; |
||||
|
} |
||||
|
|
||||
|
public void setRb(B enRb){ |
||||
|
Rb=enRb; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public class A { |
||||
|
private B Rb |
||||
|
|
||||
|
public A() { |
||||
|
Rb=Numm; |
||||
|
} |
||||
|
|
||||
|
public void setRb(B enRb){ |
||||
|
Rb=enRb; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
**Association 1 à plusieurs** |
||||
|
|
||||
|
Schéma 4 |
||||
|
|
||||
|
Utilksation d'un tableau ou d'un vecteur pour association de plusieurs |
||||
|
|
||||
|
**Navigabilité d'une asociation** |
||||
|
|
||||
|
L'electeur sait pour qui il vote. |
||||
|
|
||||
|
Le candidat ne sais pas les gens qui l'ont élu. |
||||
|
|
||||
|
Schéma 5 |
||||
|
|
||||
|
**Agrégation** |
||||
|
|
||||
|
forme particulière d'association |
||||
|
|
||||
|
exprime un couplage plus fort entre classes |
||||
|
|
||||
|
Schéma 6 |
||||
|
|
||||
|
Lorsqu'un livre possède une couverture, la couverture ne peut pas être partagée par d'autres livres. |
||||
|
|
||||
|
Traduction en JAVA d'une agrégation = identique à l'association. |
||||
|
|
||||
|
**Composition** |
||||
|
|
||||
|
Agrégation forte |
||||
|
|
||||
|
Schéma 7 |
||||
|
|
||||
|
Les pages sont physiquement dans le livre. |
||||
|
|
||||
|
Lorsqu'on crée un objet de type Livre, on crée les objets de type Page (associé au livre) |
||||
|
|
||||
|
**Traduction en language JAVA d'une relation de composition** |
||||
|
|
||||
|
Schéma 8 |
||||
|
|
||||
|
**Exercice** |
||||
|
|
||||
|
Schéma 9 |
||||
|
|
||||
|
**Les classes d'association** |
||||
|
|
||||
|
Schéma 10 |
||||
|
|
||||
|
**Association d'une classe vers elle même** |
||||
|
|
||||
|
Schéma 11 |
||||
|
|
||||
|
## 3/ La généralisation |
||||
|
|
||||
|
**Relation d'héritage** |
||||
|
|
||||
|
Schéma 12 |
||||
|
|
||||
|
Une relation de généralisation traduit une relation "est-un" ou "est une sorte de" |
||||
|
|
||||
|
**Classe abstraite** |
||||
|
|
||||
|
Forme {abstract} |
||||
|
Ecrire Forme en italique |
||||
|
|
||||
|
association reflexive |
||||
|
|
||||
|
**Interface** |
||||
|
|
||||
|
Element de modélisation classe |
||||
|
|
||||
|
Schéma 13 |
||||
|
|
||||
|
Stéréotype : notation du language UML qui permet de définir de nouveaux éléments de modélisation (à partir d'éléments existants) |
||||
|
|
||||
|
## 4/ L'agrégation récursive |
||||
|
|
||||
|
Schéma 14 |
||||
|
|
||||
|
**Conseils pratiques** |
||||
|
|
||||
|
Génération du code JAVA automatiquement à partir du diagramme de classe. |
||||
|
|
||||
|
**Pas besoin de définir l'attribut employe.entreprise** |
||||
|
|
||||
|
Schéma 15 |
||||
|
|
||||
|
Code Java: |
||||
|
|
||||
|
public class Person{ |
||||
|
Entreprise employeur; |
||||
|
} |
||||
|
public class Entreprise{ |
||||
|
Vector <Personne> employe; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
# III/ Les diagrammes d'objets et de séquence |
||||
|
|
||||
|
## 1/ Le diagramme d'objet |
||||
|
|
||||
|
Cf diapo 29 |
||||
|
|
||||
|
## 2/ Le diagramme de séquence |
||||
|
|
||||
|
Diagramme d'objet + message échangés entre les objets. |
||||
|
|
||||
|
Cf diapo 31 |
||||
|
|
||||
|
Rappel : l'envoie d'un message d'un objet A vers un objet B se traduit lors de l'execution d'une méthode dans l'objet qui reçoit le message. |
||||
|
|
||||
|
Exemple 2 : Montre le fonctionnement d'une calculatrice pour une opération 12+3= |
||||
|
|
||||
|
Période d'activité des objets |
||||
|
|
||||
|
**Structures de contrôles** |
||||
|
|
||||
|
**Opérateur condtionnel:** |
||||
|
|
||||
|
Schéma 16 |
||||
|
|
||||
|
alt : alternative |
||||
|
|
||||
|
**Opérateur de boucle** |
||||
|
|
||||
|
Schéma 17 |
||||
|
|
||||
|
loop : boucle |
||||
|
|
||||
|
tant que la condition v==true est vérifié l'objet unA envoie le message "messageB" à l'objet unB. |
||||
|
|
||||
|
**Constructeur/Destructeur** |
||||
|
|
||||
|
Schéma 18 |
||||
|
|
||||
|
# IV/ Le diagramme d'états-transitions |
||||
|
|
||||
|
Schéma 19 |
||||
|
|
||||
|
# V/ Le diagramme des cas d'utilisation |
||||
|
|
||||
|
Schéma 20 |
||||
|
|
||||
|
|
||||
|
|
||||
Loading…
Reference in new issue