Sie sind auf Seite 1von 27

Requirements Engineering

Requirements
Engineering
Concepts and
Dynamics
TOPIC ONE
Software Engineering

Requirements Engineering

It is a software engineering activity or phase that allows


developers 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 the
customer wants, and how end-user will interact with the
software.
It consists of seven distinct tasks, namely, inception,
elicitation, elaboration, negotiation, specification, validation
and management.

Software Engineering

Inception

It is at this task that a problem or an opportunity is identified.


It is at this task that the problem scope and its nature is
defined.

Software Engineering

Initiating Requirements
Engineering Steps
1) Identify stakeholders.
2) Recognize multiple viewpoints.
3) Work toward collaboration.
4) Ask the first questions.

Software Engineering

Inception Work Product

The product request is a one or two pages summary of the


problem and its nature.

Software Engineering

Elicitation

It is the task that helps the customer define what is required.

Software Engineering

Problem with Elicitation

Problems of Scope

Problems of Understanding

Problems of Volatility

Software Engineering

Elicitation Approach

Collaborative Requirements Gathering

It requires the cooperation of a group of end-users and developers


to 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 popularly


used to elicit requirements.

Software Engineering

Pre-Joint Meeting Tasks

If there is not product request, one stakeholder should write


one.

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 the
meeting.

Software Engineering

Pre-Joint Meeting Tasks

Each attendee is asked to make the following:

A list of objects that are part of the environment that surrounds the
system

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 interact


with the objects

A list of constraints such as cost, size and business rules

A list of performance criteria such as speed, accuracy etc

Software Engineering

10

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 are
asked to develop the mini-specifications for one or more
entries of the consensus list. Mini-specification is simply an
elaboration of the item in the list using words and phrases.

Present the mini-specifications.

If issues arise, make an issue list.


Software Engineering

11

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.

Software Engineering

12

Post-Joint Meeting Tasks

Compile the complete draft specifications of the items


discussed in the meeting.
Prioritize requirements.

Software Engineering

13

Quality Function Deployment

It is a technique that emphasizes an understanding of what


is valuable to the customer to help the team prioritize
requirements.
It identifes requirements as:

Normal Requirements

Expected Requirements

Exciting Requirements

Software Engineering

14

Quality Function Deployment

Value Analysis is employed to determine the type of


deployment.

Function Deployment

Information Deployment

Task Deployment

Software Engineering

15

MoSCoW Technique

It is a requirements prioritization technique that evaluates


requirements against a classes of priority.

Must Have

Should Have

Could Have

Won't Have

Software Engineering

16

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 of
functions, objects and domain constraints that apply to each

Software Engineering

17

Elaboration

It is the requirement engineering task that focuses in


defining, redefining, and refining the requirements
engineering models.

The Requirements Model

The Analysis Model

It tries to model the WHAT rather than the HOW.

Software Engineering

18

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

Software Engineering

19

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-world
constraints such as time, people and budget.

Software Engineering

20

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.

Software Engineering

21

Specification

It is the final work product produced by the requirements


engineering phase.
It serves as a foundation for subsequent software
engineering activities, particularly, the design and
construction of the software.
It shows the functional, informational and behavioral aspects
of the system.

Software Engineering

22

Validation

It is the task that examines the specification to ensure that


all software requirements have been stated clearly and that
inconsistencies, omissions, and errors have been detected
and corrected.

Software Engineering

23

Requirements Validation
Checklist
1) Is each requirement consistent with the overall objective for
the system or product?
2) Have all requirements been specified at the proper level of
abstraction? That is, do some requirements provide a level
of technical detail that is not appropriate at the stage?
3) Is the requirement really necessary or does it represent an
add-on feature that may not be essential to the objective of
the 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 each
requirement?
Software Engineering

24

Requirements Validation
Checklist
6) 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 way that
exposes progressively more detailed information about the
system?
11)Have the requirements pattern been used to simplify the
requirements model? Have all patterns been properly
validated? Are all patterns consistent with customer
requirements.
Software Engineering

25

Management

It is a set of activities that help the project team identify,


control and track requirements and their changes at any
time as the project progresses.
A Requirements Traceability Matrix is used to track and
control requirements over the progression of the software
development project.

Software Engineering

26

Summary

Requirement Engineering

Seven Tasks

Inception

Elicitation

Elaboration

Specification

Validation

Negotiation

Management

Software Engineering

27

Das könnte Ihnen auch gefallen