Software Requirements Specification Document Template

This document contains a template structure for a software requirements specification (SRS) document. The easiest way to use this template is to simply make a copy of this file and edit it, replacing the contents of each section with the correct material. For more information on how to obtain the contents, consult the Requirements Elicitation Process Guide which is available in the ICS SE Journal, Volume 4.


Document Title

Author(s)
Affiliation
Address
Date
Document Version Control Information

1. Introduction

2. General Description

3. Functional Requirements

This section lists the functional requirements in ranked order. Functional requirements describes the possible effects of a software system, in other words, what the system must accomplish. Other kinds of requirements (such as interface requirements, performance requirements, or reliability requirements) describe how the system accomplishes its functional requirements. Each functional requirement should be specified in a format similar to the following:

  1. Short, imperative sentence stating highest ranked functional requirement.

    1. Description
      A full description of the requirement.

    2. Criticality
      Describes how essential this requirement is to the overall system.

    3. Technical issues
      Describes any design or implementation issues involved in satisfying this requirement.

    4. Cost and schedule
      Describes the relative or absolute costs associated with this issue.

    5. Risks
      Describes the circumstances under which this requirement might not able to be satisfied, and what actions can be taken to reduce the probability of this occurrence.

    6. Dependencies with other requirements
      Describes interactions with other requirements.

    7. ... others as appropriate

  2. <Name of second highest ranked requirement>
    And so forth...

4. Interface Requirements

This section describes how the software interfaces with other software products or users for input or output. Examples of such interfaces include library routines, token streams, shared memory, data streams, and so forth.

5. Performance Requirements

Specifies speed and memory requirements.

6. Design Constraints

Specifies any constraints for the design team using this document.

7. Other non-functional attributes

Specifies any other particular non-functional attributes required by the system. Examples are provided below.

8. Preliminary Object-Oriented Domain Analysis

This section presents a list of the fundamental objects that must be modelled within the system to satisfy its requirements. The purpose is to provide an alternative, "structural" view on the requirements stated above and how they might be satisfied in the system.

9. Operational Scenarios

This section should describe a set of scenarios that illustrate, from the user's perspective, what will be experienced when utilizing the system under various situations.

In the article Inquiry-Based Requirements Analysis (IEEE Software, March 1994), scenarios are defined as follows:

In the broad sense, a scenario is simply a proposed specific use of the system. More specifically, a scenario is a description of one or more end-to-end transactions involving the required system and its environment. Scenarios can be documented in different ways, depending up on the level of detail needed. The simplest form is a use case, which consists merely of a short description with a number attached. More detailed forms are called scripts. These are usually represented as tables or diagrams and involved identifying an action and the agent (doer) of the action. FOr this reason, a script can also be called an action table.

Although scenarios are useful in acquiring and validating requirements, they are not themselves requirements, because the describe the system's behavior only in specific situations; a specification, on the other hand, describes what the system should do in general.

10. Preliminary Schedule

This section provides an initial version of the project plan, including the major tasks to be accomplished, their interdependencies, and their tentative start/stop dates. The plan also includes information on hardware, software, and wetware resource requirements.

The project plan should be accompanied by one or more PERT or GANTT charts.

11. Preliminary Budget

This section provides an initial budget for the project, itemized by cost factor.

12. Appendices

Specifies other useful information for understanding the requirements. All SRS documents should include at least the following two appendices: