Hva er kravsteknologi?
Store maskinvare- eller programvaresystemer, for eksempel et romfartøy, har komplekse krav. Krav er en spesifikasjon av hva som skal bygges, hvordan systemet skal oppføre seg, eller begrensninger i prosessen med å bygge systemet. Kravteknikk er bruk av god teknikk for å forstå kravene før et system er bygget. Det forutsetter viktighet fordi interessentene i systemet ikke selv er klare over deres behov, og har forskjellige behov.
Et komplekst system kan ha mange interessenter, for eksempel personene som tar i bruk systemet, brukere som bruker ett eller flere aspekter av systemet, og personer som drar nytte av systemet. Det er også mulig at interessenter inkluderer medlemmer av publikum som er berørt av visse særegenheter i systemet. Interessenter har sine egne spesielle behov. På den annen side kan personer som utvikler systemet være teknisk dyktige, men kanskje ikke helt forstå interessenters synspunkt. Kravteknikk er den viktigste funksjonen som forbinder disse sidene.
Formelt sett er kravsteknisk aktivitet delt inn i kravutvikling og kravhåndtering. Kravutvikling består av fremkalling, analyse, spesifikasjon og verifisering. Kravstyring er kontrollen av hele kravprosessen, spesielt håndtering av endringer i kravene. Noen utøvere, kontrasterende, kaller bare hele aktiviteten som kravanalyse.
Utvikling av krav fra interessenter blir nødvendig fordi interessenter ofte ikke fullstendig spesifiserer deres behov, og ikke forstår implikasjonene av det nye systemet. Interessenter vil kanskje ikke åpne seg, da de kan frykte innvirkningen på deres nåværende jobber. Utvikling er således en nøye og muligens en lang prosess hvor empati og subtil psykologi er nødvendig. Man må være forsiktig med å bygge bro mellom kulturelle forskjeller mellom ulike interessenter og utviklere.
Flere teknikker brukes for å fremkalle krav. Krav kan bli framkalt gjennom individuelle intervjuer, gruppemøter og observasjon av mennesker på oppgavene sine. Teknikker som kan frembringe krav inkluderer fokusgrupper, lage prioriterte lister, prototyping og sammenligning med andre systemer i drift. Kravene til å lokke inkluderer systemets forretningsbehov, forretningsprosessene til brukerne når de bruker systemet, og de funksjonelle funksjonene til systemet. I tillegg må de ikke-funksjonelle kravene som responstid, systemtilgjengelighet og brukervennlighet bli fremkalt.
Analysetrinnet i kravteknologi danner krav på lavt nivå som tilfredsstiller de opprinnelige kravene på høyt nivå. Dette inkluderer å lage konseptuelle modeller og prototyper for å fastslå fullstendigheten av kravene. Konflikter i behovene til forskjellige interessenter finnes oftere av modeller og prototyper enn fra en rent liste over krav. Ønskede systemegenskaper som sikkerhet, fleksibilitet og vedlikeholdbarhet må tillegges kravene fra analytikerne.
Kravene er spesifisert i et dokument for enkel forståelse av alle interessenter. I programvarefeltet heter dokumentet SRS, som står for Software Requirements Specification. Kravene blir bekreftet av viktige interessenter. Dette er hovedsakelig via presentasjoner og spesifikasjonsdokumentet, men også noen ganger med testsaker som samsvarer med kravene.
Kravteknikk er først og fremst en kommunikasjon, aktivitet snarere enn en teknisk. Den trenger flerfaglige ferdigheter. Kravteknikk hjelper interessenter og utviklere med å løse konflikter og forene dem i sine mål; Dette fører til et robust system.