0% found this document useful (0 votes)
41 views

Chapter 5 Understanding Requirements

This document discusses requirements engineering which involves understanding customer needs to build appropriate software solutions. It involves tasks like requirements elicitation, elaboration, negotiation, specification, and validation. The key steps are understanding the problem domain, gathering stakeholder requirements, modeling system behaviors and flows, negotiating conflicts, and ensuring requirements are testable. The overall goal is to build a bridge between initial customer needs and the final system design and implementation.

Uploaded by

khairunnisa
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Chapter 5 Understanding Requirements

This document discusses requirements engineering which involves understanding customer needs to build appropriate software solutions. It involves tasks like requirements elicitation, elaboration, negotiation, specification, and validation. The key steps are understanding the problem domain, gathering stakeholder requirements, modeling system behaviors and flows, negotiating conflicts, and ensuring requirements are testable. The overall goal is to build a bridge between initial customer needs and the final system design and implementation.

Uploaded by

khairunnisa
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Chapter 5

Understanding Requirements
Requirements Engineering


Tasks and techniques that lead to an understanding of requirements

Begins during the communication activity to modeling activity

Builds a bridge to design and construction
Requirements Engineering


Provides appropriate mechanism for:

Understanding what customer wants

Analyzing need

Assessing feasibility

Negotiating a reasonable solution

Specifying the solution unambiguously

Validating the specification

Managing requirements as they transformed into an operational system
Requirements Engineering


Seven distinct task:

Inception (permulaan)

Elicitation (pancingan)

Elaboration (perluasan)

Negotiation (perundingan)

Specification (perincian)

Validation

Management
Inception - Permulaan


Establish basic understanding:

The problem (Pahami masalah)

People who want a solution

The nature of solution that is desired

Solusi seperti apa yang diinginkan

Effectiveness of preliminary communication

Efektivitas persiapan komunikasi

Collaboration between the other stakeholders and software team

Kolaborasi customer/ stakeholders dengan tim developer
Elicitation


Ask the customer, users, others about:

Objectives for the system product are

Tujuan sistem yang akan dibuat

What is to be accomplished

Apa yang mau diselesaikan / dicapai

How the system fits onto the needs of the business

Bagaimana sistem bisa sesuai dengan kebutuhan bisnisnya

How the system is to be used on a day-to-day basis

Bagaimana sistem akan digunakan sehari hari
Elicitation - Problem


Problems of understanding

Customer/users are not completely sure of what is needed

Have a poor understanding of the capabilities and limitation
of their computing environment

Don't have full understanding of the problem domain

Omit information that is believed to be “obvious”

Specify requirements that conflict with the needs of other
customer/users

Specify requirements that are ambiguous
Elicitation - Problem


Problem of volatility

The requirements change over time
Elaboration


Developing refined requirements model that identifies various aspects of
software function, behavior and information

Creation and refinement of user scenarios

Describe how user will interact with ystem

Each user scenario is parsed to extract analysis classes

Define attributes of each analysis class

Identify relationships and collaboration between classes
Negotiation


Customers, users, and other stakeholders are asked to rank requirements

Discuss conflict in priority

Requirements are eliminated, combined, modified
Specification


Different things to different people

Written document

Set of graphical models

A formal mathematical model

Collection of usage scenarios

A prototype

Combination of these
Validation


Examines the specification to ensure that all software requirements have
been stated unambiguously

All inconsistencies, omissions, errors have been detected and corrected
Establishing The Groundwork


Identifying stakeholders

Anyone who benefits in a direct/indirect way from the system which is being
developed

Recognizing multiple viewpoints

Different stakeholders, different viewpoints

Working toward collaboration

Identify areas of commonality & areas of conflict
Establishing The Groundwork


Asking the first questions

Context-free questions focuses on the customer & other stakeholders, the overall
project goals & benefits

Who is behind the request for this work?

Who will use the solution?

What will be the economic benefit of a successful solution?

Is there another source for the solution that you need?
Eliciting Requirements


Collaborative requirements gathering

Meeting attended by software engineers & stakeholders

Quality function deployment

Translates the needs of the customer onto technical requirements
for software

Normal requirements
 Stated during meetings

Expected requirements
 Implicit, may be so fundamental

Exciting requirements
 Beyond the customers expectation
Eliciting Requirements

Usage scenarios

How these functions and features will be used by different classes of end users

Elicitation work products

Statement of need and feasibility

Scope for the system

List of customers, user, & other stakeholders

Description of the technical environment

List of requirements & domain constraints

Usage scenarios

Prototype to better define requirements
Developing Use Case


How an end user interacts with the system under a specific set of
circumstances

Depicts software from the user's point of view
Building The Requirements Model


Elements of the requirements model

Scenario based

Class based

Behavioral

Flow oriented

Analysis pattern

Suggest solutions within the application domain that can be reused when modeling
many applications
Negotiating Requirements


The best negotiations strive for a win-win result

Stakeholders win by getting the system that satisfies the majority of their needs

Software team win by working to realistic and achievable budgets and deadlines
Validating Requirements


Reqs are consistent with system's overall objectives

All reqs been specified at the proper level of abstraction?

Is req is really necessary or add-on?

Any conflict?

Achievable?

Testable?

You might also like