This guideline defines the minimum content requirements for any Functional Requirements Document, but also allows for flexibility in response to project or systems variables (e.g., software size and complexity). It describes the software requirements in a top-down manner, which allows a range of people to review the document at their desired level of detail. It is not meant to be exhaustive, nor must every sub-section necessarily be described in detail.
Things to Do
Describe "what is". Refer to existing norms and standards when appropriate. The Functional Requirements document should give some meaning to the product.
Things to Avoid
Avoid telling "how to". You should make no reference to specific buttons, dialog boxes or other on-screen controls.
Product Development Team Roles
The table below describes the roles of the Product Development team
in broad functional terms. In practice some of these roles may be
combined because a single individual performs more than one role,
or two individuals share aspects of the same role. I have assigned
"ownership" of (i.e. responsibility for) sections
of this Functional Requirements Document to the roles which seem
appropriate. A more detailed description is available in the Project
Team Roles document.
| Product Manager | Defines "what" the product will contain |
| Client | Defines client needs and tasks to be performed |
| Market Specialist | Determines and maintains product/service perspective within defined market segment |
| Development Manager | Organizes, plans, controls and leads day-to-day activities of Development Team |
| Business Analyst | The project bridge between "what" the product contains and "how" it is developed |
| Interface Architect | Defines the "look and feel" of the product |
| Technical Architect |
Defines "how" the product will be designed technically |
| Table of Contents |
| Background |
| Overview |
|
Product Functions |
| Functional Requirements |
|
Processing Requirements |
| Appendix: Document Checklist |
|
Does the document conform with the
Guidelines? |
Introduction
This chapter provides an
overview of the structure of the Functional Requirements document itself,
the contents of the rest of the document, how it is organized and its
intended audience.
Ownership: Product Manager, Client, Market Specialist, Business Analyst
Background
This section defines the environmental conditions that have shaped the product. These may include:
Purpose and Scope
This section provides a general description of the product. This may include:
References
This section provides references to all other publications (books, technical manuals, standard documents) that are applicable to the Functional Requirements Document, including the sources from which the references may be obtained.
Overview
This chapter is absolutely
critical to the product development process, as it provides all Project
Team members with a common ground description and context for the product,
the environment, the business case, the critical issues and the major
players.
Ownership: Product Manager, Market Specialist, Business Analyst
Product Functions
This section provides an overview of the tasks that the product is to perform. This may include:
- Use Case descriptions
- Graphic representation of the processing functions (e.g.,data flow diagrams or other charts)
- Table of functions
Product Perspective
This section describes the relationship of the system being developed to other related system products or components, including a general description of the interfaces. This may include:
User Characteristics
This section describes the target audience (users) for whom the product is being developed, and how they will use it (i.e. End User, Manager, System Administrator, Installation personnel, Operations personnel, Support Desk personnel).
Describe:
User Interface
This section provides a general description of the type of user interface that is appropriate for the product.
General Constraints and Guidelines
This section describes the factors limiting the design of the product, such as:
This section may also define the criteria by which the product is to be rolled out in phased stages.
Assumptions, Dependencies and Risks
This section describes factors that affect the requirements stated in the Functional Requirements Document. These are not design constraints, but factors that would affect the requirements themselves (i.e. The dependency on a specific operating system or major software library).
This section shall also identify any technical risks associated with the development of new capabilities.
Terminology
This chapter defines the terms most commonly used in this document. The section is arranged in alphabetical order.
Ownership: Product Manager, Market Specialist, Client, Business Analyst
The Terminology chapter is not only a helpful reference; it also provides a more detailed definition of the topics described in the Overview chapter.
| Term | Definition |
| Term | Each term and its definition is arranged in this table. The terminology glossary may at some point be maintained in a central database. The terminology glossary is both a reference and a guide. |
| Chapter | This document is divided into numbered chapters that identify major informational areas. |
| Section | Each chapter may be divided into sub-levels or sections, which identify areas of greater informational specificity. |
Functional Requirements
This chapter contains a description of the detailed requirements that will directly affect the design of the software being developed. These include:
Depending on the type and complexity of the
system being developed:
Processing Requirements
This section contains detailed descriptions
of product processing requirements, as grouped within INPUT,
OUTPUT and PROCESSING descriptions. The Functional Requirements
author has the freedom to use a combination of text descriptions,
graphical representations (such as diagrams) and/or actual computer
screen images (from a system prototype) to describe input, output
and processing requirements.
Ownership: Development Manager,
Technical Architect, Client
Inputs
Processing
Outputs
Performance Requirements
This section contains a detailed description of product software and hardware performance requirements.Ownership: Technical Architect
Static Requirements (Capacity)
Dynamic Requirements
Design Constraints & Benchmarks
This section contains all product hardware, software and standards requirements that constrain the design of the software being developed.Standards Compliance
This section describes compatibility and conformance to established standards in terms of technical, operational and business-related issues.Ownership: Interface Architect, Technical Architect, Business Analyst
Hardware And Software Limitations
Ownership: Technical Architect
Technical Interface Requirements
This section contains a detailed definition of product hardware, and software interfaces.
Ownership: Technical Architect
Human Interface Requirements
The human interfaces described here are generic to all functions described in the Functional Requirements section. Each specific function description in the Functional Requirements section may specify additional human interface requirements. Reference to a product prototype may be included here in addition to the textual description of the user interface.
Ownership: Interface Architect, Business Analyst
GUI Design
Security
Ownership: Technical Architect
Development
Ownership: Interface Architect, Technical Architect
Product Support & Maintenance
Operations
Installation
Support Desk
Appendix: Document Checklist
Does the document conform with the Guidelines?
Is there an understanding of the problem to be solved?
Are the requirements complete?
Are all functional requirements completely
defined?
Explicitly, quantitatively, and testably defined in terms of inputs,
processing, outputs, data requirements, interfaces, accuracy, timing,
exception handling, constraints, and performance
Input/Output
Data
Interfaces
Performance
Error Processing
Environment
Constraints
Are the requirements correct?
Are the requirements consistent?
Are all requirements clear and unambiguous?
Are there adequate verification and acceptance criteria?
Are there sufficient quality requirements?