Historisch gezien is de aandacht in IT-projecten voornamelijk gericht op functionele vereisten: wat het systeem moet doen. Vragen over prestaties, betrouwbaarheid, schaalbaarheid, beschikbaarheid, beveiliging en onderhoudbaarheid (deze kenmerken worden samengevoegd onder de term "niet-functionele vereisten", NFR) zijn lange tijd van secundair belang gebleven en vaak helemaal niet geformaliseerd.
Het negeren of formeel beschrijven van NFR leidt tot aanzienlijke problemen in de operationele fase: het systeem is niet voorbereid op de verwachte belasting, houdt geen stand tegen cyberaanvallen, is moeilijk te onderhouden en op te schalen, of is niet beschikbaar voor het vereiste aantal gebruikers.
Een moderne systeemanalist moet NFR initiëren, formaliseren, analyseren en documenteren. Dit omvat:
Belangrijke kenmerken:
Wat is het verschil tussen "productkwaliteit" en "niet-functionele vereisten"?
Productkwaliteit is een breder begrip dat niet alleen formaliseerbare parameters omvat, maar ook subjectieve beoordelingen (bijv. UX/UI gebruiksgemak). NFR zijn duidelijk meetbare kenmerken (prestaties, betrouwbaarheid, enz.) die onderworpen zijn aan automatische validatie.
Kan een analist het bepalen van alle niet-functionele vereisten aan de architect overlaten?
Nee, de analist moet samen met de architect en het bedrijfsleven deze vereisten identificeren in de analysefase, anders zullen de vereisten incompleet zijn of alleen vanuit technisch perspectief worden beschreven, zonder rekening te houden met zakelijke behoeften.
Kunnen niet-functionele vereisten alleen in de vorm van algemene uitspraken worden geformuleerd ("het systeem moet betrouwbaar zijn")?
Nee, dergelijke formuleringen zijn ongeschikt voor controle en testing. Specificatie is vereist: bijvoorbeeld, "de hersteltijd van de service na een storing mag niet langer zijn dan 10 minuten".
Negatieve case: Het project van het nationale portaal voor overheidsdiensten heeft geen vereisten voor pieklasten geformaliseerd. Het systeem "viel uit" op dagen dat populaire diensten werden gelanceerd, wat leidde tot beveiligingsincidenten.
Voordelen:
Nadelen:
Positieve case: De analist heeft bij de start van het industriële automatiseringsproject samen met de operatie vastgesteld dat systeemstilstanden belangrijker zijn dan nieuwe functies. Hij heeft SLA, noodscenario's uitgewerkt en specifieke metrics vastgelegd.
Voordelen:
Nadelen: