Vous êtes sur la page 1sur 29

Conception Orientée Objet

VI. Diagrammes de Séquence


Mohamed Amine CHAÄBANE
ISAA-Sfax
ma.chaabane@fsegs.rnu.tn

Rafik BOUAZIZ -- Faïez GARGOURI


FSEGS – Sfax ISIM – Sfax

R. BOUAZIZ -- F. GARGOURI 221


Introduction

❑ Les diagrammes de collaboration ont permis de :


✓ détailler les scénarii des diagrammes de CU ;
✓ préciser comment les objets et les acteurs doivent
collaborer ensembles pour réaliser les CU.
❑ Les diagrammes de séquence (DS) :
✓ Explicitent la dimension temporelle évoquée dans
les diagrammes de collaboration,
✓ se concentrent sur la séquence des messages
envoyés entre les objets (c.à.d. quand et comment
les messages sont envoyés et reçus par les objets
qui participent à une interaction)

R. BOUAZIZ -- F. GARGOURI 222


Définition

❑ Le diagramme de séquence :
✓ montre les interactions entre objets, comme le
diagramme de collaboration,
✓ se concentre sur la séquence des envois de
message selon un point de vue temporel
(les instants de départ et d’arrivée et la durée de
l’envoi),
✓ est plus apte à modéliser l'aspect dynamique d'un
scénario complexe mettant en œuvre peu d'objets.

❑ La plupart des éléments utilisés par les


diagrammes de collaboration sont aussi utilisés
par les diagrammes de séquence.
R. BOUAZIZ -- F. GARGOURI 223
Représentation générale

O1 :C1 O2 :C2

t1 Message-1
Message-2 Message-3
t2
t1<t2
Message-4

❑ Chaque objet est matérialisé par un rectangle et une


barre verticale appelée ligne de vie.
❑ L'ordonnancement horizontal des objets n'a pas de signification
particulière, mais vise à améliorer la présentation des interactions.
❑ L'objet qui débute l'interaction se place à gauche.
❑ La dimension verticale représente l'écoulement du temps.
Elle peut être graduée afin d'exprimer des contraintes temporelles.
❑ L'ordre d'envoi des messages est donné par la position de ces
messages sur les lignes de vie des objets.
R. BOUAZIZ -- F. GARGOURI 224
Activation et envoi de messages

❑ Les diagrammes de séquence permettent de représenter


les périodes d'activité des objets.
Un objet
❑ Une période d'activité
correspond au temps pendant
lequel un objet effectue une
action, soit directement, soit par
l'intermédiaire d'un autre objet.

❑ Exemple d'objet qui active un A B


autre : Message
✓ dans cet exemple :
La période d'activité de A
recouvre celle de B

R. BOUAZIZ -- F. GARGOURI 225


Activation et envoi de messages

❑ La syntaxe des messages échangés entre les objets


est la même que celle des diagrammes de collaboration.
❑ La numérotation des messages est optionnelle. Elle
est plutôt remplacée par l’ordre d’apparition des
messages (ligne verticale).

O1 O2 Hypothèse par défaut :


Message() Temps d'envoi de
t1
t2 > t1 Message() par O1
t2 =
Opération(Arg) Temps de réception
de Message() par O2
=
Temps t1

R. BOUAZIZ -- F. GARGOURI 226


Activation et envoi de messages

❑ Un message peut être réflexif : :COMPTE

VérifierSolde()

❑ Les types d'envois de messages :


◆ Flots de contrôle à plat.
◆ Appel d’opération (dit aussi de procédure) ou flot de
contrôle emboîté.
◆ Retour d’un appel de procédure.

◆ Flot de contrôle asynchrone : Envoi asynchrone, le


message est envoyé sans attendre la fin de
l’opération invoquée.
R. BOUAZIZ -- F. GARGOURI 227
Activation et envoi de messages

✓ Les flots de contrôle à plat :


◆ indiquent la progression vers la prochaine étape
d’une séquence.
◆ Les messages de cette catégorie sont asynchrones
signalés par une flèche simple.

R. BOUAZIZ -- F. GARGOURI 228


Activation et envoi de messages

❑ Exemple : Diagramme de séquence du CU


« Effectuer une commande »

:Librairie électronique
: Internaute : Service
Clients
Commander( )
Formulaire de commande

SaisirInfos( )
Récapitulatif commande

Valider( ) Commande validée


Confirmation

Un résultat
R. BOUAZIZ -- F. GARGOURI 229
Activation et envoi de messages

❑ Exemple : Diagramme de séquence du CU


« Effectuer une commande »

Remarques : :Librairie électronique


: Service
: Internaute
Clients
1. L’objectif est ici )de représenter l’enchaînement des
commander(
envois de messages
formulaire entre les intervenants : expliciter
de commande
les CU.
saisirInfos( )
2. Il s’agit du scénario nominal du cas d’utilisation
récapitulatif
Effectuer commande
une commande.
3. Absence devalider(
la période
) d’activité.
commande validée
4. Les temps d’envoi = temps de réception de tous les
confirmation
messages.
Un résultat
R. BOUAZIZ -- F. GARGOURI 230
Activation et envoi de messages

✓ Appel de procédure ou flot de contrôle emboîté :


◆ La séquence appelante ne reprend le contrôle que si
celle emboîtée se termine.
◆ Les messages de cette catégorie sont signalés par
une flèche pleine.
O1 O2 O3
Procédure
Sous procédure

• O2 récupère le contrôle quand O3 termine sa tâche.


• O1 récupère le contrôle quand O2 termine sa tâche.
• La fin de la sous-procédure est signalée par la fin de la durée de
l’activation de O3.

R. BOUAZIZ -- F. GARGOURI 231


Activation et envoi de messages

Exemple :
N° Client
Adresse Client
N° Cde
:CLIENT :CATÉGORIE
Date Cde :COMMANDE
N° Catégorie
CréerClt()
CréerCat() Intitulé Catégorie

Taux remise
N° Produit …
Qté Cdée,

R. BOUAZIZ -- F. GARGOURI 232


Activation et envoi de messages
✓ Retour d’un appel de procédure
◆ Le retour d'une opération est implicite à la fin de
l’activation de l’objet receveur.
◆ Mais la notation "Rés := Message" peut être utilisée
pour représenter les flots de retour.
◆ Les flots de cette catégorie peuvent aussi être signalés
par une flèche en pointillé.

Expéditeur Destinataire Expéditeur Destinataire

Calculer() Val:=Calculer()

 Val

Val est retournée à Expéditeur


R. BOUAZIZ -- F. GARGOURI 233
Activation et envoi de messages

❑Exemple : Diagramme de séquence du CU MAJ stock produit

:FenêtreProduits :Stock :Produit


MAJStock(Référence, Qté)
Rép:= Existe(Référence)

si (Rép=vrai) alors
MAJ(Référence, Qté)
sinon Créer(Référence, Intitulé)
"Produit n’existe pas",
nouvellement créé
Initialiser(Référence, Qté)

R. BOUAZIZ -- F. GARGOURI 234


La ligne de vie des objets

❑ La ligne de vie d’un objet,


✓ qui est représentée par une ligne en pointillé,
✓ peut débuter et s’interrompre dans un diagramme :
➔ Si l’objet est créé et/ou détruit pendant la durée
définie par le diagramme spécifié.

Un objet

Créer() Un autre objet


Détruire()

Temps X : La fin de vie


R. BOUAZIZ -- F. GARGOURI 235
Contraintes temporelles

✓ Cas où le délai de transmission d’un message est non


négligeable : flèche représentée obliquement

Expéditeur Destinataire Expéditeur Destinataire

Délai t
t’- t t’

✓ Les contraintes temporelles peuvent être représentées dans


la marge en nommant les instants d’émission des messages.

Objet 1 Objet 2 Objet 3

X Message1
{y-x < 2s}
Y
Message2

Message2 doit être envoyé au plus deux secondes après Message1


R. BOUAZIZ -- F. GARGOURI 236
Contraintes temporelles

❑ Pour exprimer les contraintes temporelles, on peut


utiliser des :
◆ annotations temporelles (temps : message)
◆ fonctions temporelles (TempsEnvoi, TempsRéception, …)

Exemple :
usager : Ascenseur : Porte

Appel extérieur
Déplacement vers
l’étage d’appel Déplacement
(pas d’autres appels) a:ouverture
Ouvrir()
{b.TempsRéception - b:ouverte
a.TempsEnvoi < 5 s.}
{ > 8s }
* Fermeture
L’usager peut Préciser l’étage
prendre l’ascenseur Fermée
Fermer()

Déplacement

R. BOUAZIZ -- F. GARGOURI 237


Structures de contrôle

❑ Contrôle centralisé (I) et Contrôle décentralisé (II)

A B C D A B C D

(I) (II)
A centralise les envois de L’envoi de messages est
messages décentralisé

R. BOUAZIZ -- F. GARGOURI 238


Structures de contrôle

✓ Les diagrammes de séquence peuvent être


complétés par des indications textuelles exprimées
sous forme de texte libre ou pseudo-code.
◆ Représentation de la boucle While :

O1 O2 O1 O2

While X
loop Message
 *[X] Message

End loop

X = condition(s)

R. BOUAZIZ -- F. GARGOURI 239


Structures de contrôle

✓ Exemple :
:SystèmeSurv :PosteDePolice

While ¬RéponsePolice
loop
SOS()
End loop


:SystèmeSurv :PosteDePolice

*[¬RéponsePolice]
SOS()

R. BOUAZIZ -- F. GARGOURI 240


Structures de contrôle

✓ Branchements conditionnels :
Si X = Vrai Aors
Envoyer(A, B, Message1) A B C
Sinon
Envoyer(A, C, Message2) If X Message1
FINSI Else
Message2
End If
Ou
bien
A B C A B C

[X] Message1 [X] Message1

[non X] Message2 [non X] Message2

R. BOUAZIZ -- F. GARGOURI 241


Structures de contrôle

❑ Traitement alternatif d'un message reçu :


✓ Les branchements alternatifs, du côté du
destinataire du message, sont représentés en
dédoublant la ligne de vie du destinataire.

:Abonné :Livre :Responsable


Retourner [bon état ]
C

Retourner [mauvais état] Informer ()

C : Changer l’état du livre : disponible

R. BOUAZIZ -- F. GARGOURI 242


Structures de contrôle

❑ Traitement alternatif d'un message reçu :


✓ Les1.branchements conditionnels,
Les deux périodes du du
d’activation côté du
Livre
destinataire duà message,
correspondent sont
des actions représentés
différentes en par
réalisées
dédoublant la ligne de vie du destinataire.
cette classe en fonction de la condition.
2.:Abonné
La condition est exprimée:Livre :Responsable
après le message pour dire
qu’elle sera[bon
Retourner vérifiée
état ] à la réception du message et
non à son * envoi.

Retourner [mauvais état] Informer ()

* : changer l’état du livre : disponible

R. BOUAZIZ -- F. GARGOURI 243


Remarques

❑ Les diagrammes de séquence :


✓ sont un bon moyen pour représenter les interactions,
organisées dans le temps, entre les objets ;
✓ s’approchent davantage de l’implémentation avec
l’utilisation des boucles, des structures de contrôles, … ;
✓ permettent de détecter les erreurs qu’on ne voit
d’habitude qu’au niveau de l’implémentation :
interblocage d’appels, … ;
✓ conviennent bien aux applications critiques et temps
réel.

R. BOUAZIZ -- F. GARGOURI 244


Exemple

❑ Organisation d’une conférence internationale.


Considérons les Règles de gestion suivantes :
<<Inclut>>
- Le comité d’organisation
1 adresse un appel
2 à
communication aux auteurs intéressés par les
thèmes de la conférence.
- Un auteur soumet un papier décrivant ses travaux
<<Inclut>>
dans l’un des thèmes de la conférence.
- Un comité de programme
3 est responsable
<<Inclut>>
4 de
l’affectation des papiers reçus à des examinateurs
spécialisés pour évaluation.
- Chaque examinateur évalue les papiers attribués
par le comité de programme.
R. BOUAZIZ -- F. GARGOURI 245
Exemple

❑ Le diagramme de cas d’utilisation est comme suit :

1 2

Comité Appel aux Soumission Auteur


d’organisation auteurs d’un papier

3 4
Affectation Evaluation Examinateur
Comité de
examinateurs d’un papier
programme

R. BOUAZIZ -- F. GARGOURI 246


Exemple

❑ Le diagramme de collaboration correspondant est :


2.1 : Rédiger
2.2 : Envoi de papier

:Auteur 1 : Appel à communication :Comité


d'organisation
3 : Adresser le papier

:Comité 5 : Papier enregistré


programme
6 : Affecter Examinateur

4 : Enregistrer()
7.1 : Evaluer

:Examinateur :RAPPORT

:PAPIER 7.2 : Noter

R. BOUAZIZ -- F. GARGOURI 247


Exemple

❑ Le diagramme de séquence correspondant est :


:Comité :Auteur :Examinateur :Comité de
d'organisation programme
Appel( )
:PAPIER

Rédiger( )
Envoi(Papier)
Adresser Papier(RéfPapier)
Enreg_Papier(true)

Papier enregistré
Affecter_Lecteur(RéfPapier)
:RAPPORT
Evaluer(RéfPapier )

Papier évalué Rédiger(RéfPapier )

R. BOUAZIZ -- F. GARGOURI 248


Conclusion

❑ Les diagrammes de CU : besoins des utilisateurs


d’une manière abstraite.
❑ Les diagrammes de collaboration : ont explicité les
CU en montrant les différentes collaborations (sous
forme d’échanges de messages) entre les différents
acteurs.
❑ Les diagrammes de séquence : ont explicité la
dimension temporelle et ont permis aussi d’exprimer
les contraintes temporelles dans les envois de
messages.
❑ Les diagrammes de collaboration et de séquence :
diagrammes d’interaction.

R. BOUAZIZ -- F. GARGOURI 249

Vous aimerez peut-être aussi