DIAGRAMMES D’INTERACTION:
SÉQUENCES

	

COMMUNICATION

Mme Sfaxi Lilia	
Mlle Zoubeir Najet	
L2ARS/SIL – 2011/2012

MCOO–Chapitre

4
Diagrammes d’interaction
§  Diagrammes dynamiques
§  Aspect commun : les messages : sorte de
communication entre deux entités (objet,
acteur, sous-système)
§  Différents diagrammes :
ü Diagramme de Séquences
ü Diagramme de Communication
ü Diagramme global d’Interaction
ü Diagramme de Temps
2
Diagramme de Séquences
§  Le diagramme d’interaction le plus commun
§  Représentation temporelle de l’échange des
messages entre les objets: séquencement des
messages
§  Représentation d’un seul scénario (avec la
possibilité de combiner plusieurs)
§  Écoulement du temps du haut vers le bas

21/11/11

Méthodologie de
Conception Orientée Objet

3
Diagramme de Séquences :
Contenu
§  Lignes de vie
ü Rectangle + ligne pointillée
ü Etiquette [objet]:[classe]

§  Messages
ü Communication entre les
lignes de vie
ü Peuvent être :
•  Envoi de signal
•  Invocation d'une opération
•  Création ou destruction
d'une instance

21/11/11

Méthodologie de
Conception Orientée Objet

4
Diagramme de Séquences :
Messages (1)
§  Message Asynchrone

ü  N'attend pas de réponse
ü  Ne bloque pas l'émetteur
ü  Exemple : signal (interruption,
évènement)
ü  Représentation : Flèche en
traits pleins et à l'extrémité
ouverte

§  Message Synchrone

ü  Emetteur bloqué jusqu'à la
réponse du récepteur
ü  Exemple : invocation d'une
opération
ü  Représentation : Flèche en
traits plains à l'extrémité pleine;
suivie d'une flèche en pointillés

21/11/11

Méthodologie de
Conception Orientée Objet

5
Diagramme de Séquences :
Messages (2)
§  Création d'instance
ü  Création d'un objet qui
n'existait pas
ü  Représentation : flèche qui
pointe sur le sommet d'une
ligne de vie

§  Destruction d'instance
ü  Destruction d'un objet qui
n'existera plus
ü  N'est pas toujours provoquée
par un message
ü  Représentation : une croix
qui marque la fin de la ligne de
vie de l'objet détruit
21/11/11

Méthodologie de
Conception Orientée Objet

6
Diagramme de Séquences :
Objets Actif et Passifs
§  Objet actif

ü Initie et contrôle le flux
d'activités
ü Représentation : un
rectangle à la place de la
ligne de vie verticale

§  Objet passif

ü A besoin d'un flux
d'activités pour pouvoir
exécuter une méthode
ü À l'exécution d'une
méthode, un rectangle
blanc est placé sur la ligne
de vie en pointillés

21/11/11

Méthodologie de
Conception Orientée Objet

7
Exemple d'un Diagramme de Séquences

21/11/11

Méthodologie de
Conception Orientée Objet

8
Exercice D'application
Le déroulement normal d’utilisation d’une caisse de supermarché est le suivant :
§  un client arrive à la caisse avec ses articles à payer
§  le caissier enregistre le numéro d’identification de chaque article, ainsi que la quantité si elle est
supérieure à 1
§  la caisse affiche le prix de chaque article et son libellé
§  lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente
§  la caisse affiche le total des achats
§  le caissier annonce au client le montant total à payer
§  le client choisit son mode de paiement
ü  liquide : le caissier encaisse l’argent, la caisse indique le montant à rendre au client
ü  chèque : le caissier note le numéro de pièce d’identité du client
ü  carte de crédit : la demande d’autorisation est envoyée avant la saisie

§  la caisse enregistre la vente et l’imprime
§  le caissier donne le ticket de caisse au client
Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en compte que le cas du paiement en
liquide.
21/11/11

Méthodologie de
Conception Orientée Objet

9
21/11/11

Méthodologie de
Conception Orientée Objet

8

10
Structures de Contrôle
Structures de contrôle

§  Structure de contrôle
• Structure de contrôle

ü mess1 envoyé ssi la condition
– mess1 envoyé ssi la
condition[entre crochets] est
de garde de garde [entre
crochets] est respectée
respectée

S : Sender

Contrôle

• Branche
§  Branche

– On envoie soitmess2 soit
ü On envoie soitles conditions
mess2 soit
mess3, selon

mess3, selon les
conditions

R : Receiver

[cond] mess1( )

[cond1] mess2( )
Branche

[cond2] mess3( )

• Itération

§ 

– Le mess4 est envoyé tant que
la condition est vraie
Itération

*[cond] mess1( )

ü Le mess4 est envoyé tant
que la condition est vraie

Iteration
9

21/11/11

Méthodologie de
Conception Orientée Objet

11
Opérateur
Opérateur « Alternative »
« Alternative »
§  Alternative (ou(ou alt)
• Alternative alt)
Opérateur conditionnel
– ü Opérateur conditionnel

• Equivalent d'une exécution à choix
•  Équivalent
multiples (switch) d’une exécution

D : DAB

Ali : Client

à choix plusieurs
– Peut possédermultiples (switch)
opérandes, chacune détient
ü Peut posséder plusieursune
condition de garde

opérandes, chacune garde :
– Absence de condition de détient
condition vraie
une condition de garde
– Condition else : vraie si aucune
ü Absence de n'est vraie de
autre condition condition
garde: condition vraie
ü Condition else: vraie si
aucune autre condition
n’est vraie
21/11/11

insérerCarte( )
carte détectée
demanderCode( )
code entré

alt

Méthodologie de
Conception Orientée Objet

[code correct]

entrerMontant(m)
montant entré
donnerBillets(b)
[else]

rendreCarte( )

10

12
Opérateur «Option»
Opérateur « Option »
§  Option (ou opt)

• Option (ou opt)

ü Représente un
– Représente un
comportement qui peut
comportement qui peut
se produire ou pas.
se produire ou pas.
ü Équivalent un alt à
– Équivalent ààun alt à une
seule branche et sans
une seule branche etelse
sans else

S: SiteWeb

Ali : Internaute
ouvrirPageAccueil( )
page ouverte
s'authentifier(login,mdp )
authentifié

opt

[besoin d'aide]

appuyerSurF1()
aide affichée

11

21/11/11

Méthodologie de
Conception Orientée Objet

13
Opérateur « Loop »
Opérateur « Loop »

§  Loop

• Loop
ü Équivalent d’une boucle
– Equivalent d'une
for
boucle for
ü Décrit des interactions
– Décrit des interactions
qui s'exécutent en boucle
qui s'exécutent en
boucle
ü La condition (garde)
–indique le nombre de
La condition (garde)
indique le nombre de
répétitions (min et max)
répétitions (min et
ou une ou une condition
max) condition
booleenne à respecter
booléenne à respecter

D : DAB

Ali : Client
insérerCarte( )
carte détectée
demanderCode( )
code entré

alt

[code correct]

Traitement si code correct

[else]

loop [3]

demanderCode( )
code entré
demanderCarte( )
12

21/11/11

Méthodologie de
Conception Orientée Objet

14
Opérateur « Parallèle »
Opérateur « Parallèle »

§  Parallèle (ou par)
ü A au moins 2 sous• Parallèle (ou par)
fragments exécutés
–simultanément sous
A au moins 2
fragments exécutés
ü Simule une exécution
simultanément
–parallèle une exécution
Simule

M:
MicroOndes

Amin : Personne
réchaufferPlat( )

opt

chauffer()

parallèle

tourner()

Plat réchauffé
13

21/11/11

Méthodologie de
Conception Orientée Objet

15
Diagramme de
Communication
§  Appelé diagramme de collaboration avant
UML2
§  Montre les interactions entre objets
§  Insiste sur la structure spatiale pour mettre en
collaboration un groupe d'objets
ü Messages : liens reliant les objets
ü Temps : représenté implicitement par une
numérotation des messages
21/11/11

Méthodologie de
Conception Orientée Objet

16
Exemple de Diagramme de
Exemple de Diagramme de
Communication
Collaboration

V1 : Voiture

M1 : Moteur

Ali : Conducteur
démarrer( )

Ali : Conducteur
allumer( )

4:démarrée

1:démarrer()
5:conduire()

allumé
2:allumer()

démarrée
V1 : Voiture

conduire( )

M1 : Moteur

3:allumé

15

21/11/11

Méthodologie de
Conception Orientée Objet

17
Application 1 : Ascenseur
• D'après le diagramme de classe donné :

Application: Ascenseur

– Rédiger le diagramme de séquences pour modélis
un scénario où un usager: veut monter en utilisant
§  D'après le diagramme de classes
ü  Rédiger
séquences
l'ascenseur le diagramme del'ascenseur pour modéliser un scénario où un usager
veut monter en utilisant
ü  En déduire
– En déduire le le diagramme de communication collaboration
diagramme de

21/11/11

Méthodologie de
Conception Orientée Objet

17

18
• A partir du diagramme de classes suivant :
pour
– Rédiger un diagramme de séquences: Montre scénario
Application sur samodéliser un
utilisateur voudrait régler les minutes
montre

• En appuyant 2 fois sur le bouton 1, il accède au réglage des minutes (l'heu
§  A partir du diagramme de classes suivant :
puis la minute clignote). Ensuite, avec le bouton 2, il incrémente les minute
ü  Rédiger un diagramme de séquences pour
valeur, le LCD display est rafraîchi aprèsmodéliser:un pression. En appuyant su
chaque scénario où un
utilisateur voudrait régler les minutes sur sa montre
boutons à la fois, appuyant 2 fois sur enregistrée et l'affichage s'arrête de clignoter
l'heure est le bouton 1, il accède au réglage des minutes (l'heure clignote
•  En

puis la minute clignote). collaborationil incrémente les minutes
bouton 2,
– En déduire le diagramme deEnsuite, avec le chaque pression. En appuyant sur lesd'une
valeur, le LCD display est rafraîchi après
deux
boutons à la fois, l'heure est enregistrée et l'affichage s'arrête de clignoter

ü  En déduire le diagramme de communication

21/11/11

Méthodologie de
Conception Orientée Objet

19

18

Chp4 - Diagramme de Séquence

  • 1.
    DIAGRAMMES D’INTERACTION: SÉQUENCES COMMUNICATION Mme SfaxiLilia Mlle Zoubeir Najet L2ARS/SIL – 2011/2012 MCOO–Chapitre 4
  • 2.
    Diagrammes d’interaction §  Diagrammesdynamiques §  Aspect commun : les messages : sorte de communication entre deux entités (objet, acteur, sous-système) §  Différents diagrammes : ü Diagramme de Séquences ü Diagramme de Communication ü Diagramme global d’Interaction ü Diagramme de Temps 2
  • 3.
    Diagramme de Séquences § Le diagramme d’interaction le plus commun §  Représentation temporelle de l’échange des messages entre les objets: séquencement des messages §  Représentation d’un seul scénario (avec la possibilité de combiner plusieurs) §  Écoulement du temps du haut vers le bas 21/11/11 Méthodologie de Conception Orientée Objet 3
  • 4.
    Diagramme de Séquences: Contenu §  Lignes de vie ü Rectangle + ligne pointillée ü Etiquette [objet]:[classe] §  Messages ü Communication entre les lignes de vie ü Peuvent être : •  Envoi de signal •  Invocation d'une opération •  Création ou destruction d'une instance 21/11/11 Méthodologie de Conception Orientée Objet 4
  • 5.
    Diagramme de Séquences: Messages (1) §  Message Asynchrone ü  N'attend pas de réponse ü  Ne bloque pas l'émetteur ü  Exemple : signal (interruption, évènement) ü  Représentation : Flèche en traits pleins et à l'extrémité ouverte §  Message Synchrone ü  Emetteur bloqué jusqu'à la réponse du récepteur ü  Exemple : invocation d'une opération ü  Représentation : Flèche en traits plains à l'extrémité pleine; suivie d'une flèche en pointillés 21/11/11 Méthodologie de Conception Orientée Objet 5
  • 6.
    Diagramme de Séquences: Messages (2) §  Création d'instance ü  Création d'un objet qui n'existait pas ü  Représentation : flèche qui pointe sur le sommet d'une ligne de vie §  Destruction d'instance ü  Destruction d'un objet qui n'existera plus ü  N'est pas toujours provoquée par un message ü  Représentation : une croix qui marque la fin de la ligne de vie de l'objet détruit 21/11/11 Méthodologie de Conception Orientée Objet 6
  • 7.
    Diagramme de Séquences: Objets Actif et Passifs §  Objet actif ü Initie et contrôle le flux d'activités ü Représentation : un rectangle à la place de la ligne de vie verticale §  Objet passif ü A besoin d'un flux d'activités pour pouvoir exécuter une méthode ü À l'exécution d'une méthode, un rectangle blanc est placé sur la ligne de vie en pointillés 21/11/11 Méthodologie de Conception Orientée Objet 7
  • 8.
    Exemple d'un Diagrammede Séquences 21/11/11 Méthodologie de Conception Orientée Objet 8
  • 9.
    Exercice D'application Le déroulementnormal d’utilisation d’une caisse de supermarché est le suivant : §  un client arrive à la caisse avec ses articles à payer §  le caissier enregistre le numéro d’identification de chaque article, ainsi que la quantité si elle est supérieure à 1 §  la caisse affiche le prix de chaque article et son libellé §  lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente §  la caisse affiche le total des achats §  le caissier annonce au client le montant total à payer §  le client choisit son mode de paiement ü  liquide : le caissier encaisse l’argent, la caisse indique le montant à rendre au client ü  chèque : le caissier note le numéro de pièce d’identité du client ü  carte de crédit : la demande d’autorisation est envoyée avant la saisie §  la caisse enregistre la vente et l’imprime §  le caissier donne le ticket de caisse au client Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en compte que le cas du paiement en liquide. 21/11/11 Méthodologie de Conception Orientée Objet 9
  • 10.
  • 11.
    Structures de Contrôle Structuresde contrôle §  Structure de contrôle • Structure de contrôle ü mess1 envoyé ssi la condition – mess1 envoyé ssi la condition[entre crochets] est de garde de garde [entre crochets] est respectée respectée S : Sender Contrôle • Branche §  Branche – On envoie soitmess2 soit ü On envoie soitles conditions mess2 soit mess3, selon mess3, selon les conditions R : Receiver [cond] mess1( ) [cond1] mess2( ) Branche [cond2] mess3( ) • Itération §  – Le mess4 est envoyé tant que la condition est vraie Itération *[cond] mess1( ) ü Le mess4 est envoyé tant que la condition est vraie Iteration 9 21/11/11 Méthodologie de Conception Orientée Objet 11
  • 12.
    Opérateur Opérateur « Alternative» « Alternative » §  Alternative (ou(ou alt) • Alternative alt) Opérateur conditionnel – ü Opérateur conditionnel • Equivalent d'une exécution à choix •  Équivalent multiples (switch) d’une exécution D : DAB Ali : Client à choix plusieurs – Peut possédermultiples (switch) opérandes, chacune détient ü Peut posséder plusieursune condition de garde opérandes, chacune garde : – Absence de condition de détient condition vraie une condition de garde – Condition else : vraie si aucune ü Absence de n'est vraie de autre condition condition garde: condition vraie ü Condition else: vraie si aucune autre condition n’est vraie 21/11/11 insérerCarte( ) carte détectée demanderCode( ) code entré alt Méthodologie de Conception Orientée Objet [code correct] entrerMontant(m) montant entré donnerBillets(b) [else] rendreCarte( ) 10 12
  • 13.
    Opérateur «Option» Opérateur «Option » §  Option (ou opt) • Option (ou opt) ü Représente un – Représente un comportement qui peut comportement qui peut se produire ou pas. se produire ou pas. ü Équivalent un alt à – Équivalent ààun alt à une seule branche et sans une seule branche etelse sans else S: SiteWeb Ali : Internaute ouvrirPageAccueil( ) page ouverte s'authentifier(login,mdp ) authentifié opt [besoin d'aide] appuyerSurF1() aide affichée 11 21/11/11 Méthodologie de Conception Orientée Objet 13
  • 14.
    Opérateur « Loop» Opérateur « Loop » §  Loop • Loop ü Équivalent d’une boucle – Equivalent d'une for boucle for ü Décrit des interactions – Décrit des interactions qui s'exécutent en boucle qui s'exécutent en boucle ü La condition (garde) –indique le nombre de La condition (garde) indique le nombre de répétitions (min et max) répétitions (min et ou une ou une condition max) condition booleenne à respecter booléenne à respecter D : DAB Ali : Client insérerCarte( ) carte détectée demanderCode( ) code entré alt [code correct] Traitement si code correct [else] loop [3] demanderCode( ) code entré demanderCarte( ) 12 21/11/11 Méthodologie de Conception Orientée Objet 14
  • 15.
    Opérateur « Parallèle» Opérateur « Parallèle » §  Parallèle (ou par) ü A au moins 2 sous• Parallèle (ou par) fragments exécutés –simultanément sous A au moins 2 fragments exécutés ü Simule une exécution simultanément –parallèle une exécution Simule M: MicroOndes Amin : Personne réchaufferPlat( ) opt chauffer() parallèle tourner() Plat réchauffé 13 21/11/11 Méthodologie de Conception Orientée Objet 15
  • 16.
    Diagramme de Communication §  Appelédiagramme de collaboration avant UML2 §  Montre les interactions entre objets §  Insiste sur la structure spatiale pour mettre en collaboration un groupe d'objets ü Messages : liens reliant les objets ü Temps : représenté implicitement par une numérotation des messages 21/11/11 Méthodologie de Conception Orientée Objet 16
  • 17.
    Exemple de Diagrammede Exemple de Diagramme de Communication Collaboration V1 : Voiture M1 : Moteur Ali : Conducteur démarrer( ) Ali : Conducteur allumer( ) 4:démarrée 1:démarrer() 5:conduire() allumé 2:allumer() démarrée V1 : Voiture conduire( ) M1 : Moteur 3:allumé 15 21/11/11 Méthodologie de Conception Orientée Objet 17
  • 18.
    Application 1 :Ascenseur • D'après le diagramme de classe donné : Application: Ascenseur – Rédiger le diagramme de séquences pour modélis un scénario où un usager: veut monter en utilisant §  D'après le diagramme de classes ü  Rédiger séquences l'ascenseur le diagramme del'ascenseur pour modéliser un scénario où un usager veut monter en utilisant ü  En déduire – En déduire le le diagramme de communication collaboration diagramme de 21/11/11 Méthodologie de Conception Orientée Objet 17 18
  • 19.
    • A partirdu diagramme de classes suivant : pour – Rédiger un diagramme de séquences: Montre scénario Application sur samodéliser un utilisateur voudrait régler les minutes montre • En appuyant 2 fois sur le bouton 1, il accède au réglage des minutes (l'heu §  A partir du diagramme de classes suivant : puis la minute clignote). Ensuite, avec le bouton 2, il incrémente les minute ü  Rédiger un diagramme de séquences pour valeur, le LCD display est rafraîchi aprèsmodéliser:un pression. En appuyant su chaque scénario où un utilisateur voudrait régler les minutes sur sa montre boutons à la fois, appuyant 2 fois sur enregistrée et l'affichage s'arrête de clignoter l'heure est le bouton 1, il accède au réglage des minutes (l'heure clignote •  En puis la minute clignote). collaborationil incrémente les minutes bouton 2, – En déduire le diagramme deEnsuite, avec le chaque pression. En appuyant sur lesd'une valeur, le LCD display est rafraîchi après deux boutons à la fois, l'heure est enregistrée et l'affichage s'arrête de clignoter ü  En déduire le diagramme de communication 21/11/11 Méthodologie de Conception Orientée Objet 19 18