Lecture 3: Software Requirements Specification
What is SRS?
The requirements document is a reference document.
The SRS document is a contract between the development team and the customer. Once the customer approves it, any subsequent controversies are settled by referring to the SRS document.
Its purpose is:
- Communication between the Customer, Analyst, system developers, maintainers, …
- Contract between purchaser and supplier
- Firm foundation for the design phase
- Supports testing activities
- Supports project management and control
- Controls system evolution
It is also known as Black Box specification. The internal details of the system are unknown; only the visible external, i.e. input/output behavior, is documented.
In other words, it describes what needs to be done and avoids the solution aspects (Answers “what” not “how”).
It is written in end-user terminology. A formal document could later be developed from it.
It describes the requirements in terms of
- Function
- Performance
- External Interfaces
- Design Constraints
It doesn’t include
- Project Requirements: cost, staffing, reporting procedures
- Design Solutions: data structures, systems’ modules
- Product Assurance Plans: QA Procedures, V&V Procedures
There are many SRS standards, including ANSI/IEEE SRS Standard 830-1984 and the European Space Agency (ESA) Standards.
SRS Template
The following structure is based on the IEEE 830-1998 Standard:
Title
Table of Contents
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Definitions, Acronyms, and Abbreviations
1.4 References
1.5 Overview
2. Overall Description
2.1 Product Perspective
2.2 Product Functions
2.3 User Characteristics
2.4 Constraints
2.5 Assumptions and Dependencies
3. Specific Requirements
3.1 External Interfaces
3.2 Functions
3.3 Performance Requirements
3.4 Logical Database Requirements
3.5 Design Constraints
3.6 Software System Quality Attributes
3.7 Object-Oriented Models
4. Appendices
5. Index