Hvad er kravsanalyse og forhandling?
Kravsanalyse er typisk en proces, hvor de krav, der er dokumenteret under kravindsamlingsfasen, analyseres, valideres og afstemmes. Med andre ord er kravsanalyse en proces, hvor man undersøger og forstår de krav, som interessenterne har angivet. Kravsanalyse kræver hyppig kommunikation med interessenter og slutbrugere for at definere forventninger, løse konflikter og til sidst dokumentere de vigtigste krav. Løsningerne kan omfatte emner som:
- Forskellige former for opsætning af arbejdsgange i virksomheden
- Implementering af et nyt system, der skal anvendes fremover osv.
Det er vigtigt at huske, at kravindsamling og kravsanalyse arbejder sammen. De understøtter hinanden. Når vi begynder at indsamle kravene, afdækker og analyserer vi dem samtidig.
Hvad er målene med kravsanalyse?
- Det første og vigtigste mål med kravsanalyse er at forstå brugernes krav og behov.
- Når vi anvender forskellige kilder til at indsamle krav, kan der opstå konflikter mellem dem. Kravsanalyse handler om at identificere disse konflikter mellem de krav, som brugerne har angivet, og løse dem.
- Forhandle kravene med brugerne og interessenterne. Det er ikke muligt for vores system at opfylde alle krav præcis på den måde, som interessenterne og brugerne beskriver dem.
- Vi er nødt til at forhandle og prioritere kravene. Nogle krav virker måske ikke særligt vigtige for os, men de kan være meget vigtige for slutbrugerne. For at forstå dem skal vi analysere og prioritere interessenternes krav.
- Vi skal uddybe de krav, der er angivet af brugerne og systemet. Det hjælper, når kravene skal dokumenteres i kravspecifikationerne. Samtidig hjælper det udviklerne med at udvikle, designe og teste bedre, fordi de får en mere detaljeret og grundig forståelse af kravene.
- Vi skal klassificere kravene i forskellige kategorier og underkategorier og derefter allokere disse krav til forskellige delsystemer.
- Vi skal også evaluere kravene i forhold til den kvalitet, som organisationen ønsker.
Til sidst skal vi sikre, at vi ikke overser noget vigtigt.
Kravsanalyse
Kravsanalyse fokuserer på alle de aktiviteter, der bruges til at fastlægge de krav eller betingelser, som det nye projekt skal opfylde i overensstemmelse med de krav, der er angivet af forskellige interessenter. Under denne aktivitet analyserer, forfiner og gransker vi alle de krav, der er indsamlet under kravindsamlingen, for at skabe den nødvendige konsistens.
Aktiviteterne inden for kravsanalyse kombineres normalt med aktiviteterne inden for kravindsamling i vandfaldsprocessen. Nogle gange kombineres de også med kravspecifikationen. Under kravindsamlingen indsamler og registrerer vi kravene. Under analysen undersøger vi behovene og gennemførligheden af de indsamlede krav. Derefter forhandler vi kravene med interessenter og slutbrugere for til sidst at kunne skabe et bestemt resultat.
Hvilke udfordringer opstår under kravsanalyse?
Der er visse udfordringer, som en organisation står over for, når den analyserer krav indsamlet fra forskellige kilder.
- Nogle gange er det svært at forstå præcis, hvad interessenterne forventer, fordi de ikke selv er helt klar over det. De har ofte en vag idé om, hvad de ønsker, og det kan skabe forvirring.
- Krav er normalt dynamiske, fordi de løbende ændrer og udvikler sig i takt med skiftende behov. Nogle gange kan de krav, der blev angivet i begyndelsen af projektet, ændre sig, efterhånden som projektet skrider frem. Derfor bør man altid have alternative planer klar.
- Dårlig kommunikation mellem teammedlemmerne er en anden udfordring, der kan opstå under kravsanalyse. Derfor er det vigtigt, at projektledere sikrer en flydende kommunikation i organisationen og mellem teams. Det kan være nyttigt, hvis projektledere anvender et formaliseret sprog såsom UML som et middel til at standardisere kommunikationen og samtidig undgå misforståelser.
Proces for kravsanalyse
Generelt består kravsanalyseprocessen af syv trin.
- Identificer interessenter: Først er det afgørende at fastlægge, hvem de vigtigste interessenter for projektet er. Disse personer og grupper omfatter interne kunder, eksterne brugere, myndigheder samt alle andre interessenter, der spiller en rolle i udviklingen af produktet. Uden dem kan disse behov og krav ikke opfyldes – de er drivkraften bag fremskridtet!
- Indsaml interessenternes behov og krav: I denne del af kravsanalyseprocessen, som kaldes indsamling af behov og krav, samarbejder teams med interessenterne for at identificere deres behov og forventninger.
- Modellér behov og krav: Efter at have indsamlet interessenternes oprindelige behov og forventninger kan teams anvende visuelle repræsentationer eller diagrammer til at illustrere disse krav som en del af deres vurdering. Det gør det muligt for teamet at sikre, at der indhentes feedback fra alle involverede parter, samtidig med at potentielle problemer, uoverensstemmelser eller inkonsistenser løses, før der udarbejdes en produktbeskrivelse af høj kvalitet, herunder use cases og user stories.
- Retrospektiv analyse: Efter at have indsamlet detaljerede data og oplysninger gennem kravindsamling, diagrammer og modelleringsprocesser analyserer projektteamet materialet. De er især interesserede i at forstå eventuelle begrænsninger eller drivkræfter, der kan påvirke muligheden for at skabe produktet. Dette hjælper dem med at identificere potentielle risici og samtidig fastlægge et budget og en tidsplan for færdiggørelsen.
- Definér et integreret sæt af behov: Projektteamet udvikler en omfattende samling af interessentbehov og -krav, der afspejler interessenternes forventninger, mål, formål, motivationer og rammer for produktet.
- Definér produktkrav: Efter at have gennemgået det samlede sæt af behov og interessentkrav kan teams derefter udvikle et endeligt sæt forventninger til produktets funktioner. Dette er et afgørende trin, så det er vigtigt, at hvert krav opfylder kriterierne for høj kvalitet, så der skabes velformulerede resultater. Det vil være hensigtsmæssigt, at alle interessenter tilegner sig den nødvendige viden til at formulere gode krav.
- Godkendelse og baseline: Efter kravsanalysefasen skal alle væsentlige interessenter – eller deres repræsentanter – som blev identificeret i trin ét, formelt godkende det samlede sæt af behov og de tilhørende produktspecifikationer. Denne aftale giver alle klarhed over, hvordan produktet skal verificeres og valideres i forhold til det definerede indhold, budgetbegrænsninger og tidsplanen og beskytter dermed mod uventede ændringer eller ændringer i projektets omfang senere i udviklingsprocessen.
Denne proces bør anvendes som grundlag for ethvert kravsanalyseprojekt, da den hjælper med at sikre, at interessenternes forventninger opfyldes, og at alle nødvendige produktfunktioner inkluderes. En veludført kravsanalyseproces er afgørende for en vellykket udvikling af et softwareprodukt af høj kvalitet. Den indsigt i interessenternes behov, der opnås gennem processen, hjælper teamet med at udvikle en effektiv løsning, der opfylder deres mål og samtidig holder sig inden for budget og tidsplan.
Hvad er kravmodellering?
Den mest almindelige teknik under kravsanalyse er modellering. Hovedformålet med modellering er at forstå de indsamlede krav. En model er typisk en repræsentation af noget, ofte i en mindre eller forenklet version af det virkelige objekt, som anvendes til informationsformål. Med andre ord er den en abstraktion af bestemte aspekter af et eksisterende eller planlagt system. En model er designet til at præsentere information, der kan analyseres systematisk. Modeller er en af de bedste måder at analysere en enhed på ved at reducere dens kompleksitet.
Da modellering er en væsentlig del af analyseprocessen, skal den udføres korrekt og omhyggeligt. Vi bruger modellering til at kortlægge de elementer, der identificeres under kravindsamlingen, og præsentere dem i en mere præcis og formel form. Det gør kravene og problemerne lettere at forstå. Når man får et så præcist billede af noget, bliver det desuden nemmere at identificere, hvad der mangler, eller hvad der kræver yderligere diskussion eller ændringer.
Der findes forskellige sprog, som anvendes til at skabe kravmodeller. Først og fremmest er der det naturlige sprog, som brugeren anvender til at beskrive sine behov og krav. Derudover findes funktionelle sprog såsom UML, SysML, logik og tidslogik, Use Case Maps samt aktivitets- eller domænediagrammer.
Nogle almindelige sprog til kravmodellering
- UML: UML står for Unified Modeling Language og er det standardiserede modelleringssprog, der anvendes af softwareudviklere. Det giver teams mulighed for at skabe visuelle diagrammer, der illustrerer, hvordan de enkelte komponenter i et system interagerer med hinanden.
- SysML: SysML står for Systems Modeling Language og er baseret på UML, men anvendes mere bredt inden for systemudvikling. Det gør det muligt for brugere at modellere komplekse strukturer såsom netværk eller mekaniske systemer.
- BPEL: BPEL står for Business Process Execution Language og fokuserer specifikt på forretningsprocesser – altså rækkefølgen af de opgaver, der skal gennemføres, for at en hel forretningsproces kan fuldføres. Dette er særligt nyttigt, når interessenter ønsker et bestemt resultat fra deres produkt.
- Flowcharts: Flowcharts eller flowdiagrammer er en enkel måde visuelt at kortlægge de trin, der skal gennemføres for at opnå et bestemt resultat. Det kan spænde fra mindre opgaver såsom udvikling af et login-system til større og mere komplekse processer såsom design af hele arbejdsgangen i en applikation.
- Data Flow Diagrams: Data Flow Diagrams illustrerer informationsstrømmen gennem et system og bruges til at identificere potentielle datakilder, datamodtagere og processer. Det hjælper teams med at forstå, hvordan produktet indsamler data, sender dem gennem en algoritme eller proces og derefter producerer det ønskede resultat.
- State Transition Diagrams: State Transition Diagrams kortlægger alle de mulige tilstande, et system kan befinde sig i, samt overgangene mellem dem. De anvendes typisk ved design af brugergrænseflader såsom websider eller mobilapps. Det gør det muligt for udviklere at forudse alle overgange i brugerens rejse gennem produktet og dermed sikre optimal brugervenlighed.
- Gap Analysis: Gap Analysis er processen med at sammenligne to sæt krav og identificere eventuelle forskelle eller huller mellem dem. Metoden kan anvendes til at sammenligne interessenternes forventninger med det, teamet hidtil har udviklet, så man kan sikre, at alle nødvendige funktioner er inkluderet i produktet før lanceringen.
Ved at anvende disse forskellige modelleringssprog og analysemetoder kan teams få indsigt i deres interessenters behov og sikre, at et kvalitetsprodukt leveres til tiden og inden for budgettet. Det er afgørende, at udviklere har en grundig forståelse af kravsanalyseprocessen for at kunne skabe effektive softwareløsninger, der opfylder kundernes behov.
Disse modelleringssprog gør det muligt for teams at skabe detaljerede diagrammer, use cases og flows, der fungerer som vejledning under kravsanalyseprocessen. Dermed får alle involverede interessenter en klar forståelse af, hvad der forventes af produktet, og de kan nemt måle fremdriften i forhold til deres forventninger.
En vellykket implementering af denne proces bidrager ikke blot til at sikre et slutprodukt af høj kvalitet, men sparer også tid, penge og ressourcer gennem hele produktets udviklingslivscyklus. Det gør det muligt for teams hurtigt og effektivt at reagere på ændringer i projektets omfang senere i udviklingsprocessen.
Best Practices for kravsanalyse
Interessenter kan udtrykke deres forventninger på forskellige måder, eksempelvis gennem behov og krav. Behov beskriver, hvad interessenterne har brug for, at produktet gør for at løse et problem eller udnytte en mulighed, mens krav er overordnede instruktioner fra interessenterne, der beskriver, hvordan de forventer, at produktet skal fungere for at opfylde disse behov. Selvom interessenternes behov kan udtrykkes uden brug af bindende ord som “skal”, skal deres behov behandles grundigt. For at sikre, at de bliver bindende specifikationer, som senere kan valideres i forhold til produktets standarder, bør disse krav altid anvende “skal”.
Før design og udvikling af et produkt påbegyndes, er det afgørende, at projektteamet får indsigt i de forskellige interessenters behov og krav. Flere interessenter medfører forskellige forventninger, og derfor er det afgørende at registrere disse behov præcist for at undgå konflikter eller andre problemer. Projektteamet skal indsamle disse ønsker og behov grundigt og samtidig løse inkonsistenser og modstridende krav. Ved at sammenfatte behovene fra disse data kan vi omdanne de enkelte krav til et omfattende sæt produktkrav. Dermed sikres det, at det udviklede produkt opfylder alle angivne forventninger og på tilfredsstillende vis imødekommer kundernes ønsker og behov.
Sporbarhed af krav er et afgørende element i kravsanalyseprocessen, da den gør det muligt at sikre, at hvert krav tydeligt afspejler intentionen hos den person, der oprindeligt fremsatte det. Uden korrekt sporbarhed kan vi ikke være sikre på, om vores softwareprodukt opfylder alle interessenters behov, mål og begrænsninger. Selv med en perfekt udført kravsanalyse ville det være umuligt at bevise, at man har det korrekte sæt krav, hvis de ikke kan spores tilbage til deres oprindelige kilde!
En central tilgang til kravsanalyse er derfor at sikre, at hvert krav kan spores tilbage til alle relaterede artefakter. Disse elementer skal ikke kun omfatte deres oprindelige kilde, men også efterfølgende materialer såsom design, planlægning af produktverifikation og planer for produktvalidering. En anden vigtig best practice inden for kravsanalyse er at følge en på forhånd defineret proces korrekt – dette trin kan være afgørende for, om interessenternes forventninger til produktet bliver opfyldt.
Visure Requirements ALM Platform til kravsanalyse
Visures intuitive brugergrænseflade gør det nemt hurtigt og effektivt at analysere store mængder data uden at bruge unødvendigt meget tid på opgaven. Derudover tilbyder Visure en række effektive værktøjer, som gør det muligt for brugerne præcist at spore krav tilbage til deres oprindelse og fremad gennem impact analysis, prioritere ændringer ud fra omkostninger eller risiko og samtidig holde styr på ændringsanmodninger. Desuden er Visures omfattende muligheder for import og eksport til og fra modelleringsværktøjer såsom Sparx Systems Enterprise Architect særligt nyttige i sikkerhedskritiske industrier.
Med Visure Quality Analyzer kan du hurtigt og nemt anvende AI-teknologi til at vurdere og identificere uklare krav. Det vil effektivisere sporbarheden, forbedre kvaliteten af kravene, styrke samarbejdet i teamet og bidrage til at sikre projektets succes. Derudover gør ITEM Template Guidelines det nemt for din virksomhed at oprette en robust processkabelon, som alle kan blive enige om.
Med Visure kan du opbygge datamodeller og knytte krav til bestemte elementer, så behov effektivt kan analyseres på ethvert niveau. Det betyder, at teams ikke længere behøver at bruge unødig tid på at diskutere og analysere krav, men i stedet kan fokusere på at fremskynde udviklingsprocessen. Ved at implementere dette system med Visure kan dit team effektivt overvåge fremdriften uden at ofre værdifuld tid eller ressourcer.
Andre værktøjer til kravsanalyse:
TestLodge – Dette er et effektivt projektstyrings- og fejlsporingsværktøj, der hjælper med at styre processen for kvalitetssikring af krav. Det indeholder funktioner såsom sporbarhed, der gør det muligt for teamet hurtigt at følge ændringer i krav og andre problemstillinger, automatiserede testplaner til hurtig gennemgang af alle kravændringer og accepttest, statusrapporter for igangværende projekter samt en omfattende onlinevidensbase med nyttige tips.
Zephyr – Denne platform til test af krav fokuserer på at hjælpe teams med at opnå en højere grad af kvalitetssikring. Den har en interaktiv og intuitiv brugergrænseflade, som gør det nemt at oprette testplaner med blot få klik. Den tilbyder også omfattende sporbarhed, så du hurtigt kan identificere potentielle problemer, der opstår som følge af ændringer i kravene.
SpecFlow – Dette er et open source-projekt, der oprindeligt blev udviklet som et værktøj til håndtering af funktionelle tests skrevet med Cucumber-syntaksen “Given/When/Then”. Siden da er det blevet betydeligt mere avanceret og understøtter nu både automatiserede og manuelle testmetoder. Funktionen Requirements Analysis hjælper teams med at sikre, at softwaren opfylder kundens specifikationer ved at sammenligne den forventede adfærd med det faktiske output.
Quality Center (QC) – Dette er en omfattende testplatform fra HP, som tilbyder flere værktøjer til måling af kvaliteten af krav. Værktøjet Requirements Analysis gør det muligt for teams at gennemgå, validere og sammenligne deres software med kundernes forventninger. Det indeholder desuden en lang række analyserapporter til detaljeret analyse af testresultater og kravdækning.
ReQtest – Dette er en samlet løsning til projektstyring, samarbejde og fejlsporing, der er udviklet til at hjælpe teams med hurtigt at analysere, rapportere og følge udviklingen i deres projekter. Løsningen indeholder moduler, der er specifikt tilpasset kravsanalyse, såsom en sporbarhedsmatrix for krav og funktioner til problemsporing, hvilket gør det nemt for teams at overvåge ændringer i kravene under udviklingen.
RequisitePro – Dette er IBMs værktøj til kravstyring og -analyse, som hjælper teams med at sikre den højest mulige softwarekvalitet. Det giver brugerne mulighed for at oprette detaljerede kravdokumenter, herunder modeller, diagrammer og rapporter, for at visualisere systemets kompleksitet og spore ændringer i dets design. Derudover indeholder det flere rapporter til vurdering af, hvor komplette projektets krav er.
Rational Requisite Pro – Dette er en innovativ webbaseret løsning til Requirements Engineering fra IBM, der tilbyder omfattende værktøjer til analyse og sporing af kundebehov fra det oprindelige koncept til den endelige levering. Den tilbyder en række avancerede funktioner såsom projektstyringsfunktioner og understøttelse af visuel modellering, så teams relativt nemt kan håndtere komplekse krav.
Inflectra Rapise – Dette er en avanceret platform til testautomatisering, som gør det muligt for teams hurtigt at oprette automatiserede tests til deres softwareapplikationer. Modulet Requirements Analysis hjælper brugerne med at holde styr på status for hvert enkelt krav og giver detaljerede rapporter om ændringer og fremskridt under udviklingen. Det kan også bruges til at gennemføre simulerede brugeraccepttests for at validere, at kundernes krav er opfyldt.
QA Symphony – Dette er en end-to-end-platform til testautomatisering, der dækker alle aspekter af kvalitetssikring af software (QA). Værktøjet til kravsanalyse tilbyder avancerede rapporteringsmuligheder, så du præcist kan se, hvor godt din applikation opfylder hvert enkelt krav. Det giver også detaljerede rapporter om, hvordan brugeroplevelsen kan forbedres, når kundernes forventninger skal opfyldes.
Konklusion
Kravsanalyse er afgørende for succesen af ethvert softwareudviklingsprojekt. Uden et klart defineret sæt krav er det næsten umuligt at udarbejde præcise planer, opnåelige mål og realistiske tidsplaner. Kravsanalyse medfører naturligvis også udfordringer; risici skal identificeres tidligt, og interessenterne skal forblive involverede gennem hele processen. Ved at følge en omhyggelig og systematisk proces kan disse udfordringer dog overvindes. Visure Requirements ALM Platform er et fremragende værktøj til håndtering af krav fra start til slut; prøv den gratis 14-dages prøveperiode i dag!