Hva er et funksjonskrav i programvareteknikk?

⚡ Smart oppsummering

Funksjonelle krav beskriver alle tjenester et programvaresystem må tilby, og fanger opp input, atferd og output slik at utviklere, testere og interessenter deler en enkelt, verifiserbar definisjon av hva produktet faktisk må gjøre.

  • 📘 Definisjon: Et funksjonelt krav, også kalt en funksjonell spesifikasjon, angir hva systemet må gjøre – inndata, oppførsel og utdata, beskrevet fra bruker- eller forretningsperspektivet.
  • 📄 Dokumentomfang: Et dokument med funksjonelle krav dekker skjermoperasjoner, datahåndteringslogikk, rapporter, arbeidsflyter, tillatelser og samsvar med forskrifter.
  • 🗂️ Vanlige typer: Transaksjonshåndtering, forretningsregler, rapportering, administrative funksjoner, autorisasjonsnivåer, revisjon trackonge, eksterne grensesnitt og juridiske krav.
  • ???? Eksempler: Påloggingsvalidering, salgsregistrering, rollebasert inntektsvisning, integrering av bank-API og samsvar med tilgjengelighetsregler ligger alle innenfor funksjonelle krav.
  • 🆚 Ikke-funksjonell kontrast: Funksjonelle krav beskriver hva et system gjør, mens ikke-funksjonelle krav beskriver hvor godt det gjør det – ytelse, sikkerhet og brukervennlighet.
  • Beste praksis: Hold kravene detaljerte, testbare og kartlagt mot et forretningsmål, og få dem frem gjennom intervjuer og workshops.

Funksjonskrav i programvareutvikling

Hva er et funksjonskrav?

A Funksjonskrav (FR) er en beskrivelse av tjenesten som programvaren må tilby. Den beskriver et programvaresystem eller dets komponent. En funksjon er definert av input, atferd og output. Det kan være en beregning, datamanipulasjon, forretningsprosess eller brukerinteraksjon som definerer hva systemet må gjøre. Funksjonelle krav i programvareutvikling kalles også Funksjonell spesifikasjon.

Et funksjonelt krav spenner fra et behov fra en interessent på høyt nivå til en detaljert matematisk spesifikasjon. Funksjonell programvare Kravene fanger opp systemets tiltenkte oppførsel.

Hva som skal inkluderes i et dokument for funksjonelle krav

Her er hva et funksjonskravdokument bør dekke:

Eksempel på funksjonskrav

Eksempel på funksjonskrav

Et dokument for funksjonelle krav inneholder vanligvis:

  • Detaljer om operasjoner utført på hver skjerm
  • Datahåndteringslogikk som systemet må bruke
  • Descriptioner av systemrapporter og andre utganger
  • Fullstendig informasjon om arbeidsflytene systemet utfører
  • Hvem har tillatelse til å opprette, endre eller slette data i systemet
  • Hvordan systemet oppfyller gjeldende regulatoriske og samsvarskrav

Fordeler med funksjonelle krav

De viktigste fordelene med et godt skrevet funksjonskravdokument er:

  • Verifiserer at applikasjonen leverer alle funksjoner som ble spesifisert
  • Definerer funksjonaliteten til systemet og dets delsystemer på ett sted
  • Kombinert med kravanalyse bidrar funksjonelle krav til å identifisere manglende behov og tydeliggjøre forventet systematferd
  • Feil som oppdages i kravfasen er de billigste å fikse
  • Støtter brukerens mål, oppgaver og aktiviteter

Typer funksjonskrav

Vanlige kategorier av funksjonelle krav inkluderer:

  • Transaksjonshåndtering
  • Forretningsregler
  • Sertifiseringskrav
  • Rapporterer krav
  • Administrative funksjoner
  • Autorisasjonsnivåer
  • Audit Tracking
  • Eksterne grensesnitt
  • Historisk datahåndtering
  • Juridiske og regulatoriske krav

Eksempler på funksjonskrav

Nedenfor er praktiske eksempler på funksjonelle krav:

  • Programvaren skal automatisk validere kunder mot ABC Contact Management System.
  • Salgssystemet skal tillate brukere å registrere kunders salg.
  • Bakgrunnsfargen for alle vinduer i applikasjonen skal være blå med en heksadesimal RGB-verdi på 0x0000FF.
  • Kun ansatte på ledernivå skal ha rett til å se inntektsdata.
  • Programvaresystemet skal integreres med bankens API.
  • Programvaresystemet skal oppfylle § 508 tilgjengelighetskrav.

Funksjonelle vs. ikke-funksjonelle krav

Her er de viktigste forskjellene mellom funksjonelle og ikke-funksjonelle krav i Engineering programvare:

Parametre Funksjonskrav Ikke-funksjonelle krav
Hva det er Verb attributter
Krav Det er obligatorisk Det er ikke obligatorisk
Fangetype Det fanges opp i brukstilfelle. Det fanges opp som et kvalitetsattributt.
Sluttresultat Produktfunksjon Produktegenskaper
fange Lett å fange Vanskelig å fange
Målet Hjelper deg å verifisere funksjonaliteten til programvaren. Hjelper deg med å verifisere ytelsen til programvaren.
Fokusområde Fokus på brukerkrav Konsentrerer seg om brukerens forventning.
Teknisk dokumentasjon Beskriv hva produktet gjør Beskriver hvordan produktet fungerer
Type testing Funksjonell testing som system, integrasjon, ende til ende, API-testingOsv Ikke-funksjonell testing som ytelse, stress, brukervennlighet, SikkerhetstestingOsv
Testutførelse Testutførelse gjøres før ikke-funksjonell testing. Etter funksjonstestingen
produkt info Produktegenskaper Produktegenskaper

Beste praksis for å skrive funksjonelle krav

De viktigste beste fremgangsmåtene for å skrive et funksjonelt kravdokument er:

  • Ikke kombiner to krav til ett; hold hvert krav detaljert.
  • Gjør alle krav så fullstendige og nøyaktige som mulig.
  • Skriv ut alle tekniske krav i dokumentet.
  • Kartlegg alle krav til målene og prinsippene som driver vellykket programvarelevering.
  • Innhent behov gjennom intervjuer, workshops og uformelle samtaler.
  • Dokumenter alle kjente, verifiserte begrensninger som vesentlig påvirker et krav.
  • Registrer alle antagelser i dokumentet.

Vanlige feil når man skriver funksjonelle krav

Vanlige feil som gjøres når man lager et funksjonelt kravdokument inkluderer:

  • Legge til uberettiget ekstra informasjon som forvirrer utviklere
  • Utelat detaljene utviklerne må bygge funksjonen.
  • Blandingsregler, eksempler, scoping utsagn eller mål i selve kravet.
  • Å utelate informasjon som er viktig for å formulere kravet fullstendig og nøyaktig.
  • Å forsvare et eksisterende krav når en endringsforespørsel kommer inn, i stedet for å finne det riktige svaret.
  • Skrivekrav som ikke er knyttet til noe mål eller prinsipp.

Spørsmål og svar

AI-verktøy grupperer intervjunotater, genererer utkast til brukerhistorier, flagger tvetydig språk og oppdager duplikater på tvers av store kravsett. Forretningsanalytikere validerer fortsatt alle forslag mot reelle interessentenes behov før det går inn i den godkjente grunnlinjen.

Copilot og GPT produserer utkast til brukerhistorier, akseptkriterier og «shal»-utsagn fra korte ledetekster. En forretningsanalytiker redigerer hver utdata for testbarhet og bekrefter samsvar med forretningsmål før formell gjennomgang.

Et forretningskrav angir hvorfor et prosjekt eksisterer, for eksempel omsetningsvekst eller samsvar med regelverk. Et funksjonskrav angir hva systemet må gjøre for å levere det resultatet, som å validere en betaling eller generere en rapport.

Bruk et tydelig subjekt, ordet «skal» og én testbar handling per utsagn. Unngå tvetydige ord som «fast», og dekk til én atferd slik at kravet kan testes med en enkelt bestått- eller ikke-bestått-sjekk.

EARS, Easy Approach to Requirements Syntax, tilbyr fem maler: allestedsnærværende, hendelsesdrevet, tilstandsdrevet, valgfri funksjon og uønsket oppførsel. Hver av dem tvinger frem en testbar struktur, for eksempel når systemet UTLØSER, skal det RESPONSE.

En kravspesifikasjon for programvare er hoveddokumentet som beskriver hva et system må gjøre. Funksjonelle krav utgjør den største delen, sammen med grensesnitt, ikke-funksjonelle krav, brukstilfeller og begrensninger.

Funksjonelle krav driver testtilfeller i system-, integrasjons-, ende-til-ende-, API- og brukeraksepttesting. Hvert krav er knyttet til minst ett testtilfelle, og kravene TracEability Matrix bekrefter dekning før utgivelse.

Agile team uttrykker funksjonelle krav som brukerhistorier ved å bruke formatet. Som en rolle ønsker jeg en evne, slik at verdien. Akseptkriterier knyttet til historien gjør kravet til en testbar definisjon av ferdig.

Oppsummer dette innlegget med: