Werkproduct

Architectuurbepalende Eisen

Architecturally Significant Requirements

Filter uit de volledige requirements-set de eisen die de architectuur van de solution daadwerkelijk richting geven.

Alpha: Architectuurbepalende Eisen Solution Architectuur
01

Beschrijving

Een project kent vaak tientallen tot honderden requirements, maar niet elke eis is architectuurbepalend. Een architectuurbepalende eis — ook wel Architecturally Significant Requirement (ASR) genoemd — is een eis die een aantoonbare invloed heeft op de structuur, samenhang of kwaliteit van de solution: eisen rond beveiliging, beschikbaarheid, performance, integraties of wettelijke verplichtingen zijn hier veelal voorbeelden van. Gewone functionele wensen en implementatiedetails horen hier niet bij.

Het onderscheid volgt een eenvoudige toets: kan een eis op meerdere manieren worden gerealiseerd zonder verlies van kwaliteit, of is er in de praktijk maar één houdbare manier om eraan te voldoen? Alleen in het laatste geval is sprake van een architectuurbepalende eis. "De applicatie moet snel zijn" is geen architectuurbepalende eis; "de applicatie verwerkt 3.000 gelijktijdige requests binnen 500 ms (95e percentiel)" is dat wel, omdat deze eis de keuze voor bepaalde architectuurpatronen, technologie of infrastructuur direct afdwingt.

Elke architectuurbepalende eis wordt daarom herschreven tot een meetbaar scenario, bestaande uit vier onderdelen: de bron (wie of wat de eis stelt), de stimulus (de gebeurtenis of conditie die de eis activeert), de respons (wat de solution moet doen) en de meetwaarde (het criterium waarmee wordt getoetst of aan de eis is voldaan). Deze scenariovorm maakt een eis toetsbaar in plaats van een kwalitatieve wens.

De volledige set architectuurbepalende eisen wordt gegroepeerd en geprioriteerd via een utility tree: eerst onderverdeeld naar kwaliteitscategorie (bijvoorbeeld volgens ISO/IEC 25010 — functionaliteit, prestaties, compatibiliteit, bruikbaarheid, betrouwbaarheid, beveiliging, onderhoudbaarheid, portabiliteit), vervolgens verfijnd tot concrete scenario's, en ten slotte geprioriteerd op bedrijfswaarde en technisch risico. Zo wordt zichtbaar waar de zwaarste architectuurkeuzes moeten worden gemaakt, en waar juist ruimte is voor eenvoudigere oplossingen.

De architectuurbepalende eisen vormen de schakel tussen de requirements van de business analist en de architectuur van de solution. Zij beschrijven waarom een architectuurbeslissing noodzakelijk is; de Architectuurbeslissing legt vervolgens vast welke oplossing daarvoor is gekozen, en het Architectuurmodel toont hoe die keuze in de architectuur is uitgewerkt. Waar de architectuurbepalende eis de aanleiding vastlegt, leggen de andere twee werkproducten de keuze en de uitwerking vast.

Een architectuurbepalende eis geeft antwoord op de vragen:

  • Is deze eis architectuurbepalend, of is dit een implementatiedetail?
  • Wat is het meetbare scenario waaraan de solution moet voldoen?
  • Tot welke kwaliteitscategorie behoort deze eis?
  • Wat is de prioriteit, gegeven bedrijfswaarde en technisch risico?

Het werkproduct is bedoeld voor de architectuureigenaar, de business analist (als bron van de volledige requirements-set), de Enterprise Architect en Architectuursturing, die de architectuurbepalende eisen gebruikt om afwijkingen tijdens de uitvoering te beoordelen.

Sjabloon
architecturally-significant-requirements.docx
Sjabloon voor Architectuurbepalende Eisen (nog te maken)
⬇ Download DOCX
02

Detailniveaus

  1. Utility tree (overzicht) Voldoende

    Alle kandidaat-eisen gecategoriseerd naar kwaliteitsattribuut en geprioriteerd op bedrijfswaarde en risico, zonder dat elk scenario al volledig is uitgewerkt. Voldoende om te bepalen welke eisen daadwerkelijk architectuurbepalend zijn en waar de aandacht in Maak Low-Level Design naartoe moet.

  2. Scenario (volledig)

    Elke architectuurbepalende eis individueel uitgewerkt als volledig scenario: bron, stimulus, respons en meetwaarde. Dit detailniveau is nodig zodra een eis daadwerkelijk als basis dient voor een architectuurbeslissing of voor conformance-toetsing tijdens en na realisatie.

03

Bronnen

  • Software Engineering Institute (SEI), Quality Attribute Workshops
  • Architecture Tradeoff Analysis Method (ATAM) — utility tree-methode
  • ISO/IEC 25010 — Software product quality model

Open practice. Deze practices zijn open voor bijdragen van de community. Open een GitHub-issue om een verbetering aan een bestaande practice voor te stellen, een nieuwe practice te introduceren of een sjabloon bij te dragen — issues zijn het startpunt voor elke wijziging.