Software Quality.com

software requirements specification (SRS)

By Linda Rosencrance

A software requirements specification (SRS) is a comprehensive description of the intended purpose and environment for software under development. The SRS fully describes what the software will do and how it will be expected to perform.

An SRS minimizes the time and effort required by developers to achieve desired goals and also minimizes the development cost. A good SRS defines how an application will interact with system hardware, other programs and human users in a wide variety of real-world situations. Parameters such as operating speed, response time, availability, portability, maintainability, footprint, security and speed of recovery from adverse events are evaluated. Methods of defining an SRS are described by the IEEE (Institute of Electrical and Electronics Engineers) specification 830-1998.

Key components of an SRS

The main sections of a software requirements specification are:

Purpose of an SRS

An SRS forms the basis of an organization’s entire project. It sets out the framework that all the development teams will follow. It provides critical information to all the teams, including development, operations, quality assurance (QA) and maintenance, ensuring the teams are in agreement.

Using the SRS helps an enterprise confirm that the requirements are fulfilled and helps business leaders make decisions about the lifecycle of their product, such as when to retire a feature. 

In addition, writing an SRS can help developers reduce the time and effort necessary to meet their goals as well as save money on the cost of development.

Alternatives to an SRS

In Agile methodologies, companies usually favor a more lightweight documentation of the requirements, such as via acceptance tests and user stories.

For this approach to work, the customer had to be easily accessible to provide any necessary clarification on the requirements during development. It also assumes that the developers writing the user stories with the customer will be the developers building the system.  

The Rapid Application Development (RAD) software development methodology favors speed and flexibility over upfront planning. This approach has a very short development time span. Typically, a project developed with this model has a delivery time of 60 to 90 days.

SRS Template

The following is a simple SRS template:

Table of Contents

1. Introduction

1.1 Purpose of this document

1.2 Scope of this document

1.3 Overview

1.4 Business Context

2. General Description

2.1 Product Functions

2.2 Similar System Information

2.3 User Characteristics

2.4 User Problem Statement

2.5 User Objectives

2.6 General Constraints

3. Functional Requirements

4. Interface Requirements

4.1 User Interfaces

4.2 Hardware Interfaces

4.3 Communications Interfaces

4.4 Software Interfaces

5. Performance Requirements

6. Other non-functional attributes

6.1 Security

6.3 Reliability

6.4 Maintainability

6.5 Portability

6.6 Extensibility

6.7 Reusability

6.8 Application Affinity/Compatibility

7. Operational Scenarios

8. Preliminary Use Case Models and Sequence Diagrams

8.1 Use Case Model

8.2 Sequence Diagrams

9. Updated Schedule

10. Appendices

10.1 Definitions, Acronyms, Abbreviations

10.2 References

Features of an SRS

An SRS should have following characteristics:

The goals of an SRS

Some of the goals an SRS should achieve are to:

10 Sep 2019

All Rights Reserved, Copyright 2006 - 2024, TechTarget | Read our Privacy Statement