Post on 03-Apr-2018
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
1/27
Software Engineering 1
Requirements Engineering
Requirements
EngineeringConcepts and
DynamicsTOPIC ONE
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
2/27
Software Engineering 2
Requirements Engineering
It is a software engineering activity or phase that allowsdevelopers to understand the problem domain.
It encompasses a set of tasks that lead to the understanding
to what the business impact of the software will be, what thecustomer wants, and how end-user will interact with thesoftware.
It consists of seven distinct tasks, namely, inception,elicitation, elaboration, negotiation, specification, validation
and management.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
3/27
Software Engineering 3
Inception
It is at this task that a problem or an oppurtunity is identified.
It is at this task that the problem scope and its nature isdefined.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
4/27
Software Engineering 4
Initiating Requirements
Engineering Steps1) Identify stakeholders.2) Recognize multiple viewpoints.
3) Work toward collaboration.
4) Ask the first questions.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
5/27
Software Engineering 5
Inception Work Product
The product request is a one or two pages summary of theproblem and its nature.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
6/27
Software Engineering 6
Elicitation
It is the task that helps the customer define what is required.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
7/27
Software Engineering 7
Problem with Elicitation
Problems of Scope
Problems of Understanding
Problems of Volatility
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
8/27
Software Engineering 8
Elicitation Approach
Collaborative Requirements Gathering
It requires the cooperation of a group of end-users and developersto elicit requirements. They work together to:
Identity the problem
Propose elements of the solution
Negotiate different approaches
Specify a preliminary set of solution requirements
Joint Application Development is one technique that is popularlyused to elicit requirements.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
9/27
Software Engineering 9
Pre-Joint Meeting Tasks
If there is not product request, one stakeholder should writeone.
Set the place, time and date of the meeting.
Select the facilitator. Invite the members of the team (end-users, developers and
other stakeholders)
Distribute the product request to all members before themeeting.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
10/27
Software Engineering 10
Pre-Joint Meeting Tasks
Each attendee is asked to make the following:
A list of objects that are part of the environment that surrounds thesystem
A list of other objects that are produced by the system
A list of objects that are used by the system to perform its functions
A list of services (processes or functions) that manipulate or interactwith the objects
A list of constraints such as cost, size and business rules
A list of performance criteria such as speed, accuracy etc
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
11/27
Software Engineering 11
Joint Meeting Tasks
Justify the need for the software product.
Each participant should present his list to the group.
Combine the list.
Create a consensus list in each topic (objects, services,constraints, performance).
The team is divided into sub-teams. Each sub-teams areasked to develop the mini-specifications for one or moreentries of the consensus list. Mini-specification is simply anelaboration of the item in the list using words and phrases.
Present the mini-specifications.
If issues arise, make an issue list.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
12/27
Software Engineering 12
Joint Meeting Tasks
Validation criteria is created.
A consensus list of validation criteria is created.
Draft specifications using all inputs of the meeting are
created by one or more team members.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
13/27
Software Engineering 13
Post-Joint Meeting Tasks
Compile the complete draft specifications of the itemsdiscussed in the meeting.
Prioritize requirements.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
14/27
Software Engineering 14
Quality Function Deployment
It is a technique that emphasizes an understanding of whatis valuable to the customer to help the team prioritizerequirements.
It identifes requirements as:
Normal Requirements
Expected Requirements
Exciting Requirements
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
15/27
Software Engineering 15
Quality Function Deployment
Value Analysis is employed to determine the type ofdeployment.
Function Deployment
Information Deployment
Task Deployment
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
16/27
Software Engineering 16
MoSCoW Technique
It is a requirements prioritization technique that evaluatesrequirements against a classes of priority.
Must Have
Should Have
Could Have
Won't Have
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
17/27
Software Engineering 17
Elicitation Work Product
A statement of need and feasibility
A bounded statement of scope for the system or product
A list of customer, users, and other stakeholders who
participated in requirements elicitation. A brief description of the system's technical documents
A priority list of requirements, preferably, in terms offunctions, objects and domain constraints that apply to each
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
18/27
Software Engineering 18
Elaboration
It is the requirement engineering task that focuses indefining, redefining, and refining the requirementsengineering models.
The Requirements Model
The Analysis Model
It tries to model the WHAT rather than the HOW.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
19/27
Software Engineering 19
Elaboration Work Product
The Requirements Model
The Use Case Model
Supplementary Documents
Glossary or Definition of Terms The Analysis Model
Analysis Classes (Class Diagrams)
Sequence Diagrams
Collaboration Diagrams
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
20/27
Software Engineering 20
Negotiation
It is a task that encourages collaboration.
It is a task where conflicts are resolved.
It is a task where a project plan is developed that meets the
requirements of the user while reflecting real-worldconstraints such as time, people and budget.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
21/27
Software Engineering 21
The Art of Negotiation
Remember that negotiation is NOT a competition.
Have a strategy.
Listen effectively.
Focus on the other's party needs. Don't make it personal.
Be creative.
Be ready to commit.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
22/27
Software Engineering 22
Specification
It is the final work product produced by the requirementsengineering phase.
It serves as a foundation for subsequent softwareengineering activities, particularly, the design andconstruction of the software.
It shows the functional, informational and behavioral aspectsof the system.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
23/27
Software Engineering 23
Validation
It is the task that examines the specification to ensure thatall software requirements have been stated clearly and thatinconsistencies, omissions, and errors have been detectedand corrected.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
24/27
Software Engineering 24
Requirements Validation
Checklist1) Is each requirement consistent with the overall objective forthe system or product?
2) Have all requirements been specified at the proper level ofabstraction? That is, do some requirements provide a levelof technical detail that is not appropriate at the stage?
3) Is the requirement really necessary or does it represent anadd-on feature that may not be essential to the objective ofthe system?
4) Is each requirement bounded and clear?5) Does each requirement have attribution? That is, is a
source (generally, a specific individual) noted for eachrequirement?
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
25/27
Software Engineering 25
Requirements Validation
Checklist6) Do any of the requirements conflict with other requirements?7) Is each requirement achievable in the technical environment
that will house the system or product?
8) Is each requirement testable, once implemented?9) Does the requirement model properly reflect the information,
function, and behavior of the system to be built?
10)Has the requirements model been partitioned in a waythat exposes progressively more detailed information about
the system?
11)Have the requirements pattern been used to simplify therequirements model? Have all patterns been properlyvalidated? Are all patterns consistent with customerrequirements.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
26/27
Software Engineering 26
Management
It is a set of activities that help the project team identify,control and track requirements and their changes at anytime as the project progresses.
A Requirements Traceability Matrix is used to track and
control requirements over the progression of the softwaredevelopment project.
7/29/2019 MELJUN CORTES JEDI Slides-3.1 Requirements Engineering Concepts
27/27
Software Engineering 27
Summary
Requirement Engineering
Seven Tasks
Inception
Elicitation Elaboration
Specification
Validation
Negotiation Management