Sunteți pe pagina 1din 4

DIAGRAMA DE STĂRI

Diagrama de stare este una din diagramele prin intermediul cărora se evidențiază realizarea
cazurilor de utilizare. Este folosită în situația în care se dorește modelarea unui obiect care este
utilizat în mai multe cazuri de utilizare.

O diagramă de stare este un graf care reprezintă o mașină de stări arătănd fluxul controlului de la
o stare la alta.

O diagramă de stare descrie o istorie a vieţii obiectelor unei clase şi poate fi considerată un graf,
bazată pe stări conectate prin tranziţii. Diagramele de stare specifică modul în care reacţionează
un obiect la primirea unui mesaj.

Un eveniment reprezintă ceva (atomic) ce se întâmplă la un moment dat şi care are ataşată o locaţie
în timp şi spaţiu. Evenimentele modelează apariţia unui stimul care poate conduce la efectuarea
unei tranziţii între stări. Evenimentele nu au durată în timp.
Evenimentele pot fi clasificate în felul următor:
 sincrone sau asincrone
 externe sau interne
Evenimentele externe se produc între sistem şi actori (de exemplu apăsarea unui buton pentru
întreruperea execuţiei programului).
Evenimentele interne se produc între obiectele ce alcătuiesc un sistem (de exemplu overflow
exception).
Evenimentele pot include:
 semnale; semnalul este un stimul asincron care are un nume şi care este trimis de un obiect
şi recepţionat de altul (ex: excepţii).
 apeluri de operaţii (de obicei sincrone): un obiect invoca o operaţie pe un alt obiect.
controlul este preluat de obiectul apelat, se efectuează operaţia, obiectul apelat poate trece
într-o nouă stare, după care se redă controlul obiectului apelant.
 trecerea timpului
 o schimbare a rezultatului evaluării unei condiţii.
O acţiune reprezintă execuţia atomică a unui calcul care are ca efect schimbarea stării sau
returnarea unei valori.
Acţiunile au o durată mică în timp, fiind tranzitorie (ex.: i++). Prin activitate se înţelege execuţia
neatomică a unor acţiuni.
Activităţile au durată în timp, pot persista pe toată durata stării şi poate fi întreruptă (ex.: execuţia
unei funcţii)
O diagramă de stare modelează viața unui obiect prin sterile sale și schimbările de stare care au
loc pe parcursul vieții.Schimbările de stare sunt determinate de evenimente. Modificarea stării se
numește tranziție

Elementele componente ale unei diagrame de stări sunt:


 Stări
 Tranziție

1. Stări
Starea corespunde unui interval de timp în care obiectul satisface anumite condiții, efectuiază
anumite acțiuni sau așteaptă un eveniment. Starea se reprezintă în UML printr-un dreptunghi cu
colțurile rotungite, ce poate avea un compartiment pentru nume și altul pentru tranzițiile interne,
care pot fi acțiuni sau activități efectuate în timp ce elementul se află în acea stare.
Figura 1 prezintă notația grafică a Stării

Figura 1. Stare

Acțiunile sunt precedate de o etichetă urmată de caracterul '/' și, chiar dacă limbajul UML nu are
o termenologie pentru a face diferențierea între acțiunile instantanee și cele care durează un
interval de timp, această caracteristicătrebuie identificată la analiza dinamică a obiectelor.
Exemple de etichete des utilizate:
 entry - pentru o acțiune considerată instantanee, efectuată la intrarea în stare;
 do - pentru o activitate ce durează un interval de timp, fie pînă ce este finalizată, fie pînă la
ieșirea din starea corepunzătoare;
 tranzițieInternă - pentru a reprezenta o acțiune instatanee, executată la producerea unui
eveniment care nu determină tranziția în altă stare; aceasta seamănă cu o tranziție de la o
stare către ea însăși cum este NumeEveniment2 din figura 2, dar fără ieșire din stare și
reintrare, deci fără executarea acțiunilor specificate prin exit și entry;
 exit - pentru o acțiune considerată instantanee, executată la eșirea din stare
Figura 2

stare inițială - reprezentată ca un cerculeț negru, avînd o etichetă cu numele stării; fiecare
diagramă are o stare de start, corespunzătoare momentului de creare a obiectului, dar a cărei
prezentare nu este obligatorie;

stare finală - reprezentată ca un cerculeț negru plin, înconjurat de un alt cerc mai mare; o diagramă
de stare poate conține mai multe stări finale;

2. Tranziția

O tranziţie reprezintă o relaţie între două stări indicând faptul că un obiect aflat în prima stare va
efectua nişte acţiuni şi apoi va intra în starea a doua atunci când un anumit eveniment se petrece.

Figura 3 Tranziții între stări

Starea sursă reprezintă starea din care se pleacă. NumeEveniment este evenimentul care
declanşează tranziţia.
Condiţie gardă (guard condition) este o expresie booleană. Aceasta se evaluează la producerea
evenimentului care declanşează tranziţia. Tranziţia poate avea loc numai dacă condiţia este
satisfăcută.
Acţiune - opţional se poate specifica o acţiune care să se execute odată cu efectuarea tranziţiei.
Starea destinaţie reprezintă starea în care ajunge obiectul după efectuarea tranziţiei.

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