in-theory.info

Tutorial UML (partea a III-a). Activity Diagram

Etichete: UML

Activity Diagram

Activity Diagram reprezintă o modalitate de modelare vizuală a fluxurilor. Cu ajutorul activity diagram pot fi modelate foarte bine use case-urile, dar, în aceeaşi măsură, aceste diagrame pot fi folosite pentru modelarea proceselor de business (fără legătură cu sistemul informatic). În privinţa notaţiilor, acestea sunt foarte asemănătoare cu cele din statechart diagram deoarece activity diagram nu sunt altceva decât o variaţie a statechart diagram.


Elementele utilizate şi notaţiile lor sunt următoarele:

ElementDescriereNotaţie
Activitate Prin activitate vom desemna întreaga activitate modelată prin diagramă (formată dintr-o succesiune de acţiuni). Aceasta corespunde unui task de business. -
Acţiune Teoretic, acţiunile sunt numite activity states şi reprezintă o acţiuni desfăşurate în cadrul unui task, sau, privite altfel, acţiuni ale unui obiect.
Stare iniţială Reprezintă punctul de intrare în activitatea respectivă. Punctul iniţial este unic şi din el porneşte întotdeauna o singură tranziţie.
Stare finală Reprezintă punctul de ieşire din activitate. Pot fi mai multe puncte de ieşire dintr-o activitate.
Tranziţie La încheierea unei acţiuni se trece întotdeauna la o altă acţiune sau la starea finală. Tranziţia reprezintă trecerea de la o acţiune la alta.
Decizie Printr-o decizie (sau punct de decizie) se modelează un punct din cadrul fluxului unde se face o alegere, pe o anumită ramură din flux. În acest caz tranzacţiile de ieşire trebuie să fie de tip condiţie. Aceeaşi notaţie se foloseşte şi pentru reunirea fluxurilor după o decizie precedentă (caz în care nu mai sunt necesare condiţiile).
Condiţie (guard) Este un tip special de tranziţie, utilizată la fiecare dintre ieşirile posibile dintr-o decizie. Se marchează ca un text pe săgeată şi arată condiţia care trebuie îndeplinită pentru a urma acel flux.
Bara de sincronizare Este folosită pentru cazurile în care anumite acţiuni se pot desfăşura în paralel. Într-un asemenea punct poate avea loc fie separarea fluxurilor, fie reunirea lor, după o separare anterioară. Reunirea a două fluxuri înseamnă, de fapt, introducerea unei condiţii, prin care o activitate nu poate începe decât după terminarea activităţilor finale din fluxurile ce trebuie sincronizate (de aici termenul de sincronizare).
Culoar (swimlane) Culoarele sunt reprezentări care permit separarea activităţilor din flux după criteriul responsabilităţii realizării activităţii.

Punctele de decizie sunt puncte din fluxul de activităţi în care se face o anumită alegere între mai multe variante posibile.
Un caz simplu este ilustrat în figura de mai jos.

Trebuie observat că tranziţiile care ies dintr-un punct de decizie sunt de tip guard – au înscrisă între paranteze pătrate o condiţie.
Notaţia utilizată pentru punctul de decizie poate fi folosită şi pentru reconectarea fluxurilor (merge point), aşa cum se poate vedea în figura de mai jos.

Acţiunile paralele (asincrone) sunt acţiuni care pot desfăşura în paralel. În viaţa reală, aceste acţiuni sunt acţiuni care nu depind una de cealaltă. Paralelizarea acţiunilor se reprezintă pe diagramă în felul următor:
Această reprezentare ne arată că acţiunile „Verificare stoc” şi „Verificare bonitate client” sunt declanşate de apariţia unei comenzi de la client şi că aceste acţiuni sunt independenta între ele (începerea uneia nu depinde de rezultatul celeilalte).
Revenirea la fluxul unic (cu acţiuni sincronizate) se face în felul următor:

Această reprezentare ne arată că livrarea la client depinde de finalizarea acţiunilor independente "Verificare stoc" şi "Verificare bonitate client", astfel că acţiunea "Livrare la client" nu poate începe decât după finalizarea ambelor acţiuni.

Pentru a adăuga pe diagrame informaţia privind responsabilitatea executării acţiunilor se folosesc elementele denumite swimlanes, plasându-se fiecare acţiune pe "culoarul" actorului care execută acea acţiune.


Adrian Ionescu





Colecția:  🌻 Tutorial UML

Articolul precedent:  Tutorial UML (partea a II-a). Use Case Diagram
Articolul următor:  Tutorial UML (partea a IV-a). Statechart Diagram



👍 Topul celor mai citite articole

1. Analiza cerinţelor software. Introducere
Această serie de articole este destinată tuturor persoanelor implicate în proiecte de dezvoltare de software: şefi de departament, şefi de proiec...

2. Despre Analiza cerinţelor
Analiza cerinţelor software (pe care o vom numi în continuare Analiza de business sau Analiză software) este aceea dintre disciplinele existente î...

3. Axiomele dezvoltării software
Adevăruri ale dezvoltării software care susțin nevoia Analizei cerințelor. Unul dintre ele este: "Întotdeauna, într-un proiect software apar si...

4. Ciclul de dezvoltare al produsului software (SDLC)
Deşi în limba engleză este denumit Software Development Life Cycle (SDLC) am ales traducerea „Ciclul de dezvoltare al produsului software”, chi...

5. Ciclul de dezvoltare iterativ
Asumarea realităţii că întotdeauna, în decursul proiectului, cerinţele se vor schimba a condus la apariţia unui model de dezvoltare realist, ca...

6. Locul Analizei în proiectul de dezvoltare software
Analiza Software este o disciplină care se află în relaţie de dependenţă cu celelalte discipline din proiect. Concret, task-urile din proiectul ...

7. Modele teoretice de abordare a problemelor. Decompoziţia
Modalităţile teoretice de abordare a problemelor sunt universale şi pot fi folosite oriunde însă pentru domeniul nostru, este important să le co...

8. Modele teoretice de abordare a problemelor. Sinteza
Sinteza este o modalitate, prin care, din manifestări punctuale se determină problema reală. Cel mai simplu şi clar exemplu este acela al mediculu...

9. Modele teoretice de abordare a problemelor. Crearea unui trunchi de bază
De foarte multe ori, în viaţa reală, o problemă nu poate fi punctată decât cu un efort substanţial sau chiar deloc. Pur şi simplu, obţinerea ...

10. Modele teoretice de abordare a problemelor. Abordarea iterativă
Metoda iterativă presupune rezolvarea unei probleme cunoscute printr-o abordare iterativă, la fiecare iteraţie făcând un pas către rezolvarea pr...



📜 Căutare după etichetă:

Analiza Business
Baze de date
C#
Cerințe software
CSS
Dictionar IT
Glossary
HTML
Information Theory
Information Theory Basics
MySQL
PHP
Riscuri
SDLC
Specificații software
SQL
UML