Sunteți pe pagina 1din 23

1

Diagrame de stare

Ingineria sistemelor de programe


Anca Ionita
2

Definirea starilor unor obiecte


avand comportament dinamic

https://www.raywenderlich.com/24155/how-to-make-a-side-scrolling-beat-em-up-game-like-scott-pilgrim-with-cocos2d-part-1
3

Definirea unei masini de stare


pentru personajul unui joc
Apasare buton salt Atingere inaltime maxima

Alergare Salt Cadere

Aterizare pe pamant

Depasire margine

https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/StateMachine.html
4

Definirea unei masini de stare


pentru interfata grafica a unui joc
Joc incheiat

Apas
Titlu Joc in desfasurare END

Apas
Apas START
START

Apas ||

Apas ||

Pauza de joc

https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/StateMachine.html
5

Diagrame de stare

Diagrama
cazuri de Diagrama
utilizare de clase

UML Diagrama
de stare
Diagrama
de
activitati

Diagrama Diagrama de
secventiala comunicare

Diagrama
Diagrama de
componente de
deployment
6

Diagrama de stare
▫ Corespunzatoare unei clase ale carei obiecte au
comportament dinamic
7

Reprezentare
diagrama pentru
personajul unui joc
1. Observati
corespondenta cu
reprezentarea
informala
anterioara.

2. Gasiti eroarea
in aceasta
diagrama
8

Exemplu calculator

• Au fost identificare stari


9

Exemplu calculator

• S-au adaugat tranzitii


intre stari
10

Exemplu calculator

• S-a introdus o stare


initiala
11

Exemplu calculator

• A fost introdusa o
stare finala

Putem avea mai multe stari finale


Intr-o diagrama de stare.
12

Exemplu calculator

• Au fost precizate nume


ale tranzitiilor
13

Detalii legate de tranzitii


nume [garda] / efect

• Efectul poate fi executarea unei activitati

Exemplu: Sistem de ghidare racheta


do/ activitatea principala realizata in stare

Ordinea executiei activitatilor: adaugaTinta, urmarireutomata_ON, urmarireTinta, urmarireAutomata_OFF


14

Detalii legate de stari

• Tipuri de activitati executate cand obiectul se


afla in acea stare:
▫ do Activity
▫ entry Activity
▫ exit Activity
15

Cum se pot declansa tranzitiile


intre stari (Trigger)
• receptionarea unui semnal de la un alt obiect
• apelul unei operatii
• un eveniment de tip conditie
▫ when(expresie booleana) Vedeti deosebirea fata de guard condition!

• expirarea unui interval de timp


▫ when(data)
▫ after(interval de timp).
16

Exemplu modelare
hidrofor

Comutare_ON

when (PRES<MIN) [alimentare_ON]


[alimentare_ON][alimentare_OFF]
Oprit Pornit
when (PRES>MAX)
Comutare_ OFF
17

Diagama de stare a unui


raport de defecte in
telecomunicatii
18

Stari compozite
Exemplu: Telefon
19

Problema: Ceas digital


Reprezentati in UML o diagrama de stare pentru ceasul
descris mai jos.

a) Un ceas digital simplu are 2 moduri de functionare: afisarea


timpului si setarea timpului.
b) In modul de afisare a timpului se afiseaza orele si minutele.
c) Modul de setare a timpului are 2 submoduri: setarea orelor si
setarea minutelor.
d) Ceasul are doua butoane pentru setari, A si B. Butonul A este
folosit pentru a selecta modurile. La fiecare apasare a sa modul
avanseaza in ordinea: afisare, setare ore, setare minute, afisare
etc.
e) In cadrul submodurilor se foloseste butonul B pentru a
incrementa orele si minutele la fiecare apasare a sa.
20

Rezolvare
21

Problema: Robot mesagerie vocala


Se da o diagrama de stare incompleta pentru controlul unui robot
telefonic, continand starile Inchis, IntampinareApelant si
InregistrareApelant.

Varianta 1:

➢ Robotul raspunde automat la apeluri in modul urmator:


➢ sosirea unui apel este detectata prima data cand suna telefonul
si se intampina apelantul prin derularea unui mesaj
preinregistrat.
➢ La terminarea mesajului de intampinare se inregistreaza
mesajul apelantului.
➢ Atunci cand apelantul inchide telefonul, robotul se inchide si
el.
22

Problema: Robot mesagerie vocala

Varianta 2:

Sa se modifice diagrama astfel incat robotul sa raspunda dupa


ce telefonul suna de 5 ori. Daca se raspunde la telefon inainte,
robotul nu trebuie sa faca nimic.

Atentie la distinctia intre 5 apeluri in care telefonul suna o


singura data si un apel in care suna de 5 ori.
23

Ce am invatat azi?
• Cum sa reprezentam starile unor obiecte si
tranzitiile intre acestea
• In ce domenii putem aplica diagramele de stare
• Cum definim starile compozite

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