II.6. Diagrammes d'interactiondamien.porquet.free.fr/msi/3IL/cours-aao-uml-4.pdfModule Génie...

32
II.6. Diagrammes d'interaction

Transcript of II.6. Diagrammes d'interactiondamien.porquet.free.fr/msi/3IL/cours-aao-uml-4.pdfModule Génie...

II.6. Diagrammes d'interaction

2Module Génie Logiciel : Cours d'Analyse Orientée Objet.

2

Introduction Les diagrammes d'UML

Diagramme

Diagramme de structure

Diagramme comportemental

Diagramme de classes

Diagramme de composant

Diagramme de structure composite

Diagramme de déploiement

Diagramme d’objets

Diagramme de package

Diagramme d’activités

Diagramme de cas d’utilisation

Diagramme de transition d’état

Diagramme d’interactions

Diagramme de séquence

Diagramme de communication

Diagramme vue d’ensemble des

interactions

Diagramme de timing

3Module Génie Logiciel : Cours d'Analyse Orientée Objet.

3

Diagrammes d'interaction Introduction

Modéliser la façon dont les groupes d'objets collaborent pour réaliser un comportement donné.

Diagrammes de séquence Montrent les interactions entre objets selon un point de

vue temporel Le contexte des objets n'est pas représenté

A : Objet B : Objet

4Module Génie Logiciel : Cours d'Analyse Orientée Objet.

4

Diagrammes d'interaction Introduction

Diagrammes de collaboration / communication Montre les interactions entre objets en insistant sur la

structure spatiale statique Exprime à la fois le contexte de groupe d'objets et

l'interaction entre ces objets Extension du diagramme d'objets

: Traitement de texte: Imprimante

: Scanner1: lire

2: écrire

II.6. Diagrammes d'interaction

1. Diagrammes de séquence

6Module Génie Logiciel : Cours d'Analyse Orientée Objet.

6

Diagrammes de séquence Concepts principaux :

1 Les participants (le plus souvent des objets) Une ligne de vie Des zones d’activation

2 Les messages L’opération et éventuellement ses paramètres Éventuellement son résultat

3 Des structures de contrôle Alt : conditionnelle Loop : boucle Réf : référence à un autre diagramme de séquence (=appel

de fonction) Etc.

7Module Génie Logiciel : Cours d'Analyse Orientée Objet.

7

Diagrammes de séquence Représentation des acteurs

Rectangle + Ligne de vie Nom_objet : nom_classe

Ferrari : Voiture : Garage

temps

t

nom

8Module Génie Logiciel : Cours d'Analyse Orientée Objet.

8

Diagrammes de séquence Messages

Communication entre les lignes de vie appel de méthode envoi d'un signal création/destruction d'une instance

Ferrari : Voiture : Conducteur

démarre

attribut = nom_signal_ou_op (arguments) : valeur_retournée

9Module Génie Logiciel : Cours d'Analyse Orientée Objet.

9

Diagrammes de séquence Types de messages

1 Appels de méthodes ou autres méthodes d'appels synchrones

2 Communication asynchrone : l'émetteur déclenche le stimulus et passe immédiatement à la suite de l'exécution

3 Retours de procédures (ou de méthodes) : optionnel

10Module Génie Logiciel : Cours d'Analyse Orientée Objet.

10

Diagrammes de séquence Un objet peut s'envoyer

des messages

Un message peut entraîner la création ou la destruction d'objets

: objet

Message réflexif

: objet

: objet<<create>>

<<destroy>>

11Module Génie Logiciel : Cours d'Analyse Orientée Objet.

11

Diagrammes de séquence Occurrence d'exécution

Aussi appelé « focus de contrôle »

Correspond à la durée d'activité de l'objet <=> temps durant lequel il est actif

Ferrari : Voiture : Conducteur

démarre

Focus d'exécution

12Module Génie Logiciel : Cours d'Analyse Orientée Objet.

12

Diagrammes de séquence Message trouvé = émetteur inconnu.

13Module Génie Logiciel : Cours d'Analyse Orientée Objet.

13

Diagrammes de séquence Exemple

CréationsDestructions

14Module Génie Logiciel : Cours d'Analyse Orientée Objet.

14

Diagrammes de séquence Exemple : distributeur de boisson

Moi : Personne : MachineDdB

distributeur de boisson

15Module Génie Logiciel : Cours d'Analyse Orientée Objet.

15

Diagrammes de séquence Invariants d'état

: FenetrePrincipale : Compte

create("bob","glopglop")

: ControleurDAuthentification

verifierReferences(compte)

{compte.authentificationOk == true}

initialiserTransaction()

16Module Génie Logiciel : Cours d'Analyse Orientée Objet.

16

Diagrammes de séquence Occurrences événementielles

: A : B

Action()

description

17Module Génie Logiciel : Cours d'Analyse Orientée Objet.

17

Diagrammes de séquence Fragments combinés

Types1 Opt2 Loop3 Alt4 Break5 Critique6 Ref7 ...

nom [expression booléenne]

: A

condition de garde

18Module Génie Logiciel : Cours d'Analyse Orientée Objet.

18

Diagrammes de séquence Fragments combinés

Opt : Fragment parcouru si une condition est vérifiée

: A : B

Opt [condition]

Action()

19Module Génie Logiciel : Cours d'Analyse Orientée Objet.

19

Diagrammes de séquence Fragments combinés

Loop : Répétition du fragment tant que la condition est vérifiée

: A : B

Loop [condition]

Action()

Loop (0, n)Action()

ou

20Module Génie Logiciel : Cours d'Analyse Orientée Objet.

20

Diagrammes de séquence Fragments combinés

Alt : Equivalent à la structure de contrôle "si .. alors .. sinon".

: A : B

Alt [condition]

[else]

ActionA()

ActionB()

21Module Génie Logiciel : Cours d'Analyse Orientée Objet.

21

Diagrammes de séquence Fragments combinés

Break : Fragment exécuté et met fin au fragment englobant

: A : B

Break [condition]

Action()

22Module Génie Logiciel : Cours d'Analyse Orientée Objet.

22

Diagrammes de séquence Fragments combinés

Critique : Fragment exécuté de façon atomique (d'un bloc)

: A : B

ActionCritique()Critique [condition]

23Module Génie Logiciel : Cours d'Analyse Orientée Objet.

23

Diagrammes de séquence Décomposition : mot clef "ref"

Méthode n°1

: A

: B ref

DiagB

Action()

Reponse()

DiagA DiagB

: B

Action()

Reponse()

: C

Action1()

Reponse1()

24Module Génie Logiciel : Cours d'Analyse Orientée Objet.

24

Diagrammes de séquence Décomposition : mot clef "ref"

Méthode n°2

: A

DiagA

: B

SousFonction

Ref

SousFonction

: A : B

Action()

Reponse()

25Module Génie Logiciel : Cours d'Analyse Orientée Objet.

25

Diagrammes de séquence Exercice : distributeur de boissons

Client Ecran MachineDdB G_Monnaie G_Boisson G_gobelet Piece

II.6. Diagrammes d'interaction

1. Dia. de communication

27Module Génie Logiciel : Cours d'Analyse Orientée Objet.

27

Introduction Les diagrammes d'UML

Diagramme

Diagramme de structure

Diagramme comportemental

Diagramme de classes

Diagramme de composant

Diagramme de structure composite

Diagramme de déploiement

Diagramme d’objets

Diagramme de package

Diagramme d’activités

Diagramme de cas d’utilisation

Diagramme de transition d’état

Diagramme d’interactions

Diagramme de séquence

Diagramme de communication

Diagramme vue d’ensemble des

interactions

Diagramme de timing

28Module Génie Logiciel : Cours d'Analyse Orientée Objet.

28

Diagrammes de communication Objectif

Extension du diagramme d'objet1 - le contexte = modèle objets2 - les interactions = les scénarios

Montrent les interactions entre objets du point de vue statique et dynamique

1 - Objets = instances de classes2 - Lien = instance des associations définies dans le

diagramme de classes

29Module Génie Logiciel : Cours d'Analyse Orientée Objet.

29

Diagrammes de communication Concepts

Objets / acteurs Messages séquentiels numérotés

Echangés entre objets et non entre classes

Exemple :

tourDeContrôle Fk74:Airbus

1 : confirmerIdentité2 : décoller

30Module Génie Logiciel : Cours d'Analyse Orientée Objet.

30

Diagrammes de communication Exemples

4 : Afficher(x,y) // message simple

3.3.1 : Afficher(x,y) // message imbriqué

4.2 : âge := Soustraire( Aujourd'hui, DateDeNaissance ) // message imbriqué avec valeur retournée

[Age >= 18 ans] 6.2 : Voter() // message conditionnel

A B

x

31Module Génie Logiciel : Cours d'Analyse Orientée Objet.

31

Diagrammes de communication Exercice

Transformer ce diagramme de séquence en diagramme de communication

Fenêtre : Frame Préférences : Data

chargeParams()

Ouverture d'URL dans un navigateur web

PortDeRéception : Socket

<<create>>

ecouter()

accepter()

32Module Génie Logiciel : Cours d'Analyse Orientée Objet.

32

Diagrammes de communication Exemple : distributeur de boissons

: MachineDbB

: G_Monnaie : G_Boisson

: G_Gobelet

: Piece

: Ecran

Moi : Utilisateur

Chocolat : Boisson