Académique Documents
Professionnel Documents
Culture Documents
Diagramme de Séquence
Un diagramme de séquence représente une interaction entre
plusieurs éléments
Les éléments interagissent par envoi de messages
Les éléments interagissant sont des instances jouant des rôles.
Messages
Creation: Une instance peut créer une autre instance grâce à un message de
création
Destruction: Une instance peut détruire une autre instance grâce à un
message de destruction
Message de Séquence: Une instance peut envoyer un message de
séquence à une autre instance pour demander l’exécution d’une opération
Message Asynchrone: Une instance peut envoyer un message asynchrone à
une autre instance (événement)
Branche de messages: Il est possible de spécifier des conditions sur l’envoi
de message (if then else)
Diagramme de Séquence
Les éléments se trouvant dans un
diagramme d’interaction
Des instances de classes
Représentés par des rectangles comme dans les diagrammes
d’instances
Acteurs
Représentés par des personnages-allumettes comme dans les
diagramme de cas-type
Messages
Représentés par des flèches horizontales
Objets et Messages
Des lignes verticales pointillées
représentent des objets (pas
des classes!)
Le nom de la classe
(:ClassName) est optionele.
représente une message
represente un retour
explicite de message (return)
La classe de l’objet ‘sender’
devrait avoir une association
avec la classe de l’objet
‘receiver’ dans le diagramme de
classe
6
Structures de contrôle
1. La message1() est envoyé
seulement si la condition specifiée
dans la guard (entre brackets) est
vraie.
2. Une branche. Le sender envoie soit
le message2() soit le message3().
Les conditions de ‘guard’ sont
exclusives.
3. L’Itération. Le sender envoie la
message4() tant que la condition est
vraie.
4. “Pour chaque“. Si le receiver est une
collection d’objets, envoyer le
message à tous ces objets.
5. Grouping. Les activités dans la boîte
ont lieu seulement si le test est vrai.
L’asterisque indique l’itération.
7
Diagrammes de Séquences
Conventions graphiques :
o:C Objet participant à l’interaction
n : message
Activation : période de temps pendant laquelle l’objet
n : numéro de séquence exécute une action
facultatif
Ligne de vie
détruire
ou auto-destruction
Diagrammes de Séquences
Conventions graphiques (suite) :
o ’ : C ’
o:C
message
o:C
message
réflexif
Diagrammes de Séquences
Conventions graphiques (suite) :
o:C o1 : C 1 o2 : C2
[cond] message1
messages conditionnés
[non cond] message2
o:C o1 : C 1
Itération d’un message ou
d’une séquence de messages
* message1 (dans ce dernier cas, fin *
message2
. délimite la séquence itérée)
.
.
fin *
Diagrammes de Séquences
Conventions graphiques (suite) :
resul := message
(param1, param2, ...)
Diagramme de Séquence - Fin
Les diagrammes de séquence sont de plus en plus utilisé
Ils permettent de décrire la dynamique d’un système
Ils permettent de faire le lien entre les diagrammes de cas d’utilisation et
les diagrammes de classes
A vous de jouer
Définir le diagramme de
séquence d’un publiphone
Cas du publiphone :
1. Le prix minimal d’une communication interurbaine est de 1€.
2. Après l’introduction de la monnaie, l’utilisateur a 2 mn pour
composer son numéro (ce délai est décompté par le standard).
3. La ligne peut être libre ou occupée.
4. Le correspondant peut raccrocher le premier.
5. Le publiphone consomme de l’argent dès que l’appelé décroche et à
chaque unité de temps (UT) générée par le standard.
6. On peut ajouter des pièces à tout moment.
7. Lors du raccrochage, le solde de monnaie est rendu.
Une solution au cas du publiphone
:publiphone :standard
:appelant
décrocherCombiné
introduirePièce(1€)
vérifierPièce
incrémenterCrédit(1€)
composerNuméro(04 78 77 23 23)
acheminerNuméro(04 78 77 23 23)
tonalité(libre) tonalité(libre)
débuterComm
taxer(1€)
introduirePièce(1€)
vérifierPièce
incrémenterCrédit(1€)
UT
raccrocherCombiné taxer(1€)
FinComm
Exemple : Retrait en espèce
17
Exercice 1: Imprimante
18
Imprimante – Diagramme de Séquence
19
Exercice 2: Simple Watch
Button 1
Button 2
*[B2..state = Pushed]
21
Exercice 3 : Ascenseur
23