Software Requirements Specification (SRS) Template
Software Requirements Specification (SRS) Template
Software Requirements Specification (SRS) Template
Items that are intended to stay in as part of your document are in bold;
explanatory comments are in italic text. Plain text is used where you might insert
wording about your project.
Agency Name
Project Name
Software Requirements Specification Document
Version: (n)
Date: (mm/dd/yyyy)
1. Revision History
Revision #
Revision Date
Description of Change
Author
2. Distribution
Recipient Name
Recipient Organization
Distribution Method
Table of Contents
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Definitions, Acronyms, and Abbreviations.
1.4 References
1.5 Overview
2. The Overall Description
2.1 Product Perspective
2.1.1 System Interfaces
2.1.2 Interfaces
2.1.3 Hardware Interfaces
2.1.4 Software Interfaces
2.1.5 Communications Interfaces
2.1.6 Memory Constraints
2.1.7 Operations
2.1.8 Site Adaptation Requirements
2.2 Product Functions
2.3 User Characteristics
2.4 Constraints
2.5 Assumptions and Dependencies
2.6 Apportioning of Requirements.
3. Specific Requirements
3.1 External Interfaces
3.2 Functions
3.3 Performance Requirements
3.4 Logical Database Requirements
3.5 Design Constraints
3.5.1 Standards Compliance
3.6 Software System Attributes
3.6.1 Reliability
3.6.2 Availability
3.6.3 Security
3.6.4 Maintainability
3.6.5 Portability
3.7 Organizing the Specific Requirements
3.7.1 System Mode
3.7.2 User Class
3.7.3 Objects
3.7.4 Feature
3.7.5 Stimulus
3. 7.6 Response
3.7.7 Functional Hierarchy
07/03/15 6:05 A7/P7
1
5.
Document Approvals
6.
Supporting Information
1. Introduction
The following subsections of the Software Requirements Specifications (SRS) document
should provide an overview of the entire SRS.
1.1 Purpose
Identify the purpose of this SRS and its intended audience. In this subsection, describe
the purpose of the particular SRS and specify the intended audience for the SRS.
1.2 Scope
In this subsection:
(1) Identify the software product(s) to be produced by name
(2) Explain what the software product(s) will, and, if necessary, will not do
(3) Describe the application of the software being specified, including relevant benefits,
objectives, and goals
(4) Be consistent with similar statements in higher-level specifications if they exist
1.4 References
In this subsection:
(1) Provide a complete list of all documents referenced elsewhere in the SRS
(2) Identify each document by title, report number (if applicable), date, and
publishing organization
(3) Specify the sources from which the references can be obtained.
This information can be provided by reference to an appendix or to another document.
1.5 Overview
In this subsection:
(1) Describe what the rest of the SRS contains
(2) Explain how the SRS is organized
Specify the use of other required software products and interfaces with other application
systems. For each required software product, include:
(1) Name
(2) Mnemonic
(3) Specification number
(4) Version number
(5) Source
For each interface, provide:
(1) Discussion of the purpose of the interfacing software as related to this software product
(2) Definition of the interface in terms of message content and format
2.1.5 Communications Interfaces
Specify the various interfaces to communications such as local network protocols, etc.
2.1.6 Memory Constraints
Specify any applicable characteristics and limits on primary and secondary memory.
2.1.7 Operations
Specify the normal and special operations required by the user such as:
(1) The various modes of operations in the user organization
(2) Periods of interactive operations and periods of unattended operations
(3) Data processing support functions
(4) Backup and recovery operations
(Note: This is sometimes specified as part of the User Interfaces section.)
2.1.8 Site Adaptation Requirements
In this section:
(1) Define the requirements for any data or initialization sequences that are specific to a
given site, mission, or operational mode
(2) Specify the site or mission-related features that should be modified to adapt the software
to a particular installation
2.4 Constraints
Provide a general description of any other items that will limit the developer's options.
These can include:
(1) Regulatory policies
(2) Hardware limitations (for example, signal timing requirements)
(3) Interface to other applications
(4) Parallel operation
(5) Audit functions
(6) Control functions
(7) Higher-order language requirements
(8) Signal handshake protocols (for example, XON-XOFF, ACK-NACK)
(1) Reliability requirements
(10) Criticality of the application
(11) Safety and security considerations
3. Specific Requirements
This section contains all the software requirements at a level of detail sufficient to enable
designers to design a system to satisfy those requirements, and testers to test that the
system satisfies those requirements. Throughout this section, every stated requirement
should be externally perceivable by users, operators, or other external systems. These
requirements should include at a minimum a description of every input (stimulus) into the
system, every output (response) from the system and all functions performed by the
system in response to an input or in support of an output. The following principles apply:
(1) Specific requirements should be stated with all the characteristics of a good SRS
correct
unambiguous
complete
consistent
ranked for importance and/or stability
verifiable
modifiable
traceable
(2) Specific requirements should be cross-referenced to earlier documents that relate
(3) All requirements should be uniquely identifiable
(4) Careful attention should be given to organizing the requirements to maximize readability
Before examining specific ways of organizing the requirements it is helpful to understand
the various items that comprise requirements as described in the following subclasses.
Name of item
Description of purpose
Source of input or destination of output
Valid range, accuracy and/or tolerance
Units of measure
Timing
Relationships to other inputs/outputs
Screen formats/organization
Window formats/organization
Data formats
Command formats
End messages
3.2 Functions
Functional requirements define the fundamental actions that must take place in the
software in accepting and processing the inputs and in processing and generating the
outputs. These are generally listed as shall statements starting with "The system
shall
These include:
It may be appropriate to partition the functional requirements into sub-functions or subprocesses. This does not imply that the software design will also be partitioned that way.
Characteristic
Correctness
Efficiency
Flexibility
Integrity/Security
Interoperability
Maintainability
Portability
Reliability
Reusability
Testability
Usability
Availability
H/M/L
10 11
12
Definitions of the quality characteristics not defined in the paragraphs above follow.
Correctness - extent to which program satisfies specifications, fulfills users
mission objectives
Efficiency - amount of computing resources and code required to perform function
Flexibility - effort needed to modify operational program
Interoperability - effort needed to couple one system with another
07/03/15 6:05 A7/P7
9
5. Document Approvals
Identify the approvers of the SRS document. Approver name, signature, and date should
be used.
6. Supporting Information
The supporting information makes the SRS easier to use. It includes:
Table of Contents
Index
Appendices
The Appendices are not always considered part of the actual requirements specification
and are not always necessary. They may include:
(a) Sample I/O formats, descriptions of cost analysis studies, results of user
surveys
(b) Supporting or background information that can help the readers of the SRS
(c) A description of the problems to be solved by the software
(d) Special packaging instructions for the code and the media to meet security,
export, initial loading, or other requirements
When Appendices are included, the SRS should explicitly state whether or not the
Appendices are to be considered part of the requirements.
Tables on the following pages provide alternate ways to structure section 3 on the specific
requirements.
3 Specific Requirements
3.1 External interface requirements
3.1.1 User interfaces
3.1.2 Hardware interfaces
3.1.3 Software interfaces
3.1.4 Communications interfaces
3.2
System features
3.2.1 System Feature 1
3.2.1.1 Introduction/Purpose of feature
3.2.1.2 Stimulus/Response sequence
3.2.1.3 Associated functional requirements
3.2.1.3.1 Functional requirement 1
.....
3.2.1.3.n Functional requirement n
3.2.2 System Feature 2
.....
3.2.m System Feature m
.....
3.3 Performance Requirements
3.4 Design Constraints
3.5 Software system attributes
3.6 Other requirements