Requirements Engineering
Requirements Engineering
Engineering
The Problems with our
Requirements Practices
2
Software Requirements
6
Functional and non-functional
requirements
• Functional requirements
• Statements of services the system should provide, how the system should
react to particular inputs and how the system should behave in particular
situations.
• May state what the system should not do.
• Non-functional requirements
• Most non-functional requirements relate to the system
as a whole. They include constraints on timing and
performance, reliability, security, maintainability,
accuracy, the development process, standards, etc.
7
A Solution: Requirements
Engineering
• Begins during the communication activity and continues into the modeling
activity
• Builds a bridge from the system requirements into software design and
construction
• Allows the requirements engineer:
• to examine the context of the software work to be performed
• the specific needs that design and construction must address
• the priorities that guide the order in which work is to be completed
• the information, function, and behavior that will have a profound impact on the resultant design
8
Requirements Engineering Tasks
• Seven distinct tasks are :
1. Inception
2. Elicitation
3. Elaboration
4. Negotiation
5. Specification
6. Validation
7. Requirements Management
• Some of these tasks may occur in parallel and all are adapted to the needs
of the project
• All strive to define what the customer wants
• All serve to establish a solid foundation for the design and construction of
the software
Inception
Elicitation
Elaboration
Negotiation
Specification
Validation
Requirements
Management
10
Inception Task
During inception, the requirements engineer asks a set of questions to establish…
• A basic understanding of the nature of problem and scope
• The people who want a solution
• The nature of the solution that is desired
• The effectiveness of preliminary communication and collaboration between the
customer and the developer
12
The Next Set of Questions
19
Elaboration Task
satisfaction.
Specification Task (The process of writing down
the user and system requirements in a
requirements document)