You are on page 1of 53

Diagrammes dactivits

1
Les diagrammes dactivits permettent de modliser
les traitements (adapts la modlisation des flots de
contrle et des flots de donnes).

Permettent de reprsenter graphiquement le


comportement dune mthode ou lexcution dun
scnario de cas dutilisation.

La reprsentation des diagrammes dactivits est


proche de celle des diagrammes dtats-transitions, mais
leur smantique diffre.

2
Les diagrammes dtats-transitions : adapts aux
systmes ractifs et chaque diagramme est relatif une
classe (ou objet). Les diagrammes dactivits ne sont pas
rattachs une classe particulire. On peut attacher un
diagramme dactivits nimporte quel lment de
modlisation afin de visualiser ou de dcrire son
comportement.

Diffrence principale entre diagramme


dinteraction et diagramme dactivits est que les
premiers mettent laccent sur le flot de contrle dun
objet lautre; les seconds modlisent sur le flot de
contrle entre activits.
3
Les diagrammes dactivit ont un pouvoir
dexpression proches des langages de programmation
objet. Par exemple, la spcification des actions de base
comme laffectation, les structures conditionnelles, les
boucles, ainsi que des instructions particulires
spcifiques la programmation objet (appel de
mthodes, exception,).
Les diagrammes dactivits peuvent tre bien
adapts pour la phase de spcifications dtailles des
traitements.

4
Terminologie

5
Action, activit et Transition = lments principaux
dun diagramme dactivit.

- Action (action) = plus petit traitement qui peut tre


exprim en UML, en agissant sur le systme. Une action
peut tre rapproche de la notion dinstruction
lmentaire dun langage de programmation (comme
Java).

Par exemple : une affectation de valeur un attribut, un


accs la valeur dune proprit, un calcul arithmtique
simple, lmission ou rception dun signal ;

6
Quelques types dactions utilises en UML
Action appeler (call operation) : invocation dune
mthode sur un objet (de manire synchrone ou
asynchrone).
Lorsque laction est excute, les paramtres sont
transmis lobjet appel.

appel asynchrone : laction est termine et les


ventuelles valeurs de retour seront ignores.

appel synchrone : lappelant est bloqu pendant


lexcution de laction jusqu la fin dexcution et, le
cas chant, les valeurs de retour pourront tre
rceptionnes. 7
Action envoyer (send) : cre un message et le transmet
un objet appel.
Cest un appel asynchrone (ne bloque pas lobjet
appelant). Bien adapt lenvoi de signaux (send signal).

Action crer (create) ou dtruire (destroy) : permet


dinstancier (resp. de dtruire) un objet.

8
Activit (activity) : dfinit un comportement
reprsent par une squence dactions. Le flot
dexcution est modlis par des nuds relis par des
arcs (les transitions).

Une activit est un comportement (behavior) et


peuvent lui tre associs des paramtres.

9
Diffrents types de nuds dactivits

Un nud dactivit permet de reprsenter les tapes


le long du flot dune activit. Il existe trois types :

1. les nuds dexcution (executable node)

2. les nuds dobjets (object node)

3. les nuds de contrle (control nodess).

10
Nuds dactivit (activity node) et nuds de
contrle, graphiquement :

11
Nuds de contrle

12
nud de dcision ou de fusion,

nud de bifurcation (fourche)


ou dunion (synhronisation)

nud initial

nud final

nud final de flot


13
Nud de dcision (decision node) = un nud de contrle
qui permet deffectuer un choix entre plusieurs flots sortants.
- Un arc entrant et plusieurs arcs sortants. Ces derniers sont
gnralement dots de conditions, appeles gardes.
Lutilisation dune garde [else] est recommande aprs un
nud de dcision. Dans le cas o plusieurs arcs sont
franchissables (i.e. plusieurs conditions de garde sont
vraies), seul lun dentre eux est retenu et ce choix est non
dterministe.
Graphiquement :

14
Nud de fusion (merge node) = nud de contrle qui
rassemble plusieurs flots entrants en un seul flot sortant.
Il nest pas utilis pour synchroniser des flots concurrents
(rle du nud dunion), mais pour choisir un flot parmi
plusieurs.
Graphiquement : idem quun nud de dcision :

15
Nud de bifurcation ou de dbranchement (fork
node) = nud de contrle qui spare un flot en
plusieurs flots concurrents. : il possde un arc entrant
et plusieurs arcs sortants.
Graphiquement :

16
Nud dunion ou de jointure (join node) = nud de
contrle qui synchronise plusieurs flots entrants : il possde
plusieurs arcs entrants et un seul arc sortant. Lorsque tous
les arcs entrants sont activs, larc sortant es activ.
Graphiquement, reprsent
comme un nud de bifurcation :

Remarque
Il est possible de fusionner un nud de bifurcation et un
nud dunion : trait plein avec plusieurs arcs entrants et
plusieurs arcs sortants :

17
Nud initial = nud de contrle partir duquel le flot
dbute lorsque lactivit est invoque.
Une activit peut avoir plusieurs nuds initiaux. Un nud
initial possde un arc sortant et pas darc entrant.

Nud final = un nud de contrle possdant un ou


plusieurs arcs entrants et aucun arc sortant.
2 sortes :

18
Nud de fin dactivit : lexcution de lactivit
enveloppante sachve et tout nud ou flot actif au sein de
lactivit enveloppante est abandonn.
Si lactivit a t invoque par un appel synchrone, un
message (reply) contenant les valeurs des paramtres de
sortie est retourn lappelant.

Nud de fin de flot


Lorsquun flot dexcution atteint ce nud, il se termine,
mais ninflue pas sur sur les autres flots actifs de lactivit
enveloppante.

19
Nud initial

Desserrer frein
main

Nud de bifurcation
(fork)

Appuyer sur pdale


dembrayage Passer 1re vitesse

Nud dunion
(jointure) Relcher pdale
dembrayage

Nud final 20
20
synchronisations Nud initial

Rceptionner
marchandise

Nud de bifurcation
(fork)

Contrler qualit Contrler quantit

Nud dunion
(jointure)

enregistrer

Nud final 21
Exemple de branchement conditionnel IF THEN ELSE
(Nud de dcision)

DemanderTarif

Branchement conditionnel
Garde = expression conditionnelle

[sommeDisp < tarif] [ELSE]

PayerLePrix DemanderDlai

22
Schmas quivalents : itration

rceptionnerArticle rceptionnerArticle

* (pour chaque Article)

vrifierArticle

vrifierArticle

commanderArticle

commanderArticle [il reste des articles]

[il na plus darticles]

23
Nud dexcution
= nud dactivit quon peut excuter (i.e. une activit). Il
gre galement les exceptions.

nud daction = nud dexcution = lunit


fondamentale de fonctionnalit excutable dans une
activit.
Excution dune action = transformation ou calcul dans
le systme modlis. Les actions sont gnralement lies
des oprations qui sont directement invoques. Un
nud daction doit avoir au moins un arc entrant.
Graphiquement :
Enter un
code

24
Nud dobjets

Nud dobjet (object node) : on a vu la modlisation


des flot de contrle dans un diagramme dactivits. Les
flots de donnes sont un lment essentiel des
traitements dans un diagramme dactivits :
reprsentent les arguments des oprations, les valeurs de
retour, par exemple.

Un nud dobjet permet de dfinir un flot dobjet (les


donnes) dans un diagramme dactivits. Ce nud
reprsente lexistence dun objet gnr par une action
dans une activit et utilis par dautres actions.
25
- Les Pins dentre ou de sortie : les nuds dobjets sont pour
spcifier les valeurs passes en argument une activit et ses
valeurs de retour. On les appelle les pins (dentre ou de
sortie).

- Lactivit ne peut dbuter que si lon affecte une valeur aux


diffrents pins dentre. Quand lactivit se termine, une
valeur est chacun des pins de sortie.

- Le passage des paramtres se fair par valeurs, c--d que la


modification des valeurs dentre au cours du traitement de
laction est visible seulement lintrieur de lactivit.

- Graphiquement :
26
Les transitions
Une transition matrialise le passage dune activit vers une
autre. Graphiquement, les transitions sont reprsentes par
des flches en traits pleins qui lient les activits entre elles.

Une transition est dclenche ds que lactivit source est


termine et provoque immdiatement le dbut de la
prochaine activit.

Les transitions sont franchies de manire atomique (dure


ngligeable), ce qui nest pas le cas des activits.

27
Graphiquement :

Transition automatique
Activit-1 Activit-2

Exemple :

tablirFacture envoyerFacture

28
Exemple de diagramme dactivits : utiliser un DAB
insererCarte

saisirCode saisirMontant

[codeInvalide et essais >3] [codeInvalide et essais<4]

[codeValide]

choisirOperation choisirCompteAcrediter

[retrait]
[depot]

saisirMontant vrifierProvisionCompte
afficherLesOffres

choisirCompteAcrediter
[nonAutoris]

insererCheque/Liquide
[autoris]

distribuerBillets

restituerCarte

29
client Couloirs dactivits (swimlanes) fournisseur
dpart

commanderProduit
commande
gererCommande
[passe]

recevoirProduit expedierProduit
Etat de lobjet

Flot dobjets

commande

reglerFacture encaisserFacture
[regle]

Couloirs dactivits ou swimlanes :


fin
Ils reprsentent les acteurs qui
excutent les activits.
30
client serviceComptabilit serviceLivraison

passerCommande verifierDisponibilit
Autre exemple
GrerCommande
consulterTarif
evaluerDevis

devis tablirDevis
[modifier]
[valider]

[annuler]

Facture
[mise] tablirFacture

prparerCommande

rglerFacture
Facture
[rgle] validePaiement

clturerDossier expdierCommande

31
Service comptable client

Exemple Simplifi:
Swimlanes (couloirs dactivits)

enregisterCommande

envoyerFacture

payerFacture

enregisterPaiement

32
Nud daction : Reprsentation de
dtecterArriveTrain
certaines actions de
Accept event
communication
qui ont une notation
spciale
faireClignoterFeux Send signal

Accept time event


Attendre 5 sec

abaisserBarrire

Partie dun diagramme dactivits


33
Rfrences : cours de

L. Audibert

M. Blay-Fornarino

Ch. Gnao

S. Grane

Wikipdia

34
35
Diagramme dtats-transitions
(diagramme dtats)

36
Un diagramme tats-transitions est un automate tats finis, qui dcrit les
diffrents tats par lesquels passe un objet (instance quelconque dune
classe) en rponse des vnements

permet de dcrire les changements d'tats d'un objet, en raction aux


interactions avec d'autres objets ou avec des acteurs.

reprsente les interactions asynchrones dans le systme.

dtermine les tats stables par lesquels passe le systme : parmi beaucoup
dtats caractrisant un systme, seuls quelques uns sont significatifs pour
le problme donn

caractristique dun tat : sa dure et sa stabilit, il reprsente une conjonction


des valeurs des attributs d'un objet.

une transition reprsente le passage d'un tat vers un autre.

37
Un objet est caractris par un ensemble dattributs, qui changent
de valeur au cours du temps.

Les valeurs des attributs = ltat de lobjet

CREATE DESTROY

tat-1 tat-n

tat initial tat final

38
Une transition est dclenche par un vnement :
l'arrive d'un vnement conditionne la transition
(la transition est automatique lorsqu'on ne spcifie pas
l'vnement qui la dclenche)

On peut conditionner le franchissement dune transition,


l'aide de gardes, qui sont des expressions boolennes,
exprimes en langage naturel et encadres par des
crochets.

39
Graphiquement : Etat-Transition-vnement

CREATE DESTROY
vnement
tat-i tat-j

tat final

40
Evnement/action

On peut associer une action un vnement qui va dclenche


une transition :

La syntaxe est la suivante :

Evnement / Action

A larrive dun vnement, laction est dclenche

41
Les 3 notions sur lesquelles est bas un
diagramme dtats :

1. tat dun objet (situation dun objet dfinie par


ses proprits)

2. vnement

3. comportement des objets (leurs actions et leurs


activits).

42
Rmq : la dynamique du systme est modlise par plusieurs
diagrammes dtats-transitions.

On construit un diagramme dtats-transitions pour chaque


classe (ou classeur, en gnral), qui possde un comportement
dynamique important.
Un diagramme dtats-transitions ne peut tre associ qu
une seule classe.
tat initial ( sa cration, un objet entre dans un pseudo-tat : ltat initial)
(Comme dans un diagramme dactivits)

tat final est un pseudo-tat qui indique la fin dun diagramme dtats.
(Comme dans un diagramme dactivits)

43
vnement
Un vnement se produit pendant lexcution du systme modlis. Les
diagrammes dtats-transitions permettent de spcifier les ractions dun
systme des vnements discrets (comme les signaux). Un vnement a une
dure ngligeable.
Quand un vnement est reu, une transition peut tre dclenche et faire passer
lobjet dans un autre tat.
Plusieurs types dvnements explicites et implicites : signal, appel de
mthode, <<signal>>
Interruption dE/S

1. vnement Signal : + Periph : int


Un signal matrialise une communication
asynchrone sens unique entre deux
objets.
<<signal>> <<signal>>
Un mme objet peut tre la fois souris
clavier
expditeur et destinataire. + abs : int
+ ord : int + caract : int
Syntaxe :
<nom_evenement> ( [ <param1> : <type> [; <param2> : <type> ... ] ] ) 44
2. vnement dappel : call event

Il reprsente la rception dun appel dune opration (mthode) par un objet.


Paramtres de lopration = paramtres de vnement appelant.
Syntaxe dun vnement dappel = syntaxe dun signal.
Les vnements appelants sont des mthodes dclares au niveau du diagramme de
classes.

Les vnements de cration et de destruction dobjets (create et destroy)


sont deux cas spciaux dvnements dappel.
La cration dun objet dbute par lenvoi dun vnement de cration
(create) sa classe. Lobjet commence exister dans son tat initial et finit
son arrive dans ltat final (sa disparition, destroy).

3. vnement de changement : change

gnr quand une condition (sur des valeurs dattributs) devient VRAIE.
syntaxe : when ( <condition_boolenne> )

45
4. vnement temporel : after ou when

gnrs par le passage du temps,


Spcifis de manire absolue (date prcise), ou relative (dure).
syntaxe vnement temporel spcifi de manire relative : after ( <dure> )

Syntaxe vnement temporel spcifi de manire absolue : when ( date = <date> )

46
Transition
Elle dfinit la rponse dun objet loccurrence dun vnement.
Souvent, elle relie deux tats.
Elle indique quun objet dans un tat E1 peut entrer dans ltat E2 et excuter certaines
activits, si un vnement dclencheur se produit et que la condition de garde est
vrifie.
Syntaxe : [ <vnement> ][ '[' <garde> ']' ] [ '/' <activit> ]

o garde est une expression boolenne sur les attributs de lobjet ou sur les
paramtres des vnements dclencheurs

Lorsquune transition se dclenche (tir dune transition), son effet (lactivit


spcifie aprs / ) sexcute. Elle peut tre :

une opration simple (comme une assignation)


lenvoi dun signal ;
lappel dune opration ;
une liste dactivits, etc.

47
Transition interne

Sont dclenches par des rgles similaires celles des transitions externe,
mais une transition interne ne possde pas dtat cible et ltat reste le mme
la suite du dclenchement.
Syntaxe = la mme que celle dune transition classique. Mais, les transitions
internes ne sont pas reprsentes par des arcs, elles sont spcifies dans un
compartiment. Exemple :

SaisieMotDePasse

entry / set echo Invisible


exit / set echo normal
character / traiterCaractre S
help / afficherAide
clear / remise zro chrono et password aprs 30 sec / exit

48
Les transitions internes ont des noms prdfinis : entry, exit, do et include :

entry : permet de spcifier une activit qui sexcute quand on entre dans ltat.

exit : permet de spcifier une activit qui sexcute quand on sort de ltat.

do : commence ds que lactivit entry est termine. Si une transition se


dclenche pendant que lactivit do est en cours, cette dernire est
interrompue et lactivit exit de ltat sexcute.

include : permet dinvoquer un sous-diagramme dtats-transitions.

49
Point de jonction

Sans point de jonction

Avec point de jonction


50
Point de dcision (comme dans un diagramme dactivits)
go/testerEntre
[valide]

saisirFormulaire demanderConfirmation

[else]

afficherProblme
tat historique : est un pseudo-tat
qui mmorise le dernier sous-tat actif dun
tat composite.
Graphiquement : cercle contenant un H.
H* : pour reprsenter un tat historique
imbriqu.
reprise
H* after(3 mn)
lavage

after(5 mn) attente


after(5 mn) lustrage

schage

arretDurgence after(3 mn) arretDurgence


51
tat composite = tat dcompos en rgions contenant chacune un ou
plusieurs sous-tat(s).

Notation abrge : pour indiquer quun tat est composite et


que sa dfinition est donne sur un autre diagramme.

Associer un fournisseur aux


produits fournis

52
53

You might also like