State Machine Diagram & Statechart Diagram v UML
Co je schéma státního stroje?
Stavový diagram se používají k zachycení chování softwarového systému. Diagramy UML State machine 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ý diagram nebo diagram přechodu stavu.
Co je stavový diagram?
Stavové diagramy nám poskytují efektivní způsob, jak modelovat interakce nebo komunikaci, ke kterým dochází v rámci externích entit a systému. Tyto diagramy se používají k modelování systému založeného na událostech. Stav objektu je řízen pomocí události. Stavové diagramy se používají k popisu různých stavů entity v aplikačním systému.
V UML existují celkem dva typy diagramů stavového stroje:
1. Behavioral State Machine Diagram
- Zachycuje chování entity přítomné v systému.
- Používá se k reprezentaci konkrétní implementace prvku.
- Chování systému lze modelovat pomocí diagramu stavového stroje v OOAD.
2. Protokol Stavové schéma stroje
- Tyto diagramy se používají k zachycení chování protokolu.
- Představuje, jak se změní stav protokolu týkající se události. Představuje také odpovídající změny v systému.
- Nepředstavují konkrétní implementaci prvku.
Proč State Machine Diagram?
Stavový diagram se používá k zachycení dynamického aspektu systému. Diagramy stavových strojů se používají k reprezentaci chování aplikace. Objekt prochází během své životnosti různými stavy. Životnost objektu zůstává, dokud není program ukončen. Objekt přechází z více stavů v závislosti na události, která nastane v objektu. Každý stav představuje nějaké jedinečné informace o objektu.
Stavové diagramy se používají k návrhu interaktivních systémů, které reagují na vnitřní nebo vnější události. Stavový diagram v UML vizualizuje tok provádění z jednoho stavu do jiného stavu objektu.
Představuje stav objektu od vytvoření objektu až do zničení nebo ukončení objektu.
Primárním účelem stavového diagramu je modelovat interaktivní systémy a definovat každý stav objektu. Stavové diagramy jsou navrženy tak, aby zachycovaly dynamické chování aplikačního systému. Tyto diagramy se používají k reprezentaci různých stavů systému a entit v systému.
Zápis a symbol pro schéma státního stroje (diagram státního schématu)
Následují různé zápisy, které se používají v celém diagramu stavového diagramu. Všechny tyto zápisy, když jsou kombinovány, tvoří jeden diagram.
Počáteční stav
Symbol počátečního stavu se používá k označení začátku diagramu stavového stroje.
Konečný stav
Tento symbol se používá k označení konce schématu stavového stroje.
Rozhodovací box
Obsahuje podmínku. V závislosti na výsledku vyhodnoceného ochranného stavu se pro provedení programu zvolí nová cesta.
Přechod
Přechod je změna jednoho stavu do jiného stavu, ke které došlo v důsledku nějaké události. Přechod způsobí změnu stavu objektu.
State box
Je to specifický okamžik v životnosti předmětu. Je definován pomocí nějaké podmínky nebo příkazu v těle klasifikátoru. Používá se k zobrazení jakýchkoli statických i dynamických situací.
Označuje se pomocí obdélníku s kulatými rohy. Název státu je napsán uvnitř zaobleného obdélníku.
Název státu lze také umístit mimo obdélník. To lze provést v případě složených nebo submachine stavů. Název státu lze buď umístit do obdélníku nebo mimo obdélník do tabulkového rámečku. Nelze provádět obojí současně.
Stav může být aktivní nebo neaktivní. Když je stav v pracovní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í žádný substát.
- Složený stav
- Tyto typy stavů mohou mít jeden nebo více podstavů.
- Složený stav se dvěma nebo více podstavy se nazývá ortogonální stav.
- Stav samopalu
- Tyto stavy se sémanticky rovnají složeným stavům.
- Na rozdíl od složeného stavu můžeme stavy submachine 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 mezi jedním stavem do jiného stavu nastává kvůli nějaké spuštěné události. Chcete-li nakreslit stavový diagram UML, je třeba identifikovat všechny možné stavy jakékoli konkrétní entity.
Jejich účelem UML diagramy je reprezentovat stavy systému. Stavy hrají zásadní roli ve stavových přechodových diagramech. Před implementací diagramu musí být nejprve analyzovány všechny podstatné objekty, stavy a události, které způsobují změny ve stavech.
Při kreslení diagramu stavového diagramu je třeba vzít v úvahu následující pravidla:
- Název přechodu stavu musí být jedinečný.
- Název státu musí být snadno srozumitelný a musí popisovat chování státu.
- Pokud existuje více objektů, měly by být implementovány pouze základní objekty.
- Pro každý přechod a událost musí být uvedena správná jména.
Kdy použít schéma státního stroje?
Stavové diagramy se používají k implementaci reálných pracovních modelů a objektově orientovaných systémů do hloubky. 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 zachycení změn v různých entitách systému od začátku do konce. Používají se k analýze toho, jak může událost vyvolat změnu ve více stavech systému.
Používají se stavové char diagramy:
- Modelovat objekty systému.
- Modelovat a implementovat interaktivní systémy.
- Chcete-li zobrazit události, které spouštějí změny ve stavech.
Příklad State Machine
Následující příklad diagramu stavového diagramu představuje proces ověřování uživatele.
Existují celkem dva stavy a první stav znamená, že jako první je třeba zadat OTP. Poté se OTP zaškrtne v rozhodovacím poli, pokud je správné, dojde pouze k přechodu stavu a uživatel bude ověřen. Pokud je OTP nesprávné, pak se přechod neuskuteční a vrátí se zpět do počátečního stavu, dokud uživatel nezadá správné OTP, jak je znázorněno ve výše uvedeném příkladu schématu stavového stroje.
Diagram stavu stroje vs. vývojový diagram
Níže jsou uvedeny klíčové rozdíly mezi stavovým diagramem a vývojovým diagramem
Schéma státního stroje | Vývojový diagram |
---|---|
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á čekáním na koncept. |
Stavové stroje se používají pro živý systém. | Vývojový diagram zobrazuje větvené sekvence systému. |
Stavový automat je modelovací 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 řízením toku. |
Shrnutí
- Stavové diagramy se také nazývají diagramy stavových strojů.
- Tyto diagramy se používají k modelování systému založeného na událostech.
- Stav entity je řízen pomocí události.
- Existují celkem dva typy diagramů stavového stroje: 1) Stavový strojový diagram chování 2) Stavový strojový diagram protokolu
- Stavový diagram se používá k zachycení dynamického aspektu systému.
- Stav je specifický okamžik v životnosti objektu.