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.
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
Tabellen nedenfor illustrerer hvert attributt med tre kolonner:
- Den fรธrste kolonnen indikerer- "kravkvalitet"
- Den andre kolonnen indikerer- "dรฅrlig krav med et eller annet problem"
- 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
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
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
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
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
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.






