Ve světě Analýza požadavků existuje velké množství informací, které lze objevit a prozkoumat. Od svých počátků až po vliv na dnešní společnost, Analýza požadavků v průběhu let vyvolal zájem mnoha lidí. V tomto článku se ponoříme do nejrelevantnějších aspektů Analýza požadavků, od jeho příspěvků ke kultuře až po jeho dopad na každodenní život. Prostřednictvím podrobné a pečlivé analýzy se podíváme na všechny aspekty Analýza požadavků a poskytneme našim čtenářům komplexní a obohacující vizi. Připravte se ponořit se do fascinujícího světa Analýza požadavků!
Analýza požadavků v systémovém a softwarovém inženýrství, pojímá ty úkoly, které vstupují do rozhodování o potřebách a podmínkách, které jsou kladeny na nový, nebo změněný produkt. Také musí brát v úvahu různé protichůdné požadavky účastnících se stran tzv. stakeholderů.
Systematická analýza požadavků je někdy označována jako requirements engineering.[2] nebo je také (špatně) pojmenovaná jako sběr požadavků, nebo specifikace požadavků. Analýza požadavků může být analýzou v pravém slova smyslu (jako opak ke sběru nebo dokumentaci požadavků).
Kvalitní analýza požadavků je podmínkou úspěšného dokončení projektu vývoje.[3] Požadavek musí být proveditelný, měřitelný, testovatelný, musí se vztahovat ke konkrétnímu byznys požadavku, nebo příležitosti a také musí byt definovaný dostatečné detailně pro účely návrhu systému.
Správa požadavků obecně může být zastřešující pojem pro různé aktivity:
Podle ISO/IEC 24766:2009,[4] podporují nástroje pro práci s požadavky šest hlavních činností:
Analytici mohou využít více postupů k získaní požadavků od zákazníka. Historicky, to bylo interview, nebo vedeni rozhovoru s vybranou skupinou (focus group) (příhodnější pojmenovaní v tomto kontextu je 'požadavkový workshop') a vytváření seznamů požadavků. Mezi modernější techniky patří prototypování, a tvorba případů užití. Pokud to bude nutné, analytici použijí kombinaci metod ke získání přesných požadavků od zúčastněných stran, aby vyvíjený systém co nejlépe odpovídal byznys potřebám zadavatele.
V devadesátých letech hlavní roli hrála identifikace zúčastněných stran (stakeholderů). Má se za to, že zúčastněné strany se neomezují pouze na organizaci, která zaměstnává analytika. Dalšími zúčastněnými stranami mohou být:
Rozhovory se Stakeholdery jsou běžné metody používané v analýze požadavků. Tyto rozhovory mohou odhalit požadavky, které nebyly původně zamýšlené jako ještě v rámci rozsahu tohoto projektu a mohou odhalit požadavky, které jsou protichůdné. Nicméně, každý se zúčastněnými stranami bude mít představu o jejich očekáváních, nebo budou muset své požadavky objasnit.
Jedním z tradičního způsobu dokumentování požadavků byl seznam požadavků a jeho struktura (WBS). Ve složitém systému mohou takovéto seznamy mít až stovky stránek.
Osvědčeným postupem je brát seznam požadavků pouze jako vodítko a opakovaně se klást otázku: „Proč?“ až se odhalí skutečné obchodní účely. Zainteresované strany a také vývojáři pak mohou navrhnout testy tak, aby bylo možné zjistit, nakolik bylo zatím dosaženo cíle. Tyto cíle se mění mnohem pomaleji než dlouhý seznam konkrétních, ale neměřitelných požadavků. Jakmile je stanoven malý soubor kritických a měřitelných cílů, může navázat softwarové prototypování a krátké iterativní vývojové fáze, které mohou poskytnout zúčastněným stranám skutečnou hodnotu ještě předtím, než bude projekt v polovině.
Prototypování bylo v polovině 80. let vnímáno jako řešení problému analýzy požadavků. Prototypy jsou reálné modely (makety) aplikací umožňující uživatelům vizualizovat aplikace, dříve než jsou vyrobeny. Tím pomáhají uživatelům získat představu, jak bude systém vypadat, aby si mohli zvolit vzhled/rozložení, aniž by čekali na systém, který má být teprve vytvořen. Použití prototypů významně zlepšilo komunikaci mezi uživateli a vývojáři.
Vytvoření prototypové aplikace vedlo k menším následným změnám v aplikaci, a tedy nižším celkovým nákladům. Nicméně se v následujících deseti letech i přes užitečnost prototypování nepodařilo vyřešit související problémy:
Prototypy mohou být 'flat diagrams' (dále jen 'wireframes') nebo funkční aplikace využívající syntetizovaných funkčností. Wireframes jsou vyráběny v různých grafických designech a často bez jakýchkoli barev v softwarovém designu (tj. používat paletu barev šedé). Finální software bude mít grafický design obdobného charakteru. To pomáhá zabránit nejasnostem ohledně konečné vizuálního vzhledu aplikace.
Use case (případy (po)užití) modelování je technika pro nalezení a zdokumentování veškerých použití (funkcionalit) systému. Využívá se jak pro systémy zcela nové, tak při změnách systémů provozovaných. Každý use case poskytuje jeden nebo více scénářů, které zaznamenávají, jak by systém měl interagovat s koncovým uživatelem, případně i jiným systémem (obecně je systém nebo uživatel označován termínem aktér), k dosažení konkrétních cílů (užitek plynoucí z použití systému). Use case modely zpravidla vytváří business analytik ve spolupráci se zadavatelem, resp. klíčovými uživateli systému.
Pro vytvoření Use case modelu postačí i jednoduché nástroje (textový editor) na popsaní chování softwaru nebo systému. Use case modely obsahují ve formě scénářů užití textový popis všech možný způsobů, jak uživatel (aktér) může pracovat se softwarem nebo systémem. Tyto scénáře blíže rozvádějí jednotlivé kroky aktérů a reakce modelovaného systému. Může jít o scénáře jednoduché i složitěji větvené, nebo alternativní. Vždy by však měly být stručně psané, jasné a měly by poskytovat přesnou informaci o popisované akci. Při psaní scénářů se užití obvykle nepoužívá technický jazyk, ale je preferován jazyk koncového uživatele nebo doménového experta.
Softwarová specifikace požadavků (SRS) je úplný popis chování systému, který má být vyvinut. Obsahuje soubor use cases, které popisují všechny interakce uživatele se softwarem. Use case je obvykle rozvedením funkčních požadavků. Kromě use cases, RS obsahuje také nefunkční (nebo doplňkové) požadavky. Nefunkční požadavky softwarové architektury jsou požadavky, které kladou omezení na návrh a provedení (například požadavky na výkonnost, standardy kvality, nebo designové omezení).
Doporučené postupy pro specifikaci požadavků na software, jsou popsány v ISO/IEC/IEEE 29148:2018[5]. Tato norma popisuje možnou strukturu, žádoucí obsah a kvalitu softwarové specifikace požadavků.
Požadavky jsou kategorizované několika způsoby. Následující kategorizace požadavků je z technického pohledu (technical managment):[1] ;Požadavky zákazníků : Specifikace požadavků a předpokladů, které určují očekávání od systému vzhledem na sledované cíle, prostředí, omezení a metriky efektivnosti a vhodnosti (MOE / MOS). Zákazníci jsou ti, kteří vykonávají osm primárních funkcí systémového inženýrství, se zvláštním důrazem na operátora jako na klíčového zákazníka. Provozní požadavky budou definovat základní potřeby a minimálně odpovědi na otázky položené v následujícím výčtu:[1]
Jiné členění např. metoda FURPS
Steve McConnell ve své knize Rapid Development, popisuje řadu způsobů, jak mohou uživatelé brzdit správu požadavků:
To může vést k situaci, kdy uživatelé průběžně přidávají a mění své požadavky, i když vývoj systému nebo produktu již byl zahájen.
Možné problémy způsobené inženýři a vývojáři za běhu analýzy požadavků jsou:
Jeden pokus o řešení problémů komunikace by mohlo být zaměstnávat specialisty v byznysu nebo systémové analýze.
Techniky, které přinesl rok 1990 jako Unified Modeling Language (UML), use case, Agilní softwarové metody vývoje jsou určeny také jako řešení problémů, s nimiž se potkali u předchozí metody. Také nové třídy simulace aplikací, nebo použití nástroje pro definici aplikací, které vstoupilo na trh. Tyto nástroje jsou navrženy tak, aby překlenuly propast mezi byznys uživateli a IT organizací – a také, aby aplikace, mohly být otestovány na trhu (test marketed) předtím než je vůbec nějaký kód vytvořen. Nejlepší z těchto nástrojů nabízí:
V tomto článku byl použit překlad textu z článku Requirements analysis na anglické Wikipedii.