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

Celý seriál 30 pravidel UML byl revidován, upraven a knižně vydán. Pokud jej chcete mít k dispozici v papírové podobě, navštivte stránky nakladatelství Elebedial.

About Slávek Rydval 134 Článků
Slávek Rydval začínal jako programátor, ale postupem času se dostal k návrhu softwaru, posléze k integrační architektuře a v současní době pracuje jednak jako architekt řešení a jednak jako školitel UML (základů i příprav k certifikační zkoušce OCUP 2) a nástroje Sparx Enterprise Architect. S UML přišel do styku již na univerzitě, ale opravdu intenzivně se mu věnuje posledních deset let. Na programování však nezanevřel a občas pár řádek kódu napíše.

Buďte první kdo přidá komentář

Napište komentář

Vaše e-mailová adresa nebude zveřejněna.


*