Hodnoceni

49. Stavový diagram v UML.

STAVOVÝ DIAGRAM se používá k zachycení chování softwarového systému. Diagramy stavových automatů UML lze použít k modelování chování třídy, subsystému, balíčku nebo dokonce celého systému. Nazývá se také stavový automat nebo diagram přechodů stavů.

Stavové diagramy nám poskytují efektivní způsob modelování interakcí nebo komunikace, ke kterým dochází v rámci externích objektů a systému. Tyto diagramy se používají k modelování systému založeného na událostech. Stav objektu je řízen událostí.

Stavové diagramy se používají k popisu různých stavů objektu v aplikačním systému.

Existují dva typy stavových diagramů:

  1. Behaviorální stavový stroj
  • Zaznamenává chování entity přítomné v systému.
  • Používá se k reprezentaci konkrétní implementace prvku.
  • Chování systému lze modelovat pomocí stavových diagramů behaviorálních automatů.
  1. Protokol konečného automatu
  • Tyto diagramy se používají k zachycení chování protokolu.
  • Toto představuje, jak se stav protokolu mění v závislosti na události. Zároveň představuje odpovídající změny v systému.
  • Nepředstavují konkrétní implementaci prvku.

V této lekci UML se naučíte,

  • Proč diagram stavového automatu?
  • Zápis a symbol pro konečný stavový automat
  • Typy státu
  • Jak nakreslit stavový diagram?
  • Kdy použít stavové diagramy?
  • Příklad státního stroje
  • Konečný stavový automat vs. vývojový diagram

Proč diagram stavového automatu?

Stavový diagram se používá k znázornění dynamického aspektu systému. Stavové diagramy se používají k reprezentaci chování aplikace. Objekt prochází během své životnosti různými stavy. Životnost objektu trvá až do ukončení programu. Objekt prochází několika stavy v závislosti na události, která se v objektu vyskytne. Každý stav představuje jedinečnou informaci o objektu.

Stavové diagramy se používají k vývoji interaktivních systémů, které reagují na interní nebo externí události. Stavový diagram vizualizuje tok provádění z jednoho stavu do druhého stavu objektu.

Představuje stav objektu od jeho vytvoření až do jeho zničení nebo ukončení.

Hlavním účelem stavového diagramu je modelovat interaktivní systémy a definovat každý stav objektu. Stavové diagramy jsou navrženy tak, aby znázorňovaly dynamické chování aplikačního systému. Tyto diagramy se používají k reprezentaci různých stavů systému a objektů v systému.

Zápis a symbol pro konečný stavový automat

Níže jsou uvedeny různé symboly, které se používají ve stavovém diagramu. Všechny tyto symboly v kombinaci tvoří jeden diagram.

Výchozí stav

Symbol počátečního stavu se používá k označení začátku schématu stavového stroje.

Konečný stav

Tento symbol se používá k označení konce schématu stavového stroje.

Okno řešení

Obsahuje podmínku. V závislosti na výsledku vyhodnocené ochranné podmínky je pro spuštění programu vybrána nová cesta.

přechod

Přechod je změna z jednoho stavu do druhého, ke které dochází v důsledku nějaké události. Přechod způsobuje změnu stavu objektu.

Státní box

Jedná se o určitý okamžik v životě objektu. Je definován pomocí nějaké podmínky nebo operátoru v těle klasifikátoru. Používá se k reprezentaci jakýchkoli statických a dynamických situací.

Je znázorněn obdélníkem se zaoblenými rohy. Uvnitř zaobleného obdélníku je napsán název státu.

Přečtěte si více
Jak si sami seřídit světlomety vašeho auta

Název stavu lze umístit i mimo obdélník. To lze provést v případě komplexních stavů nebo stavů podstrojů. V poli tabulky můžete název stavu umístit buď uvnitř obdélníku, nebo mimo něj. Nelze provést obojí současně.

Stav může být aktivní nebo neaktivní. Když je stav v provozním režimu, je aktivní, jakmile se zastaví provádění a přejde do jiného stavu, předchozí stav se stane neaktivním a aktuální stav se stane aktivním.

Typy státu

Unified Modeling Language definuje tři typy stavů:

  • Jednoduchý stav
    • Nemají substrát.
    • Tyto typy stavů mohou mít jeden nebo více substrátů.
    • Složený stav se dvěma nebo více podstavy se nazývá ortogonální stav.
    • Tyto stavy se sémanticky rovnají složeným stavům.
    • Na rozdíl od složeného stavu můžeme stavy stroje znovu použít.

    Jak nakreslit stavový diagram?

    Stavové diagramy se používají k popisu různých stavů, kterými objekt prochází. Přechod z jednoho stavu do druhého nastává v důsledku nějaké spuštěné události. Pro nakreslení stavového diagramu je nutné identifikovat všechny možné stavy daného objektu.

    Účelem těchto diagramů UML je reprezentovat stavy systému. Stavy hrají v diagramech přechodů stavů zásadní roli. Před implementací diagramu je nutné analyzovat všechny významné objekty, stavy a události, které způsobují změny stavů.

    Při konstrukci stavového diagramu je třeba dodržovat následující pravidla:

    1. Název přechodu stavu musí být jedinečný.
    2. Název státu by měl být snadno srozumitelný a měl by popisovat chování státu.
    3. Pokud existuje více objektů, je třeba implementovat pouze hlavní objekty.
    4. Pro každý přechod a událost musí být uvedeny vlastní názvy.

    Kdy použít stavové diagramy?

    Stavové diagramy se používají k hluboké implementaci reálných funkčních modelů a objektově orientovaných systémů. Tyto diagramy se používají k porovnání dynamické a statické povahy systému zachycením dynamického chování systému.

    Stavové diagramy se používají k zaznamenávání změn v různých objektech systému od začátku do konce. Používají se k analýze toho, jak může událost způsobit změny ve více stavech systému.

    Používají se stavové mapy,

    1. Pro modelování systémových objektů.
    2. Modelujte a implementujte interaktivní systémy.
    3. Zobrazení událostí, které způsobují změny stavů.

    Příklad státního stroje

    Následující stavový diagram znázorňuje proces ověřování uživatele.

    Celkem existují dva stavy, přičemž první stav označuje, že je nutné nejprve zadat OTP. Poté je OTP označeno v rozhodovacím okně, pokud je správné, dojde pouze ke změně stavu a uživatel bude ověřen. Pokud je OTP nesprávné, k změně nedojde a zařízení se vrátí do počátečního stavu, dokud uživatel nezadá správné OTP.

    Konečný stavový automat vs. vývojový diagram

    Státní aparát blokové schéma
    Představuje různé stavy systému. Vývojový diagram znázorňuje tok provádění programu.
    Stavový automat má koncept WAIT, tj. čekání na akci nebo událost. Vývojový diagram se nezabývá očekáváním konceptu.
    Stavové stroje se používají pro běžící systém. Blokové schéma zobrazuje větvené sekvence systému.
    Stavový automat představuje simulační diagram. Vývojový diagram je sekvenční tok nebo DFD diagram.
    Stavový automat může zkoumat různé stavy systému. Vývojový diagram se zabývá cestami a řídicím tokem.

    Shrnutí

    • Stavové diagramy se také nazývají diagramy konečných stavových automatů.
    • Tyto diagramy se používají k modelování systému založeného na událostech.
    • Stav objektu je řízen pomocí události.
    • Existují pouze dva typy diagramů stavových automatů: 1) Behaviorální 2) Konečný stavový automat 3) Protokol stavového automatu
    • Stavový diagram se používá k znázornění dynamického aspektu systému.
    • Stav je specifický bod v životě objektu.

    Stavový diagram (diagram stavového grafu) jeden z diagramů UML, který modeluje dynamiku systémů. Stavový diagram znázorňuje konečný stavový automat a zdůrazňuje tok řízení ze stavu do stavu. Konečný stavový automat — chování, které definuje posloupnost stavů během existence objektu. Tato posloupnost je považována za reakci na události a zahrnuje reakce na tyto události.

    Stavový diagram ukazuje:

    1. sada stavů systému;
    2. události, které způsobují přechod z jednoho stavu do druhého;
    3. akce, které nastávají v důsledku změny stavu.

    V jazyce UML stav (stav) je období v životě objektu, během kterého splňuje podmínku, provádí určitou činnost nebo čeká na událost. Stav je znázorněn jako zaoblený obdélník, obvykle včetně svého názvu a podstavů (pokud existují).

    Se stavem lze přiřadit pět typů dat: vstupní akce, výstupní akce, aktivita, událost a historie stavu.

    Pro indikaci akční (akce) prováděné při vstupu do stavu a při opuštění stavu používají popisky vstup и výstup resp.

    Akce, která se má provést, když se systém nachází v daném stavu, je specifikována za návěstí. doPředpokládá se, že taková akce začíná vstupem do stavu a končí jeho opuštěním (viz obr. 2.27).

    Obr. 2.27. Vstupní a výstupní akce a aktivity ve stavu

    Existují zvláštní případy státu – to jsou výchozí stav (počáteční stav) a konečný stav (koncový stav). Neobsahují žádné vnitřní akce. Počáteční stav je výchozí stav objektu v počátečním okamžiku. Graficky je znázorněn jako plný kruh (viz obr. 2.28, a). Konečný stav je výchozí stav objektu po ukončení činnosti stroje v konečném okamžiku. Graficky je znázorněn jako plný kruh umístěný v kruhu (viz obr. 2.28, b).

    Obr. 2.28. Počáteční (a) a konečný (b) stav

    Mezi stavy jsou možné různé typy přechodů. Přechod (přechod) je vztah mezi dvěma po sobě jdoucími stavy, který indikuje skutečnost změny z jednoho stavu do druhého. Přechody mezi stavy jsou znázorněny označenými šipkami (viz obr. 2.29).

    Obr. 2.29. Označení přechodu mezi státy

    Přechod je obvykle spuštěn nějakou událostí. Událost (událost) je specifikace nějaké skutečnosti, která se vyskytuje v prostoru a čase. Přechody bez událostí jsou povoleny. Podmíněné přechody jsou také povoleny. Stav oplocení (ochrany) (ochranná podmínka), pokud je přítomna, je booleovský výraz. Pro zápis tohoto výrazu lze použít syntaxi jazyka pro objektová omezení. Pořadí provádění podmíněné větve je:

    1. nastane událost;
    2. vypočítá se přechodová podmínka;
    3. Pokud je podmínka přechodu pravdivá, přechod se provede a akce se aktivuje, jinak se přechod neprovede.

    Vyjádření akce (výraz akce) se provede pouze tehdy, je-li spuštěn přechod. Prováděná akce nemůže být přerušena žádnou jinou akcí, dokud není dokončena. Akce může ovlivnit jak samotný objekt, tak jeho okolí, pokud je to zřejmé z kontextu modelu.

    Pokud akce vysílá signál, použije se speciální zápis:  a před názvem signálu se uvede servisní slovo. odeslat.

    Jednou z nejdůležitějších vlastností konečných automatů v UML je podstát (substav). Substav nám umožňuje výrazně zjednodušit modelování komplexního chování. Substav je stav vnořený do jiného stavu. Obrázek 2.30 ukazuje složený stav (složený stav) obsahující dva podstavy.

    Obr. 2.30. Složený stav s vnořenými podstavy

    Do podstavu mohou být zase vnořeny další podstavy. Stupeň vnoření podstavů není omezen.

    Složený stav může obsahovat několik po sobě jdoucích podstavů nebo několik paralelních subaumat. Sekvenční podstavy (sekvenční podstavy) se používají k modelování chování objektu, ve kterém se v daném okamžiku může objekt nacházet pouze v jednom podstavu (viz obr. 2.30). Chování objektu je v tomto případě sekvenční změnou podstavů, počínaje počátečním a konče finálními podstavy.

    Mohou mít paralelní podstavy (souběžné podstavy) – umožňují specifikovat několik podautomatů, které lze provádět paralelně v rámci složeného stavu. Každý ze podautomatů zabírá v rámci složeného stavu určitou oblast, která je od ostatních oddělena vodorovnou tečkovanou čarou (viz obr. 2.31). Pokud je na stavovém diagramu složená oblast s vnořenými paralelními podstavy, pak se objekt může nacházet v každém z těchto podstavů současně.

    Někdy je při návratu do složeného stavu nutné dostat se do podstavu, který byl naposledy posledním. Takový podstav se nazývá historický. Informace o historický stav (stav historie) je zapamatován. Taková sémantika přechodů je zobrazena ikonou historie  písmenem Н uvnitř kruhu.

    Obr. 2.31. Složený stav s vnořenými paralelními podstavy

    Použití historických stavů je opodstatněné v případech, kdy je nutné organizovat zpracování výjimečných situací (přerušení) bez ztráty dat nebo vykonané práce.

    Stavový diagram znázorňuje životní cyklus jednoho objektu, od jeho vytvoření až po jeho zničení. Takové diagramy jsou užitečné pro modelování dynamiky chování tříd. Takové třídy mají obvykle mnoho různých stavů. Například bankovní účet (třída Účet) může mít několik různých stavů. Může být otevřený, uzavřený nebo přečerpaný. Chování účtu se mění v závislosti na stavu, ve kterém se nachází. Tyto informace zobrazuje stavový diagram.

    Obrázek 2.32 ukazuje příklad stavového diagramu pro bankovní účet v bankomatu.

    Tento diagram znázorňuje možné stavy účtu a také proces přechodu účtu z jednoho stavu do druhého. Pokud například zákazník požádá o uzavření otevřeného účtu, účet přejde do stavu Zavřeno.

    V určitém stavu může objekt provádět určité akce. Může například generovat sestavu, provádět nějaké výpočty nebo odesílat událost jinému objektu. V aplikaci Rational Rose se tento typ informací přidává do modelu prostřednictvím okna Specifikace stavu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button