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
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:
Kod grafičkog prikaza treba izbegavati presecanje tranzicija i treba vršiti proširivanje stanja samo kada je to potrebno za razumevanje dijagrama.