UML – Diagrame de stare

Содержание

Слайд 2

Sumarul prezentarii

Definitii
Starile unui obiect si tranzitiile intre stari
Reprezentarile starilor
Evenimente si tranzitii
Actiuni si

Sumarul prezentarii Definitii Starile unui obiect si tranzitiile intre stari Reprezentarile starilor
activitati
Modelarea evenimentelor
Exemple de utilizare a diagramelor de stare
Tranzitii

Слайд 3

Ce este o diagrama de stare?

O diagrama de stare modeleaza viata unui

Ce este o diagrama de stare? O diagrama de stare modeleaza viata
obiect prin starile sale si schimbarile de stare care au loc pe parcursul vietii. Schimbarile de stare sunt determinate de evenimente.
O diagrama de stare reprezinta un automat cu stari finite.
Diagramele de interactiune modeleaza interactiunile dintre obiecte. Diagramele de stari modeleaza efectul acestor interactiuni asupra starii interne a fiecarui obiect. Mesajele din diagramele de interactiune sunt evenimente care schimba starea interna a obiectelor. Examinand diagramele de interactiune putem descoperi care sunt obiectele care ar trebui modelate prin diagrame de stari. Multe obiecte sunt create, referite si apoi distruse. Ele au o singura stare intermediara si deci nu are sens modelarea lor printr-o diagrama de stari. Alte obiecte insa, care raspund la mesaje in mod diferit pe parcursul vietii se pot preta la modelare prin diagrame de stari.

Слайд 4

Starile unui obiect si tranzitiile intre stari

Figura urmatoare reda starile unui

Starile unui obiect si tranzitiile intre stari Figura urmatoare reda starile unui
obiect si tranzitiile intre stari declansate prin apelul operatiilor din clasa obiectului:

Слайд 5

Reprezentarile starilor

Starile sunt reprezentate prin dreptunghiuri rotunjite iar tranzitiile prin sageti deschise.

Reprezentarile starilor Starile sunt reprezentate prin dreptunghiuri rotunjite iar tranzitiile prin sageti
Starea initiala si cea finala se reprezinta astfel:
starea initiala
starea finala
Starea initiala identifica ( puncteaza catre) starea in care obiectul este creat. De ex. aceasta stare in figura de mai sus este Create. Cu toate ca notatia pentru starea initiala include numai cercul plin, in practica starea initiala include si sageata care pleca din ea si starea in care obiectul este creat.
La sfarsitul vietii sale (activitatii sale) obiectul atinge starea finala din care nu mai poate iesi. Starea finala are toate proprietatile unei stari, cu o exceptie: nu poate avea tranzitii de iesire. Numele starii de iesire este specificat langa simbolul grafic al starii finale.

Слайд 6

Reprezentarea starilor-continuare

Starea curenta a unui obiect este reflectata in valorile atributelor care

Reprezentarea starilor-continuare Starea curenta a unui obiect este reflectata in valorile atributelor
descriu obiectul. Acestea includ si legaturile existente intre obiect si alte obiecte. De exemplu, starea curenta unei persoane poate fi: in activitate, in somaj sau la pensie. Este determinata de varsta persoanei si de prezenta unei legaturi catre o firma:
Mihai este in somaj, Ana este in activitate si Emil este la pensie.

Слайд 7

Evenimente si tranzitii

Un eveniment poate fi:
Receptionarea unui semnal, cum ar fi o

Evenimente si tranzitii Un eveniment poate fi: Receptionarea unui semnal, cum ar
exceptie, o notificare, un eveniment generat de interactiunea cu utilizatorul .
Receptionarea unui apel, adica invocarea unei operatii a clasei obiectului.
Recunoasterea unei conditii in mediul extern sau in obiectul insusi:
conditie predefinita, care este indeplinita la un moment dat, eveniment numit “change event”(“conditie”).
trecerea unei perioade de timp desemnate, eveniment numit “elapsed-time event”( “dupa o perioada de timp”).

Слайд 8

Evenimente si tranzitii-continuare

Exemplu:
angajare() si concediere() sunt evenimente externe, datorate unor mesaje trimise

Evenimente si tranzitii-continuare Exemplu: angajare() si concediere() sunt evenimente externe, datorate unor
obiectului;
when (varsta >= 60 ani) este un eveniment intern, determinat de valoarea curenta a unui atribut al obiectului.
Un eveniment este reprezentat printr-o eticheta pe sageata care conecteaza o stare cu o alta stare.
Sageata reprezinta tranzitia asociata evenimentului. Intr-o diagrama de stari cuvintele tranzitie si eveniment au aceeasi semnificatie deoarece apar intotdeauna impreuna. Directia sagetii indica schimbarea.

Слайд 9

Evenimente si tranzitii-continuare

Tranzitiile pot fi controlate prin garzi. O garda este o

Evenimente si tranzitii-continuare Tranzitiile pot fi controlate prin garzi. O garda este
conditie booleana care valideaza declansarea unei tranzitii in cazul aparitiei unui eveniment.
In cazul in care mai multe tranzitii pot fi declansate de acelasi eveniment si evenimentul are loc, garzile, care trebuie sa fie mutual exclusive, sunt evaluate, si apoi o singura tranzitie este validata si declansata.

Слайд 10

Actiuni

Operatiile definite in specificatia unei clase apar in diagramele de stari ca

Actiuni Operatiile definite in specificatia unei clase apar in diagramele de stari
actiuni si activitati.
O actiune este considerata ca instantanee, adica are un timp de executie neglijabil in raport cu dinamica sistemului. In diagramele de stari, actiunile sunt atasate evenimentelor:
O actiune (expresie actiune) defineste modul in care obiectul care receptioneaza evenimentul trebuie sa raspunda la eveniment. Poate fi apelul unei operatii, trimiterea unui semnal, crearea/distrugerea unui obiect, evaluarea unei expresii. Timpul de executie al unei actiuni este nesemnificativ.
Expresia completa pentru un eveniment de tip semnal sau apel de operatie este:
nume eveniment [( [lista de parametri])] [conditie garda] / [expresie actiune]

Слайд 11

Modelarea evenimentelor

Modelarea evenimentelor de tip “dupa o perioada de timp”
Aceste evenimente sunt

Modelarea evenimentelor Modelarea evenimentelor de tip “dupa o perioada de timp” Aceste
modelate prin cuvantul cheie after urmat de o expresie, inclusa intre paranteze, care prin evaluare da un rezultat de tip “perioada de timp”. Exemplu:
Modelarea evenimentelor “conditie”
Aceste evenimente sunt modelate prin cuvantul cheie when urmat de o expresie booleana scrisa intre paranteze. Cand expresia este adevarata evenimentul declanseaza tranzitia. (Vezi exemplul de mai sus)

Слайд 12

Modelarea evenimentelor-continuare

Modelarea actiunilor asociate evenimentelor
Un eveniment este doar un triger! Comportarea obiectului

Modelarea evenimentelor-continuare Modelarea actiunilor asociate evenimentelor Un eveniment este doar un triger!
receptor, asociata unui eveniment, poate fi definita printr-o expresie actiune: una sau mai mullte actiuni declansate de eveniment.
Daca ne gandim la eveniment ca la semnatura unei operatii, atunci expresia actiune corespunde implementarii acelei operatii, metoda.
Chiar daca o expresie actiune poate fi un set de actiuni, o actiune este considerata ca un task atomic (nu poate fi despartita in alte taskuri si nu poate fi intrerupta). Aceasta deoarece ea este parte dintr-o tranzitie - o schimbare dintr-o stare in alta. Daca o tranzitie este intrerupta, obiectul este potential lasat intr-o stare nedefinita (unele dintre atributele care definesc starea au fost modificate altele nu). Exemplu:
Evenimentul activare() necesita trimiterea unei notificari, reprezentata prin operatia notificare():

Слайд 13

Exemplu de utilizare a diagramei de stari

Diagramele de stari pot fi folosite

Exemplu de utilizare a diagramei de stari Diagramele de stari pot fi
si pentru modelarea scenariilor dintr-un caz de utilizare. O diagrama de stari modeleaza un caz de utilizare sau mai multe scenarii. De exemplu, urmatoarea diagrama de stari modeleaza un caz de utilizare a sistemului de gestiune a bibliotecii.

In unele cazuri, diagramele de stari pot deveni foarte complicate. Problema poate fi rezolvata recurgand la abstractizare. Astfel, mai multe stari pot fi abstractizate intr-o singura stare, care corespunde unei reprezentari de nivel ierarhic mai inalt, dupa cum o stare poate fi descompusa in sub-stari disjuncte.

Слайд 14

Alte exemple de stari

De exemplu, starile A si B din diagrama ilustrata

Alte exemple de stari De exemplu, starile A si B din diagrama
in figura de mai jos, pot fi abstractizate intr-o stare mai generala deoarece din ambele exista o tranzitie in starea C:
Automatele acceptate de UML sunt deterministe.
Pentru fiecare nivel de abstractizare exista o singura stare initiala.
Este posibil sa existe mai multe stari finale, fiecare corespunzand unei conditii de sfarsit diferite.
De asemenea, este posibil sa nu existe nici o stare finala. Este cazul unui sistem care nu se opreste niciodata.

Слайд 15

Activitati si actiuni

O activitate este o operatie care necesita un anumit timp

Activitati si actiuni O activitate este o operatie care necesita un anumit
de executie. Ea este asociata unei stari. Anumite activitati sunt ciclice, ca afisarea unei imagini pe un ecran de televizor sau ca soneria telefonului care persista pana cand un eveniment o intrerupe declansand o tranzitie. Alte activitati sunt secventiale, ca de exemplu executia unui calcul. Activitatile sunt indicate prin cuvantul cheie "do":
O activitate poate fi intrerupta in orice moment, imediat ce este declansata o tranzitie de iesire din starea corespunzatoare activittii.
O diagrama de stari permite ca mai multe evenimente sa determine tranzitia in aceeasi stare. Fiecare eveniment poate declansa o anumita actiune. Atunci cand toate evenimentele care conduc in aceeasi stare declanseaza aceeasi actiune, actiunea poate fi modelata ca actiune de intrare in starea respectiva.

Слайд 16

Activitati si actiuni-continuare

O diagrama de stari permite ca din aceeasi stare sa

Activitati si actiuni-continuare O diagrama de stari permite ca din aceeasi stare
existe mai multe tranzitii, determinate de evenimente diferite. Atunci cand toate evenimentele care declanseaza tranzitii din aceeasi stare specifica o aceeasi actiune, actiunea poate fi modelata ca o actiune de iesire din starea respectiva.
Actiunile de intrare/iesire sunt specificate in interiorul compartimentului starii. Ele sunt indicate de cuvintele cheie “entry” i “exit”. Pot exista de asemenea actiuni interne. O asemenea actiune este executata la producerea unui eveniment care nu schimba starea curenta:
Имя файла: UML-–-Diagrame-de-stare.pptx
Количество просмотров: 27
Количество скачиваний: 0