U ovoj lekciji obrađivaćemo:

  • Statechart formu
  • Ilustraciju upotrebe kroz primere
  • Statechart gledište

 

Slično kao i STD u prethodnom poglavlju Statechart se bavi opisom ponašanja sistema u formi automata ili mašine sa konačnim stanjima. Posebno je pogodan za opisivanje reaktivnih sistema, u kojima se osnovne funkcije podstiču kao reakcija na određeni događaj.

Statechart je predložen od strane Davida Harela 1987. godine[1]. Obezbeđuje apstraktniju formu opisa nego SDT, i posebno dodaje gledištima mogućnost kreiranja hijerarhije apstrakcije u opisima, kao i dozvoljavajući dizajnerima da opiše tranzicije koje su ortogonalne, tako da su potpuno nezavisne jedne od drugih, pa se tranzicije mogu dešavati paralelno.

Statechart deli sve generalne osobine sa STD-om. Obe ove forme mogu se koristiti za opis strukture problema, kao i za pronalaženja rešenja.

Jednu od najboljih predstava mogućnosti opisa Statechat-a dao je Harel (1987)[1]. U nastavku će biti dati primeri kao ilustracija ove forme opisa.

Forma Statecharta

U ovoj notaciji stanje je predstavljeno sa zaobljenim uglovima, sa oznakom u gornjem levom uglu. Hijerarhijski je predstavljeno preko enkapsulacije, i usmerene strelice se koriste da označe transformaciju između stanja. Strelice su takođe označene sa opisom događaja i opciono uslovima navedenim u zagradama.

Na slici 1 je prikazan primer korišćenja ove notacije, radi opisa funkcije Teleteksta na TV-u. Slika 1(a) pokazuje da postoje dva stanja: standby i display. Tranzicija između ovih stanja se odvija kao odziv operacije standby tastera na daljinskom upravljaču. Obrnuta tranzicija će se desiti kad se pritisne bilo koji drugi taster. Na slici 1(b) opis stanja display se dalje proširuje, i sada je predstavljen preko tri enkapsulirana stanja, koja su predstavljena kao slika, tekst i miks. Mala strelica iznad slike pokazuje da će ovo biti podrazumevano stanje (default), koje će biti uneto kada se stanje prebaci na display. U stanje miks se može jedino ući iz stanja tekst.


Slika
1. Statechart koji opisuje Teletekst na TV-u. Dva osnovna stanja na TV-u (a), proširen opis stanja prikazanog pod a (b) i apstraktniji opis (c)

Elaboracija opisa stanja je slična formi koja se koristi kod Jackson Structure Diagram-a, u tome što stanje display je apstrakcija tri stanja: slika, tekst i miks, što znači da selektovanje display mora rezultovati u izboru jednog od ova tri stanja.

U Jackson Structure Diagram-u apstrakcija je predstavljena preko nivoa u stablu, dok je kod Statechart-a predstavljena enkapsulacijom. Jedna prednost ovoga je što čini relativno jednostavnim predstavu koja se primenjuje jednako na sva enkapsulirana stanja, putem njihovog prikazivanja na način kako je prikazano funkcija standby na slici 1(b). Slika 1(c) prikazuje prvi dijagram proširen u bottom-up radije nego top-down pristupu. Dva inicijalna stanja su sada prikazana unutar superstanja napajanje (power). Ne postoji ograničenje oko toga koliko nivoa hijerarhije može biti prikazano u dijagramu, ali kompleksnost notacije može da bude ograničenje, pa tako dva ili tri nivoa mogu jednostavno stati na jedan dijagram i biti jednostavno čitljivi.

Statechart gledište

Kao i STD, Statechart se bavi sa pružanjem opisa ponašanja sistema. Međutim, postoje značajne razlike između njih u smislu atributa koji svaki od njih predstavlja. Tv ima tu prednost da događaji koji uzrokuju promene stanja su direktno identifikovane u smisli pritisnutog tastera i stoga lako opisane. Slika 2. ponovo predstavlja primer iz prethodnih lekcija u novoj formi i pokazuje opis aviona u sistemu kontrole leta, ovoga puta pomoću Statechart-a.


Slika
2. Statechart koji opisuje akcije aviona u sistemu kontrole leta

Upoređujući ovo sa STD formom korišćenom ranije, možemo videti da obe notacije opisuju stanje, događaje i promene, ali i da STD pruža detaljniji opis u smislu akcija koje koje se dešavaju, dok Statechart ima finiji mehanizam za opis apstrakcije, podrazumevanih vrednosti, istorije i skaliranja. STD nedostatak hijerarhije takođe limitira i opisivanje ponašanja individualnih dizajn elemenata, gde Statechart može da opiše ceo sistem kroz hijerarhiju dijagrama i stanja. U tom smislu ih možemo posmatrati kao komplementarne, da je STD možda prikladniji za modelovanje problema, a da je Statechart bolji za modelovanje detaljnijih rešenja.

Još jedna od važnih funkcionalnosti Statechart-a je ortogonalnost. Slika 3. prikazuje primer stanja A koje se može opisati kao superstanje dva ortogonalna stanja B i C. B i C se mogu opisati daljim stanjima, ali suštinski nezavisnim grupisanjem. Događaji mogu biti zajednički, i mogu biti vidljivi iz opisa transformacija usled događaja a.

Takođe, u opisivanju A može se primetiti potreba za identifikovanjem podrazumevanih ulaza u stanja B i C, pokazujući ih ovde kao unutrašnja stanja D i F.


Slika
3. Opisivanje ortogonalnosti u Statechart notaciji

Ortogonalnost je važna u reaktivnim sistemima, gde očekujemo da posmatramo pogodno odvajanje interesa između grupa paralelnih funkcija, mada sve mogu da rade prema istom cilju. Npr. promena svetala na autu, ne treba da uzrokuje promenu u sistemu upravljanja.


Slika
4. Statechart koji opisuje arhitekturu računara

Na slici 4 je prikazan koncept osnovne arhitekture računara. Stanje računara je pokazano kao spoj stanja CPU-u i stanja osnovne memorije, u pojednostavljenom obliku. Oba imaju različita podstanja i neke događaje koji su zajendički za oba. Kada je računar uključen, oba pretpostavljaju podrazumevano stanje koje je izraženo u smislu njihovih internih operacija. Dok postoji komunikacija preko sistemske magistrale i prema tome određene sinhronizacije, memoriji može biti pristupano i od drugih kontrolera, i prema tome takve operacije su pogodno razdvojene od onih koje ima CPU.

Reference:

1. Harel D. (1987). Statecharts: a visual formalism for complex systems. Science of Computer Programming

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Statechart forma 1
  • Statechart forma 2
  • Statechart forma 3