Stavový diagram

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Naspäť na Softvérové inžinierstvo
Stavový diagram (State Diagram)
je spôsob grafického zápisu vývoja systému, ktorý má konečný počet stavov.

Príklad diagramu: konečný automat (stavový automat), ktorý vyjadruje stav určitého objektu a prechody medzi jeho stavmi.

Stavový diagram obsahuje:

  • stavy,
  • udalosti
  • prechody medzi stavmi.
Príklad stavového diagramu


Grafické prvky stavových diagramov:

  • Vyplnená kružnica, znamenajúca štart.
  • Kružnica s bodom uprostred, znamenajúca stop alebo koniec. Nie je nevyhnutné zakresľovať.
  • Obdĺžnik znamenajúci stav. Hore sa zapisuje názov stavu. Môže obsahovať horizontálnu čiaru v strede, pod ktorou je napísané, čo v danom stave je vykonané.
  • Šípka znamenajúca prechod. Môže byť označená výrazom uzavretým v hranatých zátvorkách („[]“), ktorý reprezentuje spúšťač daného prechodu.

Stav

Stav charakterizuje trvanie konfigurácie nemenných podmienok v systéme. Stavom môže byť označená situácia, kedy sa čaká na udalosť alebo sa objekt nejakým spôsobom chová. Stavy sú okrem počiatočného pseudostavu a koncového stavu znázornené pomocou obdĺžnika so zaoblenými rohmi a s názvom stavu umiestneným v hornej časti.

Stav je v danom konkrétnom okamžiku určený nasledujúcimi faktormi:

  • hodnotami atribútov daného objektu,
  • reláciami s ďalšími objektami,
  • aktuálne vykonávanou aktivitou.

Každý stav môže obsahovať ľubovoľný počet akcií a aktivít.

Akcia
proces, ktorý prebehne rýchlo a je neprerušiteľný.
Aktivita
dlhšie trvajúci proces, ktorý sa dá prerušiť.

Prechod

Prechod je priame prepojenie jednotlivých stavov. Smeruje od zdrojového stavu k cieľovému. Prechod zo stavu je reakciou na vznik udalosti alebo ukončenia činnosti (alebo činností) v aktívnom stave. Nad každým prechodom môže byť voliteľný opis s nasledujúcou syntaxou:

        Udalosť [podmienka] / Akcia

Každá časť je voliteľná.

Udalosť
interný alebo externý výskyt, ktorý zaháji prechod. Môže to byť i 'completion event' (automatický prechod).
Podmienka (guard)
booleovský výraz, ktorého splnenie podmieňuje prechod.
Akcia
vykoná sa pri zahájení prechodu.

Udalosť

Udalosť je niečo významného, čo sa stane v určitom čase a priestore a čo nemá trvanie. Typy udalostí:

  • Udalostné volanie
    • požiadavka na vyvolanie konkrétnej operácie inštancie kontextovej triedy. Príjem udalostného volania potom spúšťa požadovanú operáciu.
  • Udalosť zmeny
    • nastáva pri splnené booleovskej podmienky
  • Časová udalosť
    • nastáva po uplynutí určitej doby alebo po splnení určitej časovej podmienky

Príklad stavových diagramov

Uvažujme priemyselný protokol MODBUS Implementácia protokolu MODBUS/uBUS. Protokol MODBUS je priemyselný protokol typu master/klient. V tejto architektúre začína komunikáciu vždy uzol master a oslovuje jeden konkrétny uzol slava (unicastová komunikácia) alebo všetky uzly slave naraz (broadcastová komunikácia). Pri unicastovej komunikácii sa od uzla slave očakáva odpoveď na prijatú požiadavku. Pri komunikáci broadcast uzly slave na požiadavku neodpovedajú.

MODBUS - stavový diagram uzla master
MODBUS - stavový diagram uzla slave