Académique Documents
Professionnel Documents
Culture Documents
UML
4 : Analyse organique
Epitech 3 – Automne 2007
Bertrand LIAUDET
SOMMAIRE
ANALYSE ORGANIQUE 2
Diagrammes de séquence 3
Exemple de diagramme de séquence 8
Diagramme de collaboration 12
Diagramme d’objets 15
Diagramme d’Etats-transitions 16
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 1/18- Bertrand LIAUDET
ANALYSE ORGANIQUE
Il est facile de décrire la méthode encore que son application exige à coup sûr savoir et
pratique.
L’analyse organique avec UML va essentiellement consister à créer les diagrammes de séquence
objet qui sont une reprise des diagrammes de séquence système, mais en montrant quels sont les
méthodes des objets qui sont en jeu pour chaque scénario.
Les diagrammes de collaboration sont une autre façon de représenter la même chose.
Les diagrammes d’états-transitions et d’activités permettent de faire des zooms sur certains
objets à fonctionnement particulier. On utilise plus souvent des diagrammes d’états-transitions
au niveau de l’analyse organique et des diagrammes d’activités au niveau de l’analyse
fonctionnelle.
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 2/18- Bertrand LIAUDET
Diagrammes de séquence
• Il montre les objets et les classes impliqués dans le scénario ainsi que les messages échangés
pour réaliser la fonctionnalité du scénario.
A B C
procédure
sous-procédure
retour implicite
A est un objet
La ligne verticale en pointillé est appelée : ligne de vie.
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 3/18- Bertrand LIAUDET
Le rectangle sur la ligne de vie représente la période d’activité de l’objet.
A B
val :=calcule()
Ou encore :
A B
calcule()
val
Représentation de la récursivité
A
récursion()
message réflexif
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 4/18- Bertrand LIAUDET
Il y a message réflexif quand un message d’un objet fait appel à un autre message du même
objet.
A B C
Message
x
(y-x < 3s) y Message
(z-y < 1s) z
A B
while X
loop Message
end loop
Ou encore :
A B
*[X] Message
La boucle est symbolisée par le “*” place devant la condition entre crochets.
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 5/18- Bertrand LIAUDET
Représentation des tests
A B C
if X Message 1
else Message 2
endif
Ou encore :
A B C
[X] Message 1
[non X] Message 2
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 6/18- Bertrand LIAUDET
Diagramme de séquence d’un scénario
déplacement
ouverture
ouverte
{ < 9 sec.}
fermeture
fermée
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 7/18- Bertrand LIAUDET
Exemple de diagramme de séquence
L’hôtel
Hotel
Chambre
-Nom : string
-Adresse : string -Numéro : int
-Catégorie : int 1 -nbLitSimple : int
2..*
+calculCA() : float -nbLitDouble : int
+disponibilitéChambre() : Liste de Chambre -nbLitEnfant : int
+réserverChambre() -salleDEau : string
+facturerOccupation() facturation
Occupation
*
-dateArrivée : Date
* -dateDépart : Date
-nbAdulte : int
-nbEnfant : int
-coût : float
+calculCoût()
emploie
1..* -employés
-directeur Client
Employé
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 8/18- Bertrand LIAUDET
Explications complémentaires :
• L’hôtel est composé de chambres. Si on détruit l’objet hôtel, les objets chambres sont aussi
détruits. Ceci veut dire qu’on ne se sert jamais des objets chambres sans avoir un objet hôtel.
La composition crée une liste de référence par valeurs (et non pas par adresse comme dans
le cas de l’agrégation simple). Par contre, on considère que la destruction de l’objet hôtel
n’engendre pas la destruction des objets « employés », ni celle des objets « occupation ».
Ceci est a préciser en fonction de l’usage réel du logiciel.
• Tous les liens qui partent de l’hôtel ne sont navigables que dans le sens de l’hôtel vers les
classes liées. En effet, c’est à partir de l’hôtel quelles sont les chambres de l’hôtel, quelles
sont les chambres disponibles, quelles sont les employés de l’hôtel. On pourra aussi calculer
le chiffre d’affaire à partir de l’occupation des chambres.
• Facturer l’occupation ne renvoie rien : le résultat est directement affecté à l’attribut coût de
l’occupation.
• Personnes est une classe abstraite (en italique). Elle n’est jamais instanciée.
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 9/18- Bertrand LIAUDET
Diagramme de séquence de la réservation
:Hotelier
réserverChambre()
ListeChambre:=disponibilitéChambre()
Afficher(ListeChambre)
Client:=ChercherClient(NomCli)
ajoutListeOccupation(occupation)
Fin de réserverChambre()
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 10/18- Bertrand LIAUDET
Diagramme des classes ajusté :
On a du ajouter de nouvelles opérations dans le diagramme de classes : chercherClient, lireRésa,
nouveauClient.
A noter que l’accès aux opérations des classes-association est problématique dans Visio.
Hotel
-Nom : string
-Adresse : string
-Catégorie : int
+calculCA() : float 1
+disponibilitéChambre() : Liste de Chambre
+réserverChambre()
+facturerOccupation()
+LireRésa(entrée NumCham, entrée NomCli, entrée NbAdult, entrée NbEnfant, entrée DateDeb, entrée DateFin)
+ChercherClient(entrée NomCli) : Client
+ajoutListeOccupation(entrée occupation)
facturation
Occupation
-dateArrivée : Date
-dateDépart : Date
-nbAdulte : int
-nbEnfant : int
est dirigé par
emploie -coût : float
+calculCoût()
+créerOccupation(entrée Chambre, entrée Client, entrée NbAdult, entrée NbEnfant, entrée DateDeb, entrée DateFin) : <non spécifié>
2..*
Chambre
Personne
-Numéro : int
-Nom : string -nbLitSimple : int
-Prénom : string -nbLitDouble : int
1..* -Adresse : string -nbLitEnfant : int
-employés
1 -directeur -salleDEau : string
Employé
*
Client *
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 11/18- Bertrand LIAUDET
Diagramme de collaboration
Exemple
A 1 :X C 3 :Z
B 2 :Y
Le scénario débute par un objet A qui envoie un message X à un objet B, puis l’objet B envoie
un message Y à un objet C, et enfin C s’envoie un message Z.
Avantages
Les diagrammes de collaboration sont particulièrement indiqués pur la phase exploratoire qui
correspond à la recherche des objets et des classes.
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 12/18- Bertrand LIAUDET
Inconvénients
Seule une petite collaboration est représentable.
S’il y a beaucoup de messages échangés, le diagramme est peu lisible.
3 :M3
5 :M5
A 7 :M7 C 8:M8
6 :M6
9 :M9
1 :M1 B 2:M2
4 :M4
10 :M10
A B C
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 13/18- Bertrand LIAUDET
On peut aussi représenter les périodes d’activité des objets :
A B C
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 14/18- Bertrand LIAUDET
Diagramme d’objets
• C’est un instantané, une photo, d’un sous-ensemble d’objets d’un système à un instant de la vie
du système.
• Il permet de rendre plus concrètes et plus claires certaines parties du diagramme de classe.
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 15/18- Bertrand LIAUDET
Diagramme d’Etats-transitions
• Le digramme d’états-transitions montre les différents états et transitions possibles des objets
d’une classe à l’exécution.
Etat
• Un état est une situation donnée durant la vie d’un objet. C’est une situation plus ou moins
durable.
• Un état peut
1. satisfaire à certaines conditions,
2. réaliser des actions
3. être en attente d’évènements
Etat UML :
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 16/18- Bertrand LIAUDET
Transition
• Une transition relie deux états de manière unidirectionnelle.
• La transition matérialise le passage d’un état à un autre.
• Une transition est déclenchée par un événement.
• Les transitions indiquent les chemins dans les graphes des états.
Transition UML :
Etat initial
• L’état initial est la première situation modélisée.
• Dans un diagramme d’états-transitions, il y a toujours un et un seul état initial.
• C’est un pseudo-état relié au premier état effectif par une pseudo-transition.
Etat final
• L’état final est la dernière situation modélisée.
• Dans un diagramme d’états-transitions, il peut y avoir 0 ou plusieurs états finaux (0 dans le
cas d’un système qui ne s’arrête jamais).
• C’est un pseudo-état relié au dernier état effectif par une pseudo-transition.
Evénement
• Un événement est une situation remarquable dans la vie de l’objet.
• Un événement est une situation qui ne dure pas, contrairement à un état.
• Un événement peut déclencher le passage d’un état à un autre, via une transition.
• Un événement peut porter des paramètres qui matérialise le flot d’informations ou de
données entre les objets.
Condition de garde
• Une condition de garde est une condition booléenne dont dépend le déclenchement d’une
transition lors de l’occurrence d’un événement.
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 17/18- Bertrand LIAUDET
Transitions composites
Etats composites
Sous-états concurrents
EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 18/18- Bertrand LIAUDET