(RE) refers to the process of defining
, documenting and maintaining
and to the subfield of
concerned with this process.
According to book "No Silver Bullet: Essence and Accidents of
" chapter 20, "The
hardest single part of building a software
system is deciding precisely what to build. No
other part of the conceptual work
is as difficult as establishing the
. . . No other part of the work so cripples the resulting system
wrong. No other part is as difficult to rectify later
So wrote Fred Brooks in 1987, and so it remains today [Davis 1990a, Faulk 1997a]. "The
inability to produce complete
is still considered the major cause of software failure today
are statements of what the system must do
, how it must
, the properties it must exhibit
, the qualities it must
, and the constraints that the system and its development must satisfy
Institute of Electrical and Electronics Engineers (IEEE) defines a requirement as:
- a condition or capability needed by a user to solve a problem or
achieve an objective.
- a condition or capability that must be met or possessed by a system or system
component to satisfy a contract, standard,
specification, or other formally imposed document.
- a documented representation of a condition or capability as in definition 1 or 2
emphasizes the use of systematic and repeatable techniques
that ensure the completeness
, and relevance of the
[Sommerville 1997a]. Specifically,
, and management
Requirements elicitation is the process of discovering,
reviewing, documenting, and understanding the user's
needs and constraints for the system.
Requirements analysis is the process of refining the user's needs and
Requirements specification is the process of documenting the user's needs and
constraints clearly and precisely.
Requirements verification is the process of ensuring that the system
requirements are complete, correct, consistent, and clear.
Requirements management is the process of scheduling,
coordinating, and documenting the requirements engineering activities
(that is, elicitation, analysis, specification, and verification).