Requirements engineering
In the waterfall model, requirements engineering is presented as the first phase of the software development process. Later development methods, including the Rational Unified Process for software, assume that requirements engineering continues through a system's lifetime.
Requirements management, which is a sub-function of Systems Engineering practices, is also indexed in the International Council on Systems Engineering manuals.
Activities
The activities involved in requirements engineering vary widely, depending on the type of system being developed and the organization's specific practice involved. These may include:- Requirements inception or requirements elicitation – Developers and stakeholders meet; the latter are inquired concerning their needs and wants regarding the software product.
- Requirements analysis and negotiation – Requirements are identified, and conflicts with stakeholders are solved. Both written and graphical tools are successfully used as aids. Examples of written analysis tools: use cases and user stories. Examples of graphical tools: Unified Modeling Language and Lifecycle Modeling Language.
- System modeling – Some engineering fields require the product to be completely designed and modeled before its construction or fabrication starts. Therefore, the design phase must be performed in advance. For instance, blueprints for a building must be elaborated before any contract can be approved and signed. Many fields might derive models of the system with the LML, whereas others, might use UML. Note: In many fields, such as software engineering, most modeling activities are classified as design activities and not as requirement engineering activities.
- Requirements specification – Requirements are documented in a formal artifact called a Requirements Specification, which will become official only after validation. A RS can contain both written and graphical information if necessary. Example: Software requirements specification.
- Requirements validation – Checking that the documented requirements and models are consistent and meet the stakeholder's needs. Only if the final draft passes the validation process, the RS becomes official.
- Requirements management – Managing all the activities related to the requirements since inception, supervising as the system is developed, and even until after it is put into use
Requirements engineering has been shown to clearly contribute to software project successes.