Požadavky na software – typy požadavků, úrovně detailů a jejich vztah k procesu vývoje.
Z Na státnice zvesela!
Co je to požadavek?
- požadavek = schopnost nebo vlastnost, kterou má sw mít, aby jej uživatel mohl použít k vyřešení problému nebo dosažení cíle, který vedl k zadání, nebo aby splnil podmínky stanovené smlouvou, standardem nebo jinou specifikací.
 - vlastnosti požadavku: úplný, bezesporný
 - požadavkem není to, co uživatel nepotřebuje
 
Obsah[skrýt] | 
[editovat] Rozdělení požadavků
Typy požadavků
- funkční požadavky (functional requirements) = funkce
- popisují funkce nebo služby, které jsou od systému očekávány
 - př.: požadavky na univerzitní knihovní systém
- systém by měl poskytovat uživatelům vhodné rozhraní pro čtení dokumentů v úložišti dokumentů
 
 
 - mimofunkční požadavky (non-functional requirements) = vlastnosti
- netýkají se funkcí systému, ale vlastností jako je spolehlilvost, čas odpovědi, obsazené místo na disku nebo v paměti, aj.
 - často kritičtější než jednotlivé funkční požadavky (např. pokud je řídící systém letadla nespolehlivý, je nepoužitelný)
 - někdy dané vnějšími faktory, tj. legislativní požadavky (př. zákon na ochranu osobních informací, apod.)
 - př. veškerá komunikace mezi uživatelem a systémem by měla být vyjádřitelná ve znakové sadě ISO 8859-2
- definuje omezení návrhu uživatelského rozhraní, tj. není funkce, ale omezení -- mimofunkční požadavek
 
 
 
Další rozdělení vyplývá z rozdílné úrovně popisu – podle čtenáře:
- uživatelská specifikace požadavků (user requirements specification)
- vysokoúrovňový popis funkčních a mimofunkčních požadavků zákazníka
 - musí být srozumitelné pro uživatele, kteří nemají technické znalosti
 
 - systémová specifikace požadavků (system requirements specification)
- podrobnější specifikace uživatelských požadavků pro vývojáře
 - slouží jako výchozí bod pro design systému
 
 
[editovat] Formy popisu
-  textový popis
- shopping list
 - strukturovaný text
 - IEEE normovaný popis
 
 -  grafické vyjádření
- use case diagramy
 
 -  implementace
- popis ve formě prototypu a už. příručky
 
 
[editovat] Dokument specifikace požadavků (DSP)
- angl. Software Requirements Specification (SRS)
 - konečný výsledek analýzy požadavků
 - kompletní popis chování systému
 - zahrnuje připady užití popisující všechny interakce uživatele se SW -- funkční požadavky
 - technický dokument, oficiální vyjádření o tom, co se od vyvíjeného systému očekává (dohoda mezi zákazníkem a dodavatelem, co má zadaný sw dělat a jak to má vypadat)
 - základ pro pozdější ověření správnosti - důraz na jednoznačnost, ověřitelnost, reálnost, srozumitelnost, úplnost, přesnost a správnost, modifikovatelnost, konzistenci
 - měl by specifikovat pouze externí chování systému, tj. snaha vyloučit z DSP design
 - strukturován tak, aby v něm bylo snadné provádět změny (modifikovatelnost)
 - měl by specifikovat omezení implementace -- mimofunkční požadavky
 - měl by charakterizovat přijatelné odpovědi na nežádoucí události
 
[editovat] Vlastnosti specifikace požadavků
- jednoznačnost
 - úplnost
 - srozumitelnost
 - modifikovatelnost
 - přesnost
 - ověřitelnost
 - reálnost
 - specifikace pouze chování - NE jak to udělat
 
Různě velké organizace definovaly vlastní standardy pro strukturu DSP 
(např IEEE/ANSI 830). Ve skutečnosti bude informace v DSP záviset na 
vyvíjeném produktu a na modelu sw procesu, takže je nutné si obecný 
model přizpůsobit.
Doporučení: pro praxi si navrhnout vlastní formát a používat ho pro všechny DSP – sníží se tím pravděpodobnost, že se na něco zapomene.
