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.

Kravhantering är det första steget vid programvaruutveckling.[1]

Aktiviteter redigera

Vilka aktiviteter som ingår varierar beroende på vilken typ av system som ska utvecklas samt hur det utvecklas, men omfattar typiskt följande:

  • Elicitering - identifiera och fånga krav. Termen kommer från engelskans "elicit" som betyder "bringa fram i dagen" och avser lyfta det faktum att systemkrav inte bara kan samlas in från kunden (eller användarna). Det är en icke-trivial aktivitet eftersom man aldrig kan vara helt säker på att man fått med allt bara genom att fråga människor vad de vill ha eller inte ha. Elicitering av krav kräver en gedigen förståelse av både teknik och användare. En kravfångare är ett annat namn för en som utför "elicitering".
  • Analys - Säkerställa att infångade krav är entydiga, kompletta, konsekventa, genomförbara, spårbara, nödvändiga och verifierbara.
  • Specifikation - Formulering av systemkrav i en specifikation. Krav kan beskrivas på många olika sätt, inte bara i naturligt språk (ren text).
  • Validering - Säkerställa att infångade och specificerade krav stödjer värdeleverans, uppfyller mål och syften och motsvarar intressenternas behov.
  • Prioritering -
  • Förvaltning - Hantera ändringar på specificerade krav medan systemet utvecklas och är i bruk

Aktiviteterna utförs mer eller mindre parallellt och pågår med olika intensitet under hela utvecklingsarbetet.

Kravspecifikationen redigera

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:

  1. Systemets externa gränssnitt
  2. Funktionella krav
  3. Kvalitetskrav och icke-funktionella krav.
  4. Designbegränsningar.

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.

Samverkansorgan redigera

  • SARE, Swedish Association for Requirements Engineering. En ideell förening för alla som är intresserade av kravhantering.
  • SiREN, The Swedish Requirements Engineering Research Network. En sammanslutning mellan universitet, organisationer och företag som främjar forskning, utbildning och samarbete i kravhantering och relaterade områden.

Konferenser redigera

Referenser redigera

  1. ^ Systems Engineering Fundamentals. Arkiverad 5 juni 2017 hämtat från the Wayback Machine. Defense Acquisition University Press, 2001