Sunteți pe pagina 1din 16

Diagrame de activitate

Introducere

Diagramele de activitate descriu activităţile şi responsabilităţile elementelor


care alcătuiesc sistemul.

O diagramă de activitate reprezintă interacţiunile dintre activităţi, adică


fluxul de control al trecerii de la o activitate la alta.

Spre deosebire de diagrama de stare înfăţişează stările unui obiect şi


tranziţiile dintre ele, diagrama de activitate evidenţiază activităţile şi
tranziţiile dintre ele.

Diagramele de activitate pot fi folosite în următoarele scopuri:


- pentru a modela comportamentul intern al unei metode (implementarea
unei operaţii). Acesta este şi cel mai folosit caz când apelăm la acest tip de
diagramă;
- pentru analiza interacţiunii activităţilor unui caz de utilizare;
- pentru a ilustra modul de organizare a mai multor cazuri de utilizare şi
legăturile dintre acestea.
Elementele unei diagrame de activităţi
O diagramă de activitate este o extensie a unei diagrame de stări.
Aceasta înseamnă că o diagramă de activitate va avea toate
caracteristicile unei diagrame de stare, plus unele noi.

Elementele componente ale unei diagrame de activitate sunt


următoarele:
1) stări de acţiune
2) tranziţii
3) bloc de decizii
4) linii de sincronizare
5) culoare
1) Stări de acţiune şi stări de activitate

Prin activitate înţelegem o prelucrare (procesare) neatomică, în curs de


desfăşurare, în cadrul unei maşini de stare. Activităţile se pot descompune
şi nu sunt atomice, în sensul că pot fi întrerupte. Activităţile sunt alcătuite
din secvenţe de acţiuni, care sunt prelucrări atomice şi care au ca rezultat
schimbarea stării sau returnarea unei valori.
Există trei tipuri de acţiuni, şi anume: simple, iniţiale şi finale. O activitate
poate fi alcătuită dintr-o acţiune iniţială, una sau mai multe acţiuni simple şi
finale.

Reprezentare Activitate

O acţiune iniţială reprezintă prima acţiune într-o diagramă de stare. În UML,


o acţiune iniţială se reprezintă ca şi o stare iniţială, adică printr-un cerc plin.

O acţiune finală reprezintă ultima acţiune dintr-o diagramă de activitate. În


UML, o acţiune finală se reprezintă ca şi o stare finală, prin două cercuri
mici concentrice, din care cel interior este plin.
2) Tranziţii

Tranziţiile sunt legăturile dintre acţiuni şi se reprezintă ca şi tranziţiile din


diagramele de stare, printr-o săgeată îndreptată spre acţiunea următoare.
În diagramele de activitate, tranziţiile nu sunt etichetate, deoarece ele
reprezintă încheierea activităţii respective. Tranziţiile pot, însă, să fie
etichetate cu condiţii, reprezentate printr-o afirmaţie scrisă între
paranteze drepte, care restricţionează tranziţia spre acţiunea următoare.

Există două tipuri de fluxuri de tranziţii:


a) fluxul de control;
b) fluxul obiectelor.
a) Fluxul de control al tranziţiilor

Fluxul de control al tranziţiilor indică ordinea acţiunilor în secvenţă. Fluxul


tranziţiilor arată cum sunt ordonate acţiunile în secvenţă. Într-o diagramă de
activitate, activităţile sunt legate prin tranziţii automate, spre deosebire de
diagramele de stare, unde tranziţiile între stări sunt declanşate de
evenimente.

Atunci când o acţiune este încheiată, se va executa acţiunea specifică


ieşirii, dacă există, după care tranziţia este declanşată către următoarea
acţiune sau activitate. Urmează executarea acţiunii specifice intrării în noua
stare, dacă există şi executarea acţiunii sau a activităţii asociate noii stări,
etc.

Exemplu. Pentru un anumit sistem, aflat în starea de generare a


rapoartelor, avem următoarele activităţi:
- iniţială
- stabilirea criteriilor raportului
- generarea raportului
- tipărirea raportului
- finală
b) Fluxul tranziţiilor obiectelor
O acţiune poate produce, modifica sau folosi obiecte. Aceste obiecte de
intrare sau de ieşire sunt conectate de acţiuni prin relaţii de dependenţă,
adică printr-o linie punctată între acţiune şi obiect.
Pentru o acţiune care foloseşte un obiect de intrare, tranziţia se reprezintă
printr-o linie punctată cu o săgeată îndreptată spre acţiune.
Pentru o acţiune care actualizează sau produce un obiect, tranziţia este
reprezentată printr-o săgeată punctată, de la acţiune la obiect.

Fig. Fluxul de control şi fluxul tranziţiei obiectelor


Fluxul de control al tranziţiilor se poate omite atunci când există un flux al
obiectelor care să indice ordinea acţiunilor, adică atunci când o acţiune
creează un obiect de ieşire, care să fie obiect de intrare pentru următoarea
acţiune din secvenţă.
3) Bloc de decizii

O decizie reprezintă selectarea unui anumit flux de control al tranziţiilor,


din mai multe, în funcţie de o condiţie de gardă.

Într-o diagramă de activităţi, blocul deciziei este reprezentat printr-un


romb mic, în care intră o singură tranziţie, şi pot ieşi două sau mai multe
tranziţii.

Fiecare tranziţie de ieşire, este etichetată cu o condiţie de gardă, scrisă


între paranteze drepte, şi care indică condiţia care trebuie îndeplinită
pentru ca tranziţia să se producă. În cazul în care lipsesc condiţiile de
gardă, acestea sunt considerate, implicit, ca fiind false.
Exemplu. Să calculăm S= 0!+1!+2!+……+n! pentru n ∈ N, dat.
4) Linii de sincronizare

Concurenţa (concurrency) implică faptul că mai multe tranziţii se petrec


simultan. În UML, sincronizarea între fluxurile de control se reprezintă cu
ajutorul barelor de sincronizare.

O bară de sincronizare permite îmbinarea (join) şi bifurcarea (fork)


ramificaţiilor paralele în interiorul unui fir de execuţie al unui caz de utilizare
sau al unei metode.

Tranziţiile care pleacă dintr-o bază de sincronizare se declanşează simultan.


Dacă mai multe tranziţii intră într-o bază de sincronizare, acestea trebuie să
se întâmple, înainte ca bara să fie trecută de una sau mai multe tranziţii de
ieşire din bara de sincronizare. Bara de sincronizare se reprezintă printr-o
linie îngroşată.

Dacă o bară are o singură tranziţie de intrare şi două sau mai multe de
ieşire, aceasta indică faptul că toate tranziţiile de ieşire se petrec o dată cu
tranziţia de intrare. Acest flux se numeşte splitting control.

Dacă o bară are mai multe intrări şi o singură ieşire, aceasta indică faptul că
toate intrările trebuie să se producă înainte să se producă tranziţia de ieşire.
Acest flux se numeşte synchronization control.
5) Culoare

Deoarece o diagramă de activitate nu oferă indicii referitoare la elementul


care este responsabil pentru fiecare activitate, UML compensează această
slăbiciune, oferind tehnica culoarelor (swimlanes). Aceasta constă în
împărţirea unei diagrame de activitate în zone paralele, numite culoare de
activităţi (aşa cum o piscină este împărţită în culoare de nataţie) pentru a
evidenţia care element este responsabil pentru acţiunea din interiorul
fiecărei zone.

Fiecare responsabilitate este repartizată unei clase sau unei organizaţii şi


fiecare activitate este alocată unui culoar. Poziţia relativă a culoarelor nu
are nici o semnificaţie, tranziţiile fiind libere să traverseze culoarele la care
nu se referă.

În UML, culoarele se reprezintă prin regiuni verticale, paralele, separate prin


linii solide. Fiecare culoar are, în partea de sus, o etichetă care indică
elementul responsabil pentru acea activitate (o clasă, un actor sau un
departament al unei organizaţii).
Exemplu.
Semnale
UML oferă două simboluri pentru semnale.
Primul simbol mesaj indică recepţionarea unui semnal. Numele semnalului
este trecut într-un pentagon concav (un dreptunghi cu o latură în formă de
triunghi concav). Recepţionarea unui semnal este reprezentată într-o
diagramă de activitate, printr-o relaţie de dependenţă de la obiectul care
trimite semnalul, la simbolul semnalului, urmată de o tranziţie de la
simbolul semnalului la următoarea acţiune.

Al doilea simbol semnal indică trimiterea unui semnal. Numele semnalului


este trecut într-un pentagon convex. Trimiterea unui semnal este
reprezentată într-o diagramă de activitate, printr-o relaţie de dependenţă de
la simbolul semnalului spre obiectul care primeşte semnalul.
Exemplu de diagramă de activitate
Pentru exemplul discutat
anterior (vezi figura alăturată)
se adugă cerinţele:
- după realizarea unui raport,
se poate cere execuţia altuia;
- simultan cu generarea unui
raport se poate genera şi altă
operaţie (interogare,
actualizare, etc);
- un raport se listează la
imprimantă şi interogarea la
monitor;
- un raport şi o interogare pot
fi listate numai dacă
generarea a fost făcută cu
succes;
- se trimit semnale către
imprimantă şi monitor şi se
primesc semnale la
generatoarele de rapoarte şi
de interogări.

S-ar putea să vă placă și