Vous êtes sur la page 1sur 38

Université Abdelmalek Essaâdi

Faculté des Sciences de Tétouan


Département d’Informatique
Filière : SMI – S5
Année universitaire : 2021 - 2022

Cours du module M31 : Conception Orientée Objet avec UML

Chapitre 4 : Diagramme de séquence


(Sequence Diagram)

Pr. Abderrahim EL MHOUTI


a.elmhouti@uae.ac.ma

Cours M31 : COO-UML FS Tétouan


Plan du chapitre 4 : Diagramme de séquence

 Introduction

 Ligne de vie

 Messages

 Fragments d'interaction combinés

Cours M31 : COO-UML 2 Pr. A. El Mhouti


Introduction

Cours M31 : COO-UML 3 Pr. A. El Mhouti


Introduction
Présentation

 Le diagramme de CU modélise à QUOI sert le système, en organisant


les interactions possibles avec les acteurs.
 Le diagramme de classes modélise la structure et les liens entre
objets du système : il spécifie QUI sera à l'œuvre dans le système
pour réaliser ses fonctionnalités (décrites par le diagramme de CU).
 Le diagramme de séquence décrit COMMENT les éléments du
système interagissent entre eux et avec les acteurs en précisant la
chronologie des échanges de messages.

Diagramme de classes Diagramme de séquence correspondant


Cours M31 : COO-UML 4 Pr. A. El Mhouti
Introduction
Présentation
 Le diagramme de séquence fait ressortir :
◼ Les acteurs ➢Les objets que l'acteur va manipuler et les
messages (opérations) échangés (qui font passer
◼ Les objets
d'un objet à l'autre).
◼ Les messages
➢Les acteurs interagissent avec le système au
moyen d’IHM (Interfaces Homme-Machine).
 Chaque cas d’utilisation donne lieu à un diagramme de séquence.
Ce dernier représente donc une instance d’un cas d’utilisation.

Manipuler B

A Manipuler C

Diagramme de CU Diagramme de classes Diagramme de séquence


Cours M31 : COO-UML 5 Pr. A. El Mhouti
Introduction
Représentation graphique
 Un objet est représenté par un rectangle et une ligne verticale (ligne de vie).
 Les objets échangent des messages représentés par des flèches.
 L’ordonnancement verticale des messages indique la chronologie (le
temps s'écoule de haut en bas).

Cours M31 : COO-UML 6 Pr. A. El Mhouti


Introduction
Exemple

 Cas d'utilisation :  Diagramme de classes :

 Diagramme de séquences correspondant :

Cours M31 : COO-UML 7 Pr. A. El Mhouti


Lignes de vie

Cours M31 : COO-UML 8 Pr. A. El Mhouti


Lignes de vie
Présentation

 Une ligne de vie représente un participant à une interaction (objet


ou acteur).
 Elle est représentée par un rectangle, auquel est accroché une ligne
verticale pointillée, contenant une étiquette dont la syntaxe est :
[nom_ligne_de_vie] : [Nom_Classe ou Avteur]
 NB : Au moins un des deux noms doit être spécifié dans l'étiquette,
les deux points (:) sont, quant à eux, obligatoires.
 Exemple :

Cas d’utilisation Diagramme de séquence


Cours M31 : COO-UML 9 Pr. A. El Mhouti
Lignes de vie
Présentation

 Dans le cas d'une collection de participants (objets ou acteurs), on


utilise un sélecteur [].
 Le sélecteur [] permet de choisir un objet parmi n (par exemple
objets[2]).

Cours M31 : COO-UML 10 Pr. A. El Mhouti


Messages

Cours M31 : COO-UML 11 Pr. A. El Mhouti


Messages
Définition
 Les messages traduisent les interactions entre les lignes de vie
(objets ou acteurs) et sont présentés dans un ordre chronologique.
 Un message définit une communication particulière objets/acteurs.
 Ils sont représentés par des flèches orientées de l’émetteur au
récepteur.
 Les messages peuvent être de numéroter selon l’ordre chronologique
 Plusieurs types de messages existent, dont les plus courants :
◼ message simple
◼ message minuté (Timeout)
◼ message synchrone
◼ message asynchrone
◼ message récursif, …
Cours M31 : COO-UML 12 Pr. A. El Mhouti
Messages
Période d’activité d’un message

 La réception des messages provoque une période d’activité


marquant le traitement du message.
 Période d’activité = période durant laquelle un objet effectue une
action.
 Elle est représentée par une bande rectangulaire superposée à la
ligne de vie de l’objet :
 Un objet peut être actif plusieurs fois.

 Exemples :
Période d’activité
de l’objet 3
Période d’activité
de l’objet 1
Cours M31 : COO-UML 13 Pr. A. El Mhouti
Messages
Événements liés à un message
 UML définit différents évènements correspondant à un message :
◼ envoi du message
◼ réception du message
◼ début de l'exécution de la réaction
◼ fin de l'exécution de la réaction

 Exemple :

Cas d’utilisation

Diagramme de séquence

Cours M31 : COO-UML 14 Pr. A. El Mhouti


Messages
Syntaxe des messages
 Dans la plupart des cas, un message correspond à l'exécution d'une
méthode d'une classe.
 La syntaxe d’un message permet alors de transmettre les arguments
de la méthode : nomMessage(param1, param2, ….paramN)
 La syntaxe de réponse spécifie le résultat de la méthode invoquée :
attributCible = nomMessage(param1, ….paramN) : valeur_de_retour
 Exemple :

Cas d’utilisation

Diagramme de séquence
Cours M31 : COO-UML 15 Pr. A. El Mhouti
Messages
Message simple

 Un message simple est un message qui n'a pas de spécificité


particulière d'envoi et de réception.

 Exemple : Un email est envoyé à un serveur sans caractéristiques


particulières :

Cours M31 : COO-UML 16 Pr. A. El Mhouti


Messages
Message minuté (timeout)

 Un message minuté (timeout) bloque l’expéditeur pendant un temps


donné, en attendant la prise en compte du message par le récepteur.

 Après le délai, l’expéditeur est libéré et peut émettre des messages.


 NB : l'expéditeur est libéré si la prise en compte n'a pas eu lieu
pendant le délai spécifié.
 Exemple :

La porte d’un ascenseur s’ouvre


pendant un certain délai avant
d’être refermée.

Cours M31 : COO-UML 17 Pr. A. El Mhouti


Messages
Message synchrone

 Un message synchrone bloque l'expéditeur jusqu'à la réponse du


destinataire. Il est représenté par une flèche pleine :
 Le contrôle est passé de l’émetteur au récepteur qui devient à son
tour émetteur (actif).
 Le message de retour (flèche en pointillés) marque la reprise du
contrôle par l’émetteur.
Flèche pleine
 Exemple : Exécution bloquée
en attente du retour

 Typiquement, un message synchrone correspond à un appel de


méthode.
Cours M31 : COO-UML 18 Pr. A. El Mhouti
Messages
Message asynchrone
 Un message asynchrone n’interrompt pas l’exécution de l’expéditeur.
L’expéditeur peut émettre sans attendre la réponse du récepteur
 Le message asynchrone est représenté par une flèche ouverte :

 Exemple :

 Le message envoyé peut être pris en compte par le récepteur à tout


moment ou ignoré.
 Typiquement, un message asynchrone correspond à un appel de méthode.
Cours M31 : COO-UML 19 Pr. A. El Mhouti
Messages
Correspondance messages/opérations

 Les messages synchrones et asynchrones correspondent à des


opérations dans le diagramme de classes.
 Envoyer un message synchrone et attendre la réponse revient à
invoquer une méthode et attendre le retour de la fonction.
 Exemple :

Diagramme de classes Diagramme de séquence


Cours M31 : COO-UML 20 Pr. A. El Mhouti
Messages
Correspondance messages/opérations
 Envoyer un message asynchrone et continuer son activité sans
attendre la réponse revient à invoquer une méthode dans un
environnement multi-tâches (multi-threading).
 Exemple :
Diagramme de classes :

Diagramme de
séquence :
Message asynchrone

Cours M31 : COO-UML 21 Pr. A. El Mhouti


Messages
Message 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 utilisés pour spécifier le résultat de la
méthode invoquée et ils sont optionnels.

Message de retour

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


nouveaux messages asynchrones.

Cours M31 : COO-UML 22 Pr. A. El Mhouti


Messages
Message réflexif

 Un message réflexif (appelé aussi récursif) est un message envoyé


d’un objet vers lui-même.
 Exemple :
 Lorsque le client introduit sa carte guichet dans un GAB, ce dernier
vérifie la validité de la carte avant de demander le code d’accès :

Message asynchrone

Cours M31 : COO-UML 23 Pr. A. El Mhouti


Messages
Création et destruction d’objets

 Un message peut créer ou détruire un objet.


 La création d’un objet est matérialisée par une flèche qui pointe sur
le sommet d’une ligne de vie.
 On peut aussi utiliser un message synchrone
portant le stéréotype « create ».

 La destruction d’un objet est matérialisée par une croix qui marque
la fin de la ligne de vie de l’objet.
 On peut aussi utiliser un message synchrone
portant le stéréotype « destroy ».

 Un objet est dit transitoire (stéréotype «transient») lorsqu’il est


créé puis détruit durant la même séquence.
Cours M31 : COO-UML 24 Pr. A. El Mhouti
Messages
Création et destruction d’objets

 Exemple : Se connecter à une session puis se déconnecter de la session.

Cours M31 : COO-UML 25 Pr. A. El Mhouti


Fragments d'interaction combinés

Cours M31 : COO-UML 26 Pr. A. El Mhouti


Fragments d'interaction combinés
Fragment combiné

 Un fragment combiné permet de décomposer une interaction complexe


en fragments suffisamment simples pour être compris.

 Un fragment combiné est défini par un opérateur et des opérandes.


L'opérateur conditionne la signification du fragment combiné.

 Les fragments combinés permettent de décrire des diagrammes de


séquence de manière compacte. Op1

 Un fragment combiné se représente


Op2
de la même façon qu'une interaction. Op3

Op4

Cours M31 : COO-UML 27 Pr. A. El Mhouti


Fragments d'interaction combinés
Fragment combiné

 Graphiquement, un fragment combiné est représenté dans un


rectangle dont le coin supérieur gauche contient un pentagone (tag).
 Dans le pentagone figure le type de la combinaison,
appelé opérateur d'interaction.

 Exemple :
Le fragment « Authentification »
est combiné au diagramme de
séquence de connexion à un Opérateur
site Web. d'interaction (tag)
Fragment combiné

 Les conditions de choix des opérandes sont données par des


expressions booléennes entre crochets ([ ]).
Cours M31 : COO-UML 28 Pr. A. El Mhouti
Fragments d'interaction combinés
Fragment combiné

 Dans la notation UML 2.0, il existe 12 opérateurs d'interaction précisant


le type de la combinaison.

 Les opérateurs d'interaction (par fonctions) sont les suivants:


◼ opérateurs de choix et de boucle : alternative, option, break et loop ;
◼ opérateurs de contrôle d’envoi de messages : ignore, consider, assertion
et negative ;
◼ opérateurs de contrôle d’envoi parallèle de messages : parallel et critical
region;
◼ opérateurs fixant l'ordre d'envoi des messages : weak sequencing, strict
sequencing.

Cours M31 : COO-UML 29 Pr. A. El Mhouti


Fragments d'interaction
Opérateur « alt »

 L'opérateur alternative (ou alt) est un opérateur conditionnel


équivalent à la structure de contrôle « switch » ou « if ... else ... ».
 Principe : alt impose une condition à l’envoi d’un message.

 alt possède plusieurs opérandes


chacun détient une condition.
 Une seule des branches sera
réalisée dans un scénario donné.

 L'absence de condition implique une condition vraie (true).


 Les différentes alternatives (conditions de choix) sont spécifiées par
des expressions booléennes entre crochets ([ ]) dans chaque zone.
Cours M31 : COO-UML 30 Pr. A. El Mhouti
Fragments d'interaction
Opérateur « alt »

 Exemple :
Fonctionnement d’un ascenseur
sous forme de deux diagrammes
de séquence :

 Bloc d’alternative alt :

Si les portes de l’ascenseur sont


ouvertes, le système les ferme.
Sinon, le système déplace la
cabine.

Cours M31 : COO-UML 31 Pr. A. El Mhouti


Fragments d'interaction
Opérateur « loop »
 L'opérateur « Loop » (équivalent d’une boucle for ) est utilisé pour
décrire un ensemble d'interactions qui s'exécutent en boucle.
 Une contrainte appelée garde indique le nombre de répétitions
(min, max) ou bien une condition booléenne à respecter.

 Exemple 1 :
Lorsque l'utilisateur se trompe
trois fois de code, la carte est
gardée et le distributeur se
remet en mode d'attente
d'une carte.

Cours M31 : COO-UML 32 Pr. A. El Mhouti


Fragments d'interaction
Opérateur « loop »

 Exemple 2: Pour chaque livre dans le catalogue, on demande son


premier auteur :
 Notation :

 Bloc de boucle loop :

Cours M31 : COO-UML 33 Pr. A. El Mhouti


Fragments d'interaction
Opérateur « par »

 L’opérateur parallèle (par) est utilisé pour représenter des


interactions ayant lieu en parallèle.
 Cet opérateur possède au moins deux sous-fragments exécutés
simultanément.
 Exemple : Un à Internaute peut consulter en parallèle, soit le site1 soit
le site2 sans préférence d'ordre.

Cours M31 : COO-UML 34 Pr. A. El Mhouti


Fragments d'interaction
Opérateur « par »

 L’opérateur parallèle (par) permet d’envoyer des messages en


parallèle.
 Ce qui se passe de part et d’autre de la ligne pointillée est
indépendant.

 Exemple :
Diagramme de séquence de
l’interaction « réchauffer au
microonde » :

Cours M31 : COO-UML 35 Pr. A. El Mhouti


Fragments d'interaction
Opérateur « ref »

 Un fragment ref permet de faire référence à un autre diagramme de


séquence (réutiliser un diagramme de séquences défini par ailleurs).
 Graphiquement, un fragment ref apparaît dans un diagramme de
séquence sous forme de rectangle (avec le tag ref) en plaçant dans le
rectangle le nom de l'interaction référencée.
 Exemple 1 : Le diagramme suivant réutilise deux autres diagrammes :

 NB : Le diagramme auquel on se réfère doit exister déjà !


Cours M31 : COO-UML 36 Pr. A. El Mhouti
Fragments d'interaction
Opérateur « ref »

 Exemple 2 :
 Pour modéliser les inclusions et les extensions des cas d’utilisation, on
utilise le référencement des diagrammes de séquence correspondants.
 Chaque cas d’utilisation donne lieu à un diagramme de séquences.

Diagramme de cas d’utilisation Diagramme de séquences

Cours M31 : COO-UML 37 Pr. A. El Mhouti


Fragments d'interaction
Opérateur « opt »

 L'opérateur « opt » désigne un fragment combiné optionnel : c-à-d


qu'il représente un comportement qui peut se produire … ou pas.
 Un fragment « opt » est équivalent à un fragment « alt » qui ne
posséderait pas d'opérande else (une sorte de « SI…ALORS »).

 Exemple :

L’internaute, lorsqu’il est authentifié,


peut avoir de l’aide s’il en a besoin.

Cours M31 : COO-UML 38 Pr. A. El Mhouti

Vous aimerez peut-être aussi