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