Kurs: Softverski dizajn Materijali vezani uz ovu lekciju: - Test dijagram promene stanja (the state transition diagram) - Dijagram promene stanja (The State Transition Diagram) (PDF dokument) U ovoj lekciji obrađivaćemo:
Neke klase problema i njihovih rešenja mogu uspešno biti opisani posmatrajući ih kao automate sa konačnim stanjima. Takav sistem može se smatrati kao da postoji u konačnom skupu mogućih stanja, sa spoljašnjim događajima kao okidačima (eng. Triggers) koji dovode do tranzicije između stanja. Na primer, popularni Unix editor vi, ima dva osnovna stanja operacija:
Tranzicija između ovih stanja se dešava prema formi komande „escape". Na slici 1 je prikazan jednostavan opis modela vi editora, u kome krugovi predstavljaju stanja (režime), a strelice reprezentuju tranziciju, sa oznakama komandi (događaja) koje dovode do promene. Napomena: Na slici je prikazan samo mali podskup, pošto editor vi ima veći broj komandi za prelazak u insert režim. Linijski komandni režim može se smatrati kao podstanje komandnog režima. ![]()
Prethodna slika predstavlja samo jednostavan primer STD-a, koji pruža pogodan način za modelovanje mnogih drugih sistema. Generalne klase sistema u relanom vremenu mogu uspešno biti modelovane na ovaj način, pošto njihova priroda rada na pokretanju događajima i vodi ka logičnoj primeni ovakvih formi. Forme STD-aWard and Mellor[1] su predstavili formu STD-a koja je opisana u nastavku. Postoji 4 suštinske komponente u reprezentaciji STD-a:
Radi kompletiranja dijagrama, potrebno je identifikovati podrazumevano inicijalno stanje, na koje pokazuje strelica, bez stanja iz kojeg izvire. Nekada je moguće identifikovati finalno stanje, do koje će voditi određena tranzicija, ali nijedna od njega. ![]()
Na slici je prikazano kako je moguće raniji primer vi editora modelovati koristeći ovu formu STD-a. Vidi se da je i dalje moguće ostvariti višestruku tranziciju između datog para stanja. Radi pojednostavljenja prikaza ni ovde nisu prikazane sve moguće tranzicije. Utvrđene su akcije za završetak rada editora, a komandni režim je identifikovan kao inicijalno stanje kada editor počne operaciju. Na slici 3 je prikazan komplikovaniji sistem modelovan na ovaj način, koji sadrži više stanja. U datom primeru opisan je sistem ponašanja aviona modelovanog kao komponenta kontrole leta vazdušnog saobraćaja. Dogođaj koji dovodi do inicijalnog stanja je radar koji detektuje avion koji ulazi u vazdušni prostor. Kompleksnost tranzicije u ovom primeru je velika zbog postojanja brojnih akcija koje avion može da preduzme, od prostog letenja, do problema sa poletanjem ili sletanjem i sl. ![]()
STD gledište (viewpoint)STD je primer reprezentacije koji se koristi da uhvati i opiše sistem sa gledišta ponašanja, tako da se bavi dinamičkih atributa sistema, preko termina stanja, događaja i uslova. Identifikuje samo verovatnoću da će određena tranzicija desiti, bez indikacije kako će teći sekvenca aktivnosti. Korišćenje STD-aOsnovna uloga STD je modelovanje problema entiteta, mada može imati ulogu u izgradnji modela rešenja. Posebno je koristan u modelovanju nekih potreba u realnom vremenu. STD je koristan alat za modelovanje, ali ima i ograničenja. Kao što se videlo u prethodnim primerima, ako postoji veliki broj transakcija između malog broja stanja, dijagram može postati nepregledan. Slično tome, veliki i kompleksni sistemi rezultuju u velikim i kompleksnim dijagramima, kao što ne postoji i hijerarhijsko raslojavanje dijagrama. Postoji i druge prema stanju orijentisane forme, koje prevazilaze problem sa slojevima, dodavajući hijerarhiju u sama stanja (Statechart). Reference:1. Ward P.T. and Mellor S.J. (1985). Structured Development for Real-Time Systems, Vols 1-3, Yourdon Press
|