Događaj – triger

 

Triger je događaj koji može izazvati tranziciju. U sistemu koji procesira korisnički ulaz, kucanje može izazvati da sistem promeni stanje iz „Prikupljanja podataka“ u „Procesiranje podataka“. Pored trigera, tranzicija može biti izazvana kompletiranjem internog ponašanaja.

 

 

Uslov (Guard)


Uslov je Boolean uslov koji dozvoljava ili blokira tranziciju. Kada je uslov prisutan, tranzicija će se desiti ako je uslov tačan (True) ili će biti tranzicija blokirana ako je uslov netačan (False). Posmatrajući naš primer unosa podataka, uslov se može koristiti da blokira tranziciju ako je ulaz kraći od zahtevane dužine. Uslovi se obično koriste za modeliranje blokiranih tranzicija ili izbora između tranzicija.

 

 

Tranzicijsko ponašanje – akcija

 

Tranzicijsko ponašanje je neprekidna aktivnost koja se izvršava dok se dešava tranzicija (ako se desila). Na primer, tranzicijsko ponašanje može uključiti predavanje korisničkog ulaza za procesiranje dok se menjaju stanja iz „Prikupljanja podataka“ u „Procesiranje podataka“. Kad se desi unos (kucanje) i ulaz je zahtevane dužine, dešava se tranzicija iz „Prikupljanja podataka“ u „Procesiranje podataka“. Za vreme tranzicije, poziva se tranzicijsko ponašanje „predaj ulazne podatke“ (Submit Input). Slika pokazuje da stanje može preći u sebe. Ovo je poznato kao samotranzicija (Self-Transition).

 

Tranzicijske varijante prelaza


Sledeća slika prikazuje dijagram stanja za CD player. Tranzicijski opis karakteriše određivanje događaja, uslova i tranzicijskog ponašanja. Pogledajmo detalje ovog dijagrama da vidimo kako kombinacija uslova i trigera može biti korišćena za modeliranje različitih tipova promena stanja.

Tranzicijske varijante prelaza date su na sledećoj slici:

 

 

Ako je Triger specificiran ali nema uslova, tada se tranzicija dešava po izvršavanju Triger-a. Ovo je korisno za modeliranje promene stanja kao odgovor na događaj. Na slici, CD player prelazi iz Playing stanja u Stopped stanje po pritisku na stop.


Ako su specificirani Triger i uslov, tada se tranzicija desi po završavanju Trigera ako se uslov proceni kao tačan (True). Inače se tranzicija ne dešava.


Kombinovanje Trigera i uslova je korisno i za modeliranje blokoranja tranzicije zavisno od stanja. Uslov može takođe biti korišćen za modeliranje izbora između tranzicija.


Slika prikazuje traniziciju bez trigera i bez uslova koja vodi iz Playing u Stopped stanje. To znači da CD player prelazi u Stopped stanje čim završi čitanje diska. Pošto CD player završi čitanje diska on prelazi u Stopped stanje ako nema više diskova ili prelazi nazad u Playing stanje ako ima još diskova. Treba uočiti da ako ima više diskova tranzicija uključuje prelazno ponašanje promena diska (Changing the disc).

 

Interna tranzicija


Interna tranzicija je tranzicija koja uzrokuje reakciju unutar stanja, ali ne uzrokuje da objekat promeni stanje. Interna tranzicija je različita od samotranzicije jer samotranzicija uzrokuje da se ulazno i izlazno ponašanje dogode dok interna tranzicija to ne radi. Interne tranzicije se pišu kao trigger [guard]/behavior i one su prikazane unutar stanja.

Primer sekvencijalnih podstanja

 

Registracija studenata za kurs

 

 

Kompozitna stanja

 

Jednostavno stanje je stanje koje nema unutrašnju strukturu automata stanja. Kompozitno stanje je stanje koje ima unutrašnja stanja, tj. predstavlja automat stanja. Ugnježdena stanja se koriste da se smanji grafička kompleksnost. Nadstanje (kompozitno stanje) je stanje koje obuhvata više unutrašnjih (ugnježdenih) stanja. Podstanje je unutrašnje (ugnježdeno) stanje. Kada se objekat nalazi u podstanju – istovremeno se nalazi i u nadstanju. Podstanja mogu biti: sekvencijalna i konkurentna.

 

 

Sekvencijalna podstanja

 

Prelazi se mogu događati: između podstanja i između podstanja ili nadstanja i stanja izvan nadstanja.


Ako je nadstanje odredište tranzicije iz spoljašnjeg stanja nadstanje mora sadržati početno stanje. Ako je nadstanje izvor tranzicije najpre se napušta podstanje pa nadstanje. Pri tranziciji u/iz nadstanja izvršavaju se ulazne/izlazne akcije i nadstanja i podstanja.

 

 

Napredna pseudostanja


Postoje dodatna pseudostanja koja su korisna za usmeravanje toka saobraćaja između stanja. Izborno (Choice) psedustanje je korisno kada se naglašava Boolean uslov koji određuje koja tranzicija sledi. Izbor (Choice) ima uslove na svakoj od odlazećih tranzicija i tranzicija koja sledi zavisi od uslova.


Na sledećoj slici, Player ide nazad u Playing stanje ako je sledeći disk raspoloživ ili ide u Stopped stanje ako nema diska.

 

 

Konkurentna podstanja


Konkurentna podstanja su dva ili više automata stanja koja se izvršavaju u paraleli i izvršavaju se u kontekstu odgovarajućeg objekta, kao i sekvencijalna. Drugi način da se modelira konkurentnost je pomoću aktivnih objekata. Umesto deljenja jednog automata stanja objekta na dva konkurentna podstanja definišu se dva aktivna objekta od kojih je svaki odgovoran za ponašanje jednog podstanja. Od više sekvencijalnih podstanja na jednom nivou objekat može biti samo u jednom. Od više konkurentnih podstanja na jednom nivou objekat je u svakom od njih. Prelaz u stanje sa konkurentnim podstanjima predstavlja Fork prelaz ako jedno konkurentno podstanje stigne do završnog stanja pre drugog – čeka na drugo. Sva konkurentna podstanja moraju biti završena da bi se izvršio prelaz Join iz nadstanja.


Ugnježdeni konkurentni automati stanja ne mogu imati početno, završno i stanje istorije. Sekvencijalna podstanja koja obrazuju svako od konkurentnih podstanja imaju ova stanja.

 

Primeri konkurentnih podstanja:

 

 

Na kraju, završimo priču o konačnim automatima kratkim uputstvima kako ih struktuirati i kako ih grafički organizovati. Dobro struktuiran konačni automat je:

 

  • Jednostavan (nema suvišnih stanja i tranzicija),

  • Jasnog je konteksta,

  • Efikasan (optimalno rukovodi vremenom i resursima za izvršavanje pojedinih operacija),

  • Razumljiv,

  • Nije suviše duboko ugnježden (najviše do dva nivoa ugnježdavanja), ne koristi često istovremena podstanja.

 

Kod grafičkog prikaza treba izbegavati presecanje tranzicija i treba vršiti proširivanje stanja samo kada je to potrebno za razumevanje dijagrama.

 

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

  • Dodađaji, tranzicije i napredna stanja 1
  • Dodađaji, tranzicije i napredna stanja 2
  • Dodađaji, tranzicije i napredna stanja 3
  • Dodađaji, tranzicije i napredna stanja 4