• Aucun résultat trouvé

Diagramme de collaboration

N/A
N/A
Protected

Academic year: 2022

Partager "Diagramme de collaboration"

Copied!
5
0
0

Texte intégral

(1)

Julie Vachon, Hiver 2006

IFT2251 : Génie logiciel

Chapitre 4. Analyse orientée objets Section 7. Diagramme de collaboration

Chap.4, Sect.7, p.2 Copyrights Julie Vachon, 2006

Diagramme de collaboration

1.

Introduction

2.

Collaboration – partie statique

3.

Collaboration – partie dynamique

4.

Modes d’interaction

5.

Création et destruction dynamiques

6.

Notation utilisée

Chap.4, Sect.7, p.3 Copyrights Julie Vachon, 2006

4.7.1. Introduction

„

Diagramme illustrant les interactions entre les instances d’un logiciel en mettant l’accent sur l’organisation structurelle des objets participants (et non pas sur l’ordre temporel des messages)

„

Diagramme généralement utilisé pour

…Décrire en détail le déroulement d’un cas d’utilisation, i.e., décrire la conceptiond’un scénario d’un cas d’utilisation

…Collaboration

„Ensemble d’instances qui interagissent ensemble pour réaliser une tâche commune

„Ensemble de liens (pertinents) existant entre ces instances

Chap.4, Sect.7, p.4 Copyrights Julie Vachon, 2006

Collaboration

„

Partie statique

…

Illustre les instance (des classes) et les liens (instances d’associations) impliqués dans la réalisation d’une collaboration donnée.

mb :MembreBiblio

unExemplaire :Exemplaire leLivre :Livre unMembre: Emprunteur

(2)

Chap.4, Sect.7, p.5 Copyrights Julie Vachon, 2006 mb

:MembreBiblio

cetExemplaire :Exemplaire leLivre :Livre unMembre: Emprunteur

1. emprunter(cetExemplaire)

1.1. okPourEmprunter()

1.2. emprunter(mb)

1.2.1. est_emprunté(self)

Collaboration

„

Partie dynamique

…

Illustre les interactions (les messages envoyés par les instances) nécessaires pour réaliser la tâche décrite par la collaboration

Chap.4, Sect.7, p.6 Copyrights Julie Vachon, 2006

4.7.2. Collaboration

Partie statique du diagramme (i.e., sans interactions)

„ Éléments composant une collaboration

…Objets : instance d’une classe

„Rectangle avec étiquette de la forme nomObjet:nomClasse ou :nomClasse

„Uniquement les instances pertinentes, i.e., interagissant dans le cas d’utilisation ou le scénario

…Liens : instances d’associations du diagramme de classes

„Uniquement les instances d’associations pertinentes pour la collaboration

…Acteurs : acteurs participant au cas d’utilisation ou scénario

„L’acteur initiant un cas d’utilisation est appelé initiateur

Chap.4, Sect.7, p.7 Copyrights Julie Vachon, 2006

4.7.3. Collaboration

Partie dynamique du diagramme

„

Ajout des messages sur les liens

„

Indique les messages à côté des liens appropriés sur le diagramme de collaboration

…La flèche est issue de l’émetteur et pointe vers le destinataire

…L’association correspondante dans le diagramme de classes doit être navigable dans la même direction …Le destinataire doit pouvoir comprendre le message

(opération appropriée ?)

no: message

Chap.4, Sect.7, p.8 Copyrights Julie Vachon, 2006

Représentation des interactions

„ Numéro du message : en mode procédural, lorsqu’un objet O reçoit un message, le numéro de ce message est utilisé comme préfixe pour tous les messages envoyés par O par la suite… jusqu’à ce que O réponde à ce message.

„ En général, les messages de retour n’apparaissent pas explicitement dans les diagrammes de collaboration

„ Types de messages

…Synchrone …Asynchrone

„ Aussi : garde, itération, etc.

(3)

Chap.4, Sect.7, p.9 Copyrights Julie Vachon, 2006

Représentation des interactions

Remarques

„

Comme le diagramme de séquence, le

diagramme de collaboration permet de découvrir de nouvelles propriétés aux classes. Il peut aider à compléter et développer le diagramme de classes

…Ajout d’opérations, d’associations, etc.

„

Le diagramme de classes doit être mis à jour pour demeurer « correct » et « cohérent » avec les diagrammes de séquence et de collaboration

Chap.4, Sect.7, p.10 Copyrights Julie Vachon, 2006

4.7.4. Modes d’interaction

„

Identiques à ceux des diagrammes de séquence

…Flot de contrôle (un seul en mode procédural ; plusieurs possibles en mode concurrent)

…Activation (déclenchée par réception d’un message en mode procédural ; constante en mode concurrent) …Types de messages: synchrone, asynchrone

Numérotation des messages

„Préfixée (pour les chaînes d’appel en mode procédural)

„Séquentielle

„Avec étiquette (messages concurrents)

Chap.4, Sect.7, p.11 Copyrights Julie Vachon, 2006

4.7.5 Création et destruction dynamiques

„

Ajout d’une contrainte ({new} ou {destroyed}) après l’étiquette dans le rectangle représentant l’instance

…Si au cours des interactions représentées par le diagramme de collaboration, une instance est créée puis détruite, on utilise la contrainte {transient}

„

Utilisation des messages de création et de destruction d’instance : new, destroy

Chap.4, Sect.7, p.12 Copyrights Julie Vachon, 2006

Création et destruction dynamiques

Exemple

:Etudiant-PhD{new}

:Etudiant-Msc {destroyed}

: Régistraire

1: n : = obtenirNom()

2: new Etudiant-PhD(n)

3 : destroy()

(4)

Chap.4, Sect.7, p.13 Copyrights Julie Vachon, 2006

4.7.6. Notation utilisée

„

On peut utiliser (comme pour les diagrammes de séquence)

…

Messages avec garde (condition)

„Ex. : [i=0] 1: a(), [i=1] 1: b()

…

Messages avec clause itérative

„Ex. : 1: ∗[i:=1..n] a()

Chap.4, Sect.7, p.14 Copyrights Julie Vachon, 2006

Notation utilisée

Exemple – Message avec garde

:ServeurImprimante :Ordinateur

:Imprimante :Queue_d’impressions

1.

imprimer(fichier)

[imprimante occupée]

1.1. ajouter(fichier)

[imprimante libre] 1.1.

imprimer(fichier)

Chap.4, Sect.7, p.15 Copyrights Julie Vachon, 2006

Notation utilisée

Concurrence

„ Le message 1 est un message asynchrone itératif

„ Les messages 2 et 3 sont des messages synchrones séquentiels

„ Les messages 4.a. et 4.b. sont des messages asynchrones concurrents

t:TourDeContrôle

b:Boeing

a1:Avion état = à_terre position = piste

a2:Avion état = à_terre position = piste

:Pompiers 1. ∗alerte()

4.b. atterrir(piste)

4.a: envoyer(piste)

3: déplacer(piste,parking) 2. déplacer(piste,parking)

Chap.4, Sect.7, p.16 Copyrights Julie Vachon, 2006

Notation utilisée

Autre exemple

:Ascenseur

:Cabine

:Lumière

:Porte

1. monter_étage(n)

1.1. monter()

1.1.1.a. allumer() 1.1.1.b. fermer()

:Moteur

1.2. actionner(n)

:Panneau de contrôle

Aller_etage(x)

(5)

Chap.4, Sect.7, p.17 Copyrights Julie Vachon, 2006

Notation utilisée

Résumé

:A

:B

1: message()

Message

:A

:B

[cond]1: message()

:A

:B

1: res:= message()

:A

B

1: *[i:=1..n] message()

B:B

:A

:B :C

1: m1()

1.1: m2()

1.2: m3()

2: m4() 1.a: m1()

:A

:B :C

1.b: m2() Message conditionnel Message avec retour

Itération Invocations synchrones Concurrence

Références

Documents relatifs

systématiquement "pincer" la fenêtre de visualisation pour objectiver les petites variation de densité au sein des tissus, que ce soit avant ou après injection de produit

L’IETF ne prend pas position sur la validité et la portée de tout droit de propriété intellectuelle ou autres droits qui pourraient être revendiqués au titre de la mise en œuvre

Le suivi est utilisé en conjonction avec les notifications d’état de livraison (DSN, Delivery Status Notification) [RFC3461] et les notifications de disposition de message

Rédaction du message : dans un premier temps la rédaction peut se faire seul au brouillon et par la suite, une mise en commun par table permet d’aboutir à une version

[r]

O ver the past year, the CANO/ACIO Board, head office staff and various committees and working groups have been hard at work taking action on the work outlined in the first year

Nous sommes en train de réviser le document Normes de soins, rôles infirmiers en oncologie et compétences relatives aux rôles infirmiers afin d’être certaines que ces

Nous avons tenu une séance de travail très intéressante et productive sur nos Normes de soins, rôles infir- miers en oncologie et compétences rela- tives aux rôles infirmiers..