In The Software Requirements Memory Jogger stelt Ellen Gottesdiener dat requirements kritisch zijn voor het succes van het eindproduct. Ook al worden er tijdens het opstellen van de requirements nog geen software getest, het uitvoeren van conceptuele testen helpt bij het ontdekken van incomplete, foutieve en onduidelijke requirements.
Software requirements worden vaak verdeeld in twee categorieën:
-
Functionele requirements: requirements die de 'vermogens' (capabilities) beschrijven van het product; dingen die het product moet doen voor de gebruikers of in staat stellen om te doen met de software. Gottesdiener noemt functionele requirements 'the doing part of software'..
-
Niet-functionele requirements: eigenschappen die het product moet hebben die misschien niet duidelijk zijn voor de gebruikers, zoals bijvoorbeeld kwaliteitsattributen (quality attributes), beperkingen (constraints) en externe koppelingen (external interfaces). Gottesdiener noemt niet-functionele requirements 'the being part of the software - de kenmerken en beperkingen voor het gedrag van de software.
Kwaliteitsattributen: eigenschappen van de softwareontwikkeling en operationele omgeving, zoals performance, capaciteit, onderhoudbaarheid, portabiliteit, betrouwbaarheid en usability.
Ontwerp- en implementatiebeperkingen: beperken hoe de software kan worden ontworpen (bijv. maximaal aantal actieve gebruikers), de omgeving waarbinnen de software zal functioneren of een voorgeschreven programmeertaal.
Externe koppelingen: interfaces met andere systemen (hardware, software en menselijk).
Volgens Gottesdiener zijn er drie niveaus van requirements:
-
Business requirements: de requirements die gerelateerd zijn aan de business (Waarom wordt het project ondernomen?). Verklaringen (statements) over de business rationale voor het autoriseren van het project. Ze geven aan wat men met de software wil bereiken in termen van (de bijdrage aan) bedrijfsdoelen en bedrijfsstrategie. Business requirements kunnen een hoog-niveau beschrijving omvatten van de software requirements waarbij gebruik gemaakt wordt van kenmerken (samenhangend verzameling van extern zichtbare functionaliteit) om de bedrijfsdoelen (deels) mee te realiseren.
-
User requirements: requirements die gerelateerd zijn aan de gebruikers van het systeem (Wat kunnen de gebruikers met het systeem doen?). Definities van de eisen aan de software vanuit het perspectief van de gebruiker. User requirements beschrijven de taken die de gebruiker met de software moet kunnen uitvoeren en de benodigde kwaliteitskenmerken van de software. Volgens Gottesdiener zijn user requiremetns de brug tussen de bedrijfsdoelen (uitgedrukt in business termen) en de gedetailleerde software requirements (uitgedrukt in meer technische termen).
-
Software requirements: requirements die de software zelf beschrijven (Wat moeten ontwikkelaars bouwen?). Gedetailleerde beschrijvingen van alle functionele en niet-functionele eisen waaraan de software moet voldoen om te voorzien in de behoeften van de business en de gebruikers (binnen de grenzen van de gestelde ontwerp- en implementatiebeperkingen). Door middel van de software requirements bereiken de techneuten en de business overeenstemming over wat het product moet doen.
Bron: The Software Requirements Memory Jogger, Ellen Gottesdiener