Programvarukravsanalys med exempel

โšก Smart sammanfattning

Programvarukravsanalys delar upp intressenternas behov i funktionella och icke-funktionella uttalanden, rangordnar dem pรฅ affรคrs-, arkitektur- och systemnivรฅ, och kontrollerar sedan var och en mot kvalitetsattribut fรถr att garantera en testbar, tracmรถjlig, prioriterad specifikation.

  • ๐Ÿ“ Kravtyper: Affรคrsmรคssiga, arkitekturmรคssiga och designmรคssiga krav samt system- och integrationskrav utgรถr de tre nivรฅer som strukturerar varje programspecifikation.
  • ๐Ÿ”€ Funktionell vs. icke-funktionell: Funktionella satser beskriver vad systemet mรฅste gรถra, medan icke-funktionella satser anger mรคtbara mรฅl fรถr prestanda, sรคkerhet och anvรคndbarhet.
  • ๐Ÿ“š Alternativa kรคllor: Kollegor, tidigare utgรฅvor, รคldre kravdokument, felrapporter och installationsguider tillhandahรฅller krav nรคr formella briefingar saknas.
  • โœ… Kvalitetsattribut: Atomic, unikt identifierad, fullstรคndig, konsekvent, tracmรถjlig, prioriterad och testbar รคr de sju attribut som varje krav mรฅste uppfylla.
  • ๐Ÿ”— Bรถrjan till slut Tracfรถrmรฅga: Affรคrskraven mappas till design, design till kod och kod till testfall, sรฅ att omfattning och tรคckning fรถrblir synliga genom hela projektet.
  • ๐ŸŽฏ Testbar formulering: Ersรคtt vaga termer som โ€varje sidaโ€ och โ€acceptabel tidโ€ med namngivna sidor och mรคtbara mรฅl som 5 sekunder.

Analys av programvarukrav

Ett programvarukrav รคr ett funktionellt eller icke-funktionellt behov som mรฅste implementeras i systemet. Funktionellt innebรคr att tillhandahรฅlla en viss tjรคnst till anvรคndaren.

Till exempel, i samband med en bankapplikation, รคr det funktionella kravet att nรคr en kund vรคljer "Visa saldo" ska de kunna se sitt senaste kontosaldo.

Ett programvarukrav kan ocksรฅ vara icke-funktionellt, sรฅsom ett prestandakrav. Till exempel kan ett icke-funktionellt krav ange att varje sida i systemet ska laddas fรถr anvรคndare inom 5 sekunder.

Sรฅ i princip mjukvarukravet รคr ett

  • Funktionell eller
  • Icke-funktionell

behรถver som mรฅste implementeras i systemet. Programvarukrav uttrycks vanligtvis som pรฅstรฅenden.

Typer av krav

FรถretagskravDessa รคr รถvergripande krav hรคmtade frรฅn projektets affรคrsmodell. Till exempel tillhandahรฅller ett mobilt banksystem banktjรคnster till Sydostasien. Affรคrskravet som beslutats fรถr Indien รคr kontosammanfattning och รถverfรถring av medel, medan det fรถr Kina รคr kontosammanfattning och fakturabetalning.

Land Fรถretag som tillhandahรฅller bankfunktioner eller tjรคnster
Indien Kontosammanfattning och รถverfรถring av pengar
Kina Kontosammanfattning och Bill Betalning

Architekniska och designkravDessa krav รคr mer detaljerade รคn affรคrskraven och driver lรถsningsarkitekturen. De avgรถr den รถvergripande designen som krรคvs fรถr att implementera affรคrskravet. Fรถr en utbildningsorganisation inkluderar typiska arkitektur- och designanvรคndningsfall inloggning, kursinformation och registrering. Kravet skulle se ut som nedan.

Anvรคndningsfall fรถr banker Krav
Bill Betalning Detta anvรคndningsfall beskriver hur en kund kan logga in pรฅ nรคtbank och anvรคnda Bill Betalningsmรถjlighet. Kunden kan se en รถversikt รถver utestรฅende fakturor fรถr registrerade fakturautstรคllare. Kunden kan lรคgga till, รคndra och ta bort en fakturautstรคllaruppgift. Kunden kan konfigurera SMS- och e-postaviseringar fรถr olika faktureringsรฅtgรคrder. Kunden kan se en historik รถver tidigare betalda rรคkningar. De aktรถrer som startar detta anvรคndningsfall รคr bankkunder eller supportpersonal.

System- och integrationskravPรฅ den lรคgsta nivรฅn har vi system- och integrationskrav. Det ger en detaljerad beskrivning av varje krav. Det kan beskrivas som anvรคndarberรคttelser skrivna i vardagligt affรคrssprรฅk. Kraven innehรฅller rikliga detaljer sรฅ att utvecklare kan bรถrja koda. Bill Exempel pรฅ betalningsmodul nedan visar kravet fรถr att lรคgga till en fakturautstรคllare.

Bill Betalning Krav
Lรคgg till BillERS Namn pรฅ leverantรถr av el, kundnummer, automatiska betalningar โ€“ Ja/Nej, betala hela Bill โ€“ Ja/Nej, Automatisk betalningsgrรคns โ€“ Betala inte om Bill รคr รถver angivet belopp

Ibland fรฅr man inga krav eller dokument att arbeta med i ett projekt. ร„ven dรฅ finns det andra kรคllor till kravinformation som man kan fรถrlita sig pรฅ fรถr att basera sin programvara eller testdesign. De andra kravkรคllorna som man kan fรถrlita sig pรฅ listas nedan.

Andra kรคllor till krav

  • Kunskapsรถverfรถring frรฅn kollegor eller anstรคllda som redan arbetar med det projektet
  • Diskutera projektet med affรคrsanalytikern, produktchefen, projektledaren och utvecklarna
  • Analysera den tidigare versionen av systemet som redan implementerats
  • Analysera รคldre kravdokument frรฅn projektet
  • Revvisa tidigare felrapporter; vissa felrapporter konverteras till fรถrbรคttringsfรถrfrรฅgningar som kan implementeras i den aktuella versionen
  • Kontrollera installationsguiden, om sรฅdan finns, fรถr att se vilka installationer som krรคvs
  • Analysera den domรคn- eller branschkunskap som teamet fรถrsรถker implementera

Oavsett vilken kรคlla du anvรคnder fรถr krav, dokumentera dem i ett gemensamt format och lรฅt erfarna teammedlemmar granska dem.

Hur man analyserar krav

Ta exemplet med ett utbildningsprogram dรคr en student kan registrera sig fรถr olika kurser.

Lรฅt oss studera hur man analyserar kraven. Varje krav mรฅste upprรคtthรฅlla en uppsรคttning standardkvalitetsattribut, vilka inkluderar fรถljande:

  • Atomic
  • Unikt identifierad
  • Komplett
  • Konsekvent och entydigt
  • Tractillgรคnglig
  • Prioriterade
  • Testbar

Analysera krav

Fรถljande tabell illustrerar varje attribut med tre kolumner:

  1. Den fรถrsta kolumnen anger- "kravkvalitet"
  2. Den andra kolumnen anger- "dรฅligt krav med nรฅgot problem"
  3. Den tredje kolumnen visar samma krav โ€omvandlat till ett bra kravโ€.
Krav Kvalitet Exempel pรฅ dรฅligt krav Exempel pรฅ bra krav
Atomic Studenter kommer att kunna anmรคla sig till grund- och forskarutbildningskurser Studenter kommer att kunna anmรคla sig till kurser pรฅ grundnivรฅ. Studenter kommer att kunna anmรคla sig till kurser pรฅ forskarnivรฅ.
Unikt identifierad 1- Studenter kommer att kunna anmรคla sig till kurser pรฅ grundnivรฅ. 1- Studenter kommer att kunna anmรคla sig till kurser pรฅ forskarnivรฅ. Kursregistrering. Studenter kommer att kunna registrera sig fรถr kurser pรฅ grundnivรฅ. Studenter kommer att kunna registrera sig fรถr kurser pรฅ forskarnivรฅ.
Komplett En professorsanvรคndare kommer att logga in i systemet genom att ange sitt anvรคndarnamn, lรถsenord och annan relevant information En professorsanvรคndare kommer att logga in i systemet genom att ange sitt anvรคndarnamn, lรถsenord och institutionskod
Konsekvent och entydigt En student kommer att ha antingen grundkurser eller forskarutbildningskurser men inte bรฅda. Vissa kurser kommer att vara รถppna fรถr bรฅde grund- och forskarutbildning En student kommer att ha antingen grund- eller efterexamen men inte bรฅda
Tractillgรคnglig Behรฅlla studentinformation mappad till BRD req.ID? Underhรฅll studentinformation-Mappad till BRD req ID 4.1
Prioriterade Registrerad student - Prioritet 1. Underhรฅll anvรคndarinformation - Prioritet 1. Registrera kurser - Prioritet 1. Visa rapportkort - Prioritet 1 Registrera student - Prioritet 1. Underhรฅll anvรคndarinformation - Prioritet 2. Registrera kurser - Prioritet 1. Visa rapportkort - Prioritet 3
Testbar Varje sida i systemet kommer att laddas inom en acceptabel tidsram Registrera studenter och registrera kurser sidorna i systemet kommer att laddas inom 5 sekunder

Lรฅt oss fรถrstรฅ vart och ett av dessa attribut mer i detalj, med bรถrjan med Atomic.

Atomic

Atomic

Varje krav ska vara atomรคrt, vilket innebรคr att det mรฅste vara pรฅ lรคgsta detaljnivรฅ och inte kan delas upp ytterligare i komponenter. Fรถljande exempel jรคmfรถr atomรคra och icke-atomรคra krav.

Fรถr att fortsรคtta med exemplet med utbildningssystemet: Hรคr รคr det dรฅliga kravet "Studenter kommer att kunna anmรคla sig till grundutbildning och forskarutbildning". Detta รคr ett dรฅligt krav eftersom det inte รคr atomรคrt โ€“ det blandar tvรฅ olika enheter, grundutbildning och forskarutbildning. Motsvarande bra krav delar upp det i tvรฅ krav. Det ena kravet tรคcker anmรคlan till grundutbildning och det andra tรคcker anmรคlan till forskarutbildning.

Unikt identifierad

Unikt identifierad

Nรคsta kvalitetsattribut รคr unik identifiering. I det dรฅliga exemplet delar tvรฅ separata krav samma ID#1. Om ett team refererar till ett krav med sitt ID blir det oklart vilket av de tvรฅ som avses. Det goda kravet grupperar om dem under Avsnitt 1 โ€” Kursregistrering, med delkrav 1.1 (registrering till grundutbildningskurser) och 1.2 (registrering till forskarutbildningskurser).

Komplett

Komplett

Varje krav ska vara komplett. Till exempel, hรคr sรคger det felaktiga kravet att en "professoranvรคndare loggar in i systemet genom att ange sitt anvรคndarnamn, lรถsenord och annan relevant information". "ร–vrig relevant information" รคr vagt. Ett komplett krav listar de exakta fรคlten, sรฅsom institutionskod, som professorn mรฅste ange.

Konsekvent och entydig

Konsekvent och entydig

Varje krav bรถr vara konsekvent och otvetydigt. I det dรฅliga exemplet anger ett krav "En student ska ha antingen grundutbildningskurser eller forskarutbildningskurser men inte bรฅda", medan ett annat anger "Vissa kurser kommer att vara รถppna fรถr bรฅde grundutbildnings- och forskarutbildningsstudenter".

Det fรถrsta kravet innebรคr att kurser รคr uppdelade i tvรฅ exklusiva kategorier, men det andra kravet motsรคger det genom att รถppna vissa kurser fรถr bรฅda grupperna.

Kravet om att vara bra lรถser konflikten genom att tydligt ange att varje kurs รคr markerad antingen som grundutbildning eller forskarutbildning, och en student kan bara registrera sig i kurser i en kategori.

Tractillgรคnglig

Tractillgรคnglig

Varje krav mรฅste vara tracmรถjlig eftersom krav finns pรฅ flera nivรฅer: affรคrs-, arkitektur- och designnivรฅer, samt system- och integrationsnivรฅer.

Nรคr du omvandlar ett affรคrskrav till arkitektur- och designkrav, eller arkitektur- och designkrav till system- och integrationskrav, tracFunktionaliteten mรฅste bevaras. Varje affรคrskrav bรถr mappas till ett eller flera arkitektur- och designkrav. I det dรฅliga exemplet "Underhรฅll studentinformation โ€“ mappad till BRD-krav-ID?" saknas krav-ID:t.

Det godkรคnda kravet registrerar samma pรฅstรฅende men mappas explicit till BRD-krav-ID 4.1. Varje krav mรฅste ha en tracfรถrmรฅga kartapingSystem- och integrationskrav bรถr ocksรฅ mappas till koden som implementerar dem och till de testfall som verifierar dem.

Traceffektiviteten lรถper dรคrfรถr frรฅn bรถrjan till slut genom hela projektet.

Prioriterade

Varje krav mรฅste prioriteras sรฅ att teamet vet vad som ska implementeras fรถrst och vad som kan vรคnta. I det dรฅliga exemplet รคr Registrera student, Underhรฅll anvรคndarinformation, Registrera kurser och Visa rapportkort alla instรคllda pรฅ prioritet 1. Allt kan inte ha prioritet 1, sรฅ kraven mรฅste rangordnas realistiskt. Det goda exemplet ger Registrera student och Registrera kurser hรถgsta prioritet 1, Underhรฅll anvรคndarinformation prioritet 2 och Visa rapportkort prioritet 3.

Testbar

Varje krav bรถr vara testbart. Det dรฅliga exemplet, โ€varje sida i systemet laddas inom en acceptabel tidsramโ€, รคr inte testbart av tvรฅ skรคl. Fรถr det fรถrsta kan โ€varje sidaโ€ betyda dussintals sidor, vilket tar bort testarbetet. Fรถr det andra รคr โ€acceptabel tidsramโ€ odefinierad โ€“ acceptabel fรถr vem, och mot vilket riktmรคrke? Det bra kravet รฅtgรคrdar bรฅda problemen genom att namnge de specifika sidorna (โ€registrera student och anmรคla kurserโ€) och sรคtta ett mรคtbart mรฅl pรฅ 5 sekunder.

Vanliga frรฅgor

AI-verktyg samlar intressentfeedback, flaggar tvetydigt sprรฅk och upptรคcker dubbletter eller saknade krav รถver stora baslinjer. Affรคrsanalytiker verifierar fortfarande varje fรถrslag mot insamlingsposten innan det ingรฅr i den godkรคnda kravuppsรคttningen.

GitHub Copilot och GPT utarbetar anvรคndarberรคttelser, acceptanskriterier och affรคrsregler frรฅn korta prompter. En affรคrsanalytiker granskar varje utdata mot kvalitetsattribut som atomรคr, testbar och tracmรถjlig innan det blir ett godkรคnt krav.

En kravspecifikation fรถr programvara รคr ett formellt dokument som listar funktionella krav, icke-funktionella krav, grรคnssnitt och begrรคnsningar fรถr systemet. IEEE 830 och ISO 29148 รคr de standarder som de flesta team fรถljer nรคr de skriver en kravspecifikation fรถr programvara.

Kravinsamling, eller kravutredning, samlar in rรฅa behov frรฅn intressenter. Kravanalys organiserar, fรถrfinar och kontrollerar sedan dessa behov mot de sju kvalitetsattributen sรฅ att leveransteamet fรฅr tydliga, testbara uttalanden.

Anvรคnd tekniker som MoSCoW (Must, Should, Could, Would), Kano-analys, viktad poรคngsรคttning eller kostnad fรถr fรถrsening. Kombinera affรคrsvรคrde med leveransanstrรคngning och risk, och kom sedan รถverens om ordningen med sponsorn och produktรคgaren innan utvecklingen pรฅbรถrjas.

A-krav TracEability Matrix kopplar varje krav till dess designelement, kodkomponent och testfall. Den ger framรฅtriktade, bakรฅtriktade och dubbelriktade vรคrden. trachรฅllbarhet sรฅ att ingenting missas, รถverbyggs eller skickas utan ett matchande test.

Tvetydig formulering, oprioriserade efterslรคpningar, saknas traceffektivitet, att blanda lรถsningsidรฉer med affรคrsbehov och att frysa omfattning utan รคndringskontroll รคr de misstag som orsakar mest omarbetning, schemalรคggningsfรถrseningar och produktionsfel.

Populรคra verktyg inkluderar Jama Connect, IBM Dร–RRAR, Modern Requirements fรถr Azure DevOps, Jira med Xray, Visure Requirements ALM och Blueprint. Team vรคljer en plattform baserat pรฅ regulatoriska behov, teamstorlek och djupet av tracfรถrmรฅga krรคvs.

Sammanfatta detta inlรคgg med: