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

Principy scénáře UC, slovní programování

Princip

Vnitřní scénář Use Case je slovní programování — popis algoritmu programu psaný přirozeným jazykem. Z toho plyne hlavní norma: scénář je jednoduchý, přehledný popis algoritmu, a nic víc. Není to slohové cvičení; bohatost jazyka, vysvětlování a úvahy do scénáře nepatří.

Tato kapitola drží normy psaní (co se má a nesmí). Co scénářový vzor a Use Case 2. druhu jsou (jev), popisuje Scenario Patterns — Pravidla, UC 2. druhu.

Jeden slovník — žádná synonyma

Každý prvek pojmenovaný ve scénáři je třída nebo atribut z Class Modelu. Pro tentýž prvek se vždy použije tentýž název; synonyma jsou zakázána. Centrální slovník je Class Model — ten řeší kolize typu „půlka týmu používá Subjekt, druhá Osoba". Pojem, který v CLM není, je buď defekt (chybí pojem), nebo synonymum (sjednotit na existující).

Bez balastu, bez kondicionálů

Žádná zbytečná slova a slovní spojení („obsluha klikne a otevře se obrazovka"). Žádný podmiňovací způsob — scénář popisuje jeden konkrétní algoritmus, ne úvahu „dalo by se to udělat buď takto, anebo takto". Vysvětlení patří do přílohy, na kterou se scénář odkáže.

Ošetření mezních stavů — Exception Flow

Analytik popisuje i to, co se stane, „když něco nedopadne dobře". Vzor: <kontrola podmínky>, a pokud není splněna, ERR_<název>. Rozlišuje se červený (stop) a žlutý (warning — umožní pokračovat). Důraz na testovatelnost.

Obsluha versus systém

Krok se píše buď jako „obsluha něco udělá … systém něco udělá", nebo se na straně systému použije zvratné sloveso („… najde se …, prováže se …"). Doporučuje se varianta se zvratným slovesem na straně systému.

Vyhledávají se celé instance, ne atributy

Hledá se prvek, ne jeho údaj: ne „najde se rodné číslo", ale „najde se osoba s tímto rodným číslem". U unikátního klíče stačí „v seznamu X se najde X s tímto K"; u podmínky „najdou se všechny X, které ". Stejné formulace platí pro zobrazení seznamu.

Větvení a značení místo čísel odstavců

Větvení „pokud … jinak" se uvádí tak, že každý odstavec nese vlastní podmínku (i když jsou komplementární) — „jinak" se v dlouhém textu ztrácí a čtenář nemá podmínku v paměti. Místo odvolávek na čísla odstavců se používá label (návěští, jako poznámka v kódu), volitelně se složenými závorkami. Technika výměny textu odstavce podle podmínky (Alternate Flow) se nepoužívá — je nečitelná a křehká.

Přesnost — žádné neurčité formulace

Slova jako „ověří se" nebo „provede se kontrola" scénář nepopisují; je třeba říct, co se s čím porovnává („zadané heslo se porovná s heslem oprávněné osoby (zahešováno), pokud nesouhlasí, ERR_…").

Zpřehlednění přes include

Dlouhý nebo složitý scénář se zpřehledňuje vytknutím přes include (Use Case 2. druhu). Include je nástroj LLA; v HLA se nepoužívá.

Determinismus poctivě

Deterministické (kontrolovatelné) je dodržení těchto norem a vazba na slovník. Věcná business-logika scénáře a konkrétní výpočty jsou vstup od product ownera — nevymýšlejí se. Externí algoritmus se jen odkáže (a odkaz nesmí být na živou stránku). Co zadání neurčuje, se neuhodne — položí se dotaz.

Nejčastější chyby

  • Synonyma — tentýž prvek pod více názvy; rozpadá se slovník.
  • „Ověří se" / „provede se kontrola" — neurčité sloveso místo popisu algoritmu.
  • Hledání atributu místo instance„najde se kód" místo „najde se platba s tímto kódem".
  • Číslo odstavce místo labelu, výměna textu odstavce podle podmínky (Alternate Flow).
  • Balast a kondicionály — slohové věty, podmiňovací způsob.
  • Include v HLA — vytýkání přes include patří do LLA.

Vazby

Pojmy scénářový vzor a Use Case 2. druhu (jev) definuje Scenario Patterns — Pravidla, UC 2. druhu. Scénář je vrstva LLA (Vrstvy HLA a LLA) a pracuje s pojmy z CLM (Architektura BPM-UCM-CLM, Slovník evidovaných pojmů). Disciplína „neuhodne, nevymýšlí" souvisí se Zákonem zachování informace (Udržení konzistence UCM, Zákon zachování informace).

Verze a změny

  • 1.0 — Zavedení principů psaní scénáře (slovní programování).