
Kravhantering är det systematiska arbetet med behov som ska uppfyllas av tekniska system. Det är en central disciplin inom programvaruutveckling och Systems Engineering. Arbetet omfattar fastställandet av intressenters produktmål samt specifikationer av dessa.
Vilka aktiviteter som ingår varierar beroende på vilken typ av system som ska utvecklas samt hur det utvecklas, men omfattar typiskt följande:
Aktiviteterna utförs mer eller mindre parallellt och pågår med olika intensitet under hela utvecklingsarbetet.
En kravspecifikation utgör underlag för systemdesign. Det används också som underlag vid verifiering av systemet, det vill säga kontrollen att systemet uppfyller beslutade krav.
Kravspecifikationen beskriver följande:
Beroende på vilken typ av system som utvecklas och hur det utvecklas tas kravspecifikationen fram på olika sätt. Särskilt för programvarubaserade system är det en vanlig missuppfattning att samtliga systemkrav på ett effektivt och korrekt sätt kan samlas, specificeras och kvalitetssäkras innan någon form av design eller programmering påbörjas[källa behövs]. I praktiken är det ofta mer kostnadseffektivt att arbeta iterativt och inkrementellt vilket inte utesluter ett det ibland behövs ett visst arbete med systemkrav och arkitektur innan programmering tar vid[källa behövs]. Det iterativa och inkrementella arbetssättet har funnits sedan 1950-talet[källa behövs] och innebär att även elicitering, analys och specifikation sker successivt allt eftersom systemet tas fram.