Specification Requirements Checklist
Requirements Content
- Are all the inputs to the system specified, including their
source, accuracy, range of values, and frequency?
- Are all the outputs from the system specified, including their
destination, accuracy, range of values, frequency, and format?
- Are all the report formats specified?
- Are all the external hardware and software interfaces specified?
- Are all the communication interfaces specified, including handshaking,
error-checking, and communication protocols?
- Is the expected response time, from the user's point of view,
specified for all necessary operations?
- Are other timing considerations specified, such as processing time,
data-transfer rate, and system throughput?
- Are all the tasks the user wants to perform specified?
- Are the data used in each task and the data resulting from each task
specified?
- Is the level of security specified?
- Is the reliability specified, including consequences of software
failure, the vital information that needs to be protected from
failure, and the strategy for error detection and recovery?
- Is maximum memory specified?
- Is the maximum storage specified?
- Is the maintainability of the system specified, including its ability
to adapt to changes in the operating environment, in its interfaces
with other software, in its accuracy, and in its performance?
- Are acceptable trade-offs between competing attributes specified,
for example, between robustness and correctness?
- Is the definition of success included? Of failure?
Requirements Completeness
- Where information isn't available before development begins, are the
areas of incompleteness specified?
- Are the requirements complete in the sense that if the product
satisfies every requirement, it will be acceptable?
- Are you uneasy about any part of the requirements? Are some parts
impossible to implement and included just to please your
customer or your boss?
Requirements Quality
- Are the requirements written in user language? Do the users think
so?
- Does each requirement avoid conflicts with other requirements?
- Are the requirements at a fairly consistent level of detail?
Should any requirements be specified in more detail? Less detail?
- Are the requirements clear enough to be turned over to an
independent group for implementation and still be understood?
- Is each item relevant to the problem and its solution?
Can each item be traced to its origin in the problem environment?
- Is each requirement testable? Will it be possible for independent
testing to determine whether each requirement has been satisfied?
- Are all possible changes to the requirements specified, including
the liklihood of each change?