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í)


 Use-case diagram

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.


 Ukázka sekvenčního diagramu ze skript