You are on page 1of 102

M.E.D.A.L.

Licence Informatique 3me anne Squences et collaborations

Module dEnseignement Distance pour lArchitecture Logicielle


Diapositive n 1

Universit de NANTES

Alain VAILLY

AVERTISSEMENT
Lusage de ce document, sous quelque forme que ce soit (lectronique, papier), titre personnel ou devant des tudiants, est autoris et libre de droits, la condition expresse quil soit conserv dans ltat (et notamment quil comporte la page de garde et cet avertissement). Tout autre usage, notamment commercial, toute diffusion via un serveur informatique, une liste de diffusion est soumis laccord PRALABLE de son auteur. Ce document constitue un TOUT. Toute coupe, toute modification non autorise par son auteur sera assimile une atteinte aux droits de lauteur et poursuivie comme telle devant les tribunaux.

Diapositive n 2

Universit de NANTES

Alain VAILLY

Projet ENRC DVD MIAGE


Projet soutenu par le Conseil Rgional des Pays de La Loire dans le cadre des projets ENRC 2007-2008

Thmatique : Passerelles vers et dans lenseignement suprieur

Diapositive n 3

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

Evaluation

Cours magistral Rfrences

Contexte

MEDAL

Exercices

Etudes de cas

Auto-valuation
Universit de NANTES

Corrigs des exercices


Alain VAILLY

Diapositive n 4

M.E.D.A.L.

Cours magistral - Introduction - Analyse des besoins - Analyse - Conception - Processus


PLAN

1) Introduction 2) Diagramme de squences

3) Diagramme de collaborations
4) Utilisation de ces diagrammes 5) Conclusion

- Outils
- Conclusion
Diapositive n 5

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

1) Introduction

DC Use cases Scnarios

Classes Squences Collaborations

Durant la phase danalyse, partir des cas dutilisation et des scnarios, on construit la structure conceptuelle du systme. Lobjectif est de dfinir un diagramme de classes. Ces classes (certaines classes) ont un comportement dynamique quil faut bien modliser. Ceci va se faire grce deux types de diagrammes, le diagramme de squences et le diagramme de collaborations.

Diapositive n 6

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

1) Introduction
Ces diagrammes jouent (ou peuvent jouer) deux rles trs diffrents, selon le moment o ils sont conus :

- Ils servent de rvlateur de structure lorsquils sont dfinis partir des cas dutilisation et des scnarios.

Use Cases Scnarios Classes V1 Squences


Diapositive n 7

Classes V2

Collaborations
Universit de NANTES Alain VAILLY

M.E.D.A.L.

1) Introduction
- Ils servent valider et illustrer la structure lorsquils sont dfinis partir du diagramme de classes.

Classes valider Squences

Classes non valides


Classes valides

Collaborations

Diapositive n 8

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

1) Introduction

Il faut trs vraisemblablement les deux, dans la mesure o ces diagrammes doivent tre tous cohrents entre eux, o les seconds (squences et collaborations) manent des premiers (cas dutilisation et scnarios) et o la structure statique (classes) nest que le support des concepts mis en oeuvre au travers de ces schmas.

Diapositive n 9

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

1) Introduction

La description du comportement du systme fait intervenir deux aspects : la description structurelle des participants, la collaboration, et la description de la communication, linteraction. Cette dernire prend la forme de messages qui circulent entre les participants. Les diagrammes de squences mettent en vidence les aspects temporels de linteraction ; les diagrammes de collaborations les aspects spatiaux .

spatial ???
Diapositive n 10

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

1) Introduction

Le terme spatial est impropre. Il nest utilis que par opposition temporel et faute den avoir trouv un autre !

Ce sont les changes entre les objets qui sont mis en vidence, avant toute autre chose. Cest pourquoi nous parlons despace.

spatial ???
Diapositive n 11

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences

Les diagrammes de squences montrent des interactions entre les objets. La reprsentation se concentre sur la squence des interactions dun point du vue temporel. Ces interactions modlisent une partie du comportement dynamique entre objets. Elle se traduit par lenvoi de messages entre objets.

Diapositive n 12

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Lacteur est celui qui, lextrieur du systme, communique, interagit, avec le systme.

Le systme apparat, ici, comme une collection de classes qui interagissent entre elles et/ou avec les acteurs situs lextrieur.

Diapositive n 13

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Il ne faut pas confondre acteur et classe :

Lacteur X correspond une personne.

La classe X est une reprsentation informatique de lacteur X.


Universit de NANTES Alain VAILLY

Diapositive n 14

M.E.D.A.L.

2) Diagramme de squences
Un diagramme de squences ressemble celui ci-dessous, dans lequel les flches correspondent lenvoi dun message entre un acteur et une classe (un objet dune classe) ou entre classes (entre objets de classes) :

Diapositive n 15

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Lordonnancement horizontal na pas plus de sens que cela. La classe A, dans le schma ci-dessous, nest pas avant la classe B, mais ct. Lordonnancement vertical reprsente lcoulement du temps.

temps

Diapositive n 16

Universit de NANTES

Alain VAILLY

M.E.D.A.L. Objet non nomm de la classe A

2) Diagramme de squences

La brique de base de ce type de diagramme est lobjet et sa ligne de vie.

rception dun message m1

message m2 envoy lui-mme

code activ
Diapositive n 17

mission dun message m3


Universit de NANTES Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Les objets impliqus dans le diagramme de squences peuvent tre explicitement nomms. O1 : Classe A Cest O1 qui est dcrit.

Ils peuvent aussi tre anonymes. Il sagit alors dun objet quelconque de la classe, sens reprsenter tous les autres. Le comportement qui est dcrit dans le diagramme est alors celui de tous les autres. : Classe A Cest un objet quelconque qui est dcrit.

Diapositive n 18

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Par principe, lorsque lobjet reoit un message, il active une opration qui se charge den traiter les consquences. Par facilit, nous donnons le mme nom lopration et au message.

Diapositive n 19

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Sous lobjet, le trait pointill reprsente sa ligne de vie.

cration de lobjet

destruction de lobjet

X
droulement de la vie de lobjet

Diapositive n 20

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

quoi a sert ?
2) Diagramme de squences
La ligne de vie dun objet peut tre divise dans le cas dactivations concurrentes :
m1 m2

m1

un seul objet actif

deux objets actifs en mme temps


Universit de NANTES Alain VAILLY

Diapositive n 21

M.E.D.A.L.

quoi a sert ?
2) Diagramme de squences
Le ddoublement de la ligne de vie sert exprimer deux situations. La premire correspond un branchement conditionnel, la seconde une activation en parallle de deux oprations dun mme objet.

[X] m1 [non X] m2

[X] m1 [Y] m2

Diapositive n 22

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

quoi a sert ?
2) Diagramme de squences
UN seul objet actif (O1), une seule opration excute (m1 OU m2) UN seul objet actif (O1), deux oprations excutes en mme temps (m1 ET m2)
Objet 01 : Classe A Objet O1 : Classe A

[X] m1 [non X] m2

[X] m1 [Y] m2

Diapositive n 23

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
La rception dun message dclenche lexcution dune opration de la classe rceptrice. Cette activation dure un certain temps.

Lobjet est activ. Il est en train dexcuter une opration (m).


m1

Entre deux activations, lobjet ne fait RIEN. Il est inactif.

m2

Diapositive n 24

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Objet 01 : Classe A

quest-ce qui rveille O1 ?


Objet 01 : Classe A

m1 m2

m1 m2 mX m3 m3

Lobjet O1 est actif... puis inactif.

Lobjet O1 est actif, puis endormi , puis actif.

Diapositive n 25

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
un timer un autre objet

quest-ce qui rveille O1 ?


Objet 01 : Classe A

m1 m2 mX m3

ou bien encore un acteur...

Lobjet O1 est actif, puis endormi , puis actif.

Diapositive n 26

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Certains auteurs de schmas (pas tous...) font galement la distinction entre activation rcursive et activation rflexive.

activation rcursive

activation rflexive

Ceci nest pas support par tous les outils (pas par StarUML, par exemple).

Diapositive n 27

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Comme dans les scnarios, les envois de messages peuvent tre :

asynchrones synchrones ou indfinis


Il est possible de matrialiser les retours en utilisant les flches pointilles :
m1
r1

r1 est la rponse m1

Diapositive n 28

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Les messages peuvent comporter un nom, un numro dordre (un rang), des arguments... selon une syntaxe prcise :

Synchronisation Garde Squence : Rsultat := Nom_message Arguments

Cette syntaxe sert galement pour les messages circulant dans les diagrammes de collaborations. Le composant synchronisation est surtout utilis dans les diagrammes de collaborations.

Diapositive n 29

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Synchronisation ::= Rang [ , Rang ] / Rang ::= (Entier Nom flot excution) [ . Rang ]

Le rang reprsente un entier (1, 2... 15...) ou le nom dun flot dans le cas dexcutions simultanes : A/m 4a, 2.1b.6 / m

Cette synchronisation correspond une sorte de pr-condition qui doit tre vrifie avant lenvoi du message m. Tous les messages mentionns avant le / doivent avoir t envoys avant dmettre m.

Diapositive n 30

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Simplification n 1 : dans un diagramme de squences, la synchronisation est visible ; le fait de devoir envoyer tel ou tel message avant lenvoi dun message prcis est naturellement traduit. Il est donc inutile de le faire apparatre : m1, m2 / m3
Il faut envoyer m1 et m2 avant denvoyer m3.
m2 m3 m1

Cette numrotation des messages peut tre simplifie dans les diagrammes de squences.

Diapositive n 31

Universit de NANTES

Alain VAILLY

M.E.D.A.L. pas clair !

2) Diagramme de squences

Simplification n 2 : la simultanit est visible ; il est donc inutile de la rpercuter dans la numrotation :

[X] m1 [non X] m2

m1 m2

Cette numrotation des messages peut tre simplifie dans les diagrammes de squences.

Diapositive n 32

Universit de NANTES

Alain VAILLY

M.E.D.A.L. Ce nest pas une implication !

2) Diagramme de squences

Ce que nous voulons dire dans cette diapositive, cest que nous allons nous servir de la notation utilise dans le schma de gauche.

[X] m1 [non X] m2

m1 m2

Nous utiliserons la connexion des missions pour rendre visible la simultanit. Il nest pas ncessaire de donner un numro 2.a, 2.b...
Diapositive n 33

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Garde ::= [ Condition ] Condition

: condition raliser, vrifier, avant lenvoi du message.


Squence ::= Rang [ Rcurrence ] Rang ::= (Entier Nom flot excution) [ . Rang ] Rcurrence ::= * [ Itration ] [ Condition ]

En gnral, une squence commence par le chiffre 1. Les messages dune squence sont soit des messages de mme niveau (ils sont alors numrots 2, 3...), soit des messages dclenchs par un message englobant. La numrotation se fait alors partir du numro de ce message englobant.

Diapositive n 34

Universit de NANTES

Alain VAILLY

M.E.D.A.L. lmission de m6 prcde celle de m7.

2) Diagramme de squences

1 : m1 2 : m2
2.1 : m3 2.2a : m4 2.2b : m5 2.2b.1 : m6 2.2b.2 : m7

lmission de m4 et m5 se fait en simultan.


m3 est dclench par larrive de m2 m4 est dclench par larrive de m2 m5 est dclench par larrive de m2 m6 est dclench par larrive de m5 m7 est dclench par larrive de m5

Cette numrotation des messages peut tre simplifie dans les diagrammes de squences.

Diapositive n 35

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Simplification n 3 : lordre dmission/rception est visible ; la numrotation nest donc pas ncessaire :

Cette numrotation des messages peut tre simplifie dans les diagrammes de squences.

Diapositive n 36

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Simplification n 3 : lordre dmission/rception est visible ; la numrotation nest donc pas ncessaire :

Cette numrotation des messages peut tre simplifie dans les diagrammes de squences.

Diapositive n 37

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Itration

et Condition sont en format libre. Il y a nanmoins des pratiques :

* [i:=1..15] *[i:=1..15] [X] [nb rponses 250] *

envoi squentiel envoi parallle condition X

itration non dfinie

Diapositive n 38

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Le rsultat est constitu dune liste de valeurs retournes par un message. Ce paramtre est en format libre : res := m1 ()
r1 := m1

res, val := m2 () (res, tot, val) := m3 () ^ res hritage de OMT


Diapositive n 39

m1

r1

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences

Cette notation nest, notre avis, pas trs claire. Le message passe (par exemple) de gauche droite ; la rponse fait le trajet inverse. Ce trajet retour nest pas visible sur le schma.
r1 := m1

Elle a, par contre, lavantage dallger ce schma. Il y a, en effet, deux fois moins de flches lire .

Diapositive n 40

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences

Il est possible dajouter des contraintes temporelles sur un diagramme de squences :


m1

La transmission du message m1 prend du temps.

Le temps de transmission du message m1 nest pas pris en compte.

m1

Diapositive n 41

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences

Le temps qui scoule entre lmission du message m1 et celle de m2 est (doit tre) infrieur 3 secondes. : Classe A
x

: Classe B

: Classe C

(y - x) < 3s
y

m1

m2

Diapositive n 42

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
UML tant un langage ouvert , il est possible de crer son propre langage dexpression des contraintes temporelles. : Classe A
m1

: Classe B
m2

: Classe C

< 2s m4 m3

Rception (m4) - Envoi (m1) < 10s

Diapositive n 43

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
Comme dans un scnario, des commentaires peuvent complter ces diagrammes de squences ; ils prennent la forme de notes ou bien dannotations algorithmiques dans les marges .

Diapositive n 44

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

2) Diagramme de squences
: Classe A : Classe B
DemandeValidation (auteur, titre) Afficher (validation en cours) ^(valid, auteur, titre) Si valid alors

: Classe C
finsi ed := Crer (auteur, titre, date)

Diapositive n 45

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Les diagrammes de squences dcrivent les interactions entre les objets au travers denvois de messages, laccent tant mis sur la structure temporelle (sur le temps). Les diagrammes de collaborations ont le mme objectif. Ils insistent, toutefois, sur la structure spatiale. Ils permettent de faire apparatre les liens entre les objets. Il est parfaitement possible de passer de lun lautre, de faon quasi-automatique.

Diapositive n 46

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Il y a deux niveaux de reprsentation des collaborations, un traitant des concepts mis en cause dans ces collaborations (le niveau spcification), un traitant en plus des messages changs par les concepts mis en cause (le niveau instance).

structure
Diapositive n 47

comportement
Universit de NANTES Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Une collaboration est la ralisation dune opration (ou dune classe ou dun cas dutilisation) dans un contexte donn. Son comportement dfinit le rle de chaque lment impliqu. Une collaboration est reprsente par une ellipse en traits pointills.

Diapositive n 48

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations

La description de cette collaboration peut se faire grce : un diagramme dactivits (lorsque lopration correspond plutt un algorithme), un diagramme de squences ou de collaborations (lorsque cette opration implique de nombreux objets qui interagissent). Il faut complter cette description par une prsentation de la partie du diagramme de classes concernes.

Diapositive n 49

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Un diagramme de collaborations correspond un schma dans lequel acteurs et classes changent des messages en vue de satisfaire une demande dun acteur :

Diapositive n 50

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Deux objets qui collaborent le font en changeant des messages. Ceux-ci empruntent LE lien existant entre eux.

Ce lien correspond un tuyau , par lequel passent TOUS les messages changs. Le sens des changes est ajout, au dessus et/ou au dessous du lien.

Diapositive n 51

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations

Le message m1 est envoy par O1 O2.

Les messages m1 et m2 sont envoys par O1 O2.


Diapositive n 52

Le message m1 est envoy par O1 O2. Le message m2 est envoy par O2 O1.
Universit de NANTES Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Un message peut tre envoy par un objet O1 tout un ensemble :

Il est alors recommand de faire apparatre litration et/ou lenvoi parallle des messages.

Diapositive n 53

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations

* [i:= 1..15] : m1 ()

* [i:= 1..15] : m2 ()

Diapositive n 54

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Un message peut aussi tre envoy par un objet O1 lui mme :

Diapositive n 55

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Il y a plusieurs faons de nommer les objets qui sont impliqus dans des collaborations :

:C /R:C /R

un rle anonyme de la classe C un rle R de la classe C un rle R

Diapositive n 56

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations

syntaxe officielle

Il y a plusieurs faons de nommer les objets qui sont impliqus dans des collaborations :
:C /R:C /R O/R:C

un objet anonyme, instance de la classe C un objet anonyme, instance de la classe C, jouant le rle R un objet anonyme, jouant le rle R lobjet O, instance de la classe C, jouant le rle R
Universit de NANTES Alain VAILLY

Diapositive n 57

M.E.D.A.L.

3) Diagramme de collaborations

quoi a sert, alors ?

1 : * [p = comit] avis := Valeur(manuscrit)

Dans la majorit des cas, toutefois, les rles ne sont pas indiqus.

/ Relecteur : Personne / Relecteur : Personne / Relecteur : Personne

Diapositive n 58

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations

trait pais

Comme dans le diagramme de squences, un objet ayant un comportement dynamique (qui gre, par exemple, un ensemble de communications, certaines ncessitant le respect dune synchronisation) sera mis en vidence au niveau graphique :

: classe A

: classe A

Le comportement sera dcrit part, par un diagramme spcifique.

Diapositive n 59

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Comme dans le diagramme de squences, les messages peuvent tre synchrones (lmetteur attend une rponse et se met en attente jusqu rception de celle-ci), asynchrones (lmetteur sme tout vent sans se proccupe de la rponse) ou indtermins. Contrairement ce qui se passe dans le diagramme de squences, les rponses aux messages ne sont pas matrialises par des flches, mais grce au nommage des messages eux-mmes.
m () r r := m ()

Diapositive n 60

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
En gnral, un diagramme de collaborations met en jeu de nombreux messages, ce qui rend ces schmas assez difficiles lire. Plusieurs artifices de notation sont employs pour en rduire la complexit.
m3 () m1 () m2 ()

m5 () m4 ()

Les messages sont regroups par sens de circulation , par exemple tous ceux qui vont de gauche droite au dessus de la flche , tous ceux qui vont de droite gauche en dessous de la flche .
Universit de NANTES Alain VAILLY

Diapositive n 61

M.E.D.A.L.

3) Diagramme de collaborations
Le diagramme tant avant tout spatial, il est important de numroter les messages. Ceci se fait en utilisant la notation pointe :
1 1.1 1.2 premier message premier message consquence du message 1 second message consquence du message 1

La simultanit dmission se note, comme dans un diagramme de squences, par une lettre :
1.2a 1.2b a et b sont des messages mis en mme temps. Ils rsultent de la rception du message 1 et ont t prcds de lmission du message 1.1

Diapositive n 62

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
: Ens. Membres

pas beau...

2 : lm_CA := membresCA? () 1 : liste_dates (ld) : Secr taire

: F. Gestion des Membres

3 : *[i : 1..n] programmer (date, "mensuelle", "prue", v lm_CA, "_d 8) finir", 4 : ajouter (id_reu) i : Rnion u

: Ens. Rnions u

Diapositive n 63

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

ce message est mis p riodiquement.

pas beau...
: Ens. R unions : Secr t aire 3 : [C1]quoi := odj? () : F. Gestion des Membres 4.3 : *[j : 1..n] conv ocation (date, nature, quoi) 4.2 : *[j : 1..n] ad := adresse? ()

1 : lr := prues? () v

2 : meeting := *[i : 1..n] d t ails? ()

: Membre du CA

j : Membre

4.1.1 : *[i : 1..n] noter (quoi) 4.1.2 : *[i : 1..n] modif _ ("pass t at e") i : R union

Diapositive n 64

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Les messages changs entre deux objets empruntent le tuyau existant entre ces objets. Ce lien matrialis dans le diagramme de collaborations entre les objets ne correspond pas ncessairement une association entre les classes. Il sagit dun lien virtuel.

B A m1 ()

cas le plus frquent

m0 ()

Diapositive n 65

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
Il est en effet possible davoir une structure plus complexe, avec des classes intermdiaires. Il y aura alors une opration intermdiaire qui invoquera m1, celle-ci tant elle-mme appele par lobjet de la classe A.
C
mX () B m1 ()

cas alternatif n 1 (plus compliqu)


Diapositive n 66

m0 ()

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

3) Diagramme de collaborations
On peut aussi faire grer par le systme lui-mme cette association virtuelle , en utilisant le concept dassociation calcule. Lopration mX est alors inutile.

C
B A / asso m1 ()

cas alternatif n 2 (encore plus compliqu)


Diapositive n 67

m0 ()

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Rappelons, pour commencer, la dmarche dans laquelle nous nous inscrivons :

- Le systme dans lequel nous travaillons et le problme traiter sont, dans un premier temps, dcrits grce des diagrammes de cas dutilisations. Chacun deux donne lieu une description textuelle et un schma.
- Ces schmas prcisent linteraction entre les utilisateurs et le systme. Ce sont les scnarios.

Diapositive n 68

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Cette phase danalyse des besoins se termine par la constitution dun modle mtier. Celui-ci est un diagramme de classes. Il dcrit les concepts manipuls en ne prenant en compte que le point de vue de lutilisateur. Il ne contient aucun objet informatique.

Use cases Scnarios

Diagramme de classes mtier

Diapositive n 69

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


La phase suivante correspond la dfinition de la solution. Cest lanalyse. Le but atteindre est double : il faut prciser chacune des utilisations du futur systme et affiner le diagramme des classes. Pour cela, on reprend chaque scnario et on y fait apparatre les objets mtiers ncessaires. On dispose de deux outils, un plus temporel (le diagramme de squences) et un plus spatial (le diagramme de collaborations). Les deux sont utilisables.

Squences
Collaborations
Diapositive n 70

Diagramme de classes affin


Universit de NANTES Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Quil sagisse dun diagramme de collaborations ou dun diagramme de squences, la solution dveloppe est, le plus souvent, subjective. Diag. collaborations 1

Problme
UC + Scnarios Diag. collaborations 2

Comme pour un algorithme, il ny a pas une mais plusieurs solutions.

Diapositive n 71

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes

Diapositive n 72

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes

Diapositive n 73

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Il est parfaitement possible de passer dun diagramme lautre, simplement en appuyant sur un bouton. Il ne sagit dans les deux cas que (???) dun changement de reprsentation. Au pire (???), le passage se fait grossirement et lutilisateur doit rorganiser son espace de travail la main .

Diapositive n 74

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Ceci nest pas toujours aussi simple. Comment, en effet, dtecter un arc bi-orient comme celui-ci dessous, sans passer par une phase denregistrement des informations saisies et une rutilisation de la description interne ?

Diapositive n 75

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Si le passage squences collaborations est simple , celui qui part des collaborations pour tablir les squences est un peu plus compliqu. Comment, sans information extrieure, remonter la numrotation des messages ? Entre mC et mD, en effet, comment savoir que mC est trait avant mD ?

Diapositive n 76

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes

O1 : Classe A

O2 : Classe B r := mA mB ??

O3 : Classe C

Seules, la prise en compte de lordre de saisie et la numrotation des messages permettent de trancher.

mC ?? mC ??

mB ??

mD

Diapositive n 77

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Par del la subjectivit des solutions, il est possible de mettre en place, avec ces diagrammes, deux types diffrents de structuration du contrle. - Le premier est un contrle dcentralis, chaque classe recevant une partie de celui-ci :
O1 : Classe A O2 : Classe B O3 : Classe C

Diapositive n 78

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Par del la subjectivit des solutions, il est possible de mettre en place, avec ces diagrammes, deux types diffrents de structuration du contrle. - Le premier est un contrle dcentralis, chaque classe recevant une partie de celui-ci : La structure de ce type de schma est un graphe.
O2 : Classe B O3 : Classe C
Diapositive n 79

O1 : Classe A

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


- Le second type correspond un contrle centralis, une classe tant charge de piloter le traitement :
O1 : Classe A O2 : Classe B O3 : Classe C

La classe A joue le rle du contrleur du modle MVC.


Diapositive n 80

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


- Le second type correspond un contrle centralis, une classe tant charge de piloter le traitement :
O1 : Classe A O2 : Classe B O3 : Classe C

La structure de ce type de schma est un arbre.

Diapositive n 81

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Nous proposons de gnraliser ce type de contrle et de linstitutionnaliser en quelque sorte :

Diapositive n 82

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


La ligne de vie du systme, dans le scnario, est remplace par un ensemble de lignes de vie, celles des classes concernes. Une classe contrleur (que nous appellerons F. GestionDeXxx) est systmatiquement place en frontal.
Systme F.GestionDeXxx Classe A Classe B

visible.
Diapositive n 83

pas visible.
Alain VAILLY

Universit de NANTES

M.E.D.A.L.

4) Utilisation de ces diagrammes


Ces fentres FGestionDeXxx jouent un double rle. Elles sont dabord et en priorit un contrleur (le C du modle MVC). En ce sens, elles ont trs souvent un comportement dynamique, sont donc des classes actives (et sont distingues comme telles dans les schmas) et sont associes un diagramme tats-transitions ou un diagramme dactivits. Elles sont galement un afficheur (le V du modle MVC). Elles sont en effet linterface entre le systme et les utilisateurs.

La phase de conception se chargera de sparer les deux rles.

Diapositive n 84

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Nous proposons galement de faire apparatre des classes EnsDeXxx (ensemble de Xxx) pour tout ce qui concerne la question des instances :

Elles ont pour rle de tester lexistence dun objet prcis, den grer la liste ; elles sont prvenues lors dune cration, dune suppression.

Ces classes disparatront souvent lors de la phase de conception.


Diapositive n 85

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes

ajout () F.GestionDeXxx r:= existe? ()

id := crer ()

modifier ()

EnsDeYyy

Xxx ajouter (id) r : Yyy

EnsDeXxx

Diapositive n 86

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


F.GestionDeXxx Xxx EnsDeXxx EnsDeYyy

ajout ()

id := crer ()

ajouter (id)

r:= existe? ()

r : Yyy modifier ()

Diapositive n 87

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Que lon dtaille chaque scnario grce un diagramme de collaboration ou un diagramme de squences, il est une exigence quil faut avoir en tte, cest celle de la cohrence.

Il doit y avoir cohrence entre les diagrammes de collaborations, les diagrammes de squences et le diagramme de classes.

Diapositive n 88

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Chaque message dans un diagramme correspond une opration de la classe rceptrice.

B m1 ()

Diapositive n 89

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


La structure mise en place pour les changes de messages entre les classes doit se retrouver dans le diagramme de classes, directement ou indirectement.
ClasseA ClasseB ClasseC

Diapositive n 90

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


La structure mise en place pour les changes de messages entre les classes doit se retrouver dans le diagramme de classes, directement ou indirectement.
ClasseA ClasseB ClasseC

Diapositive n 91

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes

Seules les classes appartenant au diagramme de classes sont utilisables dans un diagramme de collaborations et dans un diagramme de squences. Toutes les classes apparaissant dans un diagramme de collaborations ou dans un diagramme de squences appartiennent obligatoirement au diagramme de classes, y compris les classes FGestionDeXxx et EnsDeXxx.

Diapositive n 92

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


: Classe A Et si lon parlait de cycle de vie des objets ?

-soit lobjet est cr lors de la phase de mise en place du systme ; -soit lobjet est cr par un autre objet, dynamiquement, lors de la rception dun message ad-hoc. Ceci se voit alors sur le schma :

: Classe C
ed := Crer (auteur, titre, date)

Diapositive n 93

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Cet objet nouvellement cr va ensuite vivre normalement , cest--dire quil va communiquer avec dautres objets en leur adressant des messages, en rpondant aux messages reus... : Classe A : Classe B
DemandeValidation (auteur, titre)

Afficher (validation en cours)


^(valid, auteur, titre)

Diapositive n 94

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

4) Utilisation de ces diagrammes


Il finira, un jour, peut-tre, par tre dtruit (ce qui est diffrent dinactif, un objet inactif pouvant toujours tre ractiv par un message !). Ceci se fera, l encore, suite la rception dun message : : Classe A
Suppression ()

: Classe B

X
sa ligne de vie sinterrompt !
Diapositive n 95

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

5) Conclusion
Diagramme de squences et diagramme de collaborations sont deux outils de la phase danalyse. Ils ont pour rle de mettre en vidence la structure statique du systme (le diagramme de classes). Lun (le premier) est temporel. Il exprime les interactions entre les classes via des changes de messages. Une classe enverra un message une autre classe si elle la connat, si elle est relie elle. Cette liaison sera instancie, dans le diagramme de classes, par une association.

Diapositive n 96

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

5) Conclusion
Lautre (le second) est spatial. Il exprime, lui aussi, les interactions entre les classes, via des changes de messages.
Les deux sont concurrents, en ce sens quil nest pas question de dfinir les deux. Larchitecte logiciel dispose de deux outils ; lui den choisir un. Quelque soit son choix, le travail est le mme (mettre en vidence la structure de classes) et lexigence de qualit (tous ces schmas doivent tre cohrents) demeure la mme.

Diapositive n 97

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

5) Conclusion

faut-il choisir ? lequel des deux ?

Le point de dpart est (dans les deux cas) les scnarios.

Use cases Scnarios


Squences Collaborations

Diagramme des classes


90 % du travail accompli

Diapositive n 98

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

5) Conclusion

faut-il choisir ? lequel des deux ?

PERSONNELLEMENT, je prfre le premier (ie. les diagrammes de squences) au second. Ce type de schma est plus facile faire, il est plus lisible et a des applications immdiates au niveau de limplmentation (cest une bonne bauche de programme).

Squences

Collaborations

Cest un point de vue personnel, donc discutable !

Diapositive n 99

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

Bibliographie (sommaire)
P. ANDRE, A. VAILLY, Spcifications des logiciels ; Deux exemples de pratiques rcentes : Z et UML , Editions Ellipses, juillet 2001, ISBN 2-7298-0774-8

la rfrence :-)

sont requis pour visionner compress) dcompresseur TIFF QuickTime et un (non cette image.

Pour complter la formation... ;-)))

P-A. MULLER, N. GAERTNER, Modlisation objet avec UML , Editions EYROLLES, 2003, ISBN 2-212-11397-8

Diapositive n 100

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

Webographie (sommaire)
Sil ny avait quun seul site Internet consulter rgulirement
QuickTime et u n dcompresseur TIFF (non compress) sont requis pour visio nner cette image.

http://conception.developpez.com/

Diapositive n 101

Universit de NANTES

Alain VAILLY

M.E.D.A.L.

Fin

Diapositive n 102

Universit de NANTES

Alain VAILLY

You might also like