Softwarebehovsanalyse med eksempel

⚡ Smart opsummering

Analyse af softwarekrav opdeler interessenternes behov i funktionelle og ikke-funktionelle udsagn, rangerer dem på forretnings-, arkitektur- og systemniveau og kontrollerer derefter hver enkelt mod kvalitetsegenskaber for at garantere en testbar, tracmulig, prioriteret specifikation.

  • 📐 Kravtyper: Forretnings-, arkitektur- og designkrav samt system- og integrationskrav danner de tre niveauer, der strukturerer enhver softwarespecifikation.
  • 🔀 Funktionel vs. ikke-funktionel: Funktionelle udsagn beskriver, hvad systemet skal gøre, mens ikke-funktionelle udsagn sætter målbare mål for ydeevne, sikkerhed og brugervenlighed.
  • 📚 Alternative kilder: Kolleger, tidligere udgivelser, ældre kravdokumenter, fejlrapporter og installationsvejledninger leverer krav, når formelle briefinger mangler.
  • ✅ Kvalitetsegenskaber: Atomic, entydigt identificeret, komplet, konsistent, trac"Eable", "prioriteret" og "testbar" er de syv attributter, som ethvert krav skal opfylde.
  • 🔗 Ende til ende Tracevne: Forretningskrav knyttes til design, design til kode og kode til testcases, så omfang og dækning forbliver synligt gennem hele projektet.
  • 🎯 Testbar formulering: Erstat vage udtryk som "hver side" og "acceptabel tid" med navngivne sider og målbare mål som 5 sekunder.

Analyse af softwarekrav

Et softwarekrav er et funktionelt eller ikke-funktionelt behov, der skal implementeres i systemet. Funktionelt betyder at levere en bestemt service til brugeren.

For eksempel, i forbindelse med en bankapplikation, er det funktionelle krav, at når en kunde vælger "Vis saldo", skal de kunne se deres seneste kontosaldo.

Et softwarekrav kan også være ikke-funktionelt, såsom et ydelseskrav. For eksempel kan et ikke-funktionelt krav angive, at hver side i systemet skal indlæses for brugerne inden for 5 sekunder.

Så dybest set softwarekravet er en

  • Funktionel eller
  • Ikke-funktionel

har brug for som skal implementeres i systemet. Softwarekrav udtrykkes normalt som udsagn.

Typer af krav

VirksomhedskravDette er overordnede krav taget fra projektets business case. For eksempel leverer et mobilbanksystem banktjenester til Sydøstasien. Forretningskravet for Indien er kontooversigt og pengeoverførsel, mens det for Kina er kontooversigt og betaling af regninger.

Land Virksomhed, der leverer bankfunktioner eller -tjenester
Indien Kontooversigt og pengeoverførsel
Kina Kontooversigt og Bill Betaling

Architekniske krav og designkravDisse krav er mere detaljerede end forretningskrav og driver løsningsarkitekturen. De bestemmer det overordnede design, der kræves for at implementere forretningskravet. For en uddannelsesorganisation omfatter typiske arkitektur- og designmæssige anvendelsesscenarier login, kursusdetaljer og tilmelding. Kravet ville være som vist nedenfor.

Bankbrugscase Krav
Bill Betaling Denne use case beskriver, hvordan en kunde kan logge ind på netbank og bruge Bill Betalingsfacilitet. Kunden kan se et dashboard over udestående regninger for registrerede fakturaudstedere. Kunden kan tilføje, ændre og slette en fakturaudstederoplysning. Kunden kan konfigurere SMS- og e-mail-advarsler for forskellige faktureringshandlinger. Kunden kan se en historik over tidligere betalte regninger. Aktørerne, der starter denne use case, er bankkunder eller supportpersonale.

System- og integrationskravPå det laveste niveau har vi system- og integrationskrav. Det giver en detaljeret beskrivelse af hvert krav. Det kan opfattes som brugerhistorier skrevet i almindeligt forretningssprog. Kravene indeholder rigelige detaljer, så udviklere kan begynde at kode. Bill Eksempel på betalingsmodul nedenfor viser kravet om at tilføje en fakturaudsteder.

Bill Betaling Krav
Tilføj BillERS Navn på forsyningsudbyder, kundenummer, automatiske betalinger – Ja/Nej, betal hele beløbet Bill – Ja/Nej, Automatisk Betalingsgrænse – Betal ikke hvis Bill er over det angivne beløb

Nogle gange modtager du muligvis ikke nogen krav eller dokumenter til et projekt at arbejde med. Selv da er der andre kilder til kravinformation, som du kan stole på som base for din software eller dit testdesign. De andre kilder til krav, du kan stole på, er anført nedenfor.

Andre kilder til krav

  • Videnoverførsel fra kolleger eller medarbejdere, der allerede arbejder på det pågældende projekt
  • Diskuter projektet med forretningsanalytikeren, produktchefen, projektlederen og udviklerne
  • Analyser den tidligere version af systemet, der allerede er implementeret
  • Analyser ældre kravdokumenter fra projektet
  • Revse tidligere fejlrapporter; nogle fejlrapporter konverteres til forbedringsanmodninger, der kan implementeres i den nuværende version
  • Tjek installationsvejledningen, hvis tilgængelig, for at se, hvilke installationer der kræves
  • Analyser den domæne- eller brancheviden, som teamet forsøger at implementere

Uanset hvilken kilde til krav du bruger, skal du dokumentere dem i et fælles format og få dem gennemgået af erfarne teammedlemmer.

Hvordan man analyserer krav

Overvej eksemplet med et uddannelsesmæssigt softwaresystem, hvor en studerende kan tilmelde sig forskellige kurser.

Lad os undersøge, hvordan man analyserer kravene. Hvert krav skal overholde et sæt standardkvalitetsegenskaber, som omfatter følgende:

  • Atomic
  • Unikt identificeret
  • Komplet
  • Konsekvent og utvetydigt
  • Tracegnet
  • prioriteret
  • Testbar

Analyser krav

Følgende tabel illustrerer hver attribut med tre kolonner:

  1. Den første kolonne angiver- "kravkvalitet"
  2. Den anden kolonne angiver - "dårligt krav med et eller andet problem"
  3. Den tredje kolonne viser det samme krav "konverteret til et godt krav".
Krav Kvalitet Eksempel på dårligt krav Eksempel på godt krav
Atomic Studerende vil være i stand til at tilmelde sig bachelor- og postgraduate-kurser Studerende vil kunne tilmelde sig bacheloruddannelser. Studerende vil kunne tilmelde sig kandidatuddannelser.
Unikt identificeret 1- Studerende vil kunne tilmelde sig bacheloruddannelser. 1- Studerende vil kunne tilmelde sig kandidatuddannelser. Kursustilmelding. Studerende vil kunne tilmelde sig bachelorkurser. Studerende vil kunne tilmelde sig kandidatkurser.
Komplet En professorbruger vil logge ind i systemet ved at angive sit brugernavn, adgangskode og andre relevante oplysninger En professorbruger vil logge ind i systemet ved at angive sit brugernavn, password og afdelingskode
Konsekvent og utvetydigt En studerende vil have enten bachelor- eller postgraduate-kurser, men ikke begge dele. Nogle kurser vil være åbne for både bachelor- og postgraduate En studerende vil have enten bachelor- eller postgraduate, men ikke begge dele
Tracegnet Vedligeholde elevinformation kortlagt til BRD req.ID? Vedligeholdelse af elevoplysninger - Kortlagt til BRD krav ID 4.1
prioriteret Registreret studerende - Prioritet 1. Vedligehold brugeroplysninger - Prioritet 1. Tilmelding til kurser - Prioritet 1. Se karakterbog - Prioritet 1 Registrer elev - Prioritet 1. Vedligehold brugeroplysninger - Prioritet 2. Tilmeld kurser - Prioritet 1. Se karakterbog - Prioritet 3
Testbar Hver side i systemet indlæses inden for en acceptabel tidsramme Tilmeld studerende og tilmeld kurser sider i systemet indlæses inden for 5 sekunder

Lad os forstå hver af disse egenskaber mere detaljeret, startende med Atomic.

Atomic

Atomic

Hvert krav skal være atomært, hvilket betyder, at det skal være på det laveste detaljeringsniveau og ikke kan opdeles yderligere i komponenter. Følgende eksempler sammenligner atomære og ikke-atomære krav.

Fortsætter vi med eksemplet med uddannelsessystemet: Her er det dårlige krav "Studerende vil kunne tilmelde sig bachelor- og kandidatuddannelser". Dette er et dårligt krav, fordi det ikke er atomært - det blander to forskellige enheder, bachelor- og kandidatuddannelser. Det tilsvarende gode krav opdeler det i to krav. Det ene krav dækker tilmelding til bacheloruddannelser, og det andet dækker tilmelding til kandidatuddannelser.

Unikt identificeret

Unikt identificeret

Den næste kvalitetsattribut er unik identifikation. I det dårlige eksempel deler to separate krav det samme ID#1. Hvis et team refererer til et krav med dets ID, bliver det uklart, hvilket af de to der menes. Det gode krav omgrupperer dem under Afsnit 1 — Kursustilmelding, med underkrav 1.1 (tilmelding til bachelorkurser) og 1.2 (tilmelding til kandidatkurser).

Komplet

Komplet

Alle krav skal være opfyldt. For eksempel siger det ukorrekte krav her, at en "professorbruger logger ind på systemet ved at angive sit brugernavn, adgangskode og andre relevante oplysninger". "Andre relevante oplysninger" er vagt. Et komplet krav angiver de nøjagtige felter, såsom afdelingskode, som professoren skal angive.

Konsekvent og utvetydigt

Konsekvent og utvetydigt

Alle krav bør være ensartede og utvetydige. I det dårlige eksempel angiver ét krav: "En studerende skal enten have bachelorkurser eller kandidatkurser, men ikke begge dele", mens et andet angiver: "Nogle kurser vil være åbne for både bachelor- og kandidatstuderende".

Det første krav indebærer, at kurser er opdelt i to eksklusive kategorier, men det andet krav modsiger det ved at åbne nogle kurser for begge grupper.

Kravet om godkendelse løser konflikten ved tydeligt at angive, at alle kurser er markeret som enten bachelor- eller kandidatkurser, og at en studerende kun kan tilmelde sig kurser i én kategori.

Tracegnet

Tracegnet

Ethvert krav skal være tracmulig, fordi krav findes på flere niveauer: forretnings-, arkitektur- og designniveau samt system- og integrationsniveau.

Når du konverterer et forretningskrav til arkitektoniske og designmæssige krav, eller arkitektoniske og designmæssige krav til system- og integrationskrav, tracFunktionaliteten skal bevares. Alle forretningskrav skal knyttes til et eller flere arkitektoniske og designmæssige krav. I det dårlige eksempel "Vedligehold elevoplysninger – knyttet til BRD-krav-ID?" mangler krav-ID'et.

Det gode krav registrerer den samme sætning, men knytter eksplicit til BRD-krav-ID 4.1. Hvert krav skal indeholde en tractilgængelighedskortpingSystem- og integrationskrav bør også knyttes til den kode, der implementerer dem, og til de testcases, der verificerer dem.

TracEffektiviteten løber derfor fra ende til anden på tværs af projektet.

prioriteret

Alle krav skal prioriteres, så teamet ved, hvad der skal implementeres først, og hvad der kan vente. I det dårlige eksempel er Registrer elev, Vedligehold brugeroplysninger, Tilmeld kurser og Vis rapport alle indstillet til prioritet 1. Alt kan ikke have prioritet 1, så kravene skal rangeres realistisk. Det gode eksempel giver Registrer elev og Tilmeld kurser den højeste prioritet 1, Vedligehold brugeroplysninger prioritet 2 og Vis rapport prioritet 3.

Testbar

Alle krav bør kunne testes. Det dårlige eksempel, "hver side i systemet indlæses inden for en acceptabel tidsramme", kan ikke testes af to grunde. For det første kan "hver side" betyde snesevis af sider, hvilket forpurrer testindsatsen. For det andet er "acceptabel tidsramme" udefineret - acceptabel for hvem, og i forhold til hvilket benchmark? Det gode krav løser begge problemer ved at navngive de specifikke sider ("sider til registrering af studerende og tilmelding af kurser") og sætte et målbart mål på 5 sekunder.

Ofte Stillede Spørgsmål

AI-værktøjer grupperer interessentfeedback, markerer tvetydigt sprog og registrerer dubletter eller manglende krav på tværs af store baselines. Forretningsanalytikere verificerer stadig hvert forslag mod fremskaffelsesrapporten, før det indgår i det godkendte kravsæt.

GitHub Copilot og GPT udarbejder brugerhistorier, acceptkriterier og forretningsregler fra korte prompts. En forretningsanalytiker gennemgår hvert output i forhold til kvalitetsegenskaber såsom atomar, testbar og tracmulig, før det bliver et godkendt krav.

En softwarekravspecifikation er et formelt dokument, der angiver funktionelle krav, ikke-funktionelle krav, grænseflader og begrænsninger for systemet. IEEE 830 og ISO 29148 er de standarder, som de fleste teams følger, når de skriver en SRS.

Kravindsamling, eller elicitering, indsamler rå behov fra interessenter. Kravanalyse organiserer, forfiner og kontrollerer derefter disse behov i forhold til de syv kvalitetsattributter, så leveringsteamet modtager klare, testbare udsagn.

Brug teknikker som MoSCoW (Must, Should, Could, Would), Kano-analyse, vægtet scoring eller cost-of-delay. Kombinér forretningsværdi med leveringsindsats og -risiko, og aftal derefter rækkefølgen med sponsoren og produktejeren, før udviklingen påbegyndes.

A-krav TracEability Matrix forbinder hvert krav til dets designelement, kodekomponent og testcase. Den giver fremadrettede, bagudrettede og tovejsbaserede målinger. traceffektivitet, så intet overses, overbygges eller sendes uden en matchende test.

Tvetydig formulering, uprioriterede efterslæb, manglende traceffektivitet, at blande løsningsidéer med forretningsbehov og at fastfryse omfang uden ændringskontrol er de fejl, der forårsager mest omarbejde, tidsplanforsinkelser og produktionsfejl.

Populære værktøjer inkluderer Jama Connect, IBM DØRE, Modern Requirements forum Azure DevOps, Jira med Xray, Visure Requirements ALM og Blueprint. Teams vælger en platform baseret på lovgivningsmæssige behov, teamstørrelse og dybden af trackrævet evne.

Opsummer dette indlæg med: