Documente Academic
Documente Profesional
Documente Cultură
[Insert Title]
Functional Specifications
Version 1.0
[Insert Date]
General Template Information
While the Business Requirements represent the high level problems that are to be solved by the
proposed project, how they are to be solved is documented in the Functional Specifications.
Functional specifications included in this document should be clear, consistent, precise and
unambiguous. Avoid the use of text to describe non-text designs. Text uses language to describe
specs and can vary based on experience (i.e. very technical) and descriptions. It is open to the
interpretation and subjectivity of the reader and can easily lead to wrong expectations.
Specs should be put into graphical form wherever possible. Functional specs that are
complemented by visual support (e.g. diagrams such as object models, state-transition diagrams,
flow charts, screen shots) significantly reduce interpretation and provide immediate and
straightforward understanding. This greatly reduces the time required in walkthrough sessions
and leads to better negotiation and agreement prior to development.
Disclaimer
While there is currently no industry standard for documenting functional specifications, it is often
useful to examine them from various perspectives. Not all areas in this template may be needed
and it is at the discretion of the creator to decide which are used. Some areas to consider include:
• Functional requirements.
• High level design.
• System architecture.
• Screen mock-ups and layouts, report layouts, etc.
• Parameters, rules and constraints that control functions.
• Hardware and software interfaces.
• Error handling.
• Security considerations.
• Integration and configuration.
Comments in grey font are included throughout the template to assist with content and
direction, and should be removed from the created document.
Document Revision History
Every change to this document (subsequent to initial sign-off) must be recorded in the revision
history chart below. Modifications to this document will be documented in the following chart.
There are no exceptions. Note that the Project Sponsor and the Project Manager must sign off on
any changes to this document.
List all supporting documentation for this project. Be sure to include all relevant materials,
including Project Charter, Request for Proposals, Business Cases, Business Requirements,
Requirements Checklists, Features Lists, relevant marketing materials, etc. It will be used as a
reference point for others on the project to gain insight into the background of the project, as well
as to provide direction on what to research and where documents can be found when needed.
The functional specifications document communicates the software requirements and client
expectations to the technical community who will eventually specify and build the agreed
upon system or application.
For small scale projects that may not have a Business Requirements Document, the
functional requirements in this section describe the possible effects of a software system, in
other words, what the system must accomplish. The functional requirements section can be
fully text-based or can include a combination of text, diagrams or tables to explain the
functionality.
The objective is to present a non-technical view of the different components of the proposed
system or application, how it will work, how it will interact and considerations around how it
will be implemented.
Parameter Table
Describe the characteristics of each interface between the system or application and other
hardware or software protocols. Be sure to provide the purpose of the interface.
2.8 Platforms
Specify the platforms that will be supported. Indicate appropriate operating system versions.
Also, specify operational requirements for hosting and any variations in behavior of hosted
deployments.
2.9 Integration and Configuration
Specify any integration and software/hardware configuration requirements.
2.10 Expandability
Highlight any likely expansion requirements. Specify requirements on backward and forward
compatibility or upgrades of the system or application.