Chapter 4 – Requirements Engineering
Lecture 1
Topics covered
Functional and non-functional requirements
The software requirements document
Requirements specification
Requirements engineering processes
Requirements elicitation and analysis
Requirements validation
Requirements management
Requirements engineering
The process of establishing the services that the
customer requires from a system and the constraints
under which it operates and is developed.
The requirements themselves are the descriptions of the
system services and constraints that are generated
during the requirements engineering process.
What is a requirement?
It may range from a high-level abstract statement of a
service or of a system constraint to a detailed
mathematical functional specification.
This is inevitable as requirements may serve a dual
function
May be the basis for a bid for a contract - therefore must be
open to interpretation;
May be the basis for the contract itself - therefore must be
defined in detail;
Both these statements may be called requirements.
Requirements abstraction (Davis)
“If a company wishes to let a contract for a large software development
project, it must define its needs in a sufficiently abstract way that a
solution is not pre-defined. The requirements must be written so that
several contractors can bid for the contract, offering, perhaps, different
ways of meeting the client organization’s needs. Once a contract has
been awarded, the contractor must write a system definition for the
client in more detail so that the client understands and can validate what
the software will do. Both of these documents may be called the
requirements document for the system.”