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