Vous êtes sur la page 1sur 7

Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.

SE

Analyse, Conception Objet Sommaire

• Définition
Diagrammes de Collaboration • Utilisation des diagrammes de collaboration
• Collaboration
• Messages
Une partie du matériau de ce cours est issue du cours de S.Galland (Stephane.Galland@emse.fr) • Interactions
Octobre 2002 • Représentation des acteurs
• Classes abstraites et interface

Oct.2002 1 Oct.2002 Sommaire– 2

Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Définition Utilisation des diagrammes de collaboration

• Description des interactions entre les objets composant le système. • Documentation des cas d’utilisation :

• Représentation se concentrant sur les relations d’interaction entre les – description permettant de réaliser les cas d’utilisation.
objets. – décrit le comportement du système pour chacun des scénarios
accompagnant les cas d’utilisation.
• La dimension temporelle est ajoutée grâce à des numéros de séquence.
– Facilite la rédaction des diagrammes des classes, des diagrammes
• Représente un ensemble de rôles joués par les objets dans un contexte état-transition, ...
particulier, ainsi que les liens entre ces objets. • Documentation conceptuelle :
• Les diagrammes de collaboration sont des diagrammes d’interaction – description du comportement de classes et d’opérations.
comme les diagrammes de séquence. – Remarque : si les opérations ont une structure algorithmique, on préférera
les décrire avec des diagrammes d’activités.
• Le passage à un diagramme de séquences et inversement est simple.
Les diagrammes de collaboration sont plus adaptés quand une opération fait
intéragir de nombreux objets.

Oct.2002 Définition– 3 Oct.2002 Utilisation des diagrammes de collaboration– 4


Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Collaboration Collaboration : rôles

• Chaque élément d’une collaboration joue un rôle.


• Définition des éléments utiles pour obtenir un résultat en spécifiant
leurs rôles dans le contexte de la collaboration. • Les rôles des classificateurs (classes, cas d’utilisation, ...) est représenté
par un symbole de classe :
• Est composée de deux description :
:C Un rôle anonyme de la :C Objet anonyme instance
– description générale au niveau spécification qui représente : classe C de la classe C

∗ les rôles des cas d’utilisations, des classes, des méthodes et des Un rôle R de la Objet anonyme instance
/R:C /R:C
associations; classe C de la classe C, jouant
le rôle R
∗ une interaction : une séquence de messages partiellement
ordonnés échangés entre les rôles. /R Un rôle R /R Objet anonyme jouant
le rôle R
– description spécifique au niveau instance qui représente :
∗ une instance particulière d’une interaction composés d’objets et O/R:C Objet O,instance
de la classe C, jouant
le rôle R
de liens respectant les rôles, et de stimulus (instances de
messages) échangés entre ces objets.

Oct.2002 Collaboration– 5 Oct.2002 Collaboration– 6

Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Collaboration : rôles (suite) Collaboration : niveau spécification

• Les rôles des associations sont des textes respectant la • La collaboration forme un graphe de rôles liés par des rôles
d’associations.
syntaxe des étiquettes d’associations (diagrammes de
classes). • En général, une collaboration au niveau spécification représente un
contexte.
/Locataire : Personne

+habitant +habitant *
/Locataire : Personne /Maison : Logement
+habitation 1 +habitation
* 1
/Maison : Logement /Propriétaire:Personne
+loueur
1 1

1 +adresse +loyer

:Lieu 1 :Coût

Oct.2002 Collaboration– 7 Oct.2002 Collaboration– 8


Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Collabaration : au niveau instance Collaboration : représentation condensée


• Diagramme représentant une instance du diagramme au niveau • Dans UML, une collaboration est représentée comme suit :
spécification avec des stimulus.

• Stimulus : instance d’un message envoyé d’un objet vers un autre. Personne
Cas d’utilisation 1
1: revenuDeLocation(pourLesMaisons)
+ calculeRetraite() Calcul de la retraite
Loueur / Propriétaire
<<réalise>>
:Personne

:Client Calcul de la retraite


1.1 *[i:=1..n] : loyer() Une collaboration
Réalisation de :
Personne::calculeRetraite
1.1.i : valeur()
:Cout /Maison
:Logement
Documentation de Documentation de
cas d’utilisation classes/méthodes

Oct.2002 Collaboration– 9 Oct.2002 Collaboration– 10

Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Messages Messages : étiquettes

• Les étiquettes décrivent les messages auxquels elles sont


• Les objets communiquent en échangeant des messages représentés sous
forme de flèches. attachées.

• Les messages sont étiquettés par le nom de l’opération ou du signal • Syntaxe générale:
invoqué. [synchronisation] [’[’garde’]’]
• L’envoi d’un message nécessite que le récepteur puisse réaliser [séquence] [itération] [résultat :=]
l’opération. nom message [’(’arguments’)’]
• nom message : nom de l’opération ou du signal invoqué
par l’intermédiaire de ce signal
Expéditeur Destinataire

Etiquette du message • garde : condition booléenne et optionnelle (représentée


entre corchets) autorisant ou non l’envoi d’un message.

Oct.2002 Messages– 11 Oct.2002 Messages– 12


Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Messages : séquence Messages : itération

• Ensemble de numéros ordonnant l’envoi des messages (1 puis 2 puis 3 • Itération séquentielle : envoi séquentiel de n instances du
...)
même message.
• Numérotation englobante (cas d’appels de procédure) : 2 (appel initial) Syntaxe : *[ clause d’itération ]
puis 2.1 (premier appel imbriqué) puis 2.2 (second sous-appel) puis
3 (appel du même niveau que le numéro 2). • Itération parallèle : envoi parallèle de n instances du même
1 : allumer() message.
:Chaine hi−fi Syntaxe : *||[ clause d’itération ]
:utilisateur 2 : lecture(CD)
2.1 : lecture()

*[i:=1..n] Message
A B
2.1.1 : démarrer() :Lecteur CD 2.1.2 : afficherTitre()

Oct.2002 Messages– 13 Oct.2002 Messages– 14

Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Messages : arguments Messages : résultat

• Liste des paramètres du message séparés par des virgules. • Le résultat est constitué d’une liste de valeurs retournées
par le message.
• Les arguments et le nom de l’action déterminent sans
ambiguı̈té l’action à réaliser. • Ces valeurs peuvent être utilisées comme paramètres des
autres messages.
• Les arguments peuvent contenir des valeurs retournées par
1 : p := Message
des messages envoyés précédemment.
A B
• Exemples :
Afficher ( x, y ) – affiche les valeurs x et y 2 : Message2 ( p )
Soustraire( Aujourd’hui,
DateDeNaissance ) – calculer le nombre de jours C
entre deux dates

Oct.2002 Messages– 15 Oct.2002 Messages– 16


Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Messages : synchronisation Messages : appel de procédure


• Synchronization de message : envoi d’un message ssi d’autres • Dans un appel de procédure (flot de contrôle emboı̂té), la
messages ont déjà été envoyés.
séquence emboı̂tée doit se terminer pour que la séquence
• Syntaxe : message1, message2 ... / englobante reprenne le contrôle.
A1 : Premier message
D • Les appels de procédure sont représentés par des flèches à
pointe triangulaire.
B2 : Message2

A B
B1 : Message
Envoi simple
A1,B2 / C4 : Message3
A B

Oct.2002 Messages– 17 Oct.2002 Messages– 18

Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Messages : flot de contrôle asynchrone Messages : flot de contrôle à plat

• Dans un flot de contrôle asynchrone, il n’y pas de message • Cas particulier de messages asynchrones.
englobé ou englobant
• Modélisation d’une progression non procédurale souvent
⇒ pas d’obligation de terminaison d’autre messages pour
utilisée pour les messages entre un acteur et le système.
continuer.
• Les messages sont représentés par des flèches simples.
• Les messages asynchrones sont représentés par des
demi-flèches.
Un message

A
A B

:utilisateur
Envoi asynchrone

Oct.2002 Messages– 19 Oct.2002 Messages– 20


Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Interactions Interactions (suite)

• Les diagrammes d’interactions montrent les interactions entre les objets


• Définit la communication entre les instances des éléments d’une
et les relations structurelles permettant ces interactions.
collaboration.
• Plusieurs interactions peuvent s’appliquer à la même collaboration pour
exprimer divers comportements.
Destruction
• Le contexte d’une interaction comprend les arguments, les variables A B
locales, l’état des objets ainsi que les liens entre les objets qui
participent à la collaboration.
<<copie>>
/Ascenseur : Cabine <<local>>
+porte
C
/Ascenseur : Cabine :Porte
ouvrir()

:Porte

Niveau spécification Niveau instance

Oct.2002 Interactions– 21 Oct.2002 Interactions– 22

Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Interactions (suite) Interactions (suite)

• Les objets et les liens créés ou détruits au cours d’une interaction • UML permet une représentation condensée d’un ensemble d’objets.
peuvent respectivement porter les contraintes nouveau ou détruit.
• Utile lorsque tous les objets de l’ensemble doivent être traités de
• Les objets créés, puis détruits au sein de la même interaction, portent la manière uniforme.
contrainte transitoire. :Instituteur

{nouveau} B 1 *
:Instituteur :Elève
*[tous] : Debout

A :Elève

Niveau spécification Niveau instance

C D
{détruit} {transitoire}

Oct.2002 Interactions– 23 Oct.2002 Interactions– 24


Diagrammes de collaboration SIMMO/ENSM.SE Diagrammes de collaboration SIMMO/ENSM.SE

Interactions (suite) Représentation des acteurs


• Possibilité de représenter un objet particulier appartenant à un groupe
afin de lui appliquer un message particulier • La notation UML permet de faire figurer un acteur dans les
• Représentation à l’aide d’une composition indiquant que l’objet fait diagrammes de collaboration.
parti de l’ensemble d’objets. • Ils permettent de représenter les intéractions déclenchées
1 : unFichier := Selectionne(critère) par un élément extérieur au système.

Répertoire :Fichier • Le premier message est envoyé par l’acteur.


fichiers 1 : Venir me chercher au RDC

:Ascenseur

2 : Ouvrir() :Personne
2 : Ajouter destination( RDC )
unFichier : Fichier
<<local>> :Cabine

Oct.2002 Interactions– 25 Oct.2002 Représentation des acteurs– 26

Diagrammes de collaboration SIMMO/ENSM.SE

Classes abstraites et interface

• Les classes abstraites et les interfaces peuvent figurer dans


les diagrammes de collaboration.
• Elles représentent des informations complémentaires : liens
polymorphes, réalisation d’interfaces, ...
Nourrir()

/Propriétaire :Animal
:Personne animalFamilier

:Chien :Chat

Oct.2002 Classes abstraites et interface– 27