Traceability vyžaduje, aby všechny požadavky nižší úrovně návrhu, pocházely z vyšší úrovně. To ale neznamená, že když nám zákazník dodá požadavky na software, musíme s nimi povinně pracovat jako z uživatelskými
Příspěvek se věnuje případu, kdy máte dodržovat některý ze standardů CMMI, SPICE, ASPICE apod.
Co přesně standardy vyžadují?
Traceability je požadavek, aby u všeho, co v projektu je, bylo jasné, proč to tam je a z čeho to pochází. Konkrétně, pokud je nějaký softwarový požadavek, musí být zřejmé, k čemu slouží.
Traceability je velmi důležitá, abychom byli schopni produkt správně testovat a spravovat. Pokud nebudeme u nějaké funkcionality vědět, k čemu slouží, jak si můžeme být jisti, že je správně?
Traceability se netýká jenom požadavků, ale i kódu, součástí elektronického návrhu i mechanické kontstrukce. Podobným příkladem může být síla a materiál lanka v klice dveří auta. I ta má nějaký "původ", konkrétně sílu, kterou přenáší, podmínky, ve kterých bude umístněno (např. vlhkost) a dobu, jakou musí vydržet (např. 20 let). Z těchto vstupních předpokladů a požadavků vznikají požadavky na odolnost lanka, které nakonec rozhodnou a materiálu, síle a dalších vlastnostech.
Co nám zadává zákazník
Zákazník standardně zadává vstupní požadavky, tedy co od systému očekává. Když ale zákazník požaduje díly, mnoho jeho požadavků míří na oblast integrace na technické i softwarové úrovni. Takové požadavky jsou stále vstupní, ale přitom jdou přímo na systémovou analýzu nebo konkrétní modul systému.
Jak pracovat s detailními požadavky zákazníka
Obrázek ukazuje, jak se požadavek od zákazníka (použit je příklad zadání od VW Group Funktionslastenheft) přenáší do analýzy.
Dokument, který zákazník poskytne (specifikace), obsahuje často stovky, někdy i tisíce požadavků. V rámci analýzy je celý dokument jedním vstupním požadavkem. Standardně by se tento požadavek dělil na stovky až tisíce dílčích požadavků v rámci hierarchie požadavků. Hierarchie požadavků nikdy nesmí přecházet mezi vrstvami analýzy, takže by všechny dílčí požadavky, byly na stejné úrovni, tedy vstupní / uživatelské.
Příklad – Zpracování požadavku na stanovení výkonu obslužného motorku
Předpokládejme požadavek, který říká, že výkon motoru je na vstupním rozhraní předáván v rámci rozhraní v atribut actpw, jde o 8 bitovou hodnotu tedy 0 – 255, kde význame je: 0 = žádný výkon, 255 = maximální výkon.
Požadavek míří na rozhraní sytému. Kdybychom z něj udělali vstupní požadavek, měli bychom vytvořit:
- Vstupní požadavek
- Z něj odvodit systémový požadavek
- Ze systémového požadavek na SW
Je zřejmé, že 3 vzniklé požadavky budou fakticky stejné a jejich přínos pro kvalitu nebude žádný, spíše naopak, protože se nám duplikuje informace ve třech požadavcích bez přidané hodnoty.
Správný postup
Požadavek od zákazníka je samozřejmě vstupní, ale tím je dokument s požadavky jako celek. Jednotlivé požadavky, které v dokumentu jsou, ale mohou být přímo zařazeny do té úrovně analýzy, kam svým obashem patří. Musí ale přitom stále platit:
- SW požadavek neztrácí traceability -> je odvozen ze vstupního požadavku a je tedy stále zřejmé, z čeho pochází
- V analýze musí platit, že požadavek se rozpadá na požadavky stejné úrovně. Pokud se ze vstupního požadavku některé stávají požadavky na modul, už nejsou požadavky podřízenými vstupnímu. Jinak by vznikl zmatek (nadřízený požadavek patří do úrovně vstupních / uživatelských požadavků)
- Požadavek na SW nesmí mít vliv na funkční / integrační testy. Pokud by něco z něj mělo být testováno na vyšší úrovni, tak by požadavek SW úrovn ovlivňoval testy vyšší úrovně a zase bychom se dostali do zmatků a rozporu s logikou ASPICE. Pokud tedy je požadavek, který je řešen softwarově (např. plynulý rozběh), ale jde o funkcionalitu testovanou na úrovni kompletních funkčních testů, musí zůstat jako uživatelský.
- SW požadavek musí být navázán na modul systému v systémové analýze, jinak by nebylo jasné, kde je implementován
- I k požadavku rovnou zařazenému do nižší vrstvy analýzy jsou na dané úrovni samozřejmě testy.
Při tomto postupu budou požadavky výrazně přehlednější. Nezbytností je ale kvalitní systém, který udrží všechny vazby včetně té na vstupní dokument. A neméně důležité je, aby podporoval aktualizace, když zákazník změní specifikaci. U nás na to používáme systém AyMINE.