Related Article: Writing a good SRS for your project
Following are the characteristics of a good SRS document:
User review is used to ensure the correctness of requirements stated in the SRS. SRS is said to be correct if it covers all the requirements that are actually expected from the system.
Completeness of SRS indicates every sense of completion including the numbering of all the pages, resolving the to be determined parts to as much extent as possible as well as covering all the functional and non-functional requirements properly.
Requirements in SRS are said to be consistent if there are no conflicts between any set of requirements. Examples of conflict include differences in terminologies used at separate places, logical conflicts like time period of report generation, etc.
A SRS is said to be unambiguous if all the requirements stated have only 1 interpretation. Some of the ways to prevent unambiguousness include the use of modelling techniques like ER diagrams, proper reviews and buddy checks, etc.
- Ranking for importance and stability:
There should a criterion to classify the requirements as less or more important or more specifically as desirable or essential. An identifier mark can be used with every requirement to indicate its rank or stability.
SRS should be made as modifiable as possible and should be capable of easily accepting changes to the system to some extent. Modifications should be properly indexed and cross-referenced.
A SRS is verifiable if there exists a specific technique to quantifiably measure the extent to which every requirement is met by the system. For example, a requirement stating that the system must be user-friendly is not verifiable and listing such requirements should be avoided.
One should be able to trace a requirement to design component and then to code segment in the program. Similarly, one should be able to trace a requirement to the corresponding test cases.
- Design Independence:
There should be an option to choose from multiple design alternatives for the final system. More specifically, the SRS should not include any implementation details.
A SRS should be written in such a way that it is easy to generate test cases and test plans from the document.
- Understandable by the customer:
An end user maybe an expert in his/her specific domain but might not be an expert in computer science. Hence, the use of formal notations and symbols should be avoided to as much extent as possible. The language should be kept easy and clear.
- Right level of abstraction:
If the SRS is written for the requirements phase, the details should be explained explicitly. Whereas, for a feasibility study, fewer details can be used. Hence, the level of abstraction varies according to the purpose of the SRS.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Software Engineering | Characteristics of good Software
- Dimension of Software Quality | Garvin's Dimensions Of Quality
- Measuring Software Quality using Quality Metrics
- Quality Function Deployment (QFD) in Software Quality
- House of Quality Example in Software Quality
- Software Engineering | Parts of a SRS document
- Differences between Quality Assurance and Quality Control
- Characteristics of a good Software Engineer
- Characteristics of Good Object Oriented Design
- Software Engineering | Software Characteristics
- Software Engineering | Software Quality Assurance
- Software Engineering | Software Quality Assurance (SQA) Set 2
- Software Engineering | Software Quality Framework
- Software Engineering | Software Quality
- Software Engineering | Characteristics of CASE Tools
- Software Requirement Specification (SRS) Format
- Difference between Good Design and Bad Design in Software Engineering
- Basic Principles of Good Software Engineering approach
- Practices to follow while writing the SRS for a project
- Difference between SRS and FRS
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.