Requirements

  • The requirements must explain what the application will have to do. You should not focus on the particular problems, but exclusively on what you want the application to do

  • Goals must be clearly explained

  • Requirements are divided into:
    • Functional: describe the actual behaviour of the application
    • Non-functional: requirements that do not directly concern behavioural aspects, such as safety, performance, etc.
    • Implementation: constrain the entire phase of system realization, for instance by requiring the use of a specific programming language and/or a specific software tool.
  • If there are unclear terms (ambiguous, very complex, etc.) these should be explained
  • Each requirement must have its own acceptance criteria