O specificație funcțională descrie funcțiile de bază ale unei aplicații software. În general, este dezvoltat ca parte a analizei cerințelor în dezvoltarea de software. Acesta servește ca model pentru programatori pentru a dezvolta codul sursă și cazuri de testare pentru aplicație.
În general, există mulți jucători diferiți implicați în analiza cerințelor pentru dezvoltarea fiecărei aplicații software. Acești jucători includ oamenii de afaceri care ar trebui să utilizeze software-ul, analiștii de date, programatorii și alt personal tehnic. Oamenii de afaceri explică celorlalți membri ai echipei exact ce se așteaptă de la software să facă, din perspectiva afacerii.
Cerințele de afaceri sunt îmbinate cu datele care trebuie capturate și sunt folosite pentru a dezvolta modul în care echipa și-ar dori să funcționeze fiecare dintre ecrane. Toate aceste analize de cerințe trebuie finalizate pentru a documenta specificația funcțională. Odată ce specificația funcțională este documentată aproximativ, echipa lucrează pentru a o ajusta. Echipa revizuiește aceste documente și completează eventualele lacune în analiza cerințelor. După ce analiza cerințelor este finalizată, echipa aprobă specificația funcțională. Documentul de specificații aprobat este folosit ca model pentru dezvoltarea software-ului.
Codul sursă și cazurile de testare sunt dezvoltate folosind specificația funcțională. Membrii echipei folosesc specificația funcțională pentru a dezvolta cazurile de testare necesare pentru a confirma că software-ul funcționează așa cum este specificat. Numărul de cazuri de testare utilizate pentru depanarea software-ului variază în funcție de complexitatea software-ului dezvoltat. Pe măsură ce programatorii dezvoltă software-ul, o altă parte a echipei dezvoltă cazurile de testare. Procesul de testare pentru aprobarea software-ului începe odată ce programatorii informează echipa că este gata să fie testat.
Specificația funcțională nu specifică lucruri precum limbajul software care urmează să fie utilizat de programatori. Specificațiile găsite într-o specificație funcțională sunt limitate la adevăratele funcții ale programului. Documentul cu specificații explică ce se întâmplă atunci când un utilizator de program face clic pe un anumit buton de pe ecran, dar nu și modul în care programatorul va face să apară funcția specifică.
În funcție de complexitatea software-ului care urmează să fie dezvoltat, unele echipe folosesc mai multe niveluri de documente cu specificații funcționale. Echipa de management poate participa la specificarea funcțiilor de nivel înalt, în timp ce un grup de analiști seniori ar putea defini mai detaliat funcțiile specifice, iar o echipă comună de analiști de afaceri și programatori poate defini fiecare ecran. Fiecare dintre documentele de ieșire de la aceste niveluri poate fi considerat o specificație funcțională.