Vad är ett funktionskrav inom mjukvaruteknik?

⚡ Smart sammanfattning

Funktionella krav beskriver varje tjänst ett programvarusystem måste erbjuda och fångar indata, beteende och utdata så att utvecklare, testare och affärsintressenter delar en enda, verifierbar definition av vad produkten faktiskt måste göra.

  • 📘 Definition: Ett funktionskrav, även kallat en funktionell specifikation, anger vad systemet måste göra – indata, beteende och utdata, beskrivet ur användarens eller affärsperspektivet.
  • 📄 Dokumentets omfattning: Ett funktionskravsdokument omfattar skärmoperationer, datahanteringslogik, rapporter, arbetsflöden, behörigheter och regelefterlevnad.
  • 🗂️ Vanliga typer: Transaktionshantering, affärsregler, rapportering, administrativa funktioner, behörighetsnivåer, revision trackung, externa gränssnitt och juridiska krav.
  • ???? Exempel: Inloggningsvalidering, försäljningsregistrering, rollbaserad intäktsvisning, integration med bank-API och efterlevnad av tillgänglighetskrav ingår alla i funktionella krav.
  • ???? Icke-funktionell kontrast: Funktionella krav beskriver vad ett system gör; icke-funktionella krav beskriver hur väl det gör det – prestanda, säkerhet och användbarhet.
  • Bästa metoder: Håll kraven detaljerade, testbara och mappade till ett affärsmål, och få fram dem genom intervjuer och workshops.

Funktionskrav inom programvaruutveckling

Vad är ett funktionskrav?

A Funktionskrav (FR) är en beskrivning av den tjänst som programvaran måste erbjuda. Den beskriver ett programvarusystem eller dess komponent. En funktion definieras av indata, beteende och utdata. Det kan vara en beräkning, datamanipulation, affärsprocess eller användarinteraktion som definierar vad systemet måste göra. Funktionella krav inom programvaruteknik kallas också Funktionell specifikation.

Ett funktionskrav sträcker sig från ett behov på övergripande intressentnivå till en detaljerad matematisk specifikation. Funktionell programvara Kraven fångar systemets avsedda beteende.

Vad som ska inkluderas i ett funktionellt kravdokument

Här är vad ett funktionskravdokument bör omfatta:

Exempel på funktionskrav

Exempel på funktionskrav

Ett funktionellt kravdokument innehåller vanligtvis:

  • Detaljer om operationer som utförs på varje skärm
  • Datahanteringslogik som systemet måste tillämpa
  • Descriptav systemrapporter och andra utdata
  • Fullständig information om arbetsflöden som systemet utför
  • Vem som har behörighet att skapa, ändra eller radera data i systemet
  • Hur systemet uppfyller tillämpliga regel- och efterlevnadskrav

Fördelar med funktionella krav

De främsta fördelarna med ett välskrivet funktionskravdokument är:

  • Verifierar att applikationen levererar alla funktioner som angavs
  • Definierar systemets och dess delsystems funktionalitet på ett ställe
  • I kombination med kravanalys hjälper funktionella krav till att identifiera saknade behov och förtydliga förväntat systembeteende.
  • Fel som upptäcks i kravstadiet är billigast att åtgärda
  • Stödjer användarnas mål, uppgifter och aktiviteter

Typer av funktionskrav

Vanliga kategorier av funktionella krav inkluderar:

  • Transaktionshantering
  • Affärsregler
  • Certifieringskrav
  • Rapporteringskrav
  • Administrativa funktioner
  • Auktoriseringsnivåer
  • Revision Tracking
  • Externa gränssnitt
  • Historisk datahantering
  • Lagliga och regulatoriska krav

Exempel på funktionskrav

Nedan följer praktiska exempel på funktionella krav:

  • Programvaran ska automatiskt validera kunder mot ABC Contact Management System.
  • Försäljningssystemet ska tillåta användare att registrera kundförsäljning.
  • Bakgrundsfärgen för alla fönster i applikationen ska vara blå med det hexadecimala RGB-värdet 0x0000FF.
  • Endast anställda på chefsnivå har rätt att se intäktsdata.
  • Programvarusystemet ska integreras med bankens API.
  • Programvarusystemet ska uppfylla Avsnitt 508 tillgänglighetskrav.

Funktionella kontra icke-funktionella krav

Här är de viktigaste skillnaderna mellan funktionella och icke-funktionella krav i Mjukvaruutveckling:

Driftparametrar Funktionskrav Icke-funktionella krav
Vad det är Verb attribut
Krav Det är obligatoriskt Det är icke-obligatoriskt
Typ av fångst Det fångas i användningsfall. Det fångas som ett kvalitetsattribut.
Slutresultat Produktegenskap Produktegenskaper
Fångande Lätt att fånga Svårt att fånga
Mål Hjälper dig att verifiera programvarans funktionalitet. Hjälper dig att verifiera programvarans prestanda.
Fokusområde Fokusera på användarens krav Koncentrerar sig på användarens förväntningar.
Dokumentation Beskriv vad produkten gör Beskriver hur produkten fungerar
Typ av testning Funktionstestning som System, Integration, End to End, API-testningEtc. Icke-funktionella tester som prestanda, stress, användbarhet, SäkerhetstestEtc.
Testutförande Testkörning utförs före icke-funktionell testning. Efter funktionstestet
produkt~~POS=TRUNC Produktegenskaper Produktegenskaper

Bästa praxis för att skriva funktionella krav

De viktigaste bästa metoderna för att skriva ett funktionellt kravdokument är:

  • Kombinera inte två krav till ett; håll varje krav detaljerat.
  • Gör alla krav så fullständiga och korrekta som möjligt.
  • Skriv ut alla tekniska krav i dokumentet.
  • Kartlägg varje krav mot de mål och principer som driver framgångsrik programvaruleverans.
  • Ta fram krav genom intervjuer, workshops och informella samtal.
  • Dokumentera varje känd, verifierad begränsning som väsentligt påverkar ett krav.
  • Registrera varje antagande i dokumentet.

Vanliga misstag när man skriver funktionella krav

Vanliga misstag som görs när man skapar ett funktionellt kravdokument inkluderar:

  • Lägger till oberättigad extra information som förvirrar utvecklare
  • Utelämnar detaljerna som utvecklarna behöver bygga funktionen.
  • Blandningsregler, exempel, scoping uttalanden eller mål i själva kravet.
  • Utelämnar information som är avgörande för att ange kravet fullständigt och korrekt.
  • Att försvara ett befintligt krav när en ändringsförfrågan kommer in, istället för att hitta rätt svar.
  • Skrivkrav som inte är kopplade till något mål eller någon princip.

Vanliga frågor

AI-verktyg klustrar intervjuanteckningar, genererar utkast till användarberättelser, flaggar tvetydigt språk och upptäcker dubbletter i stora kravuppsättningar. Affärsanalytiker validerar fortfarande varje förslag mot verkliga intressenters behov innan det går in i den godkända baslinjen.

Copilot och GPT producerar utkast till användarberättelser, acceptanskriterier och ska-uttryck från korta prompter. En affärsanalytiker redigerar varje utdata för testbarhet och bekräftar överensstämmelse med affärsmålen före formell granskning.

Ett affärskrav anger varför ett projekt existerar, såsom intäktstillväxt eller efterlevnad. Ett funktionellt krav anger vad systemet måste göra för att leverera det resultatet, som att validera en betalning eller generera en rapport.

Använd ett tydligt subjekt, ordet ska och en testbar handling per påstående. Undvik tvetydiga ord som "fasta" och täck över ett beteende så att kravet kan testas med en enda godkänd- eller underkändkontroll.

EARS, Easy Approach to Requirements Syntax, tillhandahåller fem mallar: ubiquitär, händelsedriven, tillståndsdriven, valfri funktion och oönskat beteende. Var och en tvingar fram en testbar struktur, till exempel när TRIGGER (utlöser) ska systemet SVARA.

En kravspecifikation för programvara är det huvuddokument som beskriver vad ett system måste göra. Funktionella krav utgör den största delen, tillsammans med gränssnitt, icke-funktionella krav, användningsfall och begränsningar.

Funktionella krav styr testfall inom system-, integrations-, end-to-end-, API- och användaracceptanstestning. Varje krav kopplas till minst ett testfall, och kraven TracEability Matrix bekräftar täckning före publicering.

Agila team uttrycker funktionella krav som användarberättelser med formatet "Som en roll vill jag ha en förmåga, så att värde..." Acceptanskriterier kopplade till berättelsen förvandlar kravet till en testbar definition av "klart".

Sammanfatta detta inlägg med: