In my last blog I talked about rules for domain models. Here are a few rules for requirements:

Requirements are rules to which the system or business must adhere. They are usually updated as the software development progresses and are usually written as text (although diagrams can be used to augment the requirements).

  • Complete: Requirements should be as complete- no open endedness.
  • Testable: Must be able to create a test for all requirements
  • Consistent: Requirements must be consistent with each other; no conflicts
  • Feasible: Possible to do
  • Design Free: Software requirements should be specified at the requirements level and not at the design level. Keep out of the system
  • Unambiguous: Use “Shall” and Related Words. Don’t be wishywashy