Hvad er en funktionel specifikation?
En funktionel specifikation beskriver de grundlæggende funktioner i en softwareapplikation. Det er generelt udviklet som en del af kravanalysen i softwareudvikling. Det fungerer som en blå udskrift for programmererne til at udvikle kildekode og testkasser til applikationen.
Generelt er der mange forskellige spillere involveret i kravanalysen til udvikling af hver softwareapplikation. Disse spillere inkluderer forretningsfolk, der forventes at bruge softwaren, dataanalytikere, programmerere og andet teknisk personale. Forretningsfolkene forklarer de andre medlemmer af teamet nøjagtigt, hvad de forventer af software til at gøre, ud fra et forretningsperspektiv.
Forretningskrav slås sammen med de data, der skal indfanges, og bruges til at udvikle den måde, teamet ønsker, at hver af skærmene skal fungere. Al denne kravanalyse skal udføres for at kunne dokumentere den funktionelle specifikation. Når den funktionelle specifikation er groft dokumenteret, arbejder teamet med at finjustere den. Holdet gennemgår disse dokumenter og udfylder eventuelle huller i kravanalysen. Når kravanalysen er afsluttet, godkender teamet den funktionelle specifikation. Det godkendte specifikationsdokument bruges som en plan for softwareudvikling.
Kildekode og testtilfælde udvikles ved hjælp af den funktionelle specifikation. Teammedlemmer bruger den funktionelle specifikation til at udvikle de nødvendige testtilfælde for at bekræfte, at softwaren fungerer som specificeret. Antallet af testtilfælde, der bruges til at fejlsøge softwaren, varierer afhængigt af kompleksiteten af den udviklede software. Efterhånden som programmererne udvikler softwaren, udvikler en anden del af teamet testsagerne. Testprocessen for at godkende softwaren begynder, når programmererne rådgiver teamet om, at det er klar til at blive testet.
Den funktionelle specifikation specificerer ikke sådanne ting som det softwaresprog, der skal bruges af programmererne. De specifikationer, der findes i en funktionel specifikation, er begrænset til programmets sande funktioner. Specifikationsdokumentet forklarer, hvad der sker, når en programbruger klikker på en bestemt knap på skærmen, men ikke hvordan programmereren skal få den specifikke funktion til at ske.
Afhængig af kompleksiteten af den software, der skal udvikles, bruger nogle teams flere niveauer af funktionelle specifikationsdokumenter. Ledelsesgruppen deltager muligvis i specifikationen af funktioner på højt niveau, mens en gruppe senioranalytikere muligvis definerer mere detaljerede de specifikke funktioner, og et fælles team af forretningsanalytikere og programmerere kan definere hver skærm. Hvert outputdokument fra disse niveauer kan betragtes som en funktionel specifikation.