Stavový diagram PB007 Softwarové inženýrství I Stanislav Chren 21. 11. 2012 Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 1 / 13 Stavový diagram Stavový diagram modeluje dynamické chovanie (životný cyklus) jedného reaktívneho objektu(trieda, prípad užitia, systém, subsystém). Jeho základné zložky tvoria: Stavy Prechody Udalosti Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 2 / 13 Zložky stavového diagramu Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 3 / 13 Stavy Stav reprezentuje sémanticky dôležitú situáciu v objekte. Pre objekt je určený hodnotami atribútov, vzťahmi s inými objektami, a vykonávanou aktivitou. Stav môže obsahovať: Entry/Exit akcie Interné prechody/akcie Interné aktivity Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 4 / 13 Prechody Prechody definujú, akým spôsobom sa dá dostať z jedného stavu do druhého. Prechod obsahuje zložky: Udalosti Podmienky Akcie Syntax: udalosť[podmienka]/akcia Sémantika: Pri výskyte udalosti, ak je splnená podmienka, vykonaj akciu a prejdi do nového stavu. Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 5 / 13 Udalosti Udalosť je podnet, na ktorý objekt môže reagovať zmenou stavu alebo vykonaním nejakej operácie. Rozlišujeme 4 typy udalostí: Udalosť volania (Call event) - volanie operácie daného objektu. Udalosť signálu (Signal event) - poslanie a príjem signálu od jedného objektu k druhému. Udalosť zmeny (Change event) - pravdivostný výraz. K udalosti dôjde po zmene jeho hodnoty z false na true. Časová udalosť (Time event) - udalosť nastane v určitú dobu (when()) alebo po určitej dobe (after()) Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 6 / 13 Udalosti - príklad Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 7 / 13 Zložené stavy Zložený stav je stav, ktorý obsahuje vnorené stavy. Rozlišujeme dva typy zložených stavov: Jednoduché zložené stavy - tvorí ich jeden región. Vhodné na zachytenie dedičnosti medzi stavmi. Ortogonálne zložené stavy - tvorí ich dva a viac regiónov. Každý z nich obsahuje vnorený stavový diagram. Ich vykonávanie prebieha paralelne. Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 8 / 13 Zložené stavy - Príklad Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 9 / 13 Zložené stavy - Príklad II Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 10 / 13 Ďalšie zdroje http://www.uml-diagrams.org/state-machine-diagrams.html http://mpavus.wz.cz/uml/uml-b-state-3-2-2.php http://www.agilemodeling.com/artifacts/ stateMachineDiagram.htm http://www.sparxsystems.com.au/resources/uml2_tutorial/ uml2_statediagram.html Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 11 / 13 Úlohy Zvolte si reaktívny objekt, ktorý budete modelovať. Najskôr zostavte zoznam všetkých stavov, ktoré je možné v objekte rozlišiť. Vyberte z neho tie, ktoré je naozaj zaujímavé rozlíšiť vzhľadom k zameraniu a funkciám systému. Vytvorte zoznam udalostí (vonkajších stimulov), ktoré nad objektom prebiehajú. Zo zoznamu vyberte tie, ktoré ovplyvňujú/menia stav objektu. Na základe získaných zoznamov stavov a udalostí zostrojte stavový diagram. Snažte sa využiť dedičnosť medzi stavmi a tým zjednodušiť výsledný model. Odovzdajte pdf report do odovzdávarne(Týden 10). Deadline: 1.12. 23:59 (Skupina 14) 26.11. 23:59 (Skupiny 15, 16) Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 12 / 13 Nastavenie reportu VP Softwarové inženýrství I (PB007) Stavový diagram 21. 11. 2012 13 / 13