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.