Introduction
These days, systems and software are so complex that to get on with the design before knowing what we are going to build is stupidity. Software Requirement Specification is a document that describes the specifications and requirements of the software. It tells us about how the software will perform. It has all the details that the user is expecting from the software.
Want to learn about, Adhoc Testing click here
See more,human computer interaction
Features of SRS
Following are the features of a SRS document:
- Correctness: SRS is said to be correct if it covers all the requirements that users expected from the system. User review decids the correctness of SRS.
- Completeness: A complete SRS has all essential functionality, performance, design, constraints, attributes, or external interfaces. It also has responses of the software for all realizable classes of input data in all available categories of situations. It has proper labels and references for all figures, tables, and diagrams.
- Consistency: A consistent SRS has no conflicts between any set of requirements. Examples of conflict are differences in terminologies used at separate places, logical conflicts like report generation time, etc.
- Unambiguousness: SRS is unambiguous if all the requirements stated have only one interpretation. Some ways to prevent unambiguousness include using modeling techniques like ER diagrams, proper reviews and buddy checks, etc.
- Ranking for importance and stability: There should be a criterion to classify the requirements as less important or as desirable or essential. Every requirement can use an identifier mark to show its stability or rank.
- Modifiability: SRS must be made as modifiable as possible, and it should be capable of readily accepting changes in the system to some extent. Modifications should be appropriately indexed and cross-referenced.
- Verifiability: SRS is verifiable if a specific technique exists to quantifiably measure the extent to which the system meets every requirement. For example, a requirement that the system must be user-friendly is not verifiable, and listing such requirements should be avoided.
- Traceability: One should trace a requirement to the design component and then code segment in the program. Similarly, one should trace a requirement to the corresponding test cases.
- Design Independence: SRS should have an option to choose between multiple design alternatives for the final system. The SRS must not include any implementation details.
- Testability: SRS should easily be able to generate test cases and test plans from the document.
- Understandable by the customer: Since it is not sure that an end-user will have excellent knowledge in computer science. Therefore, the use of formal notations and symbols should be avoided to as much extent as possible. The language should be kept accessible and straightforward.
-
The 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.
Also see, V Model in Software Engineering