You are on page 1of 19

Projektovanje softvera

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

vorovi su stanja, a grane prelazi

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.

Kontekst primene automata stanja


Moe biti:

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

Elementi dijagrama stanja


Dijagram stanja prikazuje:

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.

Stanja i podautomati stanja


Stanje je situacija u toku ivotnog veka entiteta u kojoj entitet moe da postoji U jednom stanju entitet

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

Studiranje entry/upis do/ucenje i polaganje ispita exit/diplomiranje

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

Pseudostanja izbor/spoj se koriste za grane (prelaze)

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

dogadjaj [ uslov ] / akcija

Dijagrami stanja

18.11.2006.

Primer dijagrama stanja


Sistem klima-ureaja
prehladno(zeljenaTemp) naTemp pretoplo(zeljenaTemp) prehladno(zeljenaTemp) Grejanje

pretoplo(zeljenaTemp) naTemp Hladjenje

Neaktivno

10

Dijagrami stanja

18.11.2006.

Mealy i Moor automati


Kada se modelira ponaanje reaktivnog objekta akcije se mogu vezivati za tranzicije ili stanja Automat kod kojeg su sve akcije vezane za

stanja - Moor-ovog tipa tranzicije - Mealy-jevog tipa

U praksi dijagrami stanja kombinuju Mealy i Moor automate

11

Dijagrami stanja

18.11.2006.

Primer automata Mealy-jevog tipa


Automat stanja za parsiranje niza znakova koji odgovaraju sintaksi:

poruka: '<' string '>' string ';'

Prvi string predstavlja oznaku (tag), a drugi telo poruke (body) Automat radi beskonano nema zavrnog stanja
put( c )[ c/='<' ] / return false

Cekanje pu( c )[ c=='<' ]

put( c )[ c/='>' ] / token.dodaj(c); return false

PrijemTokena

put( c )[ c/=';' ] / telo.dodaj(c); return false

put( c )[ c=='>' ] PrijemTela put( c )[ c==';' ] / return true

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)

stanje koje obuhvata vie unutranjih (ugnjedenih) stanja

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

Ako je nadstanje cilj tranzicije iz spoljanjeg stanja

Ako je nadstanje izvor tranzicije

Pri tranziciji u/iz nadstanja izvravaju se ulazne/izlazne akcije i nadstanja i podstanja


Spoljasnje stanje1
Spoljasnje stanje1

Spoljasnje stanje2

Podstanje2
Spoljasnje stanje2

Podstanje 2

14

Dijagrami stanja

18.11.2006.

Primer sekvencijalnih podstanja


Registracija srudenata za kurs
Registracija dodajStudenta[ broj<15 ]

Inicijalizacija do/ inicijalizujKurs

dodajStudenta / broj=0

Otvoren entry/ registrujStudenta [ broj=15 ] /izvestaj.kreiraj

Ponisten do/ slanjeUpozorenja

ponistiKurs

Zatvoren entry/ kompletriajKurs exit/ spisakStudenata.kreiraj

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

Simbol H u kruiu oznaava "plitku" istoriju


pamti se istorija samo neposredno ugneenog automata stanja pamti se istorija do najugneenijeg automata stanja proizvoljne dubine

Simbol H* u kruiu oznaava "duboku" istoriju

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

Primer konkurentnih podstanja


Neaktivno fork join odrzavanje

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

Objekat je vezan sa stanjem (izvor) stereotipom send relacije zavisnosti

19

Dijagrami stanja

18.11.2006.

You might also like