What is a requirement?

A requirement is a condition or capability needed by a user to solve a problem, or achieve an objective. (IEEE)

They describe the external behaviour (as opposed to a Domain Model, which describes the internal behaviour)

Functional requirements refer to the behaviour of a system

Non-functional requirements refer to the meta-behaviour of a system (ie performance speeds).
They are assessed via metrics:

  • Performance
  • Reliability
  • Usability
  • Portability

Stakeholders

Stakeholders are the parties who are involved in the development of the software

  • End Users - The party who will utilise the requested functionality
  • Customer - The party (business representative) who oversee the cost and timely delivery of the project’s stages
  • Design Team - The party involved in the implementation of the software