Software Requirements Specification

A software requirements specification (SRS) — a requirements specification for a software system — is a complete description of the behavior of a system to be developed and may include a set of use cases that describe interactions the users will have with the software. In addition it also contains non-functional requirements. Non-functional requirements impose constraints on the design or implementation (such as performance engineering requirements, quality standards, or design constraints).

The software requirements specification document enlists all necessary requirements for project development. To derive the requirements we need to have clear and thorough understanding of the products to be developed. This is prepared after detailed communications with project team and the customer. A general organization of an SRS is as follows

  • Introduction
    • Purpose
    • Definitions
    • System overview
    • References
  • Overall description
    • Product perspective
      • System Interfaces
      • User Interfaces
      • Hardware interfaces
      • Software interfaces
      • Communication Interfaces
      • Memory Constraints
      • Operations
      • Site Adaptation Requirements
    • Product functions
    • User characteristics
    • Constraints, assumptions and dependencies
  • Specific requirements
    • External interface requirements
    • Functional requirements
    • Performance requirements
    • Design constraints
      • Standards Compliance
    • Logical database requirement
    • Software System attributes
      • Reliability
      • Availability
      • Security
      • Maintainability
      • Portability
    • Other requirements