Banner image

Krav

En introduktion till kravhantering och kravteknik samt relaterat material som jag har skrivit i ämnet.

Inledning

Datorer av olika storlek finns överallt i samhället, i tvättmaskiner såväl som i samhällskritiska system som ser till att vi dygnet runt har tillgång till el och vatten. I alla typer av fordon finns det inbyggda datorer som trots att de är osynliga för användarna styr vitala funktioner som bromsar och manöverreglage. De system som vars avsedda funktionalitet, eller frånvaro av den, i hög grad påverkar människors säkerhet och hälsa, egendom eller den omgivande miljön kallas ofta för kritiska system.

Oavsett om systemen är av kritisk natur eller ej är fungerande kravhantering en förutsättning för att åstadkomma ett system som motsvarar verksamhetens behov. Studier och rapporter visar gång på gång att brister i kravarbetet är en vanlig orsak till försenade projekt med skenande kostnader.

Kravhantering och kravteknik

Både kravteknik och kravhantering omfattar allt från att göra en initial intressentanalys där relevanta intressenter identifieras till att hantera förändringar i systemet efter att det är färdigt och har börjat användas. Mellan dessa punkter ska bland annat kraven formuleras och analyseras så att de inte står i konflikt till varandra eller mot övergripande mål för systemet.

Skillnaden mellan kravhantering och kravteknik är för mig att kravteknik är en ingenjörsdisciplin med tillhörande vetenskapsområde, medan kravhantering omfattar alla olika aktiviteter inom kravområdet oavsett om de bedrivs ingenjörsmässigt eller ej. Därmed inte sagt att ingenjörsmässig kravhantering är det som behövs i alla lägen, men för kritiska system är det nästan alltid en förutsättning.

Som vetenskapsområde ses kravteknik (på engelska requirements engineering) ofta som en deldisciplin till antingen systems engineering (svensk översättning saknas) eller programvaruteknik (på engelska software engineering). Den sistnämnda ses i sin tur som en deldisciplin till systems engineering.

För att exemplifiera hur disciplinerna hänger ihop kan vi tänka oss att vi ska bygga en bärraket som placerar en satellit i omloppsbana. Systems engineering kommer att användas för att hantera helheten, inklusive integrationen av de olika delarna. Programvaruteknik kommer att användas för att omhänderta den mjukvara som kommer att ingå i systemet, och kravteknik kommer att användas för att hantera kraven på både mjukvaru- och systemnivån.

Ett område inom kravtekniken som jag fördjupat mig i är hur krav kan uttryckas. Till exempel kan formella notationer användas för att med matematisk precision entydigt beskriva önskade egenskaper. Sådana metoder kan vara särskilt lämpliga för kritiska system där underförstådda krav eller antaganden annars kan ge livsfarliga konsekvenser. En beskrivning av olika formalitetsgrader för krav finns att läsa i min exjobbsrapport.

Låt oss minska antalet misslyckade it-projekt!

Jag är övertygad om att en effektiv kravprocess som tidigt fångar upp relevanta intressentkrav och löpande genom projektet följer upp i vilken grad dessa krav realiserats kommer att leda till färre spektakulära it-misslyckanden. Genom att effektivt använda den kunskap och de metoder som finns tillgängliga inom kravtekniken kommer vi istället att få se fler projekt som blir klara i tid, utan att överskrida budget, och som dessutom levererar den funktionalitet och kvalitet intressenterna behöver.

Trots vikten av en välfungerande kravhanteringsprocess så är en sådan i sig otillräcklig för att åstadkomma användbara och ändamålsenliga it-system. Kravhanteringen kan inte bedrivas fristående från de projekt som nästan alltid är arbetsformen för att skapa de nya systemen. Projekt- och kravarbetet måste ske integrerat; det spelar ingen roll hur bra kravspecialisterna är om inte projektet bedrivs på ett strukturerat sätt. Mer om detta går exempelvis att läsa i min essä Tio framgångsfaktorer för lyckade it-projekt


Svensk kravterminologi

Jag tillhandahåller Svensk kravterminologi, vars syfte är att erbjuda en sammanhängande begreppsapparat för termer inom kravområdet. Krav handlar till stor del om kommunikation, och för fungerande kommunikation krävs ett gemensamt språk.

Äldre skrifter

Essän innehåller sex kriterier som kännetecknar ett framgångsrikt it-projekt, samt tio faktorer som är särskilt viktiga för att åstadkomma sådana projekt. Essän avslutas med en checklista som kan användas som en snabb hälsoindikator för ett projekt.

Den elaka tvillingen eller mörka spegelbilden av essän "Tio framgångsfaktorer för lyckade it-projekt".

En kort populärvetenskaplig förklaring till varför det är viktigt med kravspecifikationer.

Min exjobbsrapport, som handlar om olika sätt att uttrycka krav för elektroniksystem i tunga fordon. Det handlar dock betydligt mer om krav än om lastbilar.