Vad är kravteknik?

Stora hårdvaru- eller mjukvarusystem, som en rymdfarkost, har komplexa krav. Krav är en specifikation av vad som ska byggas, hur systemet ska bete sig eller begränsningar för processen att bygga systemet. Kravteknik är användningen av god ingenjörspraxis för att förstå kraven innan ett system byggs. Det antar betydelse eftersom systemets intressenter själva inte är tydliga med sina behov och har olika behov.

Ett komplext system kan ha många intressenter såsom personerna som beställer systemet, användare som använder en eller flera aspekter av systemet och personer som drar nytta av systemet. Det är också möjligt att intressenter inkluderar medlemmar av allmänheten som berörs av vissa särdrag i systemet. Intressenter har sina egna speciella behov. Å andra sidan kan personer som utvecklar systemet vara tekniskt kapabla, men kanske inte helt förstår intressenternas synvinkel. Kravteknik är den väsentliga förmågan som förbinder dessa sidor.

Formellt är kravingenjörsverksamheten uppdelad i kravutveckling och kravhantering. Kravutveckling består av framtagning, analys, specifikation och verifiering. Kravhantering är kontrollen av hela kravprocessen, särskilt hantering av eventuella förändringar i krav. Vissa utövare kallar däremot bara hela aktiviteten som kravanalys.

Framkallande av krav från intressenter blir nödvändigt eftersom intressenter ofta inte helt specificerar sina behov och inte förstår konsekvenserna av det nya systemet. Intressenter kanske inte öppnar sig, eftersom de kan frukta påverkan på deras nuvarande jobb. Framkallande är alltså en försiktig och möjligen lång process där empati och subtil psykologi behövs. Man måste vara noga med att kulturella skillnader mellan olika intressenter såväl som utvecklarna överbryggas.

Flera tekniker används för att framkalla krav. Krav kan framkallas genom individuella intervjuer, gruppmöten och genom att observera människor vid deras uppgifter. Tekniker som kan föra fram krav är bland annat fokusgrupper, skapande av prioriterade listor, prototyper och jämförelse med andra system i drift. Kraven som ska framkallas inkluderar systemets affärsbehov, användarnas affärsprocesser när de använder systemet och systemets funktionella egenskaper. Dessutom måste de icke-funktionella kraven som svarstid, systemtillgänglighet och användarvänlighet framkallas.

Analyssteget i kravteknik bildar lågnivåkrav som kommer att tillfredsställa de ursprungliga högnivåkraven. Detta inkluderar att skapa konceptuella modeller och prototyper för att säkerställa att kraven är fullständiga. Konflikter i olika intressenters behov hittas oftare av modeller och prototyper än från en ren lista med krav. Önskvärda systemegenskaper som säkerhet, flexibilitet och underhållsbarhet måste läggas till kraven av analytikerna.

Kraven specificeras i ett dokument för att underlätta förståelsen för alla intressenter. I programvarufältet kallas dokumentet SRS, vilket står för Software Requirements Specification. Kraven verifieras av nyckelintressenter. Detta sker främst via presentationer och specifikationsdokumentet, men även ibland med testfall som motsvarar kraven.

Kravteknik är i första hand en kommunikationsaktivitet snarare än en teknisk. Det kräver multidisciplinära färdigheter. Kravteknik hjälper intressenter och utvecklare att lösa konflikter och förenar dem i sina mål; Detta leder till ett robust system.