Functional Specification for Project Name

Client: Acme Inc.
Developer: CyberSystems.com
Author: Ted Smith

Introduction

The introduction should give an overview of the system for which this functional specification is being written.  This summary may include as little or as much detail as necessary, but should describe the purpose, scope, and objectives of the system while also providing background and history if appropriate.

Business Context

This section should include a glossary of domain-specific terms. For example:

Account Holder: a person or organization that creates one or more accounts. Only the account holder is authorized to deposit or withdraw money from these accounts. Only the account holder is authorized to cloise these accounts.

This section may also include descriptions of business procedures, for example, the procedure used by the account holder to create an account.

A more extensive UML model of the business context (using class and activity diagrams) can be included in an appendix, but keep in mind that the functional specification needs to be understandable to stakeholders who may not know UML.

Functional Requirements

This section includes the use case diagrams and use case elaborations.

The format of a typical use case elaboration might look like this:

UC1: name
Actors:
Description:
one or two sentences
Priority: high, medium, or low
Risk:
high, medium, or low
Scenarios:
   Main Scenario:
   Alternate Scenario 1:
   Alternate Scenario 2:

   etc.

Supplementary Requirements

This section contains any additional constraints on the use cases.

For example:

Rule 1: An account holder must be at least 18 years old.

Rule 2: An account holder must be a US citizen.

Rule 3: An account holder must have a valid Social Security number.

Non-Functional Requirements

Usability

Level of user expertise assumed.

User interface standards used.

Documentation provided.

Reliability

Safety and security requirements.

Availability, robustness, and reliability of the system.

Exception handling

Mean time between failures

Error tolerance

Data loss tolerance

Performance

number of concurrent users supported

response time

number of transactions per second

Supportability

How will system be extended?

Who maintains the system?

Implementation

Platform?

Interfaces

Interfaces to existing systems.

Protocols used.

Operation

Who manages the running system?

Packaging

Who installs the system?

How many installations are there?

Legal

Licensing?

Liability issues?

Licensing fees or liabilities incurred from using third-party components or algorithms?

Revision History

Revision

Revised by

Date

1.0

Smith

7/30/2009

1.1

Smith

8/8/2009

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Appendices