Kravbehandling

Kravbehandling (kravteknikk, kravhåndtering, kravstyring) er den disiplinen innenfor programvareutvikling som tar for seg systematisk framtagelse, analyse, spesifikasjon og validering av krav til programvaren.  Disse aktivitetene legger grunnen for alt senere arbeid med programvaren, og det derfor er kritisk at de blir gjennomført på en god måte.

Et krav i programvaresammenheng er ifølge IEEE en egenskap programvaren må ha for å løse et problem i den virkelige verden.  Kravet kan være myntet på å automatisere en arbeidsprosess for brukeren, støtte under en forretningsprosess for en organisasjon, rette opp feil i eksisterende programvare, styre en innretning eller andre ting.

Et skille kan trekkes mellom produktkrav og prosesskrav.  Et produktkrav kan være av typen «alle kursdeltagere skal ha et unikt deltagernummer», mens et prosesskrav kan være av typen «programvaren skal skrives i C++».

IEEE bryter kravdisiplinen ned i følgende underliggende aktiviteter:
 Framtagning
 Analyse
 Spesifikasjon
 Validering

Typiske deltagere i prosessen kan være brukere, kunder, markedsanalytikere, drift & forvaltning, lovgivende myndigheter og programmerere.

Rational Unified Process har to hovedkategorier for krav: Funksjonelle krav (gjerne i form av bruksmønster) og ikke-funksjonelle krav. Kravene organiseres i 6 kategorier (FURPS+FRUPS+ Robert B. Grady, Practical Software Metrics for Project Management and Process Improvement, Prentice Hall, 1992):

 Funksjonalitet (functionality): egenskaper, muligheter, generalitet, sikkerhet
 Brukeropplevelse (usability): Human factors, estetikk, konsistens, dokumentasjon
 Pålitelighet (reliability): hyppighet og alvorlighet av svikt, gjennopprettbarhet, forutsigbarhet, nøyaktighet, midlere tid før feil
 Ytelse (performance): hastighet, effektivitet, ressursforbruk, gjennomstrømning, svartid
 Drift- og vedlikeholdbarhet (supportability): testbarhet, utvidbarhet, tilpasningsbarhet, vedlikeholdbarhet, kompatibilitet, konfigurerbarhet, servicevne, installerbarhet, lokaliserbarhet, portabilitet
 Føringer (design constraints): lover og forskrifter,  føringer i design, implementering og grensesnitt, fysiske føringer

 Referanser 

Eksterne lenker
 IEEE Guide to the Software Engineering Book of Knowledge  (engelsk)
 Mal for en kravspesifikasjon (engelsk) (død lenke)

Kategori:Programvarekrav