PB007 Softwarové inženýrství I Cvičenie 7 – State Machine Diagram Valdemar Švábenský Fakulta informatiky, Masarykova univerzita, Brno 27. októbra 2015 Obsah 1 Stavový diagram 2 Úlohy 3 Visual Paradigm: tipy 1 Stavový diagram 2 Úlohy 3 Visual Paradigm: tipy Stavový diagram (State Machine Diagram) ∙ Popisuje životný cyklus (dynamické chovanie v priebehu času) vybraného objektu ∙ Objekt = trieda, prípad použitia, celý systém, . . . ∙ Životný cyklus je modelovaný ako postupnosť: ∙ stavov (states), ∙ prechodov (transitions) medzi stavmi a ∙ udalostí (events), ktoré zmeny stavu vyvolávajú Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/lec/04-ObjectOrientedAnalysis.pdf Stavy (states) Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/lec/04-ObjectOrientedAnalysis.pdf ∙ Stav reprezentuje významnú situáciu v živote objektu ∙ Je určený hodnotami atribútov, vzťahmi s inými objektami a vykonávanými aktivitami ∙ Špeciálne typy stavov: ∙ Každý stavový diagram má iniciálny stav ∙ Ak stavy necyklia do nekonečna, každý stavový diagram by mal mať koncový stav ∙ Zlučovacie a rozhodovacie pseudostavy, pozri ďalej Prechody (transitions) Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/lec/04-ObjectOrientedAnalysis.pdf ∙ Prechod určuje, ako sa dostať z jedného stavu do druhého ∙ Syntax: udalosť[podmienka]/akcia ∙ Pri výskyte udalosti, ak je splnená podmienka, vykonaj akciu a prejdi do nového stavu Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/lec/04-ObjectOrientedAnalysis.pdf Udalosti (events) Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/lec/04-ObjectOrientedAnalysis.pdf ∙ Udalosť je podnet, na ktorý môže objekt reagovať zmenou stavu alebo vykonaním nejakej akcie ∙ Externá (na prechodoch) alebo interná (vnútri stavov) 1 Call event – volanie operácie objektu 2 Signal event – asynchrónne poslanie a príjem signálu od jedného objektu k druhému 3 Change event – logická podmienka, ktorá spôsobí prechod, keď sa jej hodnota zmení z false na true 4 Time event – časový výraz: udalosť nastane v určitú dobu (when()) alebo po určitej dobe (after()) Stavový diagram – ukážka 1 Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/tut/siscz/05_Studium_StateMachnine.jpg Rozhodovacie a zlučovacie pseudostavy ∙ Rozhodovací pseudostav (choice pseudo-state) – spôsobí prechod z jedinej vstupnej hrany do jednej z výstupných ∙ Zlučovací pseudostav (junction pseudo-state) – spája viacero vstupných hrán do jednej výstupnej Zdroj: https://is.muni.cz/auth/el/1433/podzim2015/PB007/um/lec/04-ObjectOrientedAnalysis.pdf ∙ Podobné Decision / Merge Node v diagrame aktivít ∙ Stavový diagram je podobný diagramu aktivít, líši sa však sémantikou a účelom – je určený k modelovaniu objektov Zložené stavy ∙ Zložený stav je stav, ktorý obsahuje vnorené stavy. ∙ Jednoduché zložené stavy ∙ Tvorí ich 1 región ∙ Sú vhodné na zachytenie dedičnosti medzi stavmi ∙ Ortogonálne zložené stavy ∙ Tvorí ich 2 a viac regiónov ∙ Každý z nich obsahuje vnorený stavový diagram, ktorých vykonávanie prebieha paralelne Stavový diagram – ukážka 2 Zdroj: https: //is.muni.cz/auth/el/1433/podzim2015/PB007/um/sem/cz_files/05/05_Studium_StateMachine-inher.jpg Tipy ∙ Všetky stavy okrem počiatočného a koncového by mali mať vstupný a aj výstpný prechod ∙ Diagram by mal byť čitateľný zľava doprava a zhora nadol ∙ Počiatočný stav v ľavom hornom rohu, koncový stav v pravom dolnom rohu ∙ Udalosť pomenujte ako sloveso v trpnom rode ∙ Skúste využiť dedičnosť medzi stavmi a tým zjednodušiť výsledný model 1 Stavový diagram 2 Úlohy 3 Visual Paradigm: tipy Úlohy ∙ Opravte a doplňte Class Diagram z minulého cvičenia ∙ Zvolte si objekt, ktorého životný cyklus budete modelovať ∙ Zostavte zoznam všetkých stavov, ktoré je možné v objekte rozlíšiť a vyberte tie, ktoré sú podstatné vzhľadom k zameraniu a funkciám systému ∙ Vytvorte zoznam udalostí (vonkajších stimulov), ktoré nad objektom prebiehajú a vyberte tie, ktoré ovplyvňujú objekt alebo menia jeho stav ∙ Na základe získaných zoznamov stavov a udalostí zostrojte stavový diagram ∙ Vygenerujte PDF report a vložte ho do odovzdávarne „Week 07“ (skupiny 09, 10) ∙ Názov v tvare priezvisko1-priezvisko2-priezvisko3.pdf ∙ Odovzdáva jeden človek za svoj tím ∙ Deadline: 1.11. 23:59 1 Stavový diagram 2 Úlohy 3 Visual Paradigm: tipy Vstupná (výstupná) interná akcia ∙ Pravý klik na stav → Open Specification