Functional specification: Difference between revisions

Content deleted Content added
m lc per MOS:EXPABBR and other common nouns
Tags: Visual edit Mobile edit Mobile web edit Advanced mobile edit
 
(4 intermediate revisions by one other user not shown)
Line 6:
A '''functional specification''' (also, ''functional spec'', ''specs'', ''functional specifications document (FSD)'', ''functional requirements specification'') in [[systems engineering]] and [[software development]] is a document that specifies the functions that a system or component must perform (often part of a requirements specification) (ISO/IEC/IEEE 24765-2010).<ref>[http://www.iso.org/iso/catalogue_detail.htm?csnumber=50518 ISO/IEC/IEEE 24765:2010 Systems and software engineering — Vocabulary]</ref>
 
The documentation typically describes what is needed by the system user as well as requested properties of inputs and outputs (e.g. of the [[software]] system). A functional specification is the more technical response to a matching requirements document, e.g. the [[Productproduct requirements document|Product Requirements Document]] "PRD"{{Citation needed|date=April 2016}}. Thus it picks up the results of the [[requirements analysis]] stage. On more complex systems multiple levels of functional specifications will typically nest to each other, e.g. on the system level, on the module level and on the level of technical details.
 
==Overview==
Line 20:
 
===Purpose===
There are many purposes for functional specifications. One of the primary purposes on team projects is to achieve some form of team consensus on what the program is to achieve before making the more time-consuming effort of writing [[source code]] and [[Test case (software)|test case]]s, followed by a period of [[debugging]]. Typically, such consensus is reached after one or more reviews by the [[Stakeholder (corporate)|stakeholder]]s on the project at hand after having negotiated a cost-effective way to achieve the requirements the software needs to fulfill.
 
# To let the [[Programmer|developers]] know what to build.
Line 27:
 
===Process===
In the ordered industrial software engineering life-cycle ([[waterfall model]]), functional specification describes ''what'' has to be implemented. The next, [[Systemssystems architecture]] document describes ''how'' the functions will be realized using a chosen software environment. In non industrial, prototypical systems development, functional specifications are typically written after or as part of requirements analysis.
 
When the team agrees that functional specification consensus is reached, the functional spec is typically declared "complete" or "signed off". After this, typically the software development and testing team write source code and test cases using the functional specification as the reference. While testing is performed, the behavior of the program is compared against the expected behavior as defined in the functional specification.
Line 37:
* [[Advanced Microcontroller Bus Architecture]]
* [[Extensible Firmware Interface]]
* [[Multiboot Specificationspecification]]
* [[Real-time specification for Java]]
* [[Single UNIX Specification]]
Line 46:
* [[Diagnostic design specification]]
* [[Product design specification]]
* [[Software Requirementsrequirements Specificationspecification]]
 
==See also==