Functional Specification (FS)
Definition - What does Functional Specification (FS) mean?
A functional specification (FS) is a formal document that details all features and specifications of a certain software product. During the requirements phase of the software development process, a functional specification is one of the key documents created by a manager or lead developer. Hence, the functional specification should contain enough detail for the developers to begin the design of the project and thereafter to begin coding.
A functional specification is also known as a functional design specification.
Techopedia explains Functional Specification (FS)
The method of preparing specifications before the product is known as “writing the manual first” and serves as an outline of the finished program. The functional specification lists user task descriptions, product comparisons, any external interfaces and all compatible hardware, software, framework versions and operating systems.
The scope of the functional specification should be limited to the following:
- Should correctly define all of the functions performed by the software and all of the constraints on the execution of those functions. A software constraint may exist because of the nature of the task to be solved or because of a special characteristic of the project.
- Should not describe any design or implementation details that are not apparent to the user of the software. Internal design or implementation details should be described in the design stage of the project.
There are a number of other plans and documents that reference the functional specification. Some of the key documents that are guided by functional specification are:
- Design documents developed by the development team
- Test plan/test cases, for use by Qualiy Assurance team
- End-User Documentation
The functional specification will typically need to evolve as the development of the software product progresses. It may be impossible to specify some details at the time the project is initiated. For example, it may be impossible to define all of the screen formats for an interactive program during the requirements phase.