Académique Documents
Professionnel Documents
Culture Documents
UML Collaboration 4pp
UML Collaboration 4pp
SE
• 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
• 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.
∗ 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.
• 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
• 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
• 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
• 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()
• 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
A B
B1 : Message
Envoi simple
A1,B2 / C4 : Message3
A B
• 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
:Porte
• 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
C D
{détruit} {transitoire}
:Ascenseur
2 : Ouvrir() :Personne
2 : Ajouter destination( RDC )
unFichier : Fichier
<<local>> :Cabine
/Propriétaire :Animal
:Personne animalFamilier
:Chien :Chat