Kravhantering

Från Wikipedia
Hoppa till: navigering, sök
Kravhantering är det första steget vid programvaruutveckling.[1]

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.

Aktiviteter[redigera | redigera wikitext]

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

  • 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 för både teknik och användare.
  • 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 | redigera wikitext]

En kravspecifikation utgör underlag för systemdesign. Det används också som underlag vid verifiering av systemet, dvs. 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 är 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 | redigera wikitext]

  • 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 | redigera wikitext]

Referenser[redigera | redigera wikitext]

  1. ^ Systems Engineering Fundamentals. Defense Acquisition University Press, 2001