Programvarebehovsanalyse med eksempel

โšก Smart oppsummering

Kravanalyse for programvare deler interessentenes behov inn i funksjonelle og ikke-funksjonelle utsagn, rangerer dem pรฅ forretnings-, arkitektur- og systemnivรฅ, og kontrollerer deretter hver enkelt mot kvalitetsattributter for รฅ garantere en testbar, tracmulig, prioritert spesifikasjon.

  • ๐Ÿ“ Kravtyper: Forretningsmessige, arkitekturmessige og designmessige, samt system- og integrasjonskrav danner de tre nivรฅene som strukturerer enhver programvarespesifikasjon.
  • ๐Ÿ”€ Funksjonell vs. ikke-funksjonell: Funksjonelle setninger beskriver hva systemet mรฅ gjรธre, mens ikke-funksjonelle setninger setter mรฅlbare mรฅl for ytelse, sikkerhet og brukervennlighet.
  • ๐Ÿ“š Alternative kilder: Kolleger, tidligere utgivelser, eldre kravdokumenter, feilrapporter og installasjonsveiledninger leverer krav nรฅr formelle briefinger mangler.
  • โœ… Kvalitetsegenskaper: Atomic, unikt identifisert, fullstendig, konsistent, tracยซEableยป, ยซprioritertยป og ยซtestbarยป er de syv attributtene alle krav mรฅ oppfylle.
  • ๐Ÿ”— Ende til ende Tracevne: Forretningskrav er knyttet til design, design til kode og kode til testtilfeller, slik at omfang og dekning forblir synlig gjennom hele prosjektet.
  • ๐ŸŽฏ Testbar ordlyd: Erstatt vage begreper som ยซhver sideยป og ยซakseptabel tidยป med navngitte sider og mรฅlbare mรฅl som 5 sekunder.

Analyse av programvarekrav

Et programvarekrav er et funksjonelt eller ikke-funksjonelt behov som mรฅ implementeres i systemet. Funksjonelt betyr รฅ tilby en bestemt tjeneste til brukeren.

For eksempel, i forbindelse med en bankapplikasjon, er det funksjonelle kravet at nรฅr en kunde velger ยซVis saldoยป, skal de kunne se sin siste kontosaldo.

Et programvarekrav kan ogsรฅ vรฆre ikke-funksjonelt, for eksempel et ytelseskrav. For eksempel kan et ikke-funksjonelt krav angi at hver side i systemet skal lastes inn for brukere innen 5 sekunder.

Sรฅ i bunn og grunn programvarekravet er en

  • Funksjonell eller
  • Ikke-funksjonell

trenge som mรฅ implementeres i systemet. Programvarekrav uttrykkes vanligvis som utsagn.

Typer krav

ForretningskravDette er overordnede krav hentet fra forretningsplanen for prosjektet. For eksempel tilbyr et mobilbanksystem banktjenester til Sรธrรธst-Asia. Forretningskravet som er bestemt for India er kontooppsummering og pengeoverfรธring, mens det for Kina er kontooppsummering og betaling av regninger.

Land Selskap som tilbyr bankfunksjoner eller -tjenester
India Kontosammendrag og pengeoverfรธring
Kina Kontosammendrag og Bill Betaling

Architekniske krav og designkravDisse kravene er mer detaljerte enn forretningskrav og driver lรธsningsarkitekturen. De bestemmer den overordnede designen som kreves for รฅ implementere forretningskravet. For en utdanningsorganisasjon inkluderer typiske arkitektur- og designbrukstilfeller innlogging, kursdetaljer og pรฅmelding. Kravet vil vรฆre som vist nedenfor.

Bankbrukssak Krav
Bill Betaling Denne brukssaken beskriver hvordan en kunde kan logge seg pรฅ nettbank og bruke Bill Betalingsfasilitet. Kunden kan se et dashbord over utestรฅende regninger for registrerte fakturautstedere. Kunden kan legge til, endre og slette en fakturautstederdetalj. Kunden kan konfigurere SMS- og e-postvarsler for ulike faktureringshandlinger. Kunden kan se en historikk over tidligere betalte regninger. Aktรธrene som starter denne bruksscenariet er bankkunder eller supportpersonell.

System- og integrasjonskravPรฅ det laveste nivรฅet har vi system- og integrasjonskrav. Det gir en detaljert beskrivelse av hvert krav. Det kan fanges opp som brukerhistorier skrevet i et vanlig forretningssprรฅk. Kravene inneholder rikelig med detaljer slik at utviklere kan begynne รฅ kode. Bill Eksempelet pรฅ betalingsmodulen nedenfor viser kravet for รฅ legge til en fakturautsteder.

Bill Betaling Krav
Legg til BillERS Navn pรฅ strรธmleverandรธr, kundenummer, automatiske betalinger โ€“ Ja/Nei, betal hele belรธpet Bill โ€“ Ja/Nei, automatisk betalingsgrense โ€“ Ikke betal hvis Bill er over spesifisert belรธp

Noen ganger kan det hende at du ikke mottar noen krav eller dokumenter รฅ jobbe med for et prosjekt. Selv da finnes det andre kilder til kravinformasjon som du kan stole pรฅ for รฅ basere programvaren eller testdesignet ditt. De andre kildene til krav du kan stole pรฅ er listet opp nedenfor.

Andre kilder til krav

  • Kunnskapsoverfรธring fra kolleger eller ansatte som allerede jobber med det prosjektet
  • Diskuter prosjektet med forretningsanalytikeren, produktsjefen, prosjektlederen og utviklerne
  • Analyser den forrige versjonen av systemet som allerede er implementert
  • Analyser eldre kravdokumenter fra prosjektet
  • Revse tidligere feilrapporter; noen feilrapporter konverteres til forbedringsforespรธrsler som kan implementeres i gjeldende versjon
  • Sjekk installasjonsveiledningen, hvis tilgjengelig, for รฅ se hvilke installasjoner som kreves
  • Analyser domene- eller bransjekunnskapen teamet prรธver รฅ implementere

Uansett hvilken kilde du bruker til krav, dokumenter dem i et delt format og fรฅ dem gjennomgรฅtt av erfarne teammedlemmer.

Hvordan analysere krav

Tenk pรฅ et eksempel pรฅ et pedagogisk programvaresystem der en student kan registrere seg for forskjellige kurs.

La oss studere hvordan vi analyserer kravene. Hvert krav mรฅ opprettholde et sett med standardkvalitetsattributter, som inkluderer fรธlgende:

  • Atomic
  • Unikt identifisert
  • Komplett
  • Konsekvent og entydig
  • Tracmulig
  • Prioritert
  • Testbar

Analyser krav

Tabellen nedenfor illustrerer hvert attributt med tre kolonner:

  1. Den fรธrste kolonnen indikerer- "kravkvalitet"
  2. Den andre kolonnen indikerer- "dรฅrlig krav med et eller annet problem"
  3. Den tredje kolonnen viser det samme kravet ยซkonvertert til et godt kravยป.
Krav Kvalitet Eksempel pรฅ dรฅrlig krav Eksempel pรฅ godt krav
Atomic Studentene vil kunne melde seg pรฅ grunn- og etterutdanningskurs Studenter vil kunne melde seg pรฅ bachelorkurs. Studenter vil kunne melde seg pรฅ hรธyere utdanning.
Unikt identifisert 1- Studenter vil kunne melde seg pรฅ bachelorkurs. 1- Studenter vil kunne melde seg pรฅ hรธyere utdanning. Kurspรฅmelding. Studenter vil kunne melde seg pรฅ bachelorkurs. Studenter vil kunne melde seg pรฅ hรธyere utdanning.
Komplett En professorbruker vil logge pรฅ systemet ved รฅ oppgi brukernavn, passord og annen relevant informasjon En professorbruker vil logge inn i systemet ved รฅ oppgi brukernavn, passord og avdelingskode
Konsekvent og entydig En student vil ha enten bachelor- eller postgraduate-kurs, men ikke begge deler. Noen kurs vil vรฆre รฅpne for bรฅde undergraduate og post-graduate En student vil ha enten under- eller postgraduate, men ikke begge deler
Tracmulig Vedlikeholde studentinformasjon kartlagt til BRD req.ID? Oppretthold studentinformasjon-tilordnet BRD krav ID 4.1
Prioritert Registrert student โ€“ โ€‹โ€‹prioritet 1. Vedlikehold av brukerinformasjon โ€“ prioritet 1. Meld pรฅ kurs โ€“ prioritet 1. Visning av karakterutskrift โ€“ prioritet 1 Registrer student โ€“ โ€‹โ€‹prioritet 1. Vedlikehold brukerinformasjon โ€“ prioritet 2. Meld pรฅ kurs โ€“ prioritet 1. Vis rapportkort โ€“ prioritet 3
Testbar Hver side i systemet vil lastes inn i en akseptabel tidsramme Sidene for registrering av studenter og pรฅmelding til kurs vil lastes inn innen 5 sekunder

La oss forstรฅ hver av disse egenskapene mer detaljert, og starte med Atomic.

Atomic

Atomic

Alle krav bรธr vรฆre atomรฆre, noe som betyr at de mรฅ vรฆre pรฅ laveste detaljnivรฅ og ikke kan deles ytterligere ned i komponenter. Fรธlgende eksempler sammenligner atomรฆre og ikke-atomรฆre krav.

Fortsetter med eksemplet med utdanningssystemet: Her er det dรฅrlige kravet ยซStudentene vil kunne melde seg pรฅ bachelor- og masterkursยป. Dette er et dรฅrlig krav fordi det ikke er atomรฆrt โ€“ det blander to forskjellige enheter, bachelor- og masterkurs. Det tilsvarende gode kravet deler det inn i to krav. Det ene kravet dekker opptak til bachelorkurs, og det andre dekker opptak til masterkurs.

Unikt identifisert

Unikt identifisert

Den neste kvalitetsattributten er unik identifikasjon. I det dรฅrlige eksemplet deler to separate krav samme ID#1. Hvis et team refererer til et krav med sin ID, blir det uklart hvilket av de to som menes. Det gode kravet omgrupperer dem under Seksjon 1 โ€“ Kurspรฅmelding, med delkrav 1.1 (pรฅmelding til bachelorkurs) og 1.2 (pรฅmelding til hรธyere utdanning).

Komplett

Komplett

Alle krav mรฅ vรฆre fullstendige. For eksempel sier det ugyldige kravet her at en ยซprofessorbruker vil logge seg inn i systemet ved รฅ oppgi brukernavn, passord og annen relevant informasjonยป. ยซAnnen relevant informasjonยป er vagt. Et fullstendig krav viser de nรธyaktige feltene, for eksempel avdelingskode, som professoren mรฅ oppgi.

Konsekvent og entydig

Konsekvent og entydig

Alle krav bรธr vรฆre konsistente og utvetydige. I det dรฅrlige eksemplet sier ett krav ยซEn student vil ha enten bachelor- eller masterkurs, men ikke begge delerยป, mens et annet sier ยซNoen kurs vil vรฆre รฅpne for bรฅde bachelor- og masterstudenterยป.

Det fรธrste kravet innebรฆrer at kurs er delt inn i to eksklusive kategorier, men det andre kravet motsier det ved รฅ รฅpne noen kurs for begge gruppene.

Kravet om godhet lรธser konflikten ved รฅ tydelig si at alle emner er merket enten som bachelor eller master, og en student kan bare melde seg pรฅ emner i รฉn kategori.

Tracmulig

Tracmulig

Hvert krav mรฅ vรฆre tracmulig fordi krav finnes pรฅ flere nivรฅer: forretnings-, arkitektur- og designnivรฅ, og system- og integrasjonsnivรฅ.

Nรฅr du konverterer et forretningskrav til arkitektur- og designkrav, eller arkitektur- og designkrav til system- og integrasjonskrav, tracBรฆrekraften mรฅ bevares. Alle forretningskrav bรธr tilordnes ett eller flere arkitektoniske og designmessige krav. I det dรฅrlige eksemplet ยซVedlikehold studentinformasjon โ€“ tilordnet BRD-krav-ID?ยป mangler krav-ID-en.

Det gode kravet registrerer den samme setningen, men er eksplisitt knyttet til BRD-krav-ID 4.1. Hvert krav mรฅ ha en tracmulighetskartpingSystem- og integrasjonskrav bรธr ogsรฅ vรฆre knyttet til koden som implementerer dem og til testtilfellene som verifiserer dem.

Traceffektivitet gรฅr derfor ende til ende pรฅ tvers av prosjektet.

Prioritert

Alle krav mรฅ prioriteres slik at teamet vet hva som skal implementeres fรธrst og hva som kan vente. I det dรฅrlige eksemplet er Registrer student, Vedlikehold brukerinformasjon, Meld pรฅ kurs og Vis rapportkort satt til prioritet 1. Alt kan ikke ha prioritet 1, sรฅ kravene mรฅ rangeres realistisk. Det gode eksemplet gir Registrer student og Meld pรฅ kurs hรธyest prioritet 1, Vedlikehold brukerinformasjon prioritet 2 og Vis rapportkort prioritet 3.

Testbar

Alle krav bรธr kunne testes. Det dรฅrlige eksemplet, ยซhver side i systemet lastes inn innen en akseptabel tidsrammeยป, er ikke testbart av to grunner. For det fรธrste kan ยซhver sideยป bety dusinvis av sider, noe som forringer testarbeidet. For det andre er ยซakseptabel tidsrammeยป udefinert โ€“ akseptabelt for hvem, og mot hvilken mรฅlestokk? Det gode kravet lรธser begge problemene ved รฅ navngi de spesifikke sidene (ยซregistrer student og meld inn kursยป) og sette et mรฅlbart mรฅl pรฅ 5 sekunder.

Spรธrsmรฅl og svar

AI-verktรธy grupperer tilbakemeldinger fra interessenter, flagger tvetydig sprรฅk og oppdager dupliserte eller manglende krav pรฅ tvers av store baselinjer. Forretningsanalytikere verifiserer fortsatt hvert forslag mot utlysningsposten fรธr det gรฅr inn i det godkjente kravsettet.

GitHub Copilot og GPT utarbeider brukerhistorier, akseptkriterier og forretningsregler fra korte ledetekster. En forretningsanalytiker gjennomgรฅr hver utdata mot kvalitetsattributter som atomรฆr, testbar og tracmulig fรธr det blir et godkjent krav.

En programvarekravspesifikasjon er et formelt dokument som viser funksjonelle krav, ikke-funksjonelle krav, grensesnitt og begrensninger for systemet. IEEE 830 og ISO 29148 er standardene de fleste team fรธlger nรฅr de skriver en SRS.

Kravinnsamling, eller utlysning, samler inn rรฅ behov fra interessenter. Kravanalyse organiserer, forbedrer og sjekker deretter disse behovene mot de syv kvalitetsattributtene, slik at leveranseteamet mottar klare, testbare utsagn.

Bruk teknikker som MoSCoW (Must, Should, Could, Would), Kano-analyse, vektet scoring eller kostnad for forsinkelse. Kombiner forretningsverdi med leveringsinnsats og risiko, og avtal deretter rekkefรธlgen med sponsoren og produkteieren fรธr utviklingen starter.

A-krav TracEability Matrix knytter hvert krav til designelementet, kodekomponenten og testtilfellet. Den gir fremoverrettet, bakoverrettet og toveis traceffektivitet slik at ingenting blir glemt, overbygd eller sendt uten en matchende test.

Tvetydig formulering, uprioriterte etterslep, manglende traceffektivitet, รฅ blande lรธsningsideer med forretningsbehov og fryse omfang uten endringskontroll er feilene som forรฅrsaker mest omarbeid, tidsforsinkelser og produksjonsfeil.

Populรฆre verktรธy inkluderer Jama Connect, IBM Dร˜RER, Modern Requirements forum Azure DevOps, Jira med Xray, Visure Requirements ALM og Blueprint. Team velger en plattform basert pรฅ regulatoriske behov, teamstรธrrelse og dybden av trackreves evne.

Oppsummer dette innlegget med: