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: