• 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

Les messages envoyés dans un réseau social tels que Messenger contiennent un code et sont très intéressant à étudier en termes de créativité, le va et vient des langues dans

• Les messages ICMP n’ont pas de numéro de port source ou destination; ils n’ont qu’un champ de type de message. 68 de type

Pour ce faire, quand le routeur reçoit un paquet d’un hôte IPv6, il va reconnaître que le préfixe utilisé est celui du NAT-PT et retirer les 32 derniers bits qui correspondent à

- Le message perdu est un message dont nous connaissons l’émetteur mais pas le récepteur. Il est représenté par une flèche partant de la ligne de vie d’un

… Si l’expéditeur est un objet actif : cet envoi de message équivaut à l’envoi d’un message asynchrone, suite à l’envoi de son message, l’expéditeur demeure en activation

5/ L’échange s’étant bien déroulé, conclure sur le numéro du message transmis par le protocole ICMP pour spécifier un PING et le numéro du retour attendu.. Message envoyé

Les membres du personnel du cirque sont caractérisés par un numéro (en général leur numéro CNPS), leur nom, leur prénom, leur date de naissance et leur salaire.. On

Décrivez quels messages seront envoyés par chacun de noeuds (une astuce : un routeur n’est pas obligé de faire suivre tous les messages des capteurs au coordinateur, mais il