Vous êtes sur la page 1sur 16

Institut Supérieur des Sciences Appliquées et de Technologie de Sousse

2 3

0 2

2 0

2 Diagramme de Séquences
Introduction Générale

Le Langage UML

Démarches associées

Les patrons de conception


Enseignant : Dr. Mhamed SAIDANE

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'oeuvre
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 coeur d'un système interagissent en s'échangent des messages.
 Les acteurs interagissent avec le système au moyen d'IHM (Interfaces Homme-
Machine).

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 2

1
Diagramme de séquences

Exemple ChangerPrixArticle
Responsable vente
Cas d’utilisation

Responsable vente : Gestion de stock a : Article

Opérations nécessaires
ChangerPrixArticle(a,p)
ModifierPrix(P) dans le diagramme de
classes

Article
Diagramme de séquences correspondant
Prix : float
ModifierPrix(value: float) : void

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 3

Diagramme de séquences
 Le diagramme de séquence utilise trois éléments de notation fondamentaux :

 Objet
 Ligne de vie
 Message

Les objets O1 : C1 O2 : C2 O3 : C3

Un message
Temps Un autre message

Ligne de vie

 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.
 La disposition des objets sur l'axe horizontal n'a pas de conséquence pour la
sémantique du diagramme.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 4

2
Diagramme de séquences
Message

 Un message définit une communication particulière entre des lignes de


vie.

 Plusieurs types de messages existent, les plus commun sont :


 l’envoi d’un signal.
 l’invocation d’une opération.
 la création ou la destruction d’une instance.

 La réception des messages provoque une période d'activité (rectangle


vertical sur la ligne de vie) marquant le traitement du message.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 5

Diagramme de séquences
Types de Message

 Message Synchrone
 L’invocation d’une opération est le type de message le plus utilisé en
programmation objet.
 Dans la pratique, la plus part des invocations sont synchrones, l’émetteur reste
alors bloqué le temps que dure l’invocation de l’opération.
 On peut associer aux messages d'appel de méthode un message de retour (en
pointillés) marquant la reprise du contrôle par l'objet émetteur du message
synchrone.

Si un objet A invoque une méthode d'un objet B, A reste bloqué tant que B
n'a pas terminé.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 6

3
Diagramme de séquences
Types de Message

Objets
 Message Synchrone

Objet1 : Classe1 Objet2 : Classe2

Message
synchrone

Message de Période d’activation et de


réponse désactivation Ligne de vie

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 7

Diagramme de séquences
Types de Message
 Message Asynchrone

 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 sera traité par le destinataire.

 Un signal est, par définition, un message asynchrone.

Objet1 : Classe1 Objet2 : Classe2

Message
Asynchrone

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 8

4
Diagramme de séquences
Types de Message
 Messages de création et destruction d’instance
 La création d’un objet est matérialisée par une flèche qui pointe sur
le sommet d’une ligne de vie.
 La destruction d’un objet est matérialisée par une croix qui marque
la fin de la ligne de vie de l’objet. La destruction d’un objet n’est
pas nécessairement consécutive à la réception d’un message.

Objet1 : Classe1
« create » Objet2 : Classe2

« destroy »

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 9

Diagramme de séquences
Syntaxe des Messages

 Dans la plupart des cas, la réception d’un message est suivie de l’exécution d’une
méthode d’une classe.

[ '['<cond>']' [ *[||] ['['<iter>' ]' ] ] :] [<var> :=] <msg>([<par>])

 <cond> est une condition sous forme d’expression booléenne entre crochets.
 <iter> spécifie l’envoi séquentiel (ou en parallèle, avec ||) de plusieurs message.
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.
 <var> est la valeur de retour du message, qui sera par exemple transmise en
paramètre à un autre message.
 <msg> est le nom du message.
 <par> désigne les paramètres (optionnels) du message.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 10

5
Diagramme de séquences
Messages de retour

 La syntaxe de réponse à un message est la suivante :


[<attribut> = ] message [ : <valeur_de_retour>]
où message représente le message d’envoi.

: Médiathèque

Client
Chercher("Tintin")

nbLivre = Chercher("Tintin"): 42

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 11

Diagrammes de séquences

Messages de retour

 Retour d’un appel de procédure : le retour de procédure est implicite à la fin d’une
activation. Néanmoins, en cas d’envoie de messages asynchrones, il s’avère utile
pour montrer la fin de l’exécution d’une sous procédure et le renvoi éventuel de
paramètres (représenté par une flèche pointillée).
A B o:C o’ : C’

Val := calcul( )
retour
explicite

 Retour des messages


 Il est possible de représenter
un ou plusieurs paramètres
de retour.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 12

6
Diagramme de séquences
Fragments d’interaction combinés

 Un fragment combiné représente des articulations d’interactions. Il est


défini par un opérateur et des opérandes.

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

 Il existe 12 opérateurs définis dans la notation UML 2.0.

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


séquence de manière compacte.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 13

Diagramme de séquences
Fragments d’interaction combinés
 Un fragment combiné se représente par un rectangle dont le coin supérieur gauche
contient un pentagone. Dans le pentagone figure le type de la combinaison (appelé
opérateur d'interaction ).
: Classe1 : Classe2 : CLasse3

Acteur

Opérateur

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 14

7
Diagramme de séquences
Fragments d’interaction combinés

 La liste suivante regroupe les opérateurs d’interaction par fonctions :

 Les opérateurs de 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.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 15

Diagramme de séquences

Fragments d’interaction combinés : Opérateur «alternative ou alt »

 L'opérateur "alt" désigne un choix, une alternative.

 Il représente deux comportements possibles : c'est en quelque sorte l'équivalent


du SI...ALORS...SINON : donc, une seule des deux branches sera réalisée
dans un scénario donné.

 La condition d'exécution d'une des deux branches (l'équivalent du SI) peut être
explicite ou implicite.

 L'utilisation de l'opérateur else permet d'indiquer que la branche est exécutée


si la condition du alt est fausse.

[Developpez.com]

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 16

8
Diagramme de séquences
Fragments d’interaction combinés : Opérateur «alternative ou alt »

• soit l'utilisateur rentre un code correct et dans


ce cas le diagramme de séquence relatif à la
vérification du code est appelé,

• soit l'utilisateur rentre un code erroné, trois


fois, et sa carte est gardée (le distributeur se
ré-initialise et demande à nouveau une carte).

[Developpez.com]
Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 17

Diagramme de séquences

Fragments d’interaction combinés : Opérateur «break »

 L'opérateur "break" est utilisé dans les fragments combinés qui


représentent des scenarii d‘option en quelque sorte.

 Les interactions de ce fragment seront exécutées à la place des


interactions décrites en dessous. Il y a donc une notion
d'interruption du flot "normal" des interactions.

[Developpez.com]

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 18

9
Diagramme de séquences
Fragments d’interaction combinés : Opérateur «break »

• L'utilisateur, lorsque le
distributeur lui demande son
code, peut choisir de rentrer
son code ou de consulter l'aide.
Si il choisit de consulter l'aide,
le flot d'interaction relatif à la
saisie du code est interrompu.
Les interactions de l'opérateur
break sont "exécutées".

[Developpez.com]

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 19

Diagramme de séquences

Fragments d’interaction combinés : Opérateur «loop»

 L'opérateur "Loop" est utilisé pour décrire un ensemble d'interaction


qui s'exécutent 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.

[Developpez.com]

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 20

10
Diagramme de séquences
Fragments d’interaction combinés : Opérateur «loop»

• Le diagramme de séquence indique que l'utilisateur a le droit de


se tromper trois fois en tapant son code. [Developpez.com]

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 21

Diagramme de séquences

Fragments d’interaction combinés : Opérateur «référence ou ref»

 Une référence peut être vue comme un pointeur ou un raccourci vers


un autre diagramme de séquences existant.

 …Cela permet de factoriser des parties de comportement utilisées


dans plusieurs scénarii…

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 22

11
Diagramme de séquences

Fragments d’interaction combinés : Opérateur «référence ou ref»

: Panier

Client
Passer Commande ()

Ref
S’authentifier

Ref
payer

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 23

Diagramme de séquences

Fragments d’interaction combinés : Opérateur «référence ou ref»

: Panier

Client Client
Passer Commande ()

Ref PasserCommande
S’authentifier
« include » « include »

Ref
payer S’authentifier Payer

• Les inclusions et les extensions sont des cas typiques d’utilisation des opérateur de
référence.
Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 24

12
Diagramme de séquences

Remarque : Combiner les opérateurs

 Les fragments combinés et leurs opérateurs peuvent être


combinés/mixés en vue de décrire des comportements complexes.

 Exemple :
Le diagramme de séquences suivant indique que 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.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 25

Diagrammes de séquences

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 26

13
Diagrammes de séquences Interface / Système

• Correspond à la documentation des  Étude de cas : GAB


cas d’utilisation,  Retrait-distributeur

• Description de l’interaction dans u : Utilisateur d : Distributeur


des termes proches de l’utilisateur
sans entrer dans les détails de
insérer carte
synchronisation,
 L’indication portée sur les demander code
flèches correspond à des événements
…ils ne traduisent pas encore des Entrer code « 5674 »
envois de messages !
accès au compte
et contrôle du code
demander montant

entrer montant 500

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 27

Diagrammes de séquences détaillé


• Permet une représentation précise des interactions entre objets.

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 28

14
Diagramme de séquences : Expression des besoins
Nouvelle-inscription
La secrétaire enregistre les caractéristiques d'un congressiste,
Le numéro d'inscription est généré par le système informatique,
La secrétaire lui associe ses activités scientifiques et culturelles.
Nouvelle-activité-scientifique

Une-Secrétaire Un-Congrès

Nouvelle-activité-culturelle 1:informations congressiste


2 :créer Congressiste

Organisateur 3 : numéro d’inscription


Affiche-une-activité
4 : liste act scientifique

boucle d’inscription 5* : choix act scientifique 6 :affecter


Affiche-un-congressiste aux act. scientifiques act scientifique
Secrétaire
au congressiste
7 : demande liste act culturelle

8 : liste act culturelle


Nouvelle-inscription
boucle d’inscription 9* : choix act culturelle 10 :affecter
aux act. culturelles act culturelle
au congressiste
Nouvel-accompagnant

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 29

Diagramme de séquences : Conception

: S ec r é ta ir e c : C o ng r és
a c ts : A c t-S c ie n tifiq u e a c tc : A c t-C u ltu r e lle
1 : n ou ve lle - insc r ip tio n ()
2 : c re er -fo r m ()
3 : sa isir-in fo -c o n g
(n ,p ,a ,d ) 4 : nu m := g e n e rer- nu m - insc r ip tio n ()

5 : c o ng := c r e er
(n,p ,a ,d ,nu m ) c o ng : C o ng r e ssiste
6 : lie r- c o ng (c o ng ,nu m )
7 : a ffic h e r-n u m -c o n g (n u m )

8 :{ n om } := n om -d e s-a c t-sc ie nt?


9 : a ffic h e r-a c t-s c ie n t ({n o m })

1 0 1 .. * : ch o ix -n o m -a c t-s c ie n t 1 1 : a c ts := u n e -a c t-sc ie n t?
(n o m ) (n o m )
b o u c le d ’in s c r ip tio n 1 2 : ra jo u t- c o ng res s iste
a u x a c t. s c ie n tifiq u e s
(c o ng ) 1 3 : lie r- c o ng
1 6 : d em a n d e-l-a c t- cu lt (c o ng )
1 4 : ra jo u t- a c t -sc ie nt
1 7 :{ n om } := n om -d e s-a c t-c u lt?
1 8 : a ffic h e r-a c t- c u lt ({n o m }) (a c ts )
1 5 : lie r- ac t-sc ie nt
1 9 * : ch o ix -n o m -a c t- cu lt (a c ts)
(n o m ) 2 0 : a c tc := u n e -a ct- c u lt?
b o u c le d ’in s c r ip tio n (n o m )
2 1 : ra jo u t- c o ng re ss iste 2 2 : [ nb p oss ib le > nb p a rtic ip a n ts ]
a u x a c t. c u ltu r e lle s
(c o ng ) lie r-c o ng ( c o ng )

2 3 : ra jo u t- a c t -c u lt
(a c tc )
2 4 : lie r- ac t-c u lt
 Nouvelle-inscription (a c tc )
Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 30

15
Diagramme de séquences : Exemple 2
Création d’un sondage (1)
Utilisateur Interface création de sondage Sondage Controller C: Catégorie T: Type Sondage
créer_sondage()
{C,T} := récupérer_information() {C} := récupérer_information()

{T} := récupérer_information()
générer_fomulaire()
afficher_formulaire()
remplir_champs(nomSondage…)

remplir_champs(contenuQuestion…)

loop loop tant que l’utilisateur demande l’ajout de réponse


ajouter_réponse()

remplir_champs(contenuReponse…) générer_champs_réponse()

loop loop tant que l’utilisateur demande l’ajout de question


ajouter_question()
remplir_champs(contenuQuestion…) générer_champs_question()

loop loop tant que l’utilisateur demande l’ajout de réponses


ajouter_réponse()

remplir_champs(contenuReponse…) générer_champs_réponse()

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 31

Diagramme de séquences : Exemple 2


Création d’un sondage(2)
Utilisateur Interface création de sondage Sondage Controller
valider création sondage

A:=vérifierChampsObligatoires(nomSondage…)

[A] verifierValiditéChamps(dateEcheance)

B:= verifierValiditéChamps(dateEcheance)

loop
loop jusqu’à la fin de création des questions

loop loop jusqu’à la fin de création des réponses

[B]R:=créer_réponse(contenuRéponse…)R : Réponse

Q:=créer_question(contenuQuestion, { R }Q…)
: Question

S : Sondage
S :=créer_sondage( { Q } …)
envoyer des notifications
afficher sondage créé fermer_formulaire()

Mhamed Saidane 1ère Ing - A.U. 2022 - 2023 32

16

Vous aimerez peut-être aussi