To understand that requirements engineering is a cyclical process involving four types of activity: elicitation, specification, validation, and negotiation
To appreciate the role of social and cognitive issues in requirements engineering
To be able to distinguish a number of requirements elicitation techniques
To be aware of the contents of a requirements specification document
To know various techniques and notations for specifying requirements
To know different ways to structure a set of requirements
This chapter covers requirements engineering, the first major phase in a software development project. The most challenging and difficult aspect of requirements engineering is to get a complete description of the problem to be solved. We discuss a number of techniques for eliciting requirements from the user. Following elicitation, these requirements must be negotiated, validated, and documented.
The hardest single part of building a system is deciding what to build.
The requirements engineering phase is the first major step towards the solution of a data-processing problem. During this phase, the user's requirements with respect to the future system are carefully identified and documented. These requirements concern both the functions to be provided and a number of additional requirements, such as performance, reliability, user documentation, user training, cost, and so on. During the requirements engineering phase, ...