Pravidlo 18: Počáteční pseudostav

Počáteční pseudostav je, jak název napovídá, součástí stavových automatů. Označuje místo, kde stavový automat (přesněji region stavového automatu) začíná svou činnost.

Stavové automaty jsou pověstné množstvím svých pravidel. Není jich opravdu málo. U počátečního pseudostavu si představíme dvě pravidla a přidáme ještě jedno, které platí pro region.

Podle pravidla outgoing_from_initial můžeme k odchozímu přechodu z počátečního pseudostavu přiřadit efekt, ale nesmíme zadat ani událost, ani podmínku. Je to z toho důvodu, že stavový automat vždy musí být v nějakém stavu (a nikoliv pseudostavu). Pokud by nám událost nebo podmínka bránila v přechodu z počátečního pseudostavu, neměli bychom správně definovaný stavový automat.

Protože v každou chvíli musí být stavový automat právě v jednom stavu (na úrovni jednoho regionu), pak podle pravidla initial_vertex z počátečního pseudostavu může vést maximálně jeden přechod. Zajímavé je to slovo maximálně. Podle mého by mělo být nahrazeno slovem právě. Počáteční pseudostav bez odchozí hrany nedává smysl, ovšem UML se vůči tomu nijak nevymezuje.

Konečně poslední pravidlo nazvané stejně jako to předchozí initial_vertex se týká regionu a říká nám, že v jednom regionu nesmí být více než jeden počáteční pseudostav. Zde to již dává logiku. Nejvýše jeden počáteční pseudostav je vysvětlen výše. To, že nemusí být žádný, je použito např. v situaci, kdy do nějakého regionu vcházíme skrz vstupní body.  

Co na to Sparx EA?

Bohužel opět nic, uvedená pravidla neřeší, jak ukazují následující obrázky.

Douška

Tento článek je součástí seriálu 30 pravidel UML. Pokud jste ještě nečetli, podívejte se na výchozí článek. Ostatní články můžete dohledat pomocí štítku 30 pravidel UML.

Chcete vědět více? Objednejte si knihu UML pro analytiky nebo navštivte některé mé školení. Některá z nich jsou online. Např. UML pro analytiky ve dnech 11.-14. května 2020 nebo školení Příprava k certifikační zkoušce OCUP 2 ve dnech 1.-4. června 2020.

Zanechat odpověď

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