Vad är kravteknik?
Stora hårdvara eller mjukvarusystem, som ett rymdskepp, 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. Kravsteknik är användningen av god teknikpraxis för att förstå kraven innan ett system byggs. Det får betydelse eftersom systemets intressenter själva inte är tydliga med sina behov och har olika behov.
Ett komplext system kan ha många intressenter, till exempel personer som driftsätter 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 intressenterna inkluderar allmänheten som påverkas av vissa egenskaper hos systemet. Intressenter har sina egna särskilda behov. Å andra sidan kan människor som utvecklar systemet vara tekniskt kapabla, men kanske inte helt förstår intressenternas synpunkt. Kravsteknik är den väsentliga förmågan som kopplar samman dessa sidor.
Formellt är kravteknikaktiviteten uppdelad i kravutveckling och kravhantering. Kravutveckling består av framkallning, analys, specifikation och verifiering. Kravhantering är kontrollen av hela kravprocessen, särskilt hantering av eventuella ändringar i krav. Vissa utövare, kontrasterande, kallar bara hela aktiviteten som kravanalys.
Att ta fram 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 vara rädda för påverkan på deras nuvarande jobb. Uppmaning är alltså en noggrann och möjligen en lång process där empati och subtil psykologi behövs. Man måste vara försiktig så att kulturella skillnader mellan olika intressenter och utvecklare överbryggas.
Flera tekniker används för att framkalla krav. Krav kan framkallas genom individuella intervjuer, gruppmöten och observationer av människor vid sina uppgifter. Tekniker som kan skapa krav inkluderar fokusgrupper, skapa prioriterade listor, prototyper och jämförelser med andra system i drift. Kraven för att framkalla inkluderar systemets affärsbehov, användarnas affärsprocesser när de använder systemet och systemets funktionella funktioner. Dessutom måste de icke-funktionella kraven, såsom responstid, systemtillgänglighet och användarvänlighet framkalla.
Analyssteget i kravteknik bildar krav på låg nivå som uppfyller de ursprungliga kraven på hög nivå. Detta inkluderar att skapa konceptuella modeller och prototyper för att fastställa fullständigheten av kraven. Konflikter i olika intressenters behov hittas oftare av modeller och prototyper än från enbart en lista med krav. Önskade systemegenskaper som säkerhet, flexibilitet och underhållbarhet måste läggas till kraven av analytikerna.
Kraven anges i ett dokument för att underlätta förståelsen för alla intressenter. I mjukvarufältet kallas dokumentet SRS, som står för specifikation av programvarukrav. Kraven verifieras av viktiga intressenter. Detta är främst via presentationer och specifikationsdokumentet, men också ibland med testfall som motsvarar kraven.
Kravsteknik är främst en kommunikation, aktivitet snarare än en teknisk. Den behöver tvärvetenskapliga 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.