Sunteți pe pagina 1din 33

Diagrama de Modelarea

activitate funcțională
Cuprins

▪ Introducere
▪ Activități
▪ Acțiuni
▪ Fluxuri
▪ Flux de control
▪ Flux de obiecte
▪ Nod inițial, nod final al activității, nod final al fluxului
▪ Căi alternative
▪ Căi concurente
▪ Noduri obiect
▪ Acțiuni bazate pe evenimente și acțiuni care apelează comportament
▪ Partiții
▪ Tratarea excepțiilor
Introducere

▪ Scopul diagramei de activitate: modelarea aspectelor care țin de


procesarea procedurală.
▪ Ajută la reprezentarea vizuală a secvenţelor de acţiuni prin care
se doreşte obţinerea unui rezultat.
▪ Se poate realiza pentru unul sau mai multe cazuri de utilizare
sau pentru descrierea unor operaţii complexe.
▪ Nu se construieşte pentru fiecare caz de utilizare şi scenariu,
deoarece nu este necesar, ci numai pentru cele importante.
▪ Descrie fluxul de lucru dintr-un punct de plecare până într-un
punct de terminare, detaliind căile de decizie care pot apărea
într-o activitate.
Introducere

▪ Este importantă în modelarea proceselor de afaceri.


▪ Poate fi folosită pentru a descrie procesare paralelă.
▪ Este bazată pe:
▪ limbajele pentru definirea proceselor de afaceri
▪ concepte consacrate care descriu procesarea concurentă
(rețele Petri)
▪ Conceptele și notațiile acoperă o gamă largă de aplicații
▪ nu se reduc doar la modelarea orientată-obiect
▪ Permite definirea activităților independent de obiecte
▪ se pot modela biblioteci de funcții, procese de afaceri...
Activitate A
Activitate

▪ Specifică comportamentul definit de utilizator la diferite niveluri de


granularitate
▪ Exemple:
▪ Definirea comportamentului unei operații sub formă de instrucțiuni atomice
▪ Modelarea cursului de acțiuni dintr-un caz de utilizare
▪ Modelarea proceselor de afaceri
▪ O activitate este un graf direcționat Parametru
▪ Nodurile: acțiuni și activități de ieșire
▪ Arce: pentru fluxul de control și de obiect Nume activitate
▪ Fluxul de control și de obiect definește <<preconditie>>
execuția <<postconditie>>
Parametru de
▪ Opțional: intrare
▪ Parametri
▪ Pre- și post-condiții

Nod Arc
Acțiune A
Acțiune

▪ Elemente de bază cu ajutorul cărora se poate specifica


comportamentul
▪ Sunt atomice, deci nu mai pot fi descompuse
▪ Nu se specifica reguli pentru descrierea unei acțiuni
→Se pot defini în limbaj natural sau în orice limbaj de programare
▪ Procesează valorile de intrare pentru a produce valori de ieșire
▪ Există notații speciale pentru diferite tipuri de acțiuni, cum ar fi:
▪ Acțiuni bazate pe evenimente
▪ Acțiuni care apelează comportament
Arce

▪ Conectează între ele activitățile și acțiunile


▪ Exprimă ordinea de execuție
▪ Tipuri
▪ Arc flux de control
▪ Definește ordinea nodurilor Flux de
▪ Arc flux de obiect control
▪ Folosit pentru a transmite date sau obiecte
▪ Exprimă o dependență bazată pe date/cauzală
între noduri
▪ Condiție (Guard)
▪ Fluxul de control și de obiecte va continua Flux de obiect
doar dacă acea condiție specificată între
paranteze este adevărată
Jeton (Token)

▪ Mecanism virtual de coordonare care descrie cu exactitate execuția


▪ Nu este inclus în notațiile diagramei
▪ Mecanism care acordă acțiunilor permisiunea de execuție

▪ Dacă o acțiune primește un jeton, atunci acțiunea poate fi executată


▪ Când o acțiune este finalizată, aceasta transmite jetonul următoarei
acțiuni, declanșând execuția acesteia
▪ Condițiile pot preveni transmiterea jetonului
▪ Jetonul este stocat în nodul anterior Actiune 1

▪ Jeton control și jeton obiect


▪ Jeton control: “permisiunea de execuție” pentru un nod
Actiune 2
▪ Jeton obiect: transport date + “permisiunea de execuție”
Începerea și terminarea activităților

▪ Nod inițial
▪ Începe execuția unei activități
▪ Transmite jetoane tuturor fluxurilor de ieșire
▪ Păstrează jetoane până când nodurile succesive le acceptă
▪ Pot exista noduri inițiale multiple pentru modelarea concurenței
▪ Nod final al activității
▪ Încheie toate fluxurile unei activități
▪ Primul jeton care ajunge la nodul final al activității încheie întreaga activitate
▪ Inclusiv sub-fluxuri concurente
▪ Sunt șterse alte jetoane de control sau obiect
▪ Nod final al fluxului
▪ Încheie execuția unei ramuri a activității
▪ Toate celelalte jetoane ale activității rămân neafectate
Căi alternative – Nod decizional (Decision)

▪ Folosit pentru a defini ramuri alternative


Actiune 1
▪ Reprezintă un punct de decizie pentru un jeton
▪ Arcele de ieșire au condiții
▪ Sintaxa: [Expresie booleană] Actiune 2 Actiune 3
▪ Jetonul alege o singură cale
▪ Condițiile trebuie să fie mutual exclusive
▪ Comportament decizional
▪ Specifică ce comportament este necesar pentru evaluarea condițiilor
Căi alternative – Nod de îmbinare (Merge)

▪ Realizează convergența fluxurilor mutual exclusive


▪ Transmite jetonul următorului nod

▪ Există și versiunea combinată a nodului decizional și de îmbinare

▪ Nodurile decizionale și de îmbinare pot fi folosite pentru a modela


bucle:
Căi concurente – Nod de bifurcație (Fork)

▪ Nod în care intră un singur flux și ies mai multe


▪ Denotă începutul unor acțiuni paralele
▪ Se realizează copii ale jetonului pentru toate arcele de ieșire
Căi concurente – Nod de sincronizare (Join)

▪ Folosit pentru a sincroniza căi concurenre


▪ Procesarea jetonului
▪ Așteaptă până când jetoanele sunt prezente în toate arcele de intrare
▪ Sincronizează toate jetoanele de control într-unul singur și îl transmite mai
departe
▪ Transmite toate jetoanele obiect

▪ Se poate realiza combinarea nodurilor de bifurcație și sincronizare


Fluxuri de control echivalente

… este echivalent cu…


Exemplu: Crearea și trimiterea invitațiilor pentru un eveniment

▪ În timp ce invitațiile sunt printate, cele deja printate sunt puse în plicuri.
▪ Când toate invitațiile sunt puse în plicuri, acestea sunt trimise
destinatarilor.
Exemplu: Curs universitar

NU sunt echivalente… de ce?


Obiect
Nod de tip obiect

▪ Conține jetoane obiect


▪ Semnifică schimbul de date/obiecte
▪ Este sursa și destinația unui flux de obiect
▪ Poate include ca informație adițională: tipul, starea obiectului

▪ Variante de notație: nod de tip obiect ca parametru


▪ Pentru activități
Parametru Parametru
de intrare de ieșire

▪ Pentru acțiuni (“pins”)


Exemple: Nod de tip obiect
Sarcina unui arc (weight)

▪ Numărul minim de jetoane care trebuie să fie prezente pentru ca


acțiunea să se execute
▪ Implicit: 1
▪ Toate jetoanele de la sursă sunt oferite simultan
▪ Se folosește cuvântul cheie “weight”
Conector

▪ Folosit atunci când două activități consecutive sunt poziționate în zone


diferite ale diagramei

▪ Fără conector

Se Sustine
inregistreaza examen

▪ Cu conector

Se Sustine
inregistreaza examen
Acțiuni bazate pe evenimente

▪ Care trimit semnale


▪ Acțiune care trimite semnal

▪ Care acceptă evenimente


▪ Acțiune care acceptă eveniment

▪ Acțiune care acceptă eveniment de tip timp


Exemplu: Acțiune care acceptă evenimente
Acțiune care apelează comportament

▪ Execuția unei acțiuni poate apela o activitate


▪ Conținutul activității apelate este modelat în altă parte
▪ Avantaje:
▪ Modelele devin mai clare
▪ Reutilizarea Numele activității apelate

Simbol specific
Partiții

▪ Sunt similare culoarelor dintr-un bazin de înot (“Swimlane”)


▪ Se pot specifica în mod grafic sau textual
▪ Permit gruparea nodurilor și arcelor unei activități în funcție de
responsabilități
▪ Responsabilitățile reflectă unitățile organizaționale sau rolurile
▪ Realizează o mai bună structurare a diagramei
▪ Nu schimbă semantica execuției
▪ Exemple: partițiile Student și Angajat Institut (cu subpartițiile
Profesor și Secretar)
Tratarea excepțiilor (Exception Handler)

▪ Se referă la excepții predefinite


▪ Definește modul în care sistemul trebuie să reacționeze într-o anumită
situație de eroare
▪ Handler-ul de excepții înlocuiește acțiunea în locul unde a apărut
eroarea
▪ Dacă are loc eroarea e, atunci:
▪ Toate jetoanele din Acțiunea A sunt șterse
▪ Se activează handler-ul de excepții
▪ Se execută handler-ul de excepții în loc
de Acțiunea A
▪ Execuțiile următoare se realizează în mod
normal
▪ Obs: în Visual Paradigm se creează un pin de
intrare cu un parametru de tip Exception
Example: Exception Handler
Tratarea excepțiilor – Regiune dintr-o activitate care poate fi
întreruptă

▪ Definește un grup de acțiuni a căror execuție trebuie terminată imediat


dacă are loc un anumit eveniment. În acest caz, se execută un alt
comportament

▪ Dacă E are loc în timp ce B sau C sunt executate, atunci:


▪ Se activează mecanismul de tratare a excepțiilor
▪ Toate jetoanele de control din interiorul dreptunghiului sunt șterse
▪ D este activată și executată

▪ Se întrerupe fluxul normal de execuție


Exemplu: Regiune dintr-o activitate care poate fi întreruptă
Notații -1

Nume Notație Descriere


Reprezintă o acțiune (este
Nod acțiune atomică)

Nod activitate Reprezintă o activitate (mai poate


fi descompusă)

Nod inițial Începutul execuției unei activități

Nod final al Sfârșitul tuturor fluxurilor de


activității execuție ale unei activități
Notații -2

Nume Notație Descriere


Folosită pentru divergența
Nod decizional fluxurilor mutual exclusive

Folosită pentru convergența


Nod de îmbinare fluxurilor mutual exclusive

Nod de bifurcație Folosită pentru divergența


fluxurilor concurente

Nod de Folosită pentru convergența


sincronizare fluxurilor concurente
Notații -3

Nume Notație Descriere

Nod final al
Sfârșitul execuției unui flux al activității
fluxului

Arc Conectează nodurile unei activități

Acțiune care
Acțiune A apelează o activitate cu
apelează
același nume
comportament

Grupează nodurile și arcele din


Partiție
cadrul unei activități
Notații -4

Nume Notație Descriere


Acțiune trimite Transmite un semnal către un
semnal receptor

Asynchronous
Așteaptă un eveniment E sau un
accept (timing)
eveniment de tip T
event action

Nod de tip Obiect Conțin date sau obiecte


obiect

Parametri
pentru activități
Conțin date și obiecte ca parametri
Parametri de intrare sau ieșire
pentru acțiuni
(pins)
Notații -5

Nume Notație Descriere

Handler-ul de excepții se execută


Handler de
în loc de acțiune în cazul apariției
excepții
evenimentului e

Regiune care Fluxul continuă pe o cale diferită


poate fi atunci când este detectat
întreruptă evenimentul E

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