State Machine Diagram & Statechart Diagram v UML

⚡ Chytré shrnutí

Diagram stavového automatu, nazývaný také diagram stavového diagramu, modeluje dynamické chování objektu, který se pohybuje mezi stavy v reakci na události. Tento zdroj vysvětluje notaci, typy stavů, pravidla kreslení a jak se liší od vývojového diagramu.

  • 🔁 Hlavní účel: Diagram stavového automatu zachycuje, jak objekt mění stav v reakci na události během své životnosti.
  • 🧩 Dva typy: Behaviorální stavové automaty modelují implementaci prvku; stavové automaty protokolu modelují povolené změny protokolu.
  • 🔷 Klíčová notace: Diagram tvoří počáteční a konečné stavy, rozhodovací rámečky, přechody a zaoblené stavové rámečky.
  • 🗂️ Druhy států: Jednoduché, složené a podstrojové stavy organizují chování, přičemž ortogonální stavy obsahují paralelní podstavy.
  • 🔐 Zpracovaný příklad: Model ověřování OTP zobrazuje přechody mezi stavy na základě ochranné podmínky.

Co je schéma státního stroje?

Stavový diagram se používají 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ý diagram nebo diagram přechodů stavů.

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.

Zápisy stavových diagramů UML
Zápisy stavových diagramů UML

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:

  1. Název přechodu stavu musí být jedinečný.
  2. Název státu musí být snadno srozumitelný a musí popisovat chování státu.
  3. Pokud existuje více objektů, měly by být implementovány pouze základní objekty.
  4. 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:

  1. Modelovat objekty systému.
  2. Modelovat a implementovat interaktivní systémy.
  3. 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.

Stavový diagram UML

Stavový diagram UML

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.

Nejčastější dotazy

Diagram stavového automatu zobrazuje stavy jednoho objektu a události, které jej mezi nimi přesouvají. Diagram aktivit zobrazuje celkový tok akcí a rozhodnutí v procesu. Stavové diagramy se zaměřují na stavy; diagramy aktivit se zaměřují na pracovní postup.

Samostatný přechod je přechod, který se po spuštění události vrací do stejného stavu. Znovu spustí akce ukončení a vstupu do daného stavu, aniž by se změnil aktuální stav, což je užitečné pro opakované chování nebo chování při opakování.

Ochranná podmínka je booleovský výraz pro přechod, zapsaný v hranatých závorkách. Přechod se spustí pouze tehdy, když nastane jeho událost a ochranná podmínka se vyhodnotí jako true, takže ochranná podmínka řídí, jakou cestou se objekt vydá.

Nástroje pro tvorbu diagramů umělé inteligence dokáží číst popis chování a generovat návrh stavového automatu se seznamem stavů, událostí a přechodů. To pomáhá návrhářům začít rychle, i když je třeba zkontrolovat úplnost stavů a ​​ochranných podmínek.

Ano. Analýza pomocí umělé inteligence dokáže porovnat stavový automat s požadavky a označit chybějící stavy, nedosažitelné stavy nebo přechody bez spouštěčů. To pomáhá včas odhalit mezery, ale inženýři by si měli každý návrh před aktualizací modelu ověřit.

Shrňte tento příspěvek takto: