Académique Documents
Professionnel Documents
Culture Documents
Djamal Benslimane
diagramme de collaboration
diagramme dtats-transitions diagramme dactivits
Diagramme de squence
Scnarios Caractristiques Elments graphiques Concepts et notations utiliss
lments graphiques
Les objets interagissant dans un scnario. Reprsentation graphique de la ligne de vie de chaque objet et de ses activations. Les diffrents types de messages envoys (simple, synchrone, asynchrone) Le contrle (branchement conditionnel et itration, cration & destruction dobjets, dlais transmission et contraintes temporelles, etc.)
10
: C2
Objet 3
4: message
9 : message asynchrone
temps
11
Les messages
Un message synchrone: lmetteur est bloqu et attend que lappel ait fini de traiter le message (message 1) message asynchrone: lmetteur nest pas bloqu et peut continuer son excution (message 6) Un message rflexif indique souvent un point dentre dans une activit de plus bas niveau qui sexerce entre objets contenus par lobjet composite (message 7) Un message dont les dlais de transmission sont non ngligeables est matrialis par une flche oblique (message 4)
12
Les messages
Messages conditionns : flches prenant leur origine au mme instant avec des conditions mutuellement exclusives (messages 1 et 6) Possibilit de complments dinformations sous forme de texte libre ou de pseudo-code ct du diagramme Priode dactivit : temps pendant lequel un objet effectue une action, directement ou par lintermdiaire dun autre objet sous-traitant Des contraintes temporelles peuvent tre exprimes en graduant la ligne de vie (pour dire par exemple: 10 secondes plus tard )
13
Exemple 1 (simplifi)
: Appelant dcroche tonalit numrotation indication de sonnerie sonnerie dcroche all : Ligne tlphonique : Appel
14
Exemple 2
eMB:MembreBiblio unMembre :EmprunteurDeLivre
1: emprunter(exemplaire)
exp:Exemplaire
leLivre: Livre
Message rcursif
1.1: okPourEmprunter()
Ligne de vie
{B-A<8ms}
activation
15
Modes dinteraction
Mode dinteraction procdural (i.e. synchrone) Au plus un objet dtient le contrle la fois. Un objet obtient le contrle quand il reoit un message(i.e. on invoque une de ses mthodes). Ce moment dtermine le dbut de son activation. Un objet rend le contrle son destinateur lorsquil lui renvoie sa rponse. Ce moment dtermine la fin de son activation. Lorsquun objet en activation a le contrle, il peut :
faire des calculs, ou envoyer des messages: dans ce cas, lobjet demeure en activation mais cde son tour le contrle son destinataire. Il ne peut rien faire jusqu ce quil reoive la rponse de son destinataire (message synchrone ou dit bloquant ).
16
Modes dinteraction
Mode dinteraction procdural Les objets sont dits passif , car on doit leur envoyer un message pour dclencher leur activation. Un seul fil dexcution. Dans ce mode, seul un acteur peut envoyer un message ou faire des calculs sans lintervention de qui que ce soit. Son activation est constante
17
Modes dinteraction
Mode dinteraction concurrent
Certains objets disposent dun propre fil dexcution. Il ont leur propre contrle et leur activation est constante. Ces objets sont dits actifs, car il peuvent faire des calculs et envoyer des messages sans lintervention de qui que ce soit. Les objets actifs peuvent envoyer deux types de messages :
synchrones: ils attendent la rponse de leur destinataire avant de poursuivre asynchrones: ils poursuivent leurs activits sans attendre la rponse leur messageCelle-ci leur sera signale.
Notation utilise
Itration
On ajoute une clause ditration (introduite par un *) ct du message pour spcifier le nombre ditrations ou linvariant de litration: Exemples: *[ i:= 1.. 10] Le message est envoy 10 fois *[ x< 10] Le message est envoy de faon rpte jusqu ce que x soit plus grand ou gal 10. *[ item not found] Le message est envoye de faon rpte jusqu ce que litem soit trouv. Ne pas rpter la clause ditration chez le destinataire (elle est implicite) moins de vouloir une boucle imbrique.
19
Notation utilise
Interactions concurrentes
Branchement: Lorsque les messages nont pas de garde mutuellement exclusive, on en dduit quils sont concurrents.
20
Strotype en UML
Ce sont des concepts fondamentaux d'UML (des MOTs-CLEFS), tels que :
acteur, package, contrainte, lien de dpendance <<include>>, package <<layer>> (couche logicielle), le package << design pattern>> du modle logique
(modles de conception : modle Archiveur, modle Traceur, modle Vrificateurs de cohrence, etc)
21
message << destroy>> indique que l'objet metteur dtruit une instance de la classe laquelle le message est adress ( la rception du message)
22
24
Description :
Le rpartiteur, pralablement authentifi, prcise la nature de la mission crer. Comme c'est une mission de traction, il doit prciser l'agence principale de destination.
25
un vhicule
(celui affect : "vhiculeAffect : Vhicule")
27
28
estimerPoids()
Description :
le rpartiteur tablit la nature de la mission quil veut crer (ici enlvement) il affecte une premire commande la mission
30
32
Diagramme de collaboration
Dfinition Partie Statique Elments dinteraction Diagramme de collaboration : syntaxe
user 1
contrleur ascenseur
ascenseur
bouton ascenseur
35
bouton tage
Interaction
Quest-ce qui compose une interaction ?
les arguments, les variables locales cres pendant l'excution, les liens qui existent entre les objets qui participent l'interaction.
2 : activer () : moteur 1 : envoyer (ordre lancement) : rgulateur signal
36
: ventilateur
Les objets actifs : ceux qui possdent le contrle de l'interaction dcrite. Ils activent les objets passifs le temps d'une opration, puis reprennent le contrle.
2 : Ecrire (doc1) : Imprimante : Scanner
37
Diag. de collaboration
Figurent galement :
Les objets et liens crs ou dtruits droulement. Ils portent alors les contraintes
pendant
le
Les objets s'changent des messages. Les messages sont numrots pour indiquer l'ordre des envois. Les messages :
dclenche une action chez l'objet destinataire peuvent tre synchrones ou asynchrones
38
Toto:acteur1
unC : ClasseC
3: message3
user 1
ton as cense u
r>
: contrleur ascenseur
: ascenseur
: bouton ascenseur
40
: bouton tage
1b[non test1]:msg2()
1b.1:msg4()
: ClasseE
6: affecter(nouvelleMT )
vehiculeAffect : Vehicule
nouvelleMT : MissionTraction
9: <<create>>
{new} nouvelleFR : FeuilleDeRoute
: Rpartiteur
5: tonnageEstime
4: poidsEstime
3: * affecter(nouvelleMT )
cmdAffectes : Commande
42
9: deaffecter( )
4: estimerPoids( )
5: poidsEstime
cmdAffectee : Commande : Rpartiteur
3: affecter(nouvelleME )
43
Collaboration : objectifs et
limites
En phase exploratoire pour dcouvrir de nouveaux objets oublis, par la description de scnarios pousss Si trop chargs, deviennent vite illisibles Vite trop nombreux Conseil:
regrouper plusieurs scnarios sur un diagramme sils sont des variantes proches mme
Enchaner les scnarios comme pour les cas dutilisation (include, extend)
44
Comparatif
Diagrammes de squence :
Stend horizontalement ! => limite Lenchanement des messages est facile lire
Diagrammes de collaboration :
Stend horizontalement et verticalement
=> pas de limite
Bien adapt aux branchements complexes, aux itrations et aux comportements concurrents Lenchanement des messages est beaucoup plus difficile lire :
Squences de messages pas claires Notation plus complexe
45