loader image

Software Requirements Specification Template

A software requirements specification (SRS) is a document generated when a complete description of all features of the software to be built is required prior to the start of the project. It should be noted that a formal SRS is not usually written. In fact, there are numerous cases where the time and effort invested on an SRS would be better spent on other aspects of software engineering. An SRS may be justified, however, when software is to be produced by a third party, when a lack of specification will cause serious business concerns, or when a system is particularly sophisticated or business-critical.

The following is a topic outline:

Table of Contents
Revision History

  1. Introduction
    1.1 Purpose
    1.2 Document Conventions
    1.3 Intended Audience and Reading Suggestions
    1.4 Project Scope
    1.5 References
  2. Overall Description
    2.1 Product Perspective
    2.2 Product Features
    2.3 User Classes and Characteristics
    2.4 Operating Environment
    2.5 Design and Implementation Constraints
    2.6 User Documentation
    2.7 Assumptions and Dependencies
  3. System Features
    3.1 System Feature 1
    3.2 System Feature 2 (and so on)
  4. External Interface Requirements
    4.1 User Interfaces
    4.2 Hardware Interfaces
    4.3 Software Interfaces
    4.4 Communications Interfaces
  5. Other Nonfunctional Requirements
    5.1 Performance Requirements
    5.2 Safety Requirements
    5.3 Security Requirements
    5.4 Software Quality Attributes
  6. Other Requirements
    Appendix A: Glossary
    Appendix B: Analysis Mod
Notify of
Inline Feedbacks
View all comments