Requirements


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, and system throughput?
  • Are all the tasks the user wants to perform specified?
  • Does each task specify the data used in the task and data resulting from the task?
  • Is the level of security specified?
  • Is the reliability specified including the consequences of software failure, vital information protected from failure, error detection, and recovery?
  • Are acceptable tradeoffs between competing attributes specified, for example, between robustness and correctness?
  • Is maximum memory specified?
  • Is the maximum storage specified?
  • Is the definition of success included? Of failure?
  • Is the maintainability of the system specified, including the ability to respond to changes in the operating environment, interfaces with other software, accuracy, performance, and additional predicted capabilities?

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 a 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 boss?

Requirements Quality

  • Are the requirements written in user language? Do the users think so?
  • Do all the requirements avoid conflicts with other requirements?
  • Do the requirements avoid specifying the design?
  • Are the requirements at a fairly consistent level? Should any requirement be specified in more detail? Should any requirement be specified in 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 likelihood of each change?