Software Requirements Specification

A software requirements specification (SRS) is a complete description of the behavior of the software to be developed. It includes a set of use cases that describe all of the interactions that the users will have with the software. In addition to use cases, the SRS contains functional requirements, which define the internal workings of the software: that is, the calculations, technical details, data manipulation and processing, and other specific functionality that shows how the use cases are to be satisfied. It also contains nonfunctional requirements, which impose constraints on the design or implementation (such as performance requirements, quality standards, or design constraints).

The SRS is the most important work product that is produced by the requirements engineering project activities. All later work products—software design and architecture, code, test plans—are based on the SRS.

SRS Template

The SRS contains the use cases, functional requirements, and nonfunctional requirements. It should also contain overall information about the project, in order to orient the team. Table 6-8 shows the SRS template .

Table 6-8. Software requirements specification outline

  1. Introduction

    1. Purpose

    2. Scope

    3. System overview

    4. References

  2. Definitions

  3. Use cases

  4. Functional requirements

  5. Nonfunctional requirements

The introduction serves to orient the reader. It describes both the system and the SRS itself:


This section describes the purpose of the document. Typically, ...

Get Applied Software Project Management now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.