Functional specification
A functional specification is a document describing a system’s externally observable purpose, capabilities, required behavior, requirements, and use cases without prescribing implementation details.
Software Design for Python Programmers
A functional specification is an external document that states an application's intended capabilities, requirements, objectives, and use cases without internal implementation details.
- How it is used
- Defines the application clients approve before developers design and build it.
- How deep it goes
- Lists requirements and use cases, optionally adding black-box tests, but defers internal implementation details to design.
- Examples
- Uses a Book Catalogue scenario and external black-box tests with specified inputs, actions, and expected results.
- What you can do after
- Evaluate whether clients and developers agree on the application’s intended behavior before implementation proceeds.
Read how Software Design for Python Programmers explains functional specification →
Object-Oriented Software Design in C++
A document that describes an application's externally observable purpose, behavior, and requirements without internal implementation details.
- How it is used
- Defines the application clients approve and developers verify through testing before implementation details determine the design.
- How deep it goes
- Specifies contents, language, use cases, and optional black-box tests while deferring internal implementation details to the design specification.
- Examples
- Uses a Book Catalogue example involving book storage and search, plus external black-box test inputs and expected results.
- What you can do after
- Evaluate whether an application addresses client needs and verify its observable functional and nonfunctional behavior.
Read how Object-Oriented Software Design in C++ explains functional specification →
Related concepts
- specificationcontrasts with · A specification is a formal or informal description of the required or intended behavior, properties, interfaces, or constraints of a system or component.
- requirementsproduced by · A requirement is a stated need, capability, quality, condition, or constraint that a system, product, solution, or project is expected to satisfy.
- help fileequivalent to · A PowerShell help file is documentation describing a command, feature, or concept, including its syntax, parameters, behavior, or usage.
- use casehas part · A use case is a description of a situation or interaction in which a system, method, or capability is applied to achieve or support a goal or outcome.
- functional requirementhas part · A functional requirement specifies a behavior or capability that a system must provide or enable.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

