Specifikace požadavků
Specifikace a analýza požadavků je první fáze vývoje softwaru. Cílem je definovat požadavky na software a popsat jeho funkčnost. Výsledkem této fáze by měly být dokumenty, které se stanou součásti smlouvy mezi zadavatelem a vývojovým týmem.
V rámci specifikace požadavků je třeba analyzovat procesy u zadavatele, které bude software řešit, nebo s ním nějak jinak souvisí. K tomu jasné a srozumitelnému popisu těchto procesů dobře poslouží Use-case diagram, Sekvenční diagram popřípadě Diagram aktivit.
Use-case diagram (diagram případu užití)
UML diagram který se zabývá aktéry, vztahy mezi nimi a přístupy aktérů k systému. Součástí diagramu je:
- Aktér - ten co systém používá. Znázorněn panáčkem co stojí mimo systém a přistupuje k různým případům užitím.
- Případ užití (use-case) - znázorňuje funkci systému. V diagramu je znázorněn oválkem uvnitř systému.
- Relace - vazby a vztahy mezi aktéry a případy užití. V diagramu jsou znázorněny šipkami případně čárami. Rozlišujeme několik typů relací:
- Relace přístupu k systému (mezi aktérem a use-case). V diagramu znázorněná plnou čárou či šipkou.
- Relace <<include>> ve smyslu zahrnuje. Používá se uvnitř systému, kdy jeden proces (use-case) se využívá i v rámci jiného.
Relace <<extend>> ve smyslu rozšiřuje. Používá se v případě že jeden proces může být rozšířen o jiný.
Příklad z obrázku nahoře: proces Eat Foot může být rozšířen o proces Drink Wine, v případě že je naservírováno víno.- Relace specializace/generalizace vyjadřuje dědičnost mezi objekty.
- Scénář - unikátní sekvence akcí skrz use-case (jedna cesta/ instance provedení)
Doporučená forma use-case:
- má vyjadřovat co systém dělá (ne jak) a co od něj očekávají aktéři
- měly by být používány jen pojmy problémové domény - žádné neznámé termíny
- případy užití by měly být co nejjednodušší - ať jim rozumí i zadavatelé - nepoužívat příliš <include> a <extend>
- nepoužívat příliš funkční dekompozici (specializaci)
- primární aktéři umístěni vlevo a pojmenováni krátkým podstatným jménem
- každý aktér by měl být propojen s minimálně jedním use-case
- základní use case vlevo a další kreslit směrem doprava, rozšířující use-case směrem dolů
Sekvenční diagram
Sekvenční (Iterační) diagram popisuje funkce systému z pohledu objektů a jejich iterací. Komunikace mezi objekty je znázorněná v čase, takže z diagramu můžeme vyčíst i životní cyklus objektu.