Requirements Engineering



Definition

Requirements engineering is the activity consisting of the cohesive collection of all tasks that are primarily performed to produce the requirements and other requirements work products for an endeavor (i.e., project, program of related projects, or enterprise), whereby the scope of the requirements could be a:

Goals

The typical goals of requirements engineering are to:

Objectives

To achieve the above goals, the typical objectives of requirements engineering are to:

Examples

Typical examples of requirements reengineering include:

Preconditions

Requirements engineering may typically begin when the following preconditions hold:

Completion Criteria

Requirements engineering is typically complete when the following postconditions hold:

Tasks

Requirement Engineering Tasks

Requirements engineering on a specific endeavor typically consists of the appropriate subset of the following requirements engineering tasks (and subtasks), which are typically performed in an iterative, incremental, parallel, and time-boxed manner:

The following diagram illustrates the typical workflow of the requirements engineering tasks on an application development project if iteration is ignored:


Chart showing the workflow relationships between the requirements activity tasks.

The following diagram illustrates one way in which the requirements tasks, the producers (e.g., requirements team, stakeholders, and requirements tools) that perform them, and the associated repositories might be related on a project:


Chart showing the relationship between the requirements activity tasks, the producers that perform them, and the related work products.

Requirements engineering typically involves the following teams performing the following requirements tasks in an iterative, incremental, parallel, and time-boxed manner:

Related Tasks Allocated To Other Activities

Because the following tasks fit better under other activities, they are not techically part of the requirements engineering activity, although they nevertheless have a major impact on requirements engineering:

Environments

Requirements engineering is typically performed using the following environment(s) and associated tools:

Work Products

Requirements engineering typically results in the production of the following work products from the requirements work product set:

Phases

Requirements engineering tasks are typically performed during individual phases as documented in the following table:

Phase Relevant Requirements Tasks
Business Strategy Phase
(100% completed)
Business Analysis: Business Case Development
Business Visioning
Requirements Reuse
Requirements Identification
Requirements Analysis
Requirements Specification
Requirements Management
Business Optimization Phase Requirements Management
Initiation Phase
(approx. 80% completed)
Business Case Development
Visioning: Business Analysis (if not already done): Requirements Reuse (80%)
Requirements Identification (90%)
Requirements Prototyping (80%)
Requirements Analysis (80%)
Requirements Specification (80%)
Requirements Management (50%)
Construction Phase
(100% completed)
Requirements Reuse
Requirements Identification
Requirements Prototyping
Requirements Analysis
Requirements Specification
Requirements Management
Delivery Phase Requirements Management
Usage Phase Requirements Management
Retirement Phase Not Applicable

Guidelines


Chart showing the relationship between the requirements activity, its work products, and other activities. Security Engineering Quality Engineering Disaster Recovery Process Engineering Requirements Engineering Architecting Design Implementation Integration Testing Deployment Requirements Work Products Maintenance User Support Operations Content Management Management Configuration Management Risk Management Reuse Engineering Reuse Engineering Environments Engineering Metrics Engineering Training Retirement