Vous êtes sur la page 1sur 52

Chapitre 4

DIAGRAMME DE SÉQUENCE

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


But du diagramme de séquence.
• Il donne une description dynamique du système.

• Il va permettre d’établir un lien entre le diagramme de cas


d’utilisation (vue fonctionnelle et externe d’un système) et
le diagramme de classes (vue statique et interne).

• Il va montrer de façon séquentielle (c’est à dire


temporelle) comment communiquent les objets du
système afin de réaliser une certaine fonctionnalité.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


But du diagramme de séquence.
• Le cœur d’un diagramme de séquence est la description
des échanges de messages entre éléments du système ou
acteurs extérieurs.

• Les messages les plus courants sont :

– L’envoi d’un signal ou message.


– L’appel d’une méthode d’un objet.
– La création ou la destruction d’un objet.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Représentation globale.
• Représentation globale

• En général on ne pourra pas représenter toute la dynamique


d’un système sur un seul diagramme.
• On créera donc un ensemble de diagrammes, chacun
représentant un cas d’utilisation ou une fonction interne du
système.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Représentation globale.
Modularité : on pourra réutiliser un diagramme déjà
existant en y faisant référence.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Lignes de vie et périodes d’activité
Ligne de vie : représente un participant à une interaction.
C’est par exemple un des objets du système ou un acteur
extérieur.

Remarque : dans le cas d’un objet, selon le niveau de


précision souhaité, on pourra le désigner par son nom, la
classe à laquelle il appartient ou alors les deux.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Lignes de vie et périodes d’activité
Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Lignes de vie et périodes d’activité
• Une ligne de vie signifie qu’un élément existe mais il
n’est pas nécessairement actif.

• Période d’activité : marque le fait qu’un élément soit


actif. Cette période commence généralement à la
réception d’un message et peut se clôturer par l’envoi
d’une réponse.

– On la représente par un rectangle blanc sur la ligne de vie de


l’élément en question.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Lignes de vie et périodes d’activité
Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Diagramme de séquence.

1. ENVOIS DE MESSAGES

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages asynchrones et synchrones


Message asynchrone : message ne bloquant pas l’activité de
son expéditeur. Il pourra être traité à tout moment par son
destinataire ou même ignoré.

Cela correspond par exemple à l’envoi d’un signal.

Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages asynchrones et synchrones


Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages asynchrones et synchrones


Message synchrone : message bloquant l’activité de son
expéditeur. Et ce jusqu’à prise en compte du message par
le destinataire. Il s’accompagne souvent d’une réponse du
destinataire.
Cela correspond par exemple à l’appel d’une méthode d’un
objet.

Représentation :

Réponse :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages asynchrones et synchrones


Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Création et destruction d’instances


Un message peut également commander la création ou la
destruction d’un objet.

Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Création et destruction d’instances


Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages perdus et trouvés.


Message perdu : message dont on connaît l’expéditeur mais pas le
destinataire.
Modélise par exemple une perte de message sur un réseau.

Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages perdus et trouvés.


Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages perdus et trouvés.


Message trouvé : message dont on connaît le destinataire mais
pas l’expéditeur.
Modélise par exemple le comportement d’un élément suite à la
réception d’un message d’exception.

Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Messages perdus et trouvés.


Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Syntaxe des messages.


• Selon le niveau de détail souhaité, la syntaxe des messages
sera plus ou moins précise.

– Si le diagramme de séquence sert à documenter un cas


d’utilisation, on utilisera une syntaxe proche du langage courant.
C’est d’ailleurs ce que l’on a fait dans les exemples précédents.

– Si le diagramme de séquence est destiné à un usage plus


« programmation », on adoptera une syntaxe plus rigoureuse,
correspondant aux méthodes des objets se communiquant.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Syntaxe des messages.


• Dans le dernier cas, on pourra transmettre des paramètres
et recevoir un résultat (comme lors de l’appel classique
d’une fonction).

• Ce résultat sera renvoyé par l’objet appelé via un message


de réponse.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


1. Envois de messages

Syntaxe des messages.


Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Diagramme de séquence.

2. Fragments d’interaction
combinés

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

a. Principe.
• Dans des situations complexes, on décomposera une
interaction en fragments, qui vont permettre de
modéliser par exemple une alternative, une itération
ou encore une exécution de tâches en parallèle.

• Ces fragments d’interaction pourront faire intervenir


tous ou une partie des éléments du système.

• Les combiner et les imbriquer permettra alors de


rendre compte de la complexité d’un système.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

a. Principe.
• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Opérateur alt : permet de modéliser une alternative
entre plusieurs scénarii.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Opérateur opt : permet de modéliser un scénario
optionnel. Selon la validité d’une condition, une
interaction aura lieu ou pas.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Opérateur break : permet de modéliser un scénario
de rupture. Selon la validité d’une condition, le
scénario de l’interaction est abandonné au profit du
scénario contenu dans le fragment break.

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Opérateur loop : permet de modéliser une itération.
Le nombre de boucle est compris entre une valeur
minimum et une valeur maximum, et peut de plus être
soumis à une condition.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

b. Opérateurs d’alternative et d’itération


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Opérateur par : permet de modéliser des interactions
ayant lieu en parallèle. Dans chaque opérande les
évènements se déroulent dans l’ordre, mais pris
globalement ils peuvent s’entrelacer.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Opérateur seq : permet de modéliser des interactions ayant
lieu en parallèle. Dans chaque opérande les évènements se
déroulent dans l’ordre. Des messages destinés à des lignes de
vie différentes peuvent être entrelacées. Des messages destinés
à une même ligne de vie doivent se produire dans l’ordre des
fragments.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Opérateur strict : impose l’ordre de réalisation de ses
opérandes, du haut vers le bas. Par contre le
séquencement à l’intérieur de chaque opérande est
quelconque.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Opérateur critical : désigne un fragment qui devra
être exécuté de façon atomique. Cela signifie que les
messages de ce fragment ne doivent pas être
entrelacés avec d’autres. Et ce même si ce fragment
est inclus dans un fragment « par ».

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

c. Opérateurs d’ordre des messages.


• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Opérateur ignore : indique une liste de messages non
représentés sur le fragment car ils sont insignifiants
dans la description que l’on effectue. Ces messages
peuvent quand même être envoyés pendant ce
fragment, mais ils seront ignorés.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Opérateur consider : indique une liste de messages
décrits par le fragment. D’autres messages peuvent
quand même être envoyés pendant ce fragment, mais
ils ne seront pas pris en compte.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Opérateur neg : indique qu’une certaine séquence ne
doit pas avoir lieu, car elle est considérée comme
invalide.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Opérateur assert : indique l’unique séquence valide,
et qui doit donc être nécessairement réalisée.

• Représentation :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


2. Fragments d’interaction combinés

d. Opérateurs d’interprétation.
• Exemple :

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020


Activités pratiques

• Cabine téléphonique
• GAB
• Caisse enregistreuse
• Station essence

© M. Mohamed EL HAFTA Cours / UML/ ENSEM /2ème AII / 2020