Vous êtes sur la page 1sur 78

Introduction

Les diagrammes séquence


Les diagrammes de collaboration

Modélisation avec UML - Diagramme d’interaction


: Séquences /Collaboration

David Célestin FAYE

UFR SAT/UGB

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Plan 2

1 Introduction

2 Les diagrammes séquence

3 Les diagrammes de collaboration

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Plan 3

1 Introduction

2 Les diagrammes séquence

3 Les diagrammes de collaboration

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes d’interaction 4

Les objets interagissent pour réaliser collectivement les services


offerts par les applications.
Les diagrammes d’interaction représentent les objets les uns
par rapport aux autres et montrent comment ils
communiquent au sein d’une interaction.
Il existe deux sortes de diagrammes d’interaction : les
diagrammes de collaboration et les diagrammes de séquence.
Les diagrammes d’interaction montrent quelques objets dans
une situation donnée. Seule une petite interaction est
représentable

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes d’interaction 5


Objectif : modéliser la communication entre les objets du
système dans un enchaînement temporel
Représentation graphique d’un scénario
Diagrammes de séquence
Mettent l’accent sur le classement chronologique des messages
de collaboration d’instance
Représentation temporelle des interactions entre les objets
Représentation orientée client
Diagrammes de collaboration
Mettent l’accent sur l’organisation structurelle des éléments
qui envoient et reçoivent des messages
Représentation spatiale des objets et de leurs interactions
Représentation orientée développeur
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes d’interaction 6

Les diagrammes de séquence et les diagrammes de


collaboration d’instances sont isomorphes : l’un peut-être
transformé en l’autre
Diagrammes équivalents en phase de conception : Description
du lien entre cas d’utilisation et diagramme de classes
On les utilise en général pour les méthodes d’interface.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes d’interaction 7


À partir d’un diagramme de classes et d’un cas d’utilisation
Conducteur Voiture Moteur

démarrer() allumer()

Diagramme de communication
1 : démarrer() 1.1 : allumer()
c : Conducteur v : Voiture m : Moteur

Diagramme de séquence
c : Conducteur v : Voiture m : Moteur

démarrer()
allumer()

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes d’interaction 8

Objectif
Décrire la réalisation des cas d’utilisation sur le système décrit par
le diagramme de classes

Z Point de vue interne sur le fonctionnement du système


Z Description au niveau de l’instance (état du système à un
instant)
Z Description de scénarios particuliers
Z Représentation des échanges de messages
Entre les acteurs et le système, entre les objets du système
De façon chronologique

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Plan 9

1 Introduction

2 Les diagrammes séquence

3 Les diagrammes de collaboration

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les Diagrammes d’UML 10


Diagramme

Diagramme Diagramme
De structure comportemental

Diagramme Diagramme Diagramme Diagramme Diagramme de


de classes de packages de d'objets d'activités Cas d'utilisation

Diagramme Diagramme Diagramme de Diagramme Diagramme de


de composants de déploiement Structure composite d'interaction Transition d'état

Diagramme Diagramme de
De séquence communication

Diagramme Diagramme
Vue d'ensemble De timing
Des interactions

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 11


Z Permettent de représenter des interactions
Entre objets (et acteurs)
Selon un point de vue temporel (chronologie des envois de
messages)
Z Complémentaire du diagramme de collaboration
Diagramme de collaboration décrit le contexte ou l’état des
objets
Diagramme de séquence se concentre sur l’expression des
interactions
Z Les diagrammes de séquences peuvent servir à illustrer un cas
d’utilisation
Z Les diagrammes de séquences et les diagrammes
d’état-transitions sont les vues dynamiques les plus
importantes d’UML

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 12


Détailler les cas d’utilisation

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 13


Distribuer le comportement des cas d’utilisation sur les classes
d’analyse

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 14


distribuer le comportement des cas d’utilisation sur les classes
d’analyse

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 15


Z Éléments du diagramme de séquence
Acteurs
Objets (instances)
Messages (cas d’utilisation, appels d’opération)
Z Principes de base : Représentation graphique de la chronologie
des échanges de messages avec le système ou au sein du
système
« Vie »de chaque entité représentée verticalement
Èchanges de messages représentés horizontalement
Z L’ordre d’envoi d’un message est déterminé par sa position sur
l’axe vertical du diagramme
Le temps s’écoule "de haut en bas" de cet axe
Z La disposition des objets sur l’axe horizontal n’a pas de
conséquence pour la sémantique du diagramme

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 16


Utilisation en phase de conception

Système
Classe A Classe B
utiliser
Acteur

Diagramme de cas d'utilisation Diagramme de classes du système

Objectif
Description de la réalisation d’un cas d’utilisation sur le système
décrit par le diagramme de classes

Problème
Communication entre les acteurs et le système vu comme un
ensemble d’objets

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 17


Utilisation en phase de conception

Système
Classe A Classe B
utiliser
Acteur

Diagramme de cas d'utilisation Diagramme de classes du système

InterfaceSysteme Classe A Classe B

Acteur

Z Communication entre acteurs et système via une une interface


graphique ou une autre interface Hommme/Machine (écran
tactile, PocketPC, ...)
Z Solution : Création d’une classe d’interface qui :
gère les interactions avec les acteurs
encapsule le résultat des opérations
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 18


Utilisation en phase de conception
Système
Classe A Classe B
utiliser
Acteur
Diagramme de cas d'utilisation Diagramme de classes du système

: InterfaceSysteme objetA : classeA

Acteur utiliser()
operation(args) classeB()
objetB : classeB

objetB
retour

detruire()
affichage X
Diagramme de séquence du cas utiliser

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 19


Éléments de base
nom de l'objet nom de la classe
acteur
Ali : Acteur objet1 : Classe1 objet2 : classe2

objets
operation1() Instance d'une classe
appel d'une du diagramme de
opération operation2(args)
classe

retour2
temps
ligne de vie
d'un objet retour1
barre d’activité :
l’objet est actif,
il effectue quelque
chose(barre facultative)
Valeur renvoyée

Messages envoyés par


une méthode de la classe 1
À la classe 2
(appel de méthode)

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 20


Spécification d’exécution de comportement
objet1 :
objet1 : Classe1 objet2 : classe2
Classe active

Objet actif : possède une spécification d’exécution de


comportement sur toute sa ligne de vie
Objet passif : a besoin d’être sollicité pour déclencher une
exécution.
Message synchrone : la spécification d’exécution de
comportement est bornée par les évènements de réception du
message et de retour
Les exécutions simultanées sont représentées par un
chevauchement des spécifications d’exécution
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 21


Message⇔Appel de méthode
class B{
public void messageDeux() { }
public void messageTrois() { }
}
class A{
private monB= new B();
public void messageUn() {
monB.messageDeux();
monB.messageTrois);
} :A monB: B

}
messageUn() messageDeux()

messageTrois()

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 22

Éléments de base
Un message n’est pas forcément une opération d’une classe.
Mais dans la plupart des cas, un message est
« implémenté »par une opération d’une classe qui, elle-même,
est « implementée »par une méthode.
La création d’un nouvel objet (création d’une nouvelle
instance) se fait :
par l’appel du constructeur
Par l’utilisation d’un message create ou new
En terme d’analyse et conception orientées objet, on parle de
message,
En programmation, on parle plutôt d’ appel de méthodes.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 23


Types de messages
Message trouvé (found message)
Un message trouvé est un message pour lequel soit l’émetteur est
inconnu, soit le message provient d’une source aléatoire.
L’événement d’envoi est inconnu.

objet1: Classse1

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 24


Types de messages
Message perdu
Un message perdu est un message pour lequel l’événement de
réception est inconnu

objet1: Classse1

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 25


Types de messages
Message synchrone
Émetteur bloqué en attente du retour
L’émetteur attend le retour du récepteur du message
: GAB : Banque

flèche pleine
exécution bloquée
vérifi erSolde(compte)

soldeOK

NB : Par défaut, un message est séquentiel, c’est-à-dire que l’appel


est bloquant le temps que dure l’invocation de l’opération.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 26


Types de messages
Message asynchrone
Émetteur non bloqué, continue son exécution
l’émetteur n’est pas bloqué, il continue ses traitements et ne
sait pas si le message arrivera

: Ascenseur : Voyant

flèche ouverte
allumer()

processus évoluant pas nécessairement


en parallèle de retour

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 27

Types de messages
Problème de la réponse ;
comment recevoir le résultat/la réponse du message(asynchrone) ?

Soit, il n’y a pas de réponse,


Soit par un appel bloquant synchronisant le traitement,
Soit via une "interruption", autrement dit un message de
retour

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 28


Types de messages

a: A b:B c: C

messageAsynchrone()

Le traitement
continue
en parallèle

Pas de réponse atendue

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 29


Types de messages
a: A b:B c: C

messageAsynchrone()

continueTraitement()

attendreFinTraitement()

Synchronisaton par un appel bloquant

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 30


Types de messages
a: A b:B c: C

messageAsynchrone()

continueTraitement()

reponseTraitement

TraitementReponse()

Synchronisaton par « interrupton »

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 31

Types de messages
NB : l’interruption peut survenir à n’importe quel moment.
On peut donc mettre le message de retour directement après
le traitement asynchrone

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 32


Types de messages
a: A b:B c: C

messageAsynchrone()
Traitement
asynchrone

ReponseTraitement Traitement
TraitementReponse() de la réponse

continueTraitement() Traitement
parallèle

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 33


Autres Types de messages
Simple (défaut)
Message dont on ne spécifie aucune caractéristique d’envoi ou de
réception particulière

Balking(dérobant)
N’interrompt pas l’exécution de l’expéditeur et ne déclenche une
opération chez le récepteur que s’il s’est préalablement mis en
attente de ce message.

Timeout(message minuté )
Bloque l’expéditeur pendant un temps donné en attendant la prise
en compte du message par le récepteur. L’expéditeur est libéré si la
prise en compte n’a pas eu lieu pendant le délai spécifié
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 34


Messages de création/destruction d’objet
Rappel : les objets naissent, vivent et meurent

: Webmail appel du constructeur


de la classe

session()
NouvSession : session

nouvSession exécution du
retour obligatoire constructeur
de l'instance créée
destroy()
X

Durée de vie
destruction de l'objet
(pas nécessairement à de l’objet
la suite d'un message)

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 35


Message réflexif
Envoi d’un message d’un objet à lui-même
: Catalogue films: Ensemble

chercher(acteur)

trier() appel d'une


opération
Interne
(Message réfl exif)

ListeFilmsActeurTriee

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 36


Représentation de la récursivité
Pour représenter la récursivité, il suffit que le message réflexif
ait le même nom que celui d’origine (message 1 dans
l’exemple).
:A :B

message1()

message1()

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 37


Structures de contrôle
La forme des diagrammes de séquence est le reflet du mode de
contrôle de l’interaction
a: A b:B c: C

Contrôle centralisé

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 38


Structures de contrôle
La forme des diagrammes de séquence est le reflet du mode de
contrôle de l’interaction
a: A b:B c: C

1
2

Contrôle décentralisé

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 39


Cadre d’interaction
Cadre qui englobe une partie du diagramme de séquence (un
fragment) pour définir un fonctionnement non séquentiel

Types de cadres
Z Alt
Alternative (if-then-else) entre deux parties selon une garde
Z Loop :
Boucle
Z Opt
Partie optionnelle (if-then) selon une garde
Z Par
Deux parties en parallèle
Z Region
Partie en exécution mutuelle (processus / thread)
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 40


Alternative
Principe : Condition à l’envoi d’un message
2 diagrammes possibles
:
a: Ascenseur p : Porte c : Cabine

[portes ouvertes] fermer()


condition
si la condition
est vérifi ée

si la condition
n'est pas vérifi ée

[portes fermées] déplacer(étage)

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 41


Alternative
Principe : Condition à l’envoi d’un message
2 diagrammes possibles
Bloc d’alternative alt :
a: Ascenseur p : Porte c : Cabine

alt
fermer()
[portes ouvertes]

déplacer(étage)

[portes fermées]

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 42


Boucle
Principe : Répéter un enchaînement de messages
2 diagrammes possibles
Note
ct : Catalogue film : Film

Pour chaque premierActeur() opération répétée pour


acteur du tous les objets mentionnés
catalogue

acteur

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 43


Boucle
Principe : Répéter un enchaînement de messages
2 diagrammes possibles
Bloc de boucle loop

ct : Catalogue film : Film

loop(fi lm in ct) premierActeur()

acteur

objets sur lesquels


répéter la boucle

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 44


Opérateur parallèle
L’opérateur par permet d’envoyer des messages en parallèle.
Les deux parties de part et d’autre de la ligne pointillée sont
indépendantes
a: A b:B c:C

par
op1()

op2()
op3()

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 45


Référence à un autre diagramme

B : Banque c : Compte cl : Client

ref
Vérification du solde

ref
Prélèvement carte bancaire et notification au client

référence à un diagramme décrit ailleurs

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 46


Référence à un autre diagramme
retirerArgent

:Client : GAB

carte

demanderCode

alt [codeValide]
code
veification

OK

[else]

ref
codeInvalide

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 47


Référence à un autre diagramme
codeInvalide

:Client : GAB

Loop[3] [codeNonValide]
code
vérification

demanderCode

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 48


Représentation des contraintes temporelles

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 49

Exemple : scénario de retrait en espèces


Identification :
Titre : retrait espèces
Résumé : ce cas d’utilisation permet de délivrer une somme
d’argent à un guichetier pour le compte d’un cliente de la
banque
Date de création et de modification : 21/07
Acteurs : guichetier (acteur principal), système central
(secondaire)
Séquéncement
Préconditions : guichet ouvert

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 50


Scénario nominal :
1 Le guichetier saisit le numéro du compte du client
2 L’application valide le compte auprès du système central
3 Le guichetier vérifie l’identité du client (d’après la carte
d’identité)
4 L’application demande le montant du retrait au guichetier
5 Le guichetier sélectionne un retrait d’espèces de 50000FCA
6 Le système guichet interroge le système central pour s’assurer
que le compte est suffisamment approvisionné
7 Le système central effectue le débit du compte
8 Le système notifie au guichetier qu’il peut délivrer le montant
demandé :

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 51

Enchaînements alternatifs : :
A1 Numéro de compte non valide : En (1) , Le système central
indique que le compte n’est pas valide Le scénario nominal
reprend au point 1.
A2 Compte non suffisamment approvisionné :En (6) Le système
central indique que le montant demandé est supérieur au solde
du compte. Le scénario nominal reprend au point 4.
Postconditions : : :
montant demandé délivré & fin du retrait.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 52


Diagrammes de séquence correspondant au scénario précédent

Guichetier : Système Guichet Système central

Numéro de compte délivre


Demande de validation du compte

Compte valide

Vérification identité
Voir A1 : compte non valide
Demande du montant du retrait

Demande de 50 000FCA
Demande de vérification du solde du compte

Voir A2 : montant demandé > solde

Autorisation délivrance donnée


Espèces délivrés

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 53


Exemple de diagramme de séquence : Téléphone

Emetteur : Téléphone : Téléphone Récepteur

compose(numero)

Tonalité
Appel
afficheNuméro

SonneriePersonalisée

Décroche

AckAppel

FinTonalité

Bonjour

Message('Bonjour')
Hello

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 54


Exemple de diagramme de séquence : Ascenceur

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 55

Représentations des retours


Z Deux façons de représenter le retour résultant d’un message :
appliquer la syntaxe valeurDeRetour = message(paramètre) ;
employer une ligne pointillée de réponse (ou retour) à la fin de
la barre d’activation.
Z Parfois, ni l’un ni l’autre ne sont utilisés car le schéma est
suffisamment clair pour désigner le retour d’un message.
Z les retours peuvent être implicites
Message synchrone ⇒ Retour implicite
Message asynchrone ⇒ Retour explicite
Z Le bons sens est d’application pour ne pas surcharger le
diagramme

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de séquence 56


Représentation du paramètre de retour
a: A b:B

val:-calcul()

Ou encore :
a: A b:B

calcul()

val

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Plan 57

1 Introduction

2 Les diagrammes séquence

3 Les diagrammes de collaboration

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les Diagrammes d’UML 58


Diagramme

Diagramme Diagramme
De structure comportemental

Diagramme Diagramme Diagramme Diagramme Diagramme de


de classes de packages de d'objets d'activités Cas d'utilisation

Diagramme Diagramme Diagramme de Diagramme Diagramme de


de composants de déploiement Structure composite d'interaction Transition d'état

Diagramme Diagramme de
De séquence communication

Diagramme Diagramme
Vue d'ensemble De timing
Des interactions

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 59


:
Diagramme de collaboration
Z Contient la même information que les diagrammes de
séquence.
Z Montre les liens entre les objets qui participent à la
collaboration.
Z Les diagrammes de collaboration sont particuliérement
indiqués pur la phase exploratoire qui correspond à la
recherche des objets et des classes.
Z Les diagrammes de collaboration et les diagrammes de
séquence sont sémantiquement équivalent (ils contient la
même information, mais la présentation de l’information est
différente)
Z Extension du diagramme d’objets
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 60

Z Diagramme de séquence −→ met en évidence l’ordre des


interactions
Z Diagramme de collaboration −→ met en évidence le contexte
et l’organisation générale d’objets qui interagissent.
Z Le passage a un diagramme de séquences et inversement est
simple.
Z S’il y a beaucoup de messages échangés, le diagramme de
collaboration est peu lisible.
Z Si le diagramme de collaboration est trop dense, il vaut mieux
utiliser un diagramme de séquence.
Z Notez : Diagramme de collaboration(UML 1.x) = Diagramme
de communication (UML 2.0)

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 61

Z Pas de dimension de temps, une séquence est capturée par des


numéros de séquence
Z Les numéros sont écrits en séquence..
1, 2, 3,...
Ou dans un style emboités (par exemple 3.1 et 3.1.1) pour
indiquer l’emboitement du contrôle à l’intérieur de l’interaction
qui est modélisée.
Z Documentation des cas d’utilisation :
décrit le comportement du système pour chacun des scénarios
Facilite la rédaction des diagrammes des classes, des
diagrammes état-transition, ...

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 62


Un diagramme de collaboration pour décrire le retrait en espèce
(6) Débit compte

(4) retrait espèces


Guichetier Système central

(7) Autorisation
délivrance
(5) vérification
(3) Demande type solde compte
opération (2) validation compte

(1) Saisie compte


Système

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 63

Pour chaque message, il est possible d’indiquer :


les clauses qui conditionnent son envoi,
son rang (son numéro d’ordre par rapport aux autres
messages),
sa récurrence,
ses arguments.

Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 64


Messages : prédécesseurs
Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"

[pré : prédécesseurs] liste de numéros de séquence de messages


séparés par une virgule
Indique que le message courant ne sera envoyé que lorsque
tous ses prédécesseurs le seront aussi
Exemple :

3 / 5 : fermer() :
Représente l’envoi du message numéro 5. Ce messages ne sera
envoyé qu’après l’envoi du message 3.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 65


Messages :Condition
Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"

cond : garde, expression booléenne.


Permet de conditionner l’envoi du message, à l’aide d’une
clause exprimée en langage naturel
Exemple :

[heure = midi] 1 : manger()


Ce message n’est envoyé que s’il est midi.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 66


Messages : séquence
Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"

Ensemble de numéros ordonnant l’envoi des messages (1 puis


2 puis 3...)
3 : bonjour() : Ce message a pour numéro de séquence "3".
Les messages sont numérotés à la façon de chapitres dans un
document, à l’aide de chiffres séparés par des points.
Numérotation emboités (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).

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 67


Messages : séquence
Pour représenter l’envoi simultané de deux messages, il suffit
de les indexer par une lettre.
Exemple : l’envoi des messages 1.3.a et 1.3.b est simultané.
1 : allumer()
: Auto-radio CD
:utilisateur
2 : lecture(CD) 2.1.2 : afficherTitre()

2.1 : lecture()

: Lecteur CD

2.1.1 : demarrer()

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 68


Messages : itération ou récurrence
Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"

iter : récurrence du message.


Itération séquentielle : envoi séquentiel de n instances du
même message.
Syntaxe :*[ clause d’itération ]
Itération parallèle : envoi parallèle de n instances du même
message.
Syntaxe : *||[ clause d’itération ]
il est aussi possible de spécifier qu’un message est récurrent en
omettant la clause d’itération (en n’utilisant que "*" ou "*||").
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 69

Messages : itération ou récurrence

*[i:=1.n]Message
B
:A B

1.3.6 * : ouvrir() : Ce message est envoyé de manière


séquentielle un certain nombre de fois.

3 / *||[i := 1.5] : fermer() : Représente l’envoi en parallèle


de 5 messages. Ces messages ne seront envoyés qu’après l’envoi du
message 3.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 70


Messages : arguments
Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"

msg : nom du message


par : paramètres (optionnels) du message séparés par des
virgules.
Les arguments et le nom de l’action déterminent sans
ambigüité l’action à réaliser.
Les arguments peuvent contenir des valeurs retournées par des
messages envoyés précédemment.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 71


Messages : résultat
Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"

r : valeur de retour du message


r est constitué d’une liste de valeurs retournées par le message.
Ces valeurs peuvent être utilisées comme paramètres des
autres messages. 1 : p=Message
:A :B

2 : p=Message2(p)

:C

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Les diagrammes de collaboration 72


Représentation des acteurs
On peut faire figurer un acteur dans les diagrammes de
collaboration.
Ils permettent de représenter les interactions déclenchées par
un élément extérieur au système.
Le premier message est envoyé par l’acteur
1 : allumer()
: Auto-radio CD
:utilisateur
2 : lecture(CD) 2.1.2 : afficherTitre()

2.1 : lecture()

: Lecteur CD

2.1.1 : demarrer()

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Isomorphisme entre diagrammes 73


Diagramme de collaboration Diagramme de séquence

8.msg8() O1:C1 O2:C2 O3:C3


3.msg3()
5.msg5() msg1()
msg2()
O1:C1 O3:C3
1.msg1() msg3()
4.msg4()
10.msg10() msg4()
2.msg2()
7.msg7() msg5()
9.msg9() 6.msg6()
O2:C2 msg6()
msg7()
msg9() msg8()

msg10()

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Isomorphisme entre diagrammes 74

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Diagramme de collaboration ou de séquence ? 75

Un scénario décrit par un diagramme de collaboration peut


aussi être décrit par un diagramme de séquence. Et
inversement..
Les diagrammes de collaboration font ressortir l’interaction
entre les objets.
Les diagrammes de séquence mettent en avant
l’ordonnancement des événements.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Diagramme de collaboration ou de séquence ? 76

Les diagrammes de séquence


Forces
Indique clairement la séquence et l’ordonnancement des
messages parce qu’on les lit simplement de haut en bas.
Grande richesse de la notation.
sont excellents pour les besoins de la documentation
Faiblesses
Ajout de nouveaux objets s’effectuant obligatoirement vers la
droite ;
consomme trop d’espace horizontal, tandis que de l’espace
vertical est disponible

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Diagramme de collaboration ou de séquence ? 77

Les diagrammes de communication


Forces
Économique en terme d’espace,
possibilité d’ajouter/supprimer des des objets n’importe où sur
l’axe horizontal et vertical.
sont intéressants lorsqu’on applique UML « en mode esquisse
» en modélisant sur feuille parce qu’ils permettent beaucoup
mieux d’exploiter l’espace.
faiblesses
ne permettent quant à eux de retrouver la séquence des appels
qu’en se référant à leur numérotation, comme « 1 », « 2 », ..
Rend plus difficile la lecture des séquences de messages.
Moins d’options de notation.

David Célestin FAYE Modélisation avec UML


Introduction
Les diagrammes séquence
Les diagrammes de collaboration

Diagramme de collaboration ou de séquence ? 78

Chaque type de diagramme a ses points forts : il n’y a pas de


choix « correct »dans l’absolu et chaque modélisateur aura ses
propres préférences.
Néanmoins, les outils UML privilégient les diagrammes de
séquence, en raison de leur grande richesses notationnelle
La spécification UML est plus centrée sur les diagrammes de
séquences que sur les diagrammes de
communication.(Davantage de réflexion et d’efforts ayant été
consacrés à leur notation et leur sémantique)

David Célestin FAYE Modélisation avec UML

Vous aimerez peut-être aussi