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?