Checklist: Software Requirements Specification
This checklist helps make sure that the Software Requirements Specification is correct and complete.
Relationships
Main Description

Reference: [IE830]



Check Items
Functionality, External Interfaces, Performance, Attributes, and Design Constraints on the Implementation should be addressed
Functionality: What is the software supposed to do?
 
External interfaces: How does the software interact with people, the system's hardware, other hardware, and other software?
 
Performance: What is the speed, availability, response time, recovery time of various software functions, etc.?
 
Attributes: What are the portability, correctness, maintainability, security, etc. considerations?
 
Design constraints imposed on an implementation: Are there any required standards in effect, implementation language, policies for database integrity, resource limits, operating environments, etc.?
Are any requirements specified that are outside the bounds of the SRS
This means the SRS:
  • Should correctly define all of the software requirements,
  • Should not describe any design or implementation details,
  • Should not impose additional constraints on the software.
Does the SRS properly limit the range of valid designs without specifying any particular design
Does the SRS exhibit fundamental characteristics
Correct: Is every requirement stated in the SRS one that the software should meet? Unambiguous
Does each requirement have one, and only one, interpretation? Has the customer's language been used? Have diagrams been used to augment the natural language descriptions?
Complete
Does the SRS include all significant requirements, whether related to functionality, performance design constraints, attributes, or external interfaces?  Have the expected ranges of input values in all possible scenarios been identified and addressed?  Have responses been included to both valid and invalid input values? Do all figures, tables and diagrams include full labels and references and definitions of all terms and units of measure?  Have all TBDs been resolved or addressed?
Consistent
Does this SRS agree with the Vision document, the use-case model and the Supplementary Specifications? Does it agree with any other higher level specifications? Is it internally consistent, with no subset of individual requirements described in it in conflict?
Ability to Rank Requirements
Has each requirement been tagged with an identifier to indicate either the importance or stability of that particular requirement? Have other significant attributes for properly determining priority been identified?
Verifiable
Is every requirement stated in the SRS verifiable? Does there exist some finite cost-effective process with which a person or machine can check that the software product meets the requirement?
Modifiable
Are the structure and style of the SRS such that any changes to the requirements can be made easily, completely, and consistently while retaining the structure and style? Has redundancy been identified, minimized and cross-referenced?
Traceable
Does each requirement have a clear identifier? Is the origin of each requirement clear? Is backward traceability maintained by explicitly referencing earlier artifacts? Is a reasonable amount of forward traceability maintained to artifacts spawned by the SRS?