Vous êtes sur la page 1sur 43

Université Hassan 1er

Faculté des Sciences et Techniques


-Settat-

Département : Mathématiques & Informatique


Filière : Licence Génie Informatique
Module : Génie logiciel et UML

Chapitre 6 : Diagramme de séquences

Prof. Said El Kafhali

Département Mathématiques & Informatique


Faculté des Sciences et Techniques, Settat
Université Hassan 1er

Année Universitaire : 2021/2022


Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 1 / 43
Plan

1 Présentation de diagramme de séquences

2 Opérateurs d’interaction

3 Polymorphisme

4 Classe boundary

5 Exercice corrigé

6 Références

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 2 / 43
Présentation de diagramme de séquences

Objectifs de diagramme de séquences

Les diagrammes de cas d’utilisation modélisent à QUOI sert le


système, en organisant les interactions possibles avec les acteurs.
Les diagrammes de classes permettent de spécifier la structure et les
liens entre les objets dont le système est composé : ils spécifie QUI
sera à l‘œuvre dans le système pour réaliser les fonctionnalités décrites
par les diagrammes de cas d’utilisation.
Les diagrammes de séquences permettent de décrire COMMENT les
éléments du système interagissent entre eux et avec les acteurs.
Les objets au cœur d’un système interagissent en s’échangent des
messages.
Les acteurs interagissent avec le système au moyen d’IHM (Interfaces
Homme-Machine).

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 3 / 43
Présentation de diagramme de séquences

Diagramme de séquences

Représenter les interactions entre objets en précisant la chronologie


des échanges de messages.
Représente une instance d’un cas d’utilisation (les scénarios possible
d’un cas d’utilisation donné).
Montre sous forme de scénarios, la chronologie des envoies de
messages issus d’un cas d’utilisation.
Le diagramme de séquence fait ressortir :
Les acteurs
Les objets
Les messages

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 4 / 43
Présentation de diagramme de séquences

Exemple d’interaction
Cas d’utilisation :

Diagramme de séquences correspondant :

Opérations nécessaires dans le diagramme de classes :

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 5 / 43
Présentation de diagramme de séquences

Diagrammes de séquences : Description

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 6 / 43
Présentation de diagramme de séquences

Représentation graphique
Un objet est représenté par un rectangle et une ligne verticale (ligne
de vie de l’objet).
Les objets communiquent en échangeant des messages représentés
par des flèches orientées de l’émetteur au récepteur.
Chaque message échangé entre des objets est symbolisé par une
flèche pleine et continue.
La chronologie des envois de messages est organisée du haut vers le
bas (et de gauche à droite).

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 7 / 43
Présentation de diagramme de séquences

Ligne de vie des objets

Elle est représentée par une ligne verticale en dessous des objets.Elle
représente la période de temps durant laquelle l’objet “existe”.
Création d’un objet : un message pointe sur le symbole de l’objet.
Destruction d’un objet : sa ligne de vie se termine par une croix en
trait épais (×).
La spécification UML 2.0 précise que les lignes de vies peuvent être en
continues ou pointillées.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 8 / 43
Présentation de diagramme de séquences

Type de messages
Un message définit une communication particulière entre des lignes de
vie (objets ou acteurs).
Plusieurs types de messages existent, dont les plus courants :
L’envoi d’un signal ;
L’invocation d’une opération (appel de méthode) ;
La création ou la destruction d’un objet.
La réception des messages provoque une période d’activité (rectangle
vertical sur la ligne de vie) marquant le traitement du message
(spécification d’exécution dans le cas d’un appel de méthode).

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 9 / 43
Présentation de diagramme de séquences

Exemple de diagramme de séquences

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 10 / 43
Présentation de diagramme de séquences

Messages : activation des objets

La dimension verticale représente l’écoulement du temps.


Une période d’activité correspond au temps pendant lequel un objet
effectue une action directe ou indirecte.
Représentation
Réprésenter par une bande verticale le long de la ligne de vie de l’objet.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 11 / 43
Présentation de diagramme de séquences

Événements et messages

Un message complet est tel que les événements d’envoi et de


réception sont connus.
Un message complet est représenté par une flèche partant d’une ligne
de vie et arrivant à une autre ligne de vie.
Un message perdu est tel que l’événement d’envoi est connu, mais
pas l’événement de réception.
La flèche part d’une ligne de vie mais arrive sur un cercle indépendant
marquant la méconnaissance du destinataire.
Exemple : broadcast.
Un message trouvé est tel que l’événement de réception est connu,
mais pas l’événement d’émission.
Un message trouvé est un message pour lequel soit l’émetteur est
inconnu, soit le message provient d’une source aléatoire.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 12 / 43
Présentation de diagramme de séquences

Événements et messages : exemple


Dans la figure ci-dessous :
Le message ‘messageUn()’ est le message de départ et se nomme
message trouvé (found message).
Les messages ‘messageDeux()’ et ‘messageTrois()’ sont des messages
complets.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 13 / 43
Présentation de diagramme de séquences

Messages asynchrones
Ils n’attendent pas de réponse et ne bloquent pas l’émetteur qui ne sait
pas si le message arrivera à destination, le cas échéant quand il arrivera
et s’il serra traité par le destinataire. (Typiquement :envoi de signal).
Graphiquement, un message asynchrone se représente par une flèche
en traits pleins et à l’extrémité ouverte partant de la ligne de vie d’un
objet expéditeur et allant vers celle de l’objet cible.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 14 / 43
Présentation de diagramme de séquences

Message asynchrone : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 15 / 43
Présentation de diagramme de séquences

Messages synchrones (appel de procédure)


Dans la pratique, la plupart des invocations sont synchrones,
l’émetteur (l’expéditeur) reste alors bloqué jusqu’à la réponse du
destinataire. Le flot de contrôle passe de l’émetteur au récepteur.
Graphiquement, un message synchrone se représente par une flèche en
traits pleins et à l’extrémité pleine. Ce message peut être suivi d’une
réponse qui se représente par une flèche en pointillé.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 16 / 43
Présentation de diagramme de séquences

Message synchrone : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 17 / 43
Présentation de diagramme de séquences

Correspondance messages / opérations

Les messages synchrones correspondent à des opérations dans le


diagramme de classes.

Envoyer un message et attendre la réponse pour poursuivre son


activité revient à invoquer une méthode et attendre le retour pour
poursuivre ses traitements.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 18 / 43
Présentation de diagramme de séquences

Correspondance messages / signaux


Les messages asynchrones correspondent à des signaux dans le
diagramme de classes.

Les signaux sont des objets dont la classe est stéréotypée signal et
dont les attributs (porteurs d’information) correspondent aux
paramètres du message.
Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 19 / 43
Présentation de diagramme de séquences

Messages de retour
Le récepteur d’un message synchrone rend la main à l’émetteur du
message en lui envoyant un message de retour.
Les messages de retour sont optionnels : la fin de la période d’activité
marque également la fin de l’exécution d’une méthode.
Ils sont utilisés pour spécifier le résultat de la méthode invoquée.

Le retour des messages asynchrones s’effectue par l’envoi de nouveaux


messages asynchrones.
Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 20 / 43
Présentation de diagramme de séquences

Message récursif
Appelé aussi message réflexive.
Message envoyé d’un objet vers lui-même.
On peut montrer qu’un objet s’envoie un message à lui-même à l’aide
d’une flèche « circulaire ».

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 21 / 43
Présentation de diagramme de séquences

Message récursif : exemple


Lorsque le client introduit sa carte de guichet, ce dernier vérifie la
validité de la carte avant de demander le code d’accès.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 22 / 43
Présentation de diagramme de séquences

Concurrences des messages

Balking : le client passe un message au fournisseur à condition que le


fournisseur accepte directement le message. Sinon, le message est
abandonné.

Timeout : le client passe un message au fournisseur et abandonne le


message si le fournisseur ne l’accepte endéans un délai déterminé.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 23 / 43
Présentation de diagramme de séquences

Syntaxe des Messages

Syntaxe générale d’un message :


[’[’condition’]’[*[||]’[’itération’]’]:][résultat:=] message([paramètres])
La syntaxe de message de routeur est la suivante :
[<attribut>=] message[:<valeur_de_retour>]
condition est une condition optionnelle sous forme d’expression
booléenne.
itération spécifie (en langage naturel, entre crochets) l’envoi séquentiel
(ou en parallèle, avec ||). On peut omettre cette spécification et ne
garder que le caractère "*" (ou "*||") pour désigner un message
récurrent envoyé un certain nombre de fois.
résultat est la valeur de retour du message, qui sera par exemple
transmise en paramètre à un autre message.
message est le nom du message. paramètres désigne les paramètres
(optionnels) du message.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 24 / 43
Présentation de diagramme de séquences

Etiquettes des messages : itération


Itération séquentielle : envoi séquentiel de n instances du même
message.
Syntaxe : *[ clause d’itération ]
Itération parallèle : envoi parallèle de n instances du même message.

Syntaxe : *||[ clause d’itération ]

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 25 / 43
Présentation de diagramme de séquences

Etiquettes des messages : résultat

Le résultat est constitué d’une liste de valeurs retournées par le


message .
Ces valeurs peuvent être utilisées comme paramètres des autres
messages.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 26 / 43
Opérateurs d’interaction

Opérateurs d’interaction

Il existe 12 opérateurs définis dans la notation UML 2.0. par une ligne
pointillée. Les conditions de choix des opérandes sont données par des
expressions booléennes entre crochets ([ ]).
La liste suivante regroupe les opérateurs d’interaction par fonctions
(Type d’opérateurs d’interaction) :
Les opérateurs de branchement (choix et de boucle) : alternative,
option, break et loop ;
Les opérateurs contrôlant l’envoi en parallèle de messages :
parallel et critical region ;
Les opérateurs contrôlant l’envoi de messages : ignore, consider,
assertion et negative ;
Les opérateurs fixant l’ordre d’envoi des messages : weak
sequencing, strict sequencing.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 27 / 43
Opérateurs d’interaction

Opérateur alt (alternative)


C’est en quelque sorte l’équivalent du SI...ALORS...SINON.
L’utilisation de l’opérateur else permet d’indiquer que la branche est
exécutée si la condition du alt est fausse.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 28 / 43
Opérateurs d’interaction

Opérateur Loop

Cet opérateur est utilisé pour décrire un ensemble d’interaction qui


s’exécute en boucle.
En général, une contrainte appelée garde indique le nombre de
répétitions (minimum et maximum) ou bien une condition booléenne à
respecter.
Syntaxe : loop (minNbIterations , maxNbIterations)
La boucle est répétée au moins minNbItérations fois avant qu’une
éventuelle condition booléenne ne soit testée (la condition est placée
entre crochets dans le fragment).
Tant que la condition est vraie, la boucle continue, au plus
maxNbItérations fois.

Notations
loop(valeur) est équivalent à loop(valeur, valeur).
loop est équivalent à loop(0,*), où * signifie illimité.
Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 29 / 43
Opérateurs d’interaction

Opérateur loop : exemple


Le CAPTCHA est une marque commerciale permettant de différencier
de manière automatisée un utilisateur humain d’un ordinateur.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 30 / 43
Opérateurs d’interaction

Opérateur Par (parallel)


Il est utilisé pour représenter des interactions ayant lieu en parallèle.
Les interactions des différents opérandes (les deux branches de notre
opérateur ci-dessous) peuvent donc se mélanger, s’intercaler, dans la
mesure où l’ordre imposé dans chaque opérande est respecté.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 31 / 43
Opérateurs d’interaction

Section critique : Critical

Un opérateur d’interaction critical indique que le fragment ne dispose


que d’une seule unité d’exécution qui l’exécute à un moment donné.
On dit que l’opérateur impose un traitement atomique des interactions
qu’il contient.
Ce fragment doit être terminé pour qu’une autre unité d’exécution
puisse s’exécuter.
Par exemple, si une opérationd() est incluse dans la région crique et
appelée, aucune autre opération ne peut être appelée jusqu’à ce que
d() soit terminée.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 32 / 43
Opérateurs d’interaction

Section critique : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 33 / 43
Opérateurs d’interaction

Fragments de séquence « ref » et « opt »


ref : sous-séquence détaillée dans un autre diagramme de séquence.
opt : sous-séquence optionnelle exécutée si condition de garde est
vraie.

poc = « pour ou contre »


Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 34 / 43
Polymorphisme

Diagrammes de séquence : polymorphisme

Le polymorphisme est un concept fondamental de la conception


orientée objet. Comment le représenter dans un diagramme de
séquence ?
Une solution consiste à utiliser plusieurs diagrammes de séquence.
L’un montrant le message polymorphe vers la super-classe abstraite
(ou l’objet interface).
Puis plusieurs diagrammes séparés détaillant chaque cas polymorphe,
chacun commençant par un message polymorphe trouvé (sans source).

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 35 / 43
Polymorphisme

Polymorphisme : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 36 / 43
Polymorphisme

Polymorphisme : exemple (suite)

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 37 / 43
Classe boundary

Classe boundary
Dans un diagramme de séquence, on a généralement un acteur qui
interagit avec le système.
Ces interactions se font à travers une classe avec le stéréotype «
boundary ».
Il peut s’agir de :
De fenêtre « Windows »
De pages HTML
D’interfaces vers des dispositifs électro-mecaniques.
De protocoles d’échange avec d’autres systèmes : • Tuxedo • CICS •
SOAP • Web services • . . .
Graphiquement, un boundary est représenter par le symbole suivant :

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 38 / 43
Classe boundary

Classe boundary : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 39 / 43
Classe boundary

Classe boundary : exemple (suite)

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 40 / 43
Exercice corrigé

Exercice

On souhaite gérer les différents objets qui concourent à l’activité d’un


magasin de vente de fleurs.
Le client demande au vendeur des renseignements sur les compositions
florales;
Le vendeur lui fournit toutes les informations nécessaires;
Le client commande alors la composition de son choix et le vendeur
émet le bon de fabrication qu’il transmet à son ouvrier fleuriste.
Le vendeur édite ensuite la facture correspondante.
L’ouvrier fleuriste crée la composition puis archive le bon de fabrication;
Il remet alors la composition au vendeur;
La facture est remise au client pour règlement une fois le bouquet
réalisé;
Une fois la facture réglée, le client récupère sa composition et quitte le
magasin.
Modéliser cette situation à l’aide d’un diagramme de séquence.
Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 41 / 43
Exercice corrigé

Corrigé de l’exercice

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 42 / 43
Références

Références
1 Pascal Roques, UML 2 par la pratique: études de cas et exercices
corrigés, Groupe Eyrolles.
2 Xavier Blanc Isabelle Mounier, UML 2 pour les développeurs: Cours
avec exercices corrigés, Groupe Eyrolles, Code éditeur : G12029 •
ISBN : 2-212-12029-X.
3 Pierre Gérard, Introduction à UML 2: Modélisation Orientée Objet de
Systèmes Logiciels, Cours DUT Informatique S2D, Université de Paris
13 IUT Villetaneuse.
4 G. BOOCH, J. RUMBAUGH et Y. JACOBSON, Le guide de
l’utilisateur UML , (Eyrolles, 2000).
5 P. A. MULLER et N. GAERTNER, Modélisation objet avec UML ,
(Eyrolles, 2000).
6 Pierre-Alain Muller and Nathalie Gaertner. Modélisation objet avec
UML. Eyrolles, 2è edition, 2003.
7 James Rumbaugh et al. Modélisation et conception orientée objet.
Masson, 1994. Année Universitaire : 2021/2022
8 Prof. Said El Kafhali Chapitre 6 : Diagramme de séquences 43 / 43

Vous aimerez peut-être aussi