Gathering and documenting requirements is an essential process in software development. Learn what role requirements engineering plays in scientific software development!
In this article, we elaborate on the requirements process - which encompasses the discovery and documentation of requirements. No single methodology exists for requirements engineering. The process can be sequential or iterative. It may target internal or external users. The requirements documentation needs for, say, a web service framework are radically different from those for avionics software. In any case, a full treatment of requirements engineering praxis goes beyond the scope of this article. Instead, we outline the four common steps involved.
- Requirements Elicitation: Gathering data on the needs and wants of stakeholders.
- Requirements Analysis: Identifying the requirements.
- Requirements Specification: Producing a requirements specification artifact that models and expresses the requirements.
- Requirements Validation: Ensuring that the requirements match the needs and wants of stakeholers.
The elicitation and analysis steps are collectively known as the sensemaking phase of the requirements process, and the specification and validation steps are known as the problem structuring phase.