A functional specification describes an application from the outside, using nontechnical language to state what it will do without internal implementation details. It aligns clients and developers and can remain changeable until features freeze. section 3.8 section 3.10
A practical specification commonly includes:
- The application name, problem statement, objectives, and functional and nonfunctional requirements, stated with “must” or “shall.” section 3.8
- Use-case diagrams and descriptions that connect requirements to application functionality. section 3.10
- An optional external test plan describing black-box inputs or user actions and their expected results. section 3.8
Book Catalogue
A specification might define an application that stores and searches for books, state its objectives, describe user use cases, and specify observable test results without prescribing its classes or implementation. section 3.8

