You are on page 1of 17

Modélisation avec la langage

UML

Modéliser les interactions


Diagramme de séquence et diagramme de collaboration

Objectifs de ce chapitre
• Comprendre et savoir utiliser divers types de
diagrammes UML permettant de décrire:
▫ Comportement
▫ Scénarios détaillés

• En particulier, les diagrammes de:


▫ Séquence
«S EG ▫ Communication en UML2.0 (collaboration en
3700 »
D. Am
y
U. O ot
UML 1.0)
tt awa

1
Rappel

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Diagrammes d’interaction
• Les diagrammes d’interaction sont utilisés pour
modéliser les aspects dynamiques d’un système
▫ Ils aident à visualiser comment le système exécute
ses tâches.
▫ Un diagramme d’interaction est souvent construit
à partir d’un diagramme de classes et d’un cas-
type
 L’objectif est de montrer comment un ensemble
«S EG
d’objets peut réaliser une tâche demandée par un
3700 »
acteur
D. Am
y
U. Ott a ot
wa

2
5

Interactions et messages
▫ Un diagramme d’interaction montre comment un
ensemble d’objets et d’acteurs communiquent
ensemble afin:
 de réaliser les étapes d’un cas d’utilisation
 de réaliser une certaine fonctionnalité
▫ L’ensemble des différentes étapes à accomplir
s’appelle une interaction.
▫ Un diagramme d’interaction montre différents types
de communication entre objets, acteurs et sous-
systèmes:
«S EG  E.g. appel à des méthodes, information envoyée sur un
3700 »
réseau
D. Am
y
U. Ott a ot
wa
 Ceux-ci sont appelés messages.

Les éléments se trouvant dans un


diagramme d’interaction
▫ Des instances de classes
 Représentées par des rectangles : nomclasse

▫ Acteurs
 Représentés par des personnages-allumettes comme
dans les diagramme de cas d’utilisation

▫ Messages
«S EG

D. Am
3700 »
 Représentés par des flèches horizontales
y
U. Ott a ot
wa

3
7

Création d’un diagramme d’interaction


• Un diagramme de classes et des cas d’utilisation
sont souvent élaborés en premier lieu.

• Il existe deux sortes de diagramme d’interaction


▫ Diagramme de séquence
▫ Diagramme de communication

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Diagramme de séquence
• L'objectif est de objet1:classe1 objet2:classe2 objet3;classe3

représenter la
acteur

chronologie des Message1

échanges de
messages entre Message2

"objets".
Message3

Message4
«S EG
3700 »
D. Am
y
U. Ott a ot Message5
wa

4
Diagramme de séquence
• Un diagramme de séquence présente une
interaction en insistant sur le temps, en présentant
la séquence (ordre) des messages échangés entre les
objets
• Un diagramme de séquence est à deux dimensions
▫ dimension verticale : le temps;
 L'ordre d'envoi d'un message est déterminé par sa position
sur l'axe vertical du diagramme ; le temps s'écoule "de haut
en bas de cet axe
▫ dimension horizontale : les objets (et les acteurs)
«S EG
 Objets
3700 »
D. Am
y
U. Ott a ot
wa

Diagramme de séquence
objets

Temps

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

5
Diagramme de séquence
Concepts
• Les participants
▫ Ligne de vie
▫ Zones d’activation
• Les messages
• Les structures de contrôle
▫ Alt: conditionnelle
▫ Loop: boucle
▫ Réf: référence à un autre diagramme de séquences
«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Participants
• Ligne de vie
▫ Une ligne de vie représente l'existence d'un objet
pendant une période de temps
• Activation
▫ Une activation représente le temps durant lequel
un objet est actif, c'est à dire en train d'exécuter
une opération

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

6
13

MESSAGE

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Message
Séquencement
• Le séquencement des messages est spécifié par la
position verticale des messages échangés
• Représentation graphique

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

7
Message Synchronisation
• La synchronisation est le mode par défaut des messages
d’appel, de retour, de création et de destruction
• Un message synchrone signifie que l’objet émetteur se
bloque en attendant la réponse du récepteur du message
▫ Le contrôle est passé de l'appelant à l'appelé;
▫ l'opération de l'appelant est suspendue
▫ Le contrôle est rendu à l'appelant à la fin de l'opération
appelée; l'appelant reprend l'exécution de l'opération en
«S EG
cours
3700 »
D. Am
y
U. Ott a ot
wa

Message Concurrence

• La concurrence ou l’asynchronisme est spécifiée


par l'utilisation de message d'envoi (message
asynchrone)
• Un signal est envoyé à un objet; l'objet envoyeur
continue son opération
▫ L’objet émetteur n’attend pas la réponse du
récepteur et poursuit sa tâche sans se soucier de la
réception de son message

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

8
Message Itération

• L'itération d'un message peut être spécifiée


• Représentation graphique

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Message Réccursion
• Un message peut être récursif
• Représentation graphique

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

9
Exemple

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

20

Exemple
:CourseSection :Student

requestToRegister :Registration
<<create>>
addToSchedule
addToRegistrationList

Course * CourseSection * Registration * Student


getPrerequisite requestToRegister addToSchedule
«S EG addToRegistrationList hasPassedCourse
3700 »
D. Am
y
U. Ott a ot
wa

10
Structure de contrôle
• Les différentes structures de contrôle sont:
▫ Opt
▫ Loop
▫ Alt
▫ Ref
▫ ….

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Structure de contrôle (Suite)


• Opt
▫ Fragment parcouru si la condition est vérifiée

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

11
Structure de contrôle (Suite)
• Loop
▫ Répétition du fragment tant que la condition est
vérifiée

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Structure de contrôle (Suite)

• Alt
▫ Équivalent à la structure de contrôle "si .. alors ..
sinon"

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

12
Structure de contrôle(Suite)
• Ref
▫ Fait référence à un autre diagramme

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Exercice 1
Le déroulement normal d’utilisation d’une caisse de supermarché est
le suivant
• un client arrive à la caisse avec ses articles à payer
• le caissier enregistre le numéro d’identification de chaque article,
ainsi que la quantité si elle est supérieure à 1
• la caisse affiche le prix de chaque article et son libellé
• lorsque tous les achats sont enregistrés, le caissier signale la fin de
la vente la caisse affiche le total des achats
• le caissier annonce au client le montant total à payer
• le client choisit son mode de paiement
▫ liquide : le caissier encaisse l’argent, la caisse indique le montant
à rendre au client
▫ chèque : le caissier note le numéro de pièce d’identité du client
▫ carte de crédit : la demande d’autorisation est envoyée avant la
saisie
• la caisse enregistre la vente et l’imprime
• le caissier donne le ticket de caisse au client
Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en
«S EG compte que le cas du paiement en liquide.
3700 »
D. Am
y
U. Ott a ot
wa

13
Exercice 2: Imprimante
• A partir du diagramme de classe ci-dessus
▫ Rédigez un diagramme de séquence pour modéliser
le scénario où un utilisateur voudrait imprimer un
fichier

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Imprimante – Diagramme de Séquence

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

14
29

Diagramme de communication
• Un diagramme de communication illustre
comment les objets coopèrent dans la réalisation
d’une interaction
▫ Un diagramme de communication est un graphe
dont les objets sont les sommets.
▫ Des liens de communication sont ajoutés entre ces
objets
▫ Les messages sont associés à ces liens.
«S EG
3700 »
 Représentés par des flèches
D. Am
y
▫ L’ordonnancement temporel est indiqué à l’aide
U. Ott a ot
wa d’une numérotation

30

exemple
1: requestToRegister(aStudent) 2: prereq := getPrerequisite
<<local>>
GUI :CourseSection :Course

3: hasPrerequisite :=
hasPassedCourse(prereq)
<<parameter>> 5: addToRegistrationList
4: [hasPrerequisite] <<parameter>>
<<create>>

aStudent: :Registration
Student
6: addToSchedule
«S EG
3700 »
<<parameter>>
D. Am
y
U. Ott a ot
wa

15
31

Chapitre 8: Modéliser
interactions et
comportement

«S EG
3700 »
D. Am
y
U. Ott a ot
wa

Diagramme de collaboration:
Syntaxe des envois de message
▫ 4 : Afficher (x, y) -- message simple
▫ 3.3.1 : Afficher (x, y) -- message imbriqué
▫ 4.2 : âge := Soustraire (Aujourd’hui,
DateDeNaissance) – message imbriqué avec valeur
retournée
▫ [Age >= 18 ans] 6.2 : Voter () -- message
conditionnel
▫ 1 * : Laver () -- itération
«S EG
3700 »
D. Am
y
U. Ott a ot
wa

16
33

Comment choisir entre un diagramme de séquence


et un diagramme de communication
• Les diagrammes de séquence
▫ Rendent explicite la séquence temporelle dans
l’interaction
 Les cas-type ont aussi un tel ordre temporel
 Les diagrammes de séquence constituent donc le
choix naturel lorsque l’interaction est construite à
partir d’un cas-type.
▫ Facilitent une écriture détaillée des messages
 Moins d’espace est généralement disponible dans un
«S EG
3700 »
diagramme de collaboration
D. Am
y
U. Ott a ot
wa  Permet de décrire de longs scénarios

34

Comment choisir entre un diagramme de


séquence et un diagramme de communication

• Les diagrammes de communication


▫ Peuvent être vus comme la prolongation d’un
diagramme de classes
 Préférables lorsque l’interaction est déduite du
diagramme de classes
 Sont aussi très utiles pour valider des diagrammes
de classes
 Reflètent mieux l’architecture du système et ses
composantes
«S EG
3700 »
D. Am
y
U. Ott a ot
wa

17