Software Requirement Specification (SRS) / Requirement Specification
A software requirement specification (SRS) is a comprehensive information/description of a product/system to be developed with its functional and non-functional requirements.
The software requirement specification (SRS) is developed based on the agreement between customer and supplier. It may include the use cases of how a user is going to interact with the product or software system. SRS helps to reduce the time and effort to develop software. To develop the software system we should clearly understand the Software requirements. To achieve this we need to continuously communicate with clients to gather all related information and requirements.
Characteristics of good SRS Document
- Concise: The SRS document should be unambiguous, consistent, and complete.
- Structured: A well-structured SRS document is easy to understand and modify.
- Black-Box View: SRS should only specify what the system should do and restrict from stating how to do.
- Conceptual Integrity: Conceptual integrity in the SRS helps the reader to easily understand it.
- Traceable: Traceability means it can tell which code part corresponds to which design component, which test case corresponds to which requirement and which design component corresponds to which requirement etc.
- Verifiable: All requirements of the system should be verifiable. This means it should be possible to tell whether or not the requirement has been met as specified in the SRS.
Advantages of good SRS Document
- An SRS establishes the basis for agreement between the customer and the supplier on what the software product will perform.
- An SRS provides a reference for validation of the final product/software.
- A high-quality SRS is a prerequisite to high-quality product/software.
- A high-quality SRS reduces the development cost.
Problems without an SRS Document
- It would be difficult to develop the system according to customer needs, without having an SRS document
- Software developers will not know whether they are developing the product according to the customer need.
- Software Engineers find it difficult to understand the functionality of the software, during the maintenance phase.
- User document writer will face many difficulties writing the “users manual” without understanding the SRS documents.
Read Further: Wikipedia