Conception Orient´ee Objet
G´enie logiciel
Les diagrammes d’interactions
I. MOUAKHER-ABDELMOULA
2012-2013
Introduction
Repr´esentent une interaction, c.a.d un ensemble d’objets et leurs
relations, y compris les messages qu’ils peuvent ´echanger
Repr´esentent une vue dynamique du syst`eme
2 types de diagrammes d’interaction :
Diagrammes de s´equence : mettent l’accent sur le classement
chronologique des messages de collaboration d’instance
Diagrammes de collaboration : mettent l’accent sur l’organisation
structurelle des ´el´ements qui envoient et re¸coivent des messages
Introduction
Pendant la capture des besoins (syst`eme = boite noire)
⇒ Interactions entre acteurs et syst`eme
Pendant la conception (syst`eme = boite blanche)
⇒ Interactions entre objets
R´efl´echir `a l’affectation de responsabilit´es aux objets
Qui cr´ee les objets ?
Qui permet d’acc´eder `a un objet ?
Quel objet re¸coit un message provenant de l’IHM ?
...
Elaboration en parall`ele avec les diagrammes de classes
⇒ Contrˆoler la coh´erence des diagrammes !
Premi`ere partie I
Diagramme de s´equences
Plan
2 Concepts de base
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
3 Exemple
4 Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Concepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Concepts de base
Le diagramme de s´equences se base sur les concepts suivants :
Objet : Description d’un objet du monde r´eel (instance de classe). Il
peut ˆetre une personne ou une chose.
Ligne de vie des objets
Message : C’est le v´ehicule de la communication entre les objets.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(6/34)
Concepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Objets
Les objets sont des entit´es appartenant au syst`eme (instance d’une
classe) ou se trouvant `a ses limites (acteurs)
Le premier objet d’un diagramme de s´equence repr´esente
g´en´eralement un utilisateur du syst`eme. Il peut ˆetre repr´esent´e
comme un acteur.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(7/34)
Object1Object1 : Classe1: Classe 1 : Porteurligne de vie de l'objetConcepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Ligne de vie des objets - Pr´esentation
Elle est repr´esent´ee par une ligne verticale en dessous des objets.
Elle repr´esente la p´eriode de temps durant laquelle l’objet ”existe”
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(8/34)
Object1Object1 : Classe1: Classe 1 : Porteurligne de vie de l'objetConcepts de base
Publicité
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Cr´eation et destruction d’objets
Dans certains cas, un objet n’existe pas initialement. Il est cr´e´e par
un message.
Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(9/34)
Object1Object2create : DirectionRégionale : Agence : PersonnelCréation d'une agence<<create>>de l'agenceCréation du directeur<<create>>Agence crééeDirecteur de l'agence crééConcepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Cr´eation et destruction d’objets
Dans certains cas, un objet disparaˆıt dans un diagramme de s´equence. Il
est d´etruit par un message.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(10/34)
Object1Object2destroyConcepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
P´eriode d’activit´e
Correspond au temps pendant lequel un objet effectue une action,
soit directement, soit par l’interm´ediaire d’un autre objet qui lui sert
de sous-traitant.
Represent´ee par une bande rectangulaire superpos´ee `a la ligne de vie
de l’objet
Objet actif ou passif
Objet actif : initie et controle le flux d’activites. On Represente un
rectangle `a la place de la ligne de vie verticale
Objet passif : a besoin d’un flux d’activites pour pouvoir executer
une methode. A l’execution d’une methode, un rectangle blanc est
plac´e sur la ligne de vie
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(11/34)
Nom acteurObject1msg()Duréed'activation Concepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Repr´esentation des messages
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(12/34)
Object1Object2Object3 message_1()message_2()RécepteurTempsEmetteurConcepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Types d’envoi de messages
L’envoi d’un message entre deux acteurs peut ˆetre :
Synchrone : l’objet ´emetteur est bloqu´e jusqu’`a ce que le r´ecepteur
termine le traitement du message.
Asynchrone : l’objet ´emetteur est libre d´es que le message est ´emis.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(13/34)
Object1Object21 : msg()Object1Object21 : msgConcepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Dur´ee de transmission de message
Lorsque la dur´ee de transmission d’un message est importante, elle peut
ˆetre repr´esent´ee graphiquement
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(14/34)
Publicité
Délais de propagationObject1Object2 message_1()Concepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Message r´eflexif
Un objet peut envoyer un message `a lui-mˆeme : c’est un message r´eflexif.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(15/34)
Object1msg_1()Concepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Message de retour
Dans le cas d’activation d’un objet par un message synchrone, le
message de retour est implicite.
Dans le cas d’activation d’un objet par un message asynchrone, le
message de retour doit ˆetre repr´esent´e explicitement.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(16/34)
Object1Object2msg1()resConcepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Contraintes temporelles
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(17/34)
Object1Object2msg1()msg2()XYY-X<2sObject1Object2XYY-X<2sConcepts de base
Exemple
Les fragments combin´es
Objets
Ligne de vie des objets
P´eriode d’activit´e
Messages
Message avec condition
Dans certains cas, l’envoi d’un message est soumis `a une condition.
La condition pr´ec´ed´ee le message et elle est d´elimit´ee par des
crochets
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(18/34)
Object1Object2[condition] msg()Concepts de base
Exemple
Les fragments combin´es
Exemple (1/2)
D’apr`es le diagramme de classe r´ediger le diagramme de s´equences pour
mod´eliser un sc´enario o`u un usager veut monter en utilisant l’ascenseur
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(19/34)
Concepts de base
Exemple
Les fragments combin´es
Exemple (2/2)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(20/34)
Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es
Un fragment combin´e repr´esente des articulations d’int´eractions.
Il est d´efini par un op´erateur et des op´erandes.
L’op´erateur conditionne la signification du fragment combin´e.
Les fragments combin´es permettent de d´ecrire des diagrammes de
s´equence de mani`ere compacte.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(21/34)
Concepts de base
Exemple
Publicité
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es
Il existe 10 op´erateurs d´efinis dans la notation UML2.0
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Loop (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateurs (cid:28) Weak Sequencing (cid:29) et (cid:28) Strict Sequencing (cid:29)
Op´erateur (cid:28) Negative (cid:29)
Op´erateur (cid:28) Critical (cid:29)
Op´erateurs (cid:28) Ignore (cid:29) et (cid:28) Consider (cid:29)
Op´erateur (cid:28) Break (cid:29)
Op´erateur (cid:28) Assertion (cid:29)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(22/34)
Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es - alt
Op´erateur (cid:28) Alternative (cid:29)
d´esigne un choix, une alternative.
repr´esente deux comportements possibles : c’est
SI...ALORS...SINON
une seule des deux branches sera r´ealis´ee dans un sc´enario donn´e.
L’utilisation de l’op´erateur else permet d’indiquer que la branche est
ex´ecut´ee si la condition du alt est fausse.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(23/34)
alt[cond1][cond2][else]Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es - alt Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(24/34)
: Gestionnaire : Adhérent : Emprunt EtatEmpruntalt[état emprunt= rendu]autoriserEmprunt()contrôlerEtat()saisirAdhérent()[état emprunt= non rendu]refuserEmprunt()Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es - opt
Op´erateur (cid:28) Option (cid:29)
d´esigne un fragment combin´e optionnel
il repr´esente un comportement qui peut se produire... ou pas.
Un fragment optionnel est ´equivalent `a un fragment alt qui ne
poss´ederait pas d’op´erande else
Un fragment optionnel est donc une sorte de SI...ALORS.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(25/34)
Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es - opt Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(26/34)
: Gestionnaire : Adhérent : Emprunt RelanceropttesterArelancer()relancer()retourSituationRelancerelancer()[si relance]Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Publicité
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es - par
Op´erateur (cid:28) Parallel (cid:29)
Utilis´e pour repr´esenter des int´eractions ayant lieu en parall`ele
utilis´e principalement dans l’informatique temps r´eel
Les int´eractions des diff´erents op´erandes peuvent donc se m´elanger,
s’intercaler
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(27/34)
Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es - loop
L’op´erateur boucle
utilis´e pour d´ecrire un ensemble d’interaction qui s’ex´ecutent en
boucle.
Une contrainte appel´ee garde indique le nombre de r´ep´etitions
(minimum et maximum) ou bien une condition bool´eenne `a
respecter.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(28/34)
Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
Les fragments combin´es - loop Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(29/34)
Bob: Client :Systèmeloop[0,3]insererCarte()demanderCode()Code(valeur)demanderCode()Concepts de base
Exemple
Les fragments combin´es
Op´erateur (cid:28) Alternative (cid:29)
Op´erateur (cid:28) Option (cid:29)
Op´erateur (cid:28) Parallel (cid:29)
Op´erateur boucle
R´ef´erencer un autre DS
R´ef´erencer un autre DS
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(30/34)
Deuxi`eme partie II
Diagramme de communication
(collaboration)
Pr´esentation
Exemple
Pr´esentation et concepts de base
Appel´e diagramme de collaboration avant UML2
Le diagramme de communication constitue une autre repr´esentation
des interactions que celle du diagramme de s´equence.
Le diagramme de communication met l’accent sur l’aspect spatial
des ´echandes que l’aspect temporel
Le diagramme de communication est structur´e en multigraphe :
num´erotation des arcs pour mod´eliser l’ordre des interactions
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(32/34)
Pr´esentation
Exemple
Exemple 1
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(33/34)
Pr´esentation
Exemple
Exemple 2
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(34/34)