1. Université Hassan II de Casablanca
ENSET de Mohammedia
Département Mathématiques et Informatique
COURS
INGENIERIE SYSTEMES
3ème Partie :
Diagramme de séquences
Professeur :
M. Khalifa MANSOURI
2. 2
Diagramme
dynamique
Diagramme
Statique
Diagramme de
séquence
Diagramme de
Communication
Diagramme
Etats Transitions
Diagramme
d’activité
Diagramme
d’objets
Diagramme
de classes
Diagramme
de structure
composite
Diagramme
de composants
Diagramme
de profil
Comportemental
Structurel
Diagramme
de package
Diagramme
de déploiement
Diagramme de
Cas d’utilisation
Diagramme
d’interaction
vue d’ensemble
Diagramme
d’interaction
Diagramme de
temps
UML et le processus de développement
Les diagrammes
3. 09/10/2017
3
Classes, Objets
Collaboration, Séquences
Vision Logique
Utilisateurs finaux
Fonctionnalités
Composants
Vision Implémentation
Développeurs
Gestion du logiciel
Déploiement
Vision Déploiement
Ingénieurs système
Architecture du système
Installation
Communication
Etats-Transition-Activité
Vision Prcessus
Ingénieurs système
Performance
Changements d’échelles???
Cas d’utilisation
Vision Cas
d’utilisation
Les vues
UML et le processus de développement
4. Plan du cours
1. Définition
2. Forme générale
3. Les éléments d’un diagramme de séquence
4. Les fragments d’interactions combinés
5. Exercices d’application
4
Modélisation orientée objets avec UML
Diagramme de séquences
5. 5
Diagrammes de séquences : Définition
• Le diagramme de séquence est parmi les vues
dynamiques importantes de UML.
• Il présente les messages échangés entre les objets
(lignes de vie), présentés dans un ordre chronologique.
• Il décrit, en fonction du temps, une interaction pour
l’obtention d’un résultat observable
• Ainsi, contrairement au diagramme de collaboration, le
temps y est représenté explicitement par une dimension (la
dimension verticale) et s’écoule de haut en bas.
• L’interaction est assurée par l’échange des messages entre les
objets
• L’échange de messages se fait selon une chronologie bien
déterminée
6. 6
Diagrammes de séquences : Qu’est ce qu’il décrit ?
Diagramme de cas
d’utilisation
Diagramme de
classes
ObjetsCas
d’utilisation
Résultat attendu par le
système
Objet en interaction
avec les autres objets
7. 7
Diagrammes de séquences : Définition
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
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.
obj1:Classe1 obj2:Classe2
Message
8. 8
Diagrammes de séquences : Définition
Message_1
Message_2
Objet_1 Objet_2 Objet_3
Ligne de vie de
l'objet
9. 9
Forme générale d’un diagramme de séquence
Progressiondutemps
Nom diagramme
séquence
Image de http://www.uml-diagrams.org
10. 1
Diagrammes de séquences : Définition
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
L’ordonnancement verticale des messages indique la
chronologie
Un message reçu par un objet déclenche l’exécution
d’une opération
Un message envoyé par objet correspond :
Demander un service d’un autre objet
Renvoyer le résultat d’une opération
11. 1
Diagrammes de séquences : Exemple
Compte
-
-
N°Compte
Solde
: String
: float
+
+
+
+
<<Constructor>> Compte (int n, float s)
déposer (float somme)
retirer (float somme)
consulter ()
: void
: float
: float
déposer(somme)
solde actuel
solde+=somme
Client Compte
Le client demande un service (déposer de l’argent) à l’objet Compte
Le compte reçoit le message et déclenche l’opération de même nom
Le compte retourne le résultat (le solde actuel)
12. 1
Diagrammes de séquences : Définition
Plusieurs concepts additionnels :
Période d’activité
Types de messages
Création et destruction d’objets
Structures de contrôles
La période d’activité Correspond
au temps pendant lequel un objet
fait une action
Elle est représentée par une
bande rectangulaire superposée à la
ligne de vie de l’objet
Message_1
Objet_1Objet_2
13. 1
Les éléments d’un diagramme de séquence
[instance]: nomClasse
Spécification de
l’exécution
Progressiondutemps
14. 1
Les éléments d’un diagramme de séquence
obj1: NomClasse
: NomClasse
Ligne de vie de l’objet obj1Ligne de vie d’un objet anonyme
15. 1
Les éléments d’un diagramme de séquence
cours: Cours
étudiant: Etudiant
Ligne de vie de l’objet coursLigne de vie de l’acteur étudiant
16. 1
Les éléments d’un diagramme de séquence
• Définit une communication entre deux lignes de vie d’une
interaction
• Pour un message, on spécifie l’émetteur et le récepteur
• Le message doit avoir un nom
• Traduit les interactions (échange d’informations) entre
objets
• Représenté par des flèches orientées de l’émetteur au
récepteur
• Plusieurs types :
Message simple
Message minuté (Timeout)
Message synchrone
Message asynchrone
Message récursif
17. 1
Les éléments d’un diagramme de séquence
• Graphiquement, le message est représenté par
une flèche accompagnée par un nom
Il existe plusieurs types de message
Nom message
Nom message
Nom message
Nom message
Nom message
Nom message
18. 1
Les éléments d’un diagramme de séquence
Message pour lequel on ne spécifie aucune information
d’envoi ou de réception
Message_1
Objet_1 Objet_2
19. 1
Les éléments d’un diagramme de séquence
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 envoyer
Message_1 (20 secondes)
Objet_1Objet_2
20. 2
Les éléments d’un diagramme de séquence
La porte d’un ascenseur s’ouvre pendant un certain délai
avant d’être refermée.
ouvrir (2 secondes)
fermer
Ascenseur Porte
21. 2
Les éléments d’un diagramme de séquence
Message asynchrone :
Une interruption ou un évènement sont de bons exemples de signaux. 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. Un signal est, par définition, un message
asynchrone.
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.
obj1:Classe1 obj2:Classe2
Message
Message_1
Objet_1Objet_2
N’interrompt pas l’exécution de l’expéditeur
L’expéditeur peut émettre sans attendre la
réponse du récepteur
22. 2
Les éléments d’un diagramme de séquence
Message asynchrone (Exemple) :
Envoyer SMS
P1 : Personne P2 : Personne
La personne p1 a envoyé un SMS et n’attend pas le résultat
23. 2
Les éléments d’un diagramme de séquence
Message synchrone (appel de procédure) :
L’invocation d’une opération est le type de message le plus utilisé en
programmation objet.
L’invocation peut être asynchrone ou synchrone. Dans la pratique, la
plupart des invocations sont synchrones, l’émetteur reste alors bloqué le
temps que dure l’invocation de l’opération.
Graphiquement, un message synchrone se représente par une flèche en
traits pleins et à l’extrémité pleine partant de la ligne de vie d’un objet
expéditeur et allant vers celle de l’objet cible. Ce message peut être suivi
d’une réponse qui se représente par une flèche en pointillé.
obj1:Classe1 obj2:Classe2
Message synchrone
Bloque l’expéditeur jusqu’à la prise en compte du message par le récepteur
Le contrôle est passé de l’émetteur au récepteur qui devient à son tour émetteur (actif)
Message_1
Objet_1Objet_2
24. 2
Les éléments d’un diagramme de séquence
Message synchrone (Exemple 1) :
Rechercher
Client : ClientWeb : MagasinEnligne
L’objet client a lancé la recherche et attend le résultat d’un objet
anonyme : MagasinEnLigne
25. 2
Les éléments d’un diagramme de séquence
Message synchrone (Exemples) :
Rechercher
Client : ClientWeb : MagasinEnligne
L’objet client a lancé la
recherche et attend le
résultat d’un objet
anonyme :
MagasinEnLigne
Sollitation
Acceptation
Requête
Réponse
Client Serveur
Communication client serveur : Sockets
26. 2
Les éléments d’un diagramme de séquence
Appelé aussi message réflexive
Message envoyé d’un objet vers lui-même.
Message_1
Objet_1
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
Introduire carte
Vérification validité
Demande code accès
Client GAB
27. 2
Les éléments d’un diagramme de séquence
Message Création et destruction des instances :
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.
Un message peut créer ou détruire un objet
28. 2
Les éléments d’un diagramme de séquence
Message Création et destruction des instances :
Message_1
Message_2
Objet_1
Objet_2
Objet_3
Création d’objet
Destruction d’objetObjet créé au cours de l’exécution du scénario
Objet détruit dans un scénario
29. 2
Les éléments d’un diagramme de séquence
Le message créer (Exemple) :
L’objet anonyme de
LibrarieEnLigne crée l’objet c
de la classe Compte à travers
le constructeur Compte()
: LibrairieEnLigne
c: Compte
Compte()
Le message détruire(Exemple) :
L’objet anonyme de
LibrarieEnLigne détruit
l’objet c de la classe Compte
: LibrairieEnLigne c: Compte
<< destroy>>
30. 3
Les éléments d’un diagramme de séquence
Événements et messages :
UML permet de séparer clairement l’envoi du message, sa
réception, ainsi que le début de l’exécution de la réaction et sa fin
:Client :GAB
Introduire carte
Evénement Envoi
Evénement Réception
Evénement Début
traitement
Evénement Fin
traitement
31. 3
Les éléments d’un diagramme de séquence
Message de réponse
c: Client :MagasinEnligne
L’objet c de Client lance la recherche et attend le résultat de la recherche de
l’objet anonyme :MagasinEnLigne
rechercher
résultat de la recherche
32. 3
Les éléments d’un diagramme de séquence
Syntaxe des messages et des réponses :
Dans la plupart des cas, la réception d’un message est suivie de l’exécution d’une méthode
d’une classe.
Cette méthode peut recevoir des arguments et la syntaxe des messages permet de
transmettre ces arguments.
La syntaxe de réponse à un message est la suivante :
• [<attribut> = ] message [ : <valeur_de_retour>] où message représente le message d’envoi.
L’exemple ci-dessus montre l’envoie d’un message destiné à l’exécution de la méthode
chercher avec un paramètre qui représente le livre à chercher. Après exécution de cette
méthode dans l’objet Mediathèque, elle retourne la valeur 5 représentant le nombre de livres
« XML ».
:Client :Médiathèque
Chercher("XML")
nbLivres=Chercher("XML") : 5
33. 3
Les éléments d’un diagramme de séquence
Message perdu et trouvé :
Un message complet est tel que les événements d’envoi et de
réception sont connus. Comme nous l’avons déjà vu, un message
complet se représente par une simple flèche dirigée de l’émetteur
vers le récepteur.
Un message perdu est tel que l’événement d’envoi est connu,
mais pas l’événement de réception. Il se représente par une flèche
qui pointe sur une petite boule noire.
Un message trouvé est tel que l’événement de réception est
connu, mais pas l’événement d’émission. Une flèche partant d’une
petite boule noire représente un message trouvé.
34. 3
Les éléments d’un diagramme de séquence
Message perdu :
L’objet c de Client lance la
recherche dont le message est
perdu
c: Client
rechercher
L’évènement d’envoi est connu, mais
pas d’évènement de réception
Message de source inconnue :
L’objet anonyme :MagasinEnLigne reçoit
une requête de recherche dont il connait
pas l’origine
:MagasinEnligne
rechercher
L’évènement de réception est
connu, mais l’évènement
d’envoi est inconnu:
opération que nous voulons
pas donner assez de détail
35. 3
Les éléments d’un diagramme de séquence
Exemple Message perdu et message de source inconnue :
36. 3
Les éléments d’un diagramme de séquence
Objet actif et objet passif :
Un objet actif initie et contrôle le flux d’activités. Graphiquement,
la ligne pointillée verticale d’un objet actif est remplacée par un
double trait vertical.
Un objet passif, au contraire, a besoin qu’on lui donne le flux
d’activité pour pouvoir exécuter une méthode. La spécification de
l’exécution d’une réaction sur un objet passif se représente par un
rectangle blanc ou gris placé sur la ligne de vie en pointillée. Le
rectangle peut éventuellement porter un label.
Représentation d’un objet actif (à gauche) et d’une exécution
sur un objet passif (à droite).
37. 3
Les éléments d’un diagramme de séquence
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é.
Les fragments combinés permettent de décrire des diagrammes de
séquence de manière compacte.
Les fragments combinés peuvent faire intervenir l’ensemble des
entités participant au scénario ou juste un sous-ensemble.
Un fragment combiné se représente de la même façon qu’une
interaction.
Il est représenté dans 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.
Les opérandes d’un opérateur d’interaction sont séparés par une
ligne pointillée.
Les conditions de choix des opérandes sont données par des
expressions booléennes entre crochets ([ ]).
38. 3
Les éléments d’un diagramme de séquence
Fragments d’interaction combinés:
Il existe 12 opérateurs définis dans la notation UML 2.0.
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.
Nous n’aborderons que quelques-unes de ces interactions dans la
suite de cette section.
39. 3
Les éléments d’un diagramme de séquence
Exemple d’interaction combinés :
Représentation d’un choix dans un diagramme de séquence
illustrant le découvrement d’une case au jeu du démineur.
40. 4
Les éléments d’un diagramme de séquence
1- Occurrence de destruction
: LibrairieEnLigne c: Compte
<< destroy>>
Début de l’occurrence de destruction
Fin de l’occurrence de destruction
l‘intérieur du rectangle est vide
Destruction
41. 4
Les éléments d’un diagramme de séquence
:MagasinEnligne
2- Occurrence d’exécution
Début de l’occurrence d’exécution
Fin de l’occurrence d’exécution
l‘intérieur du rectangle est gris
Exécution
42. 4
Les éléments d’un diagramme de séquence
:MagasinEnligne
Recherche
2- Occurrence d’exécution
43. 4
Les éléments d’un diagramme de séquence
:MagasinEnligne
2- Occurrence d’exécution
Deux exécutions qui se chevauchent
Exemple 2
Exemple 1
44. 4
Les éléments d’un diagramme de séquence
Le diagramme de séquences peut inclure un
certain nombre de structures :
• Branchements (tests)
• Répétitions (itérations, boucles)
45. 4
Les éléments d’un diagramme de séquence
La condition précéde le message et elle est
délimitée par des crochets
[condition]: Message
Objet_1 Objet_2 Objet_3
46. 4
Les éléments d’un diagramme de séquence
Pour accéder au centre de recherche, l’utilisateur
doit présenter son badge. S’il a droit d’accès, un
voyant vert est allumé et la porte s’ouvre
Présente son badge
[OK]voyant vert
Vérifier droit d'accès
ouvrir porte
Utilisteur Système
47. 4
Les éléments d’un diagramme de séquence
La boucle se note comme le test, mais la
condition est précédée d’un astérisque
[condition]: Message
Objet_1 Objet_2 Objet_3
*
48. 4
Les éléments d’un diagramme de séquence
demande de prix
consulte le catalogue
donne le prix de base
s'étonne
se plaint
propose un autre prix
récupère le produit
Client Vendeur Catalogue
50. 5
Fragments combinés
Le fragment est répété tant que une condition est vérifiée
Equivalente à
Tant que Condition faire Actions
Exemple :
:A :B
SD: exemple
LOOP [Condition]
Action()
:A :B
SD: exemple
LOOP (0,n)
Action()OU
51. 5
Fragments combinés
Deux fragments à parcourir selon la valeur de la condition
Equivalente à
Si condition alors actionA si non actionB
Exemple :