Skip to Content

Requirements Specification Outline

Note this outline is based on the outline in Software Engineering, 4th Edition, by Pfleeger and Atlee, ISBN 9780136096726, weblink.

Requirements Specification for [Project/Product Name]

1. Introduction

1.1 Purpose of Product

A one-paragraph description of your product’s purpose.

1.2 Scope of Product

A short description of your product’s scope (what it includes and what it does not include). Part of your problem statement might be useful here, but focus on the scope of the product.

1.3 Acronyms, Abbreviations, Definitions

Any important terms that are required to understand your project documents.

1.4 References

Any external references needed to understand your project documents. Use URL links if possible.

2. General Description of Product

This section contains a longer but not exhaustive description of your product. Perhaps a page long.

2.1 Context of Product

Context or environment that your product will be in.

2.2 Domain Model with Description

Display and describe your domain model. A domain model is a UML class diagram where the classes are the problem domain entities (concepts, objects) that are important to your problem. A domain model is not a design diagram of your system! Connecting associations are extremely important, along with cardinalities and naming where needed. Class attributes are important, but class operations are typically not in a domain model.

2.3 Product Functions (general)

Basic overview of the capabilities of your product. This is not your list of functional requirements, but an overview. Part of your problem statement might be good here.

2.4 User Characteristics and Expectations

Describe your users and their abilities.

2.5 Constraints

Describe any constraints on your system.

2.6 Assumptions and Dependencies

Does your system depend on external software packages? System assumptions? If so, describe them.

3. Functional Requirements

In a standard requirements document, this would be a LONG list of functional requirements. Probably half to two-thirds of the whole document would be this section. In my courses I have you develop user stories for your functional requirements, and so you should put a link to your user story page here. When functional requirements are listed here, they should each have a unique identifier, such as F.3.2.4 (which would be the 4th sub-requirement under the 2nd top requirement in this section (section 3)). The F indicates “functional”.

4. System and Non-functional Requirements

4.1 External Interface Requirements (User,Hardware,Software,Communications)

Describe what kinds of interfaces your product has, and what they do. Then list specific requirements using item numbers as NF.4.1.X.

4.2 Performance Requirements

Describe your product’s performance needs. Then list specific requirements using item numbers as NF.4.2.X.

4.3 Design Constraints

Describe external requirements that will constrain your design choices. Then list specific requirements using item numbers as NF.4.3.X.

4.4 Quality Requirements

What quality expectations do your users have? Is your system life-critical? Describe such issues, then list specific requirements using item numbers as NF.4.4.X.

4.5 Other Requirements

Anything else you need to say. Use item numbers NF.4.5.X.

5. Appendices

Include external documents that describe domain or constraints or any necessary information. Use URL links if possible.