Přeskočit obsah
    Axiom AAF: Neztratit během vývoje hodnotu užitku systému očekávanou zákazníkem.

Udržení konzistence UCM, Zákon zachování informace

Princip

Model je konzistentní jen tehdy, když žádný prvek nejedná na základě informace, kterou nemá odkud mít. Tuto konzistenci drží Zákon zachování informace; doplňkově ji posiluje Anonymita klienta. Obě normy stojí na hranici prvku z Objektového paradigmatu (co je vně, co uvnitř).

Zákon zachování informace — nikdo není jasnovidný

„Systém a ani okolí si nemůže nic vymyslet. Pokud se pracuje s nějakou informací, musí být někde zadána; pokud obsluha něco zadá anebo se nějak chová, musí být jasné, odkud se co dověděla. Nikdo není jasnovidný."

Je to deterministické pravidlo, ne úsudek. Pro každou informaci, se kterou prvek v daném bodě pracuje, platí: existuje v modelu zdroj/kanál, kterým se k němu dostala? Ano → v pořádku. Ne → prvek by byl jasnovidný = chyba (buď se zdroj doplní, nebo je krok neplatný). Zákon platí na obě strany:

  • Okolí. Prvek z okolí jedná na základě informace → musí mít kanál, jak se ji dozvěděl. Chybí → přibude krok / použití Use Case (např. kino se nedozví stav platby „jasnovidně", ale pullne ji přes UC Verifikace platby).
  • Systém. Systém počítá/rozhoduje na základě informace → ta musí mít v modelu zdroj (vstup, atribut, evidence, číselník). Chybí → chybějící Vedlejší proces / taneček okolo / data — ne „dopočítej z hlavy" (např. výpočet DPH bez evidence sazeb je porušení Zákona).

Důsledek pro modelování: ze Zákona vznikají Vedlejší procesy a Tanečky okolo — data, která klíčové Chody spotřebovávají, se musí odněkud vzít (jinak „spadnou z nebe").

Anonymita klienta — kde můžeš být zdrojem ty, buď ty

Systém vidí jen hranici a interakci (co se děje, že se použije systém), ne identitu prvku z okolí (kdo). Prvek z okolí je za hranicí anonymní a nekontrolovaný — systém nad ním nemá moc a nevynutí jeho korektnost.

Doporučení (na rozdíl od Zákona porušitelné, jen s důsledky): co systém umí zajistit sám — vygenerovat jedinečný kód, GUID, identifikátor; provést kontrolu — ať dělá sám a vrací jako výsledek, místo aby to přebíral od nekontrolovaného vnějšku. Důvody: blbovzdornost (menší plocha chybného vstupu), stabilita služby (nezávisí na nespolehlivém vnějšku), méně zbytečné závislosti na klientovi.

Mez: co skutečně vzniká jen vně, musí mít vnější zdroj (Zákon) — tam se spolehnout musíš, a prvek z okolí pak ošetři (validace, idempotence).

Vztah obou norem

Komplementární: Zákon říká, že informace musí mít zdroj (jinak jasnovidnost); Anonymita říká, že kde tím zdrojem můžeš být ty, buď ty (ne nespolehlivý vnějšek).

Nejčastější chyby

  • Jasnovidný prvek — okolí nebo systém jedná na základě informace, která nemá v modelu zdroj.
  • Tiché dopočítání — systém si „domyslí" hodnotu místo doplnění zdroje (taneček/evidence).
  • Závislost na nekontrolovaném vnějšku — korektnost / jedinečnost / dostupnost se váže na prvek z okolí, ačkoli to systém zvládne sám.

Vazby

Obě normy stojí na Objektovém paradigmatu (hranice prvku, vnější × vnitřní pohled). Ze Zákona vznikají Vedlejší procesy a Tanečky okolo (Prvky HLA). Konzistence vrstev jako celku patří k Architektuře BPM-UCM-CLM. Jako guardrail se Zákon i Anonymita uplatňují při tvorbě HLA (Agilní postup HLA).

Verze a změny

  • 1.0 — Zavedení Zákona zachování informace a doporučení Anonymita klienta.