Professional Documents
Culture Documents
09 Dijagrami Stanja
09 Dijagrami Stanja
Dijagrami stanja
Uvod
Automat stanja (state machine)
ponaanje koje specificira sekvence stanja kroz koje prolazi neki objekat ili interakcija, kao odgovor na dogaaje, proizvodei akcije modelira ponaanje nekog entiteta ili protokol interakcije
Objekat reaguje na dogaaje promenom stanja koja takoe izaziva nove dogaaje i akcije Dijagram stanja je graf koji prikazuje automat stanja
Dijagrami stanja prikazuju automate stanja fokusirajui se na dogaajima voeno ponaanje Dijagrami aktivnosti se fokusiraju na tok aktivnosti Dijagrami stanja se kreiraju za entitete koji pokazuju bitno dinamiko ponaanje U osnovi se koriste Harelovi dijagrami sa modifikacijama da budu OO
Dijagrami stanja
18.11.2006.
instanca klase sluaj korienja akter podsistem/sistem metod/operacija elemenata modela koji moraju odgovarati na asinhrone dogaaje elemenata modela ije tekue ponaanje zavisi od istorije reaktivni sistem je onaj koji odgovara na signale koje daju akteri iz spoljanjeg sveta
Dijagrami stanja 18.11.2006.
Automat stanja se primenjuje da specificira ponaanje Automat stanja se uspeno koristi za modeliranje ponaanja reaktivnih sistema
stanja i pseudostanja (vorovi grafa), prelaze (tranzicije) izmeu stanja (grane grafa) dogaaje koji prouzrokuju promenu stanja i akcije koje rezultuju iz promene stanja
Dijagrami stanja
18.11.2006.
zadovoljava neki uslov, obavlja neku aktivnost ili eka dogaaj uslov student je u stanju registrovan ili stanju neregistrovan aktivnost program se nalazi u stanju izvravanja ekanje procesor je zaustavljen (halt) i eka prekidni signal
Cekanje
Primeri:
Grafika notacija:
Podautomat stanja stanje koje reprezentuje automat stanja koji se moe pojaviti na vie mesta unutar dijagrama stanja
Podautomat stanja
Dijagrami stanja
18.11.2006.
Elementi stanja
Ime tekst koji razlikuje jedno od drugih stanja
upisuje se u odeljak imena (unutar simbola stanja) ili u poseban pravougaoni jeziak iznad gornjeg levog ugla simbola stanja stanje moe biti i anonimno (bez imena) radnja koja se obavi pri ulasku u stanje radnja koja se obavi pri izlasku iz stanja radnja koja se izvrava dok je objekat u datom stanju lista dogaaja koji se ne obrauju u datom stanju ve se smetaju u red tranzicije koje obrauju dogaaj i zadravaju objekat u istom stanju razliite su od samo-tranzicije: ne izazivaju izlaznu pa ulaznu akciju stanja koja postoje unutar datog stanja, sekvencijalno ili konkurentno aktivna Dijagrami stanja 18.11.2006.
Ulazna akcija Izlazna akcija Aktivnost Odloeni dogaaji Unutranje tranzicije Podstanja
Primeri stanja
Pracenje aktivnost entry/ postaviRezim(ukljucenoPracenje) exit/ postaviRezim(iskljucenoPracenje) do/ pratiCilj samoTestiranje/ defer noviCilj/ pratilac.prikupljajPodatke() ulazna akcija izlazna akcija odloeni dogaaj unutranja tranzicija
Dijagrami stanja
18.11.2006.
Pseudostanja
Poetno (initial) Zavrno (final) Ulazno (entry) Izlazno (exit) Sinhro (fork/join)
Ulazno/izlazno pseudostanje:
Izbor (choice) Spoj (junction) Plitka istorija (shallow h.) Duboka istorija (deep h.)
H H*
ulazna/izlazna taka automata stanja ili sloenog stanja po pravlu se crtaju na simbolu stanja, ali nije neophodno
Dijagrami stanja
18.11.2006.
Prelazi
Prelaz je relacija izmeu dva stanja Prelaz ukazuje da objekat naputa jedno stanje obavlja akciju i ulazi u drugo stanje kada se dogodi specificirani dogaaj i kada je ispunjen specificirani uslov Grafika notacija strelica: S1 S2 Elementi prelaza
dogaaj je zbivanje koje nema trajanje i moe prouzrokovati prelaz zatitni uslov je Bulov izraz koji ini prelaz moguim kada je uslov ispunjen akcija je radnja koja je pridruena prelazu i moe biti
poziv operacije objekta vlasnika automata stanja ili drugog objekta koji je vidljiv datom objektu kreiranje ili unitavanje drugog objekta A slanje signala nekom objektu
Dijagrami stanja
18.11.2006.
Neaktivno
10
Dijagrami stanja
18.11.2006.
11
Dijagrami stanja
18.11.2006.
Prvi string predstavlja oznaku (tag), a drugi telo poruke (body) Automat radi beskonano nema zavrnog stanja
put( c )[ c/='<' ] / return false
PrijemTokena
12
Dijagrami stanja
18.11.2006.
Kompozitna stanja
Jednostavno stanje
stanje koje nema unutranju strukturu automata stanja stanje koje ima unutranja stanja, tj. predstavlja automat stanja
Kompozitno stanje Ugneena stanja se koriste da se smanji grafika kompleksnost Nadstanje (kompozitno stanje)
Podstanje je unutranje (ugneeno) stanje Kada se objekat nalazi u podstanju istovremeno se nalazi i u nadstanju Podstanja mogu biti:
sekvencijalna konkurentna
13
Dijagrami stanja
18.11.2006.
Sekvencijalna podstanja
Prelazi se mogu dogaati:
izmeu podstanja izmeu podstanja ili nadstanja i stanja izvan nadstanja nadstanje mora sadrati poetno stanje najpre se naputa podstanje pa nadstanje
Nadstanje Podstanje1
Nadstanje Podstanje 1
Spoljasnje stanje2
Podstanje2
Spoljasnje stanje2
Podstanje 2
14
Dijagrami stanja
18.11.2006.
dodajStudenta / broj=0
ponistiKurs
15
Dijagrami stanja
18.11.2006.
Stanje sa istorijom
Kada se ue u nadstanje obino se kree od inicijalnog podstanja Ponekad postoji potreba da se krene od podstanja Nadstanje iz kojeg je naputeno nadstanje Spoljasnje Podstanje1 stanje Simbol H u kruiu ukazuje da nadstanje pamti istoriju
H
stanje sa istorijom
Podstanje2
Podstanje3
pamti se istorija samo neposredno ugneenog automata stanja pamti se istorija do najugneenijeg automata stanja proizvoljne dubine
16
Dijagrami stanja
18.11.2006.
Konkurentna podstanja
Konkurentna podstanja
dva ili vie automata stanja koja se izvravaju u paraleli izvravaju se u kontekstu odgovarajueg objekta, kao i sekvencijalna umesto deljenja jednog automata stanja objekta na dva konkurentna podstanja definiu se dva aktivna objekta od kojih je svaki odgovoran za ponaanje jednog podstanja objekat moe biti samo u jednom objekat je u svakom od njih ako jedno konkurentno podstanje stigne do zavrnog stanja pre drugog eka na drugo
Drugi nain da se modelira konkurentnost je pomou aktivnih objekata Od vie sekvencijalnih podstanja na jednom nivou
Od vie konkurentnih podstanja na jednom nivou Prelaz u stanje sa konkurentnim podstanjima predstavlja fork prelaz Sva konkurentna podstanja moraju biti zavrena da bi se izvrio prelaz join iz nadstanja Ugneeni konkurentni automati stanja
ne mogu imati poetno, zavrno i stanje istorije sekvencijalna podstanja koja obrazuju svako od konkurentnih podstanja imaju ova stanja Dijagrami stanja 18.11.2006.
17
Odrzavanje Testiranje Testiranje uredjaja Komandovanje Cekanje pritisnutTaster [ nastavak ] Komanda [ kraj ] Samodijagnostika
18
Dijagrami stanja
18.11.2006.
Slanje signala
Kada se iz akcije alje signal nekom objektu, taj objekt se moe prikazati na dijagramu
Stanje1 dogadjaj[ uslov ] /cilj.signal(arg) Stanje2
<<send>>
cilj
19
Dijagrami stanja
18.11.2006.