Hvad er kravsteknik?
Store hardware- eller softwaresystemer, såsom et rumfartøj, har komplekse krav. Krav er en specifikation af, hvad der skal bygges, hvordan systemet skal opføre sig, eller begrænsninger for processen med at bygge systemet. Kravsteknik er brugen af god teknisk praksis for at forstå kravene, før et system bygges. Det antager betydning, fordi systemets interessenter ikke selv er klar over deres behov og har forskellige behov.
Et komplekst system kan have mange interessenter, såsom de personer, der sætter systemet i gang, brugere, der bruger et eller flere aspekter af systemet, og personer, der drager fordel af systemet. Det er også muligt, at interessenter inkluderer medlemmer af offentligheden, der er berørt af visse særegenheder i systemet. Interessenter har deres egne særlige behov. På den anden side er mennesker, der udvikler systemet muligvis teknisk dygtige, men forstår muligvis ikke fuldstændigt interessenternes synspunkt. Kravsteknik er den væsentlige kapacitet, der forbinder disse sider.
Formelt er kravene ingeniøraktivitet opdelt i kravudvikling og kravstyring. Kravudvikling er sammensat af fremkaldelse, analyse, specifikation og verifikation. Kravstyring er kontrollen af hele kravsprocessen, især håndtering af ændringer i kravene. Nogle praktikere kalder derimod hele aktiviteten som kravanalyse.
Fremlæggelse af krav fra interessenter bliver nødvendig, fordi interessenter ofte ikke fuldt ud specificerer deres behov og ikke forstår implikationerne af det nye system. Interessenter åbner muligvis ikke op, da de kunne frygte virkningen på deres nuværende job. Udvikling er således en omhyggelig og muligvis en lang proces, hvor empati og subtil psykologi er nødvendig. Man skal være forsigtig med, at kulturelle forskelle mellem forskellige interessenter såvel som udviklerne overbrydes.
Flere teknikker bruges til at fremkalde krav. Kravene kunne fremkaldes gennem individuelle samtaler, gruppemøder og observation af mennesker til deres opgaver. Teknikker, der kan frembringe krav, inkluderer fokusgrupper, oprette prioriterede lister, prototype og sammenligning med andre systemer, der er i drift. Kravene til at fremkalde inkluderer systemets forretningsbehov, brugernes forretningsprocesser, når de bruger systemet, og systemets funktionelle funktioner. Derudover skal der fremmes de ikke-funktionelle krav, som f.eks. Responstid, systemtilgængelighed og brugervenlighed.
Analysetrinnet i kravteknik danner krav til lavt niveau, der vil tilfredsstille de originale krav på højt niveau. Dette inkluderer oprettelse af konceptuelle modeller og prototyper for at fastslå, om kravene er fuldstændige. Konflikter i forskellige interessenters behov findes oftere ved modeller og prototyper end fra en ren liste over krav. Ønskede systemegenskaber, såsom sikkerhed, fleksibilitet og vedligeholdelighed, skal tilføjes kravene fra analytikerne.
Kravene er specificeret i et dokument for at lette forståelsen af alle interessenter. I softwarefeltet kaldes dokumentet SRS, der står for softwarekravspecifikation. Kravene verificeres af de vigtigste interessenter. Dette er hovedsageligt via præsentationer og specifikationsdokumentet, men også undertiden med testsager, der svarer til kravene.
Kravsteknik er primært en kommunikation, aktivitet snarere end en teknisk. Det har brug for tværfaglige færdigheder. Kravsteknik hjælper interessenter og udviklere med at løse konflikter og forener dem i deres mål; Dette fører til et robust system.