Otázka 7 / 14

Vysvětlete, k čemu slouží UML stavový diagram (State Machine) v informačním modelování organizace. Jak z něj odvodíte business pravidla (invarianty, guard podmínky) a jak řešíte deadlock/nesmyslné stavy? Uveďte vazbu na operace třídy.

Smysl stavového modelu

  • popisuje jak se objekt vyvíjí v čase (business milníky)
  • formalizuje povolené přechody a tím business pravidla

Prvky a pravidla

  • stav: business významný milník (např. „Zaúčtováno“)
  • přechod: změna stavu vyvolaná událostí + operací
  • událost vs podmínka:
    • událost = impuls (přijata platba)
    • guard = omezení (částka ≥ k úhradě)
  • invariant stavu: co musí platit po dobu setrvání (např. ve stavu Schváleno musí být vyplněn schvalovatel)

Vazba na operace

  • přechody typicky odpovídají operacím třídy (schválit(), stornovat())
  • operace musí respektovat invarianty a povolenost přechodů

Typické chyby

  • stavy, které jsou jen interní pracovní kroky (příliš technické)
  • redundantní stav: pokud je guard splněn okamžitě, stav nedává smysl
  • deadlock v životním cyklu: stav bez dosažitelného odchozího přechodu

Jak deadlock ošetřit

  • doplnit alternativní přechody (např. zamítnout, vypršet)
  • použít časované přechody/timeout jako pojistku
  • zkontrolovat konzistenci s procesy (BPMN musí umět přechod realizovat)