- 2068 Baishakh (old course) · 10 marks
SRS and characteristics of a good SRS
Short answer
An SRS describes what the software must do and its constraints, without specifying how. A good SRS is correct, unambiguous, complete, consistent, ranked, verifiable, modifiable, and traceable, with each requirement uniquely identified and testable.
Explain software requirement specification (SRS). What are the characteristics of a good software requirement specification document?
Software Requirement Specification (SRS)
A Software Requirements Specification (SRS) is the official document that describes completely what the software system must do (functional requirements) and the constraints on it (non-functional requirements), without describing how it will be implemented. It is produced at the end of requirements analysis and is agreed by the customer and the developer.
Users of the SRS
- Customers: check that it meets their needs and specify changes.
- Managers: plan the bid, estimate cost and schedule.
- System engineers / developers: understand what to build.
- Test engineers: develop validation tests.
- Maintenance engineers: understand the system and its parts.
Typical structure (based on IEEE 830)
1. Introduction
1.1 Purpose 1.2 Scope 1.3 Definitions
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
functional requirements, external interfaces,
performance, design constraints, quality
attributes (security, reliability, etc.)
Appendices and index
Characteristics of a good SRS
IEEE 830 lists the following qualities.
- Correct: every requirement stated is one that the software must actually meet. Only the user can confirm correctness.
- Unambiguous: every requirement has only one interpretation. Words like "fast" or "user friendly" are avoided or defined; a glossary is included.
- Bad: "The system shall respond quickly." Good: "The system shall display search results within 2 seconds for 95% of queries."
- Complete: includes all significant requirements (functions, performance, interfaces, constraints), defines responses to all valid and invalid inputs, labels all figures and tables, and has no "to be decided" items left.
- Consistent: no requirements conflict with each other, for example one saying "report in tabular form" and another "report in text form", or two different names for the same object.
- Ranked for importance and/or stability: each requirement is marked as essential, conditional or optional, and as likely or unlikely to change, so that priorities can be set.
- Verifiable: there is a finite, cost-effective process (test, inspection, analysis) to check that the software meets each requirement. "Works well" is not verifiable; "MTTF of at least 500 hours" is.
- Modifiable: the structure and style allow changes to be made easily, completely and consistently: organised with a table of contents and index, no redundancy, each requirement stated once.
- Traceable: the origin of each requirement is clear (backward traceability), and each requirement has a unique ID so it can be referenced in design, code and tests (forward traceability).
Other desirable qualities:
- Understandable by customers and developers (simple language, diagrams).
- Design independent: states what, not how, leaving design choices open.
- Concise: no unnecessary detail or repetition.
- Organised: grouped logically by feature, user class or mode.
| Characteristic | Quick check |
|---|---|
| Correct | Does the user agree it is needed? |
| Unambiguous | Only one meaning? |
| Complete | Anything missing or TBD? |
| Consistent | Any conflicts? |
| Ranked | Priority/stability given? |
| Verifiable | Can it be tested? |
| Modifiable | Easy to change in one place? |
| Traceable | Has ID and known source? |
A good SRS reduces development effort, provides a baseline for validation and verification, and makes cost estimation and future enhancement easier.
✓ Answer checked by Claude Sonnet 5.5
Related questions
- Why an SRS is worth the early effort · Software Engineering, chapter 1
- Requirement engineering and specification · Software Engineering, chapter 1
- Software characteristics and software crisis · Software Engineering, chapter 1
- Importance of requirement engineering; elicitation techniques · Software Engineering, chapter 1
- Requirement management process · Software Engineering, chapter 1
- Requirement gathering and analysis techniques · Software Engineering, chapter 1
- Requirement alternatives and SRS document · Object Oriented Analysis and Design, chapter 2
- Good programming practice and software selection · Instrumentation II, chapter 9 · asked 2×
- Characteristics of good building stones · Civil Engineering Materials, chapter 2 · asked 9×
- Characteristics of good bricks · Civil Engineering Materials, chapter 3 · asked 4×