Conception Orientée Objet

Génie Logiciel, Diagrammes d'Interactions · course

Voir tous les documents en génie logiciel

Conception Orient´ee Objet

G´enie logiciel

Les diagrammes d’interactions

I. MOUAKHER-ABDELMOULA

2012-2013

Introduction

Repr´esentent une interaction, c.a.d un ensemble d’objets et leurs

relations, y compris les messages qu’ils peuvent ´echanger

Repr´esentent une vue dynamique du syst`eme

2 types de diagrammes d’interaction :

Diagrammes de s´equence : mettent l’accent sur le classement

chronologique des messages de collaboration d’instance

Diagrammes de collaboration : mettent l’accent sur l’organisation

structurelle des ´el´ements qui envoient et re¸coivent des messages

Introduction

Pendant la capture des besoins (syst`eme = boite noire)

⇒ Interactions entre acteurs et syst`eme

Pendant la conception (syst`eme = boite blanche)

⇒ Interactions entre objets

R´efl´echir `a l’affectation de responsabilit´es aux objets

Qui cr´ee les objets ?

Qui permet d’acc´eder `a un objet ?

Quel objet re¸coit un message provenant de l’IHM ?

...

Elaboration en parall`ele avec les diagrammes de classes

⇒ Contrˆoler la coh´erence des diagrammes !

Premi`ere partie I

Diagramme de s´equences

Plan

2 Concepts de base

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

3 Exemple

4 Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Concepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Concepts de base

Le diagramme de s´equences se base sur les concepts suivants :

Objet : Description d’un objet du monde r´eel (instance de classe). Il

peut ˆetre une personne ou une chose.

Ligne de vie des objets

Message : C’est le v´ehicule de la communication entre les objets.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(6/34)

Concepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Objets

Les objets sont des entit´es appartenant au syst`eme (instance d’une

classe) ou se trouvant `a ses limites (acteurs)

Le premier objet d’un diagramme de s´equence repr´esente

g´en´eralement un utilisateur du syst`eme. Il peut ˆetre repr´esent´e

comme un acteur.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(7/34)

Object1Object1 : Classe1: Classe 1 : Porteurligne de vie de l'objetConcepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Ligne de vie des objets - Pr´esentation

Elle est repr´esent´ee par une ligne verticale en dessous des objets.

Elle repr´esente la p´eriode de temps durant laquelle l’objet ”existe”

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(8/34)

Object1Object1 : Classe1: Classe 1 : Porteurligne de vie de l'objetConcepts de base

Publicité

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Cr´eation et destruction d’objets

Dans certains cas, un objet n’existe pas initialement. Il est cr´e´e par

un message.

Exemple

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(9/34)

Object1Object2create : DirectionRégionale : Agence : PersonnelCréation d'une agence<<create>>de l'agenceCréation du directeur<<create>>Agence crééeDirecteur de l'agence crééConcepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Cr´eation et destruction d’objets

Dans certains cas, un objet disparaˆıt dans un diagramme de s´equence. Il

est d´etruit par un message.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(10/34)

Object1Object2destroyConcepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

P´eriode d’activit´e

Correspond au temps pendant lequel un objet effectue une action,

soit directement, soit par l’interm´ediaire d’un autre objet qui lui sert

de sous-traitant.

Represent´ee par une bande rectangulaire superpos´ee `a la ligne de vie

de l’objet

Objet actif ou passif

Objet actif : initie et controle le flux d’activites. On Represente un

rectangle `a la place de la ligne de vie verticale

Objet passif : a besoin d’un flux d’activites pour pouvoir executer

une methode. A l’execution d’une methode, un rectangle blanc est

plac´e sur la ligne de vie

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(11/34)

Nom acteurObject1msg()Duréed'activation Concepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Repr´esentation des messages

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(12/34)

Object1Object2Object3 message_1()message_2()RécepteurTempsEmetteurConcepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Types d’envoi de messages

L’envoi d’un message entre deux acteurs peut ˆetre :

Synchrone : l’objet ´emetteur est bloqu´e jusqu’`a ce que le r´ecepteur

termine le traitement du message.

Asynchrone : l’objet ´emetteur est libre d´es que le message est ´emis.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(13/34)

Object1Object21 : msg()Object1Object21 : msgConcepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Dur´ee de transmission de message

Lorsque la dur´ee de transmission d’un message est importante, elle peut

ˆetre repr´esent´ee graphiquement

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(14/34)

Publicité

Délais de propagationObject1Object2 message_1()Concepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Message r´eflexif

Un objet peut envoyer un message `a lui-mˆeme : c’est un message r´eflexif.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(15/34)

Object1msg_1()Concepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Message de retour

Dans le cas d’activation d’un objet par un message synchrone, le

message de retour est implicite.

Dans le cas d’activation d’un objet par un message asynchrone, le

message de retour doit ˆetre repr´esent´e explicitement.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(16/34)

Object1Object2msg1()resConcepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Contraintes temporelles

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(17/34)

Object1Object2msg1()msg2()XYY-X<2sObject1Object2XYY-X<2sConcepts de base

Exemple

Les fragments combin´es

Objets

Ligne de vie des objets

P´eriode d’activit´e

Messages

Message avec condition

Dans certains cas, l’envoi d’un message est soumis `a une condition.

La condition pr´ec´ed´ee le message et elle est d´elimit´ee par des

crochets

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(18/34)

Object1Object2[condition] msg()Concepts de base

Exemple

Les fragments combin´es

Exemple (1/2)

D’apr`es le diagramme de classe r´ediger le diagramme de s´equences pour

mod´eliser un sc´enario o`u un usager veut monter en utilisant l’ascenseur

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(19/34)

Concepts de base

Exemple

Les fragments combin´es

Exemple (2/2)

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(20/34)

Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es

Un fragment combin´e repr´esente des articulations d’int´eractions.

Il est d´efini par un op´erateur et des op´erandes.

L’op´erateur conditionne la signification du fragment combin´e.

Les fragments combin´es permettent de d´ecrire des diagrammes de

s´equence de mani`ere compacte.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(21/34)

Concepts de base

Exemple

Publicité

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es

Il existe 10 op´erateurs d´efinis dans la notation UML2.0

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Loop (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateurs (cid:28) Weak Sequencing (cid:29) et (cid:28) Strict Sequencing (cid:29)

Op´erateur (cid:28) Negative (cid:29)

Op´erateur (cid:28) Critical (cid:29)

Op´erateurs (cid:28) Ignore (cid:29) et (cid:28) Consider (cid:29)

Op´erateur (cid:28) Break (cid:29)

Op´erateur (cid:28) Assertion (cid:29)

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(22/34)

Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es - alt

Op´erateur (cid:28) Alternative (cid:29)

d´esigne un choix, une alternative.

repr´esente deux comportements possibles : c’est

SI...ALORS...SINON

une seule des deux branches sera r´ealis´ee dans un sc´enario donn´e.

L’utilisation de l’op´erateur else permet d’indiquer que la branche est

ex´ecut´ee si la condition du alt est fausse.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(23/34)

alt[cond1][cond2][else]Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es - alt Exemple

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(24/34)

: Gestionnaire : Adhérent : Emprunt EtatEmpruntalt[état emprunt= rendu]autoriserEmprunt()contrôlerEtat()saisirAdhérent()[état emprunt= non rendu]refuserEmprunt()Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es - opt

Op´erateur (cid:28) Option (cid:29)

d´esigne un fragment combin´e optionnel

il repr´esente un comportement qui peut se produire... ou pas.

Un fragment optionnel est ´equivalent `a un fragment alt qui ne

poss´ederait pas d’op´erande else

Un fragment optionnel est donc une sorte de SI...ALORS.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(25/34)

Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es - opt Exemple

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(26/34)

: Gestionnaire : Adhérent : Emprunt RelanceropttesterArelancer()relancer()retourSituationRelancerelancer()[si relance]Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Publicité

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es - par

Op´erateur (cid:28) Parallel (cid:29)

Utilis´e pour repr´esenter des int´eractions ayant lieu en parall`ele

utilis´e principalement dans l’informatique temps r´eel

Les int´eractions des diff´erents op´erandes peuvent donc se m´elanger,

s’intercaler

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(27/34)

Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es - loop

L’op´erateur boucle

utilis´e pour d´ecrire un ensemble d’interaction qui s’ex´ecutent en

boucle.

Une contrainte appel´ee garde indique le nombre de r´ep´etitions

(minimum et maximum) ou bien une condition bool´eenne `a

respecter.

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(28/34)

Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

Les fragments combin´es - loop Exemple

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(29/34)

Bob: Client :Systèmeloop[0,3]insererCarte()demanderCode()Code(valeur)demanderCode()Concepts de base

Exemple

Les fragments combin´es

Op´erateur (cid:28) Alternative (cid:29)

Op´erateur (cid:28) Option (cid:29)

Op´erateur (cid:28) Parallel (cid:29)

Op´erateur boucle

R´ef´erencer un autre DS

R´ef´erencer un autre DS

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(30/34)

Deuxi`eme partie II

Diagramme de communication

(collaboration)

Pr´esentation

Exemple

Pr´esentation et concepts de base

Appel´e diagramme de collaboration avant UML2

Le diagramme de communication constitue une autre repr´esentation

des interactions que celle du diagramme de s´equence.

Le diagramme de communication met l’accent sur l’aspect spatial

des ´echandes que l’aspect temporel

Le diagramme de communication est structur´e en multigraphe :

num´erotation des arcs pour mod´eliser l’ordre des interactions

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(32/34)

Pr´esentation

Exemple

Exemple 1

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(33/34)

Pr´esentation

Exemple

Exemple 2

I. MOUAKHER-ABDELMOULA

Conception Orient´ee Objet

(34/34)