State Machines
o stavových strojoch a statových diagramoch
About
Správanie rozličných systémov, aplikácií alebo zariadení, je možné charakterizovať ako stavové stroje (alebo konečnostavové automaty, konečnostavové stroje). Ich správanie vieme následne modelovať pomocou stavových strojov. Na tomto cvičení si niekoľko stavových diagramov nakreslíme.
Objectives
- Naučiť sa opísať správanie systému/zariadenia/aplikácie pomocou stavov.
- Naučiť sa reprezentovať správanie systému pomocou stavového diagramu.
Content
Not Too Short Introduction to State Diagrams
Stavový stroj reprezentuje model správania sa. Pozostáva z konečného počtu stavov, v ktorých sa zariadenie môže nachádzať, a prechodov medzi nimi. Stavový stroj sa môže vždy sa nachádzať práve v jednom stave. K prechodu medzi stavmi môže dôjsť na základe rôznych vstupov (napr. externých, ako je prijatie konkrétneho signálu/správy alebo interných, ako napr. vypršanie časovača).
Pre grafickú reprezentáciu správania stavových strojov používame stavové diagramy. Stavový diagram sa skladá z dvoch základných grafických komponentov:
- z konečného počtu stavov, a
- prechodov medzi stavmi.
Jednoduchý príklad diagramu stavov je možné vidieť na nasledujúcom obrázku. Diagram reprezentuje správanie sa dverí, ktoré môžu byť buď otvorené (prvý stav) alebo zatvorené (druhý stav).
O stavovom stroji, ktorý je reprezentovaný týmto diagramom, platí:
- pozostáva z dvoch stavov:
opened
aclosed
- počiatočným stavom tohto stroja je stav
closed
- zo stavu
opened
sa do stavuclosed
dostaneme zatvorením dverí - zo stavu
closed
sa do stavuopened
dostaneme otvorením dverí
Správanie stavového stroja je možné reprezentovať aj pomocou tabuľky prechodov stavov (z angl. state-transition table). V záhlaví tejto tabuľky sa nachádzajú:
- východzie stavy, a
- udalosti, ktoré odštartujú prechod do nasledujúceho stavu.
Výsledkom kombinácie týchto dvoch je nový stav, do ktorého sa systém dostane z východzieho stavu pri vzniku danej udalosti.
Príkladom tabuľky prechodov stavov pre dvere je táto tabuľka:
state / event | open | close |
---|---|---|
opened |
– | closed |
closed |
opened |
– |
Úloha
Rozšírte stavový diagram dverí o možnosť dvere zamykať.
Úloha
Pre vytvorený stavový diagram zostavte aj tabuľku prechodov stavov.
State Machine: Garage Doors
Tentokrát sa pokúsime opísať správanie garážových dverí. Tieto garážové dvere bude možné ovládať pomocou ovládača, ktorý má tri tlačidlá:
Otvoriť
- Po jeho stlačení sa začnú garážové dvere otvárať.Zatvoriť
- Po jeho stlačení sa začnú garážové dvere zatvárať.Stop
- Po stlačení sa zastaví otváranie alebo zatváranie garážových dverí.
Otváranie ako aj zatváranie je možné spustiť vždy len vtedy, keď sa garážové dvere nehýbu (nesmú sa práve ani otvárať ani zatvárať).
Úloha
Nakreslite stavový diagram reprezentujúci správanie garážových dverí.
Úloha
Vytvorte pre vami navrhnutý stavový diagram aj prechodovú tabuľku stavov.
State Machine: Toaster
V tomto kroku sa pozrieme na ďalšie zariadenie, ktoré je možné charakterizovať ako stavový stroj - toaster. Budeme ho modelovať pomocou diagramu stavov ako aj prechodovou tabuľkou.
Stavový diagram môže v grafickej notácii stavu okrem jeho názvu obsahovať aj ďalšie informácie:
entry
- čo sa vykoná bezprostredne po vstúpení do daného stavuexit
- čo sa vykoná tesne predtým, ako sa daný stav opustído
- čo sa bude v danom stave vykonávať
Okrem toho rozponávame aj dva pseudostavy:
počiatočný stav - Slúži len na označenie stavu, v ktorom sa systém bude nachádzať po jeho zapnutí. Tento prechod môže byť nepomenovaný alebo pomenovaný.
koncový stav - Označuje stav, z ktorého už nevychádza žiadny prechod do iného stavu.
Úloha
Nakreslite stavový diagram reprezentujúci správanie spotrebiča toaster.
Úloha
Vytvorte pre vami navrhnutý stavový diagram aj prechodovú tabuľku stavov.
Addiational Tasks
Nakreslite stavový diagram pre dvere, ktoré sa automaticky zatvárajú a otvárajú napr. vo výťahoch alebo na benzinkách.
Uvažujte o ďalších možnostiach navrhnutého toastera a zakreslenie tohto správania do stavového diagramu:
- tlačidlo na okamžité vypnutie toastera (vystrelí toast a ukončí proces jeho toastovania)
- zabezpečenie pred spustením toasteru naprádzno (bez toastu)
Galiba. V areáli TUKE prasklo vodovodné potrubie. Aby bola situácia ešte zamotanejšia, kvôli jej oprave museli vodári rozkopať časť cesty v areáli, čím obmedzili premávku len do jedného jazdného pruhu (ehm - my tu máme jazdné pruhy? manager). Aby nebola ovplyvnená plynulosť premávky, vedenie rozhodlo na oboch stranách komunikácie umiestniť dostatočne inteligentné semafory, ktoré budú premávku riadiť. A pred ich samotnou inštaláciou chce vidieť model ich fungovania. Tentokrát ťa tvoja univerzita naozaj potrebuje…
Additional Resources
Modelovanie správania - Popis správania sa modelovaného systému pomocou UML diagramov správania.
State Machine Diagram Tutorial - A state diagram, sometimes known as a state machine diagram, is a type of behavioral diagram in the Unified Modeling Language (UML) that shows transitions between various objects.