Analyse, Conception Objet Diagrammes de Collaboration

Transcription

Analyse, Conception Objet Diagrammes de Collaboration
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
• Interactions
Une partie du matériau de ce cours est issue du cours de S.Galland ([email protected])
• Représentation des acteurs
Octobre 2002
• Classes abstraites et interface
Oct.2002
1
Diagrammes de collaboration
SIMMO/ENSM.SE
Oct.2002
Diagrammes de collaboration
SIMMO/ENSM.SE
Utilisation des diagrammes de collaboration
Définition
• Description des interactions entre les objets composant le système.
• Documentation des cas d’utilisation :
– description permettant de réaliser les cas d’utilisation.
• Représentation se concentrant sur les relations d’interaction entre les
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
état-transition, ...
• Représente un ensemble de rôles joués par les objets dans un contexte
particulier, ainsi que les liens entre ces objets.
• Documentation conceptuelle :
• Les diagrammes de collaboration sont des diagrammes d’interaction
comme les diagrammes de séquence.
– description du comportement de classes et d’opérations.
– Remarque : si les opérations ont une structure algorithmique, on préférera
les décrire avec des diagrammes d’activités.
Les diagrammes de collaboration sont plus adaptés quand une opération fait
intéragir de nombreux objets.
• Le passage à un diagramme de séquences et inversement est simple.
Oct.2002
Sommaire– 2
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
– description générale au niveau spécification qui représente :
∗ les rôles des cas d’utilisations, des classes, des méthodes et des
associations;
∗ une interaction : une séquence de messages partiellement
ordonnés échangés entre les rôles.
/R:C
/R
Un rôle anonyme de la
classe C
Un rôle R de la
classe C
Un rôle R
:C
Objet anonyme instance
de la classe C
/R:C
Objet anonyme instance
de la classe C, jouant
le rôle R
/R
Objet anonyme jouant
le rôle R
O/R:C
Objet O,instance
de la classe C, 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
de liens respectant les rôles, et de stimulus (instances de
messages) échangés entre ces objets.
Oct.2002
Collaboration– 5
Diagrammes de collaboration
SIMMO/ENSM.SE
Oct.2002
Collaboration– 6
Diagrammes de collaboration
Collaboration : rôles (suite)
SIMMO/ENSM.SE
Collaboration : niveau spécification
• La collaboration forme un graphe de rôles liés par des rôles
d’associations.
• Les rôles des associations sont des textes respectant la
syntaxe des étiquettes d’associations (diagrammes de
classes).
• En général, une collaboration au niveau spécification représente un
contexte.
/Locataire : Personne
/Locataire : Personne
+habitant
+habitation
+habitant
/Maison : Logement
*
1 +habitation
/Maison : Logement
1
1
1
+adresse
:Lieu
Oct.2002
Collaboration– 7
Oct.2002
*
1
+loueur
/Propriétaire:Personne
+loyer
1
:Coût
Collaboration– 8
Diagrammes de collaboration
SIMMO/ENSM.SE
Diagrammes de collaboration
Collabaration : au niveau instance
SIMMO/ENSM.SE
Collaboration : représentation condensée
• Diagramme représentant une instance du diagramme au niveau
spécification avec des stimulus.
• Dans UML, une collaboration est représentée comme suit :
• Stimulus : instance d’un message envoyé d’un objet vers un autre.
Personne
Cas d’utilisation 1
1: revenuDeLocation(pourLesMaisons)
+ calculeRetraite()
Loueur / Propriétaire
:Personne
:Client
Une collaboration
1.1 *[i:=1..n] : loyer()
1.1.i : valeur()
:Cout
Calcul de la retraite
<<réalise>>
Calcul de la retraite
Réalisation de :
Personne::calculeRetraite
/Maison
:Logement
Documentation de
cas d’utilisation
Oct.2002
Collaboration– 9
Diagrammes de collaboration
SIMMO/ENSM.SE
Documentation de
classes/méthodes
Oct.2002
Collaboration– 10
Diagrammes de collaboration
Messages
SIMMO/ENSM.SE
Messages : étiquettes
• Les étiquettes décrivent les messages auxquels elles sont
attachées.
• Les objets communiquent en échangeant des messages représentés sous
forme de flèches.
• Syntaxe générale:
[synchronisation] [’[’garde’]’]
[séquence] [itération] [résultat :=]
nom message [’(’arguments’)’]
• Les messages sont étiquettés par le nom de l’opération ou du signal
invoqué.
• L’envoi d’un message nécessite que le récepteur puisse réaliser
l’opération.
• nom message : nom de l’opération ou du signal invoqué
par l’intermédiaire de ce signal
Expéditeur
Destinataire
• garde : condition booléenne et optionnelle (représentée
entre corchets) autorisant ou non l’envoi d’un message.
Etiquette du 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.
Syntaxe : *[ clause d’itération ]
• Numérotation englobante (cas d’appels de procédure) : 2 (appel initial)
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
message.
Syntaxe : *||[ clause d’itération ]
1 : allumer()
:Chaine hi−fi
:utilisateur
2 : lecture(CD)
2.1 : lecture()
*[i:=1..n] Message
2.1.1 : démarrer()
:Lecteur CD
A
2.1.2 : afficherTitre()
Oct.2002
Messages– 13
Diagrammes de collaboration
SIMMO/ENSM.SE
Oct.2002
Messages– 14
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
des messages envoyés précédemment.
1 : p := Message
A
• Exemples :
Afficher ( x, y ) – affiche les valeurs x et y
Soustraire( Aujourd’hui,
DateDeNaissance ) – calculer le nombre de jours
entre deux dates
Oct.2002
B
B
2 : Message2 ( p )
C
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
messages ont déjà été envoyés.
• Dans un appel de procédure (flot de contrôle emboı̂té), la
séquence emboı̂tée doit se terminer pour que la séquence
englobante reprenne le contrôle.
• Syntaxe : message1, message2 ... /
A1 : Premier message
• Les appels de procédure sont représentés par des flèches à
pointe triangulaire.
D
B2 : Message2
A
B
B1 : Message
Envoi simple
A1,B2 / C4 : Message3
A
B
C
Oct.2002
Messages– 17
Diagrammes de collaboration
SIMMO/ENSM.SE
Oct.2002
Messages– 18
Diagrammes de collaboration
Messages : flot de contrôle asynchrone
SIMMO/ENSM.SE
Messages : flot de contrôle à plat
• Dans un flot de contrôle asynchrone, il n’y pas de message
englobé ou englobant
⇒ pas d’obligation de terminaison d’autre messages pour
continuer.
• Cas particulier de messages asynchrones.
• Modélisation d’une progression non procédurale souvent
utilisée pour les messages entre un acteur et le système.
• 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
et les relations structurelles permettant ces interactions.
• Définit la communication entre les instances des éléments d’une
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
locales, l’état des objets ainsi que les liens entre les objets qui
participent à la collaboration.
A
B
<<copie>>
<<local>>
/Ascenseur : Cabine
+porte
/Ascenseur : Cabine
C
:Porte
ouvrir()
:Porte
Niveau spécification
Niveau instance
Oct.2002
Interactions– 21
Diagrammes de collaboration
SIMMO/ENSM.SE
Oct.2002
Interactions– 22
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
peuvent respectivement porter les contraintes nouveau ou détruit.
• UML permet une représentation condensée d’un ensemble d’objets.
• Utile lorsque tous les objets de l’ensemble doivent être traités de
manière uniforme.
• Les objets créés, puis détruits au sein de la même interaction, portent la
contrainte transitoire.
{nouveau}
:Instituteur
B
:Instituteur
1
*
:Elève
*[tous] : Debout
A
:Elève
Niveau spécification
C
{détruit}
Oct.2002
Niveau instance
D
{transitoire}
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
diagrammes de collaboration.
• Représentation à l’aide d’une composition indiquant que l’objet fait
parti de l’ensemble d’objets.
• Ils permettent de représenter les intéractions déclenchées
par un élément extérieur au système.
1 : unFichier := Selectionne(critère)
Répertoire
fichiers
• Le premier message est envoyé par l’acteur.
:Fichier
1 : Venir me chercher au RDC
:Ascenseur
2 : Ouvrir()
:Personne
2 : Ajouter destination( RDC )
unFichier : Fichier
:Cabine
<<local>>
Oct.2002
Interactions– 25
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
:Personne
animalFamilier
:Chien
Oct.2002
:Animal
:Chat
Classes abstraites et interface– 27
Oct.2002
Représentation des acteurs– 26