Vad är en funktionell specifikation?
En funktionell specifikation beskriver de grundläggande funktionerna i en programapplikation. Det är generellt utvecklat som en del av kravanalysen i mjukvaruutveckling. Det fungerar som ett blått tryck för programmerarna att utveckla källkod och testfall för applikationen.
I allmänhet är det många olika aktörer som är involverade i kravanalysen för att utveckla varje programvara. Dessa spelare inkluderar affärsmän som förväntas använda mjukvaran, dataanalytiker, programmerare och annan teknisk personal. Affärsmän förklarar de andra medlemmarna i teamet exakt vad de förväntar sig av programvara att göra, ur ett affärsperspektiv.
Affärskrav slås samman med de data som måste fångas in och används för att utveckla hur teamet vill att alla skärmar ska fungera. All denna kravanalys måste slutföras för att dokumentera funktionsspecifikationen. När den funktionella specifikationen är grovt dokumenterad arbetar teamet för att finjustera den. Teamet granskar dessa dokument och fyller i eventuella luckor i kravanalysen. När kravanalysen är klar godkänner teamet den funktionella specifikationen. Det godkända specifikationsdokumentet används som en plan för mjukvaruutveckling.
Källkod och testfall utvecklas med den funktionella specifikationen. Teammedlemmar använder den funktionella specifikationen för att utveckla de testfall som behövs för att bekräfta att programvaran fungerar som specificerad. Antalet testfall som används för att felsöka programvaran varierar beroende på komplexiteten hos den utvecklade programvaran. När programmerarna utvecklar programvaran utvecklar en annan del av teamet testfallen. Testprocessen för att godkänna programvaran börjar när programmerarna informerar teamet om att det är redo att testas.
Funktionsspecifikationen specificerar inte sådant som mjukvaruspråket som ska användas av programmerarna. Specifikationerna som finns i en funktionell specifikation är begränsade till programmets verkliga funktioner. Specifikationsdokumentet förklarar vad som händer när en programanvändare klickar på en specifik knapp på skärmen men inte hur programmeraren kommer att få den specifika funktionen att ske.
Beroende på komplexiteten i programvaran som ska utvecklas, använder vissa team flera nivåer av funktionsspecifikationsdokument. Ledningsteamet kan delta i specifikationen av funktioner på hög nivå medan en grupp senioranalytiker kan definiera mer specifika funktioner och ett gemensamt team av affärsanalytiker och programmerare kan definiera varje skärm. Varje utgångsdokument från dessa nivåer kan betraktas som en funktionell specifikation.