Hva er en funksjonell spesifikasjon?
En funksjonell spesifikasjon beskriver de grunnleggende funksjonene til en programvare. Det er generelt utviklet som en del av kravanalysen i programvareutvikling. Det fungerer som en blå skrift for programmererne å utvikle kildekode og testtilfeller for applikasjonen.
Generelt er det mange forskjellige aktører involvert i kravanalysen for å utvikle hver programvare. Disse aktørene inkluderer forretningsfolk som forventes å bruke programvaren, dataanalytikere, programmerere og annet teknisk personell. Forretningsfolket forklarer de andre medlemmene av teamet nøyaktig hva de forventer av programvare å gjøre, fra et forretningsperspektiv.
Forretningskrav slås sammen med dataene som må fanges opp og brukes til å utvikle måten teamet ønsker at hver av skjermene skal fungere. Alt denne kravanalysen må fullføres for å kunne dokumentere funksjonsspesifikasjonen. Når den funksjonelle spesifikasjonen er grovt dokumentert, jobber teamet med å finjustere den. Teamet gjennomgår disse dokumentene og fyller ut eventuelle mangler i kravanalysen. Etter at kravanalysen er fullført, godkjenner teamet den funksjonelle spesifikasjonen. Det godkjente spesifikasjonsdokumentet brukes som en plan for programvareutvikling.
Kildekode og testtilfeller utvikles ved å bruke den funksjonelle spesifikasjonen. Teammedlemmer bruker den funksjonelle spesifikasjonen for å utvikle de testsakene som er nødvendige for å bekrefte at programvaren fungerer som spesifisert. Antall testsaker som brukes til å feilsøke programvaren, varierer avhengig av kompleksiteten til programvaren som er utviklet. Når programmererne utvikler programvaren, utvikler en annen del av teamet testsakene. Testprosessen for å godkjenne programvaren begynner når programmererne råder teamet om at den er klar til å testes.
Den funksjonelle spesifikasjonen spesifiserer ikke ting som programvarespråket som skal brukes av programmererne. Spesifikasjonene som finnes i en funksjonell spesifikasjon er begrenset til de sanne funksjonene til programmet. Spesifikasjonsdokumentet forklarer hva som skjer når en programbruker klikker på en spesifikk knapp på skjermen, men ikke hvordan programmereren skal få den spesifikke funksjonen til å skje.
Avhengig av kompleksiteten til programvaren som skal utvikles, bruker noen team flere nivåer av funksjonelle spesifikasjonsdokumenter. Ledergruppen kan delta i spesifikasjonen av funksjoner på høyt nivå mens en gruppe senioranalytikere kanskje definerer de spesifikke funksjonene i større detalj, og et felles team av forretningsanalytikere og programmerere kan definere hver skjerm. Hvert av utdokumentene fra disse nivåene kan betraktes som en funksjonell spesifikasjon.