Functional specification: Difference between revisions

Content deleted Content added
Overview: strange and unusual statement being unsourced for a long time
Yobot (talk | contribs)
m WP:CHECKWIKI error fixes using AWB (12004)
Line 1:
{{Refimprove|date=October 2008}}
[[Image:Specification and Levels of Development.jpg|thumb|360px|Systems engineering model of Specification and Levels of Development. During system development a series of specifications are generated to describe the system at different levels of detail. These program unique specifications form the core of the configuration baselines. As shown here, in addition to referring to different levels within the system hierarchy, these baselines are defined at different phases of the design process.<ref name="SEF01"> [http://www.dau.mil/publications/publicationsDocs/SEFGuide%2001-01.pdf ''Systems Engineering Fundamentals.''] Defense Acquisition University Press, 2001</ref>
 
Note: There is one minor (and ironic) typo in the image above. SI&T is System Integration and Test not System Integration and TEXT. ]]
 
{{software development process}}
A '''functional specification''' (also, ''functional spec'', ''specs'', ''functional specifications document (FSD)'', ''functional requirements specification'', or ''Program 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 [[Product requirements document|Product Requirement 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.
Line 19:
 
== Functional specification topics ==
 
=== 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]]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.
Line 39 ⟶ 40:
* [[Multiboot Specification]]
* [[Real-time specification for Java]]
* [[Single UNIX Specification]]
 
== Types of software development specifications ==