0% found this document useful (0 votes)
19 views32 pages

REQ01

REQ01

Uploaded by

nguyenthehuy623
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views32 pages

REQ01

REQ01

Uploaded by

nguyenthehuy623
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

REQUIREMENTS ENGINEERING

Definition and Issues

Instructor: Huy Nguyen Dang Quang, Msc


Đà Nẵng, 2018
Email: [email protected]
Objectives
Learning goals: The goal of this lecture is to:
1) Introduce requirements engineering concepts and principles.
2) Explain the problems of software project development.
3) Clarify terms and definitions.
Benefits:
• The lecture provides an overview of Requirements Engineering
concepts and its principles. It also covers key issues that every
software project often runs into. The students will learn What
requirements are and what requirements engineering process covers.
By understand the issue and basic definitions and terms, students will
have a sufficient foundation for understanding subsequent lectures.
Practical Software Engineering
• Software engineering is training focusing on creating cost-
effective solutions to real world problems by applying
engineering knowledge to build quality software systems.
• Software engineers learn how to make decisions in designing
and implementing solutions under constraints of limited time,
knowledge, and resources.
• The most important practice in software engineering that
provides the greatest benefit is requirements engineering.
What Are Requirements?*
• A condition or capability needed by a user or customer to solve
a problem or achieve an objective.
• A condition or capability that must be met by a system or
system component to satisfy a contract, standard, specification,
or other formally imposed document.
• A document representation of a condition or capability.
Requirements Are …
• Requirements are descriptions of the necessary and sufficient
properties of a product or service that will satisfy the customer’s
need.
• Software requirements are descriptions of the necessary and
sufficient properties of the software that must be met to ensure
the product achieves what it was designed to accomplish for its
customers or users.
Software Requirements - 1
• Every software project has users who rely on the software to do
something for them.
• The time spent understanding and writing down what users need is
very important.
• If software people do not have well written requirements that users
agree to, how can they develop software that satisfy those users?
• If you do NOT write down requirements but assume you know
requirements, you may develop something users do not want.
Software Requirements - 2
• The “TO DO” List of the Project Team.
• The List of “WHAT” Customer’s need.
• The List of “WHAT” the software must do to satisfy its Customers.
• The List of “WHAT” components must be built.
• The List of “WHAT” each component must “DO” and “HOW” they will
“INTERACT”.
Software Requirements - 3
• Requirements describe the behavior of the software as seen
from the customer’s perspective.
• Requirements serve as a communications channel between
customers, users and project managers who are concerned
with the development of software products or services.
Requirements Engineering
• A method of obtaining a precise formal specification from the
informal and often vague requirements with customers.
• The science and discipline concerned with analyzing and
documenting requirements. It comprises needs analysis,
requirements analysis, and requirements specifications.
Wrong Belief
• Many people believe that for every project there is a set of firm
requirements.
• If they can get them, they can build them and produce a perfect
product or solution.
• Students are often taught that customers will give them
requirements just like a professor gives them assignments and
all they have to do is to build the software accordingly.
Wrong Belief … again
• Many people believe customers will clearly provide:
• Functional requirements
• How they want the work to be done
• How it will be used
• Performance & Scalability
• System boundary (Scope)
• Operating environment (Domain)
• Verification criteria
Wrong Belief … again
• Many people believe customers will clearly provide:
• Functional requirements
• How they want the work to be done
• How it will be used
• Performance & Scalability
• System boundary (Scope)
• Operating environment (Domain)
• Verification criteria
Actually …
• Customers will provide:
• A wish list of what they would like to have.
• A solution to their problems without knowledge about how it
might be implemented.
• A vague description that limits implementation.
• A technology that they read from newspapers.
• Changes as they often change their minds.
• Strict budget & schedule.
Why Is It So …?
• Many customer expectations are NOT based on needs but
wants.
• University training is still focusing on solving problems NOT
identifying problems.
• Most software engineers do not receive adequate training on
requirements engineering.
• Many software engineers want to work on solutions rather than
take time to understand the problem (code first, ask questions
later).
The Academic View

This simple view only works when there are:


• Unlimited resources
• Unlimited time
• Unchanging requirements
• Great working environment
• Perfect communication
• No constraints
The Real World View

Experienced engineers know that there are:


• Insufficient resources
• Insufficient time
• Ever-Changing requirements
• Highly political working environment
• Imperfect communication
• Financial constraints
• Schedule constraints
• Other constraints …
Why Requirements Engineering?
• Failure to develop good requirements is the major cause for
software project failures.
• Lack of knowledge of customer’s business process contributes
to the failure of requirements engineering.
Requirements Issues
• Failure to understand customers’ needs or their business problems is
the major cause for software project failures.
• Software people must learn to listen to the “voice of customers” and
understand their business process during requirements gathering.
Requirements Defects
• Requirements defects are poorly defined requirements, errors in requirements
caused by incorrect, incomplete, missing, or conflicting requirements.
• Defective requirements may result in:
• Project failures
• Expensive rework
• Cost overruns
• Poor quality
• Late delivery
• Dissatisfied customers
• Demoralized developers
Who is the Customer?
• A customer is an individual or organization who derives either direct or
indirect benefit from a product.
• A software customer is an individual or organization who request, pay for,
select, specify, use or receive output generated by a software product.
Who Are Stakeholders? - 1
• To build a useful software, we need to know its requirements.
• To know its requirements, we need to know the stakeholders’ needs.
• Stakeholder is a person or group that has an interest in the software and can
influence the software requirements or can be impacted by the software
product.
• Customers who fund the project or acquire a product to satisfy their
organization’s business objectives.
• Users who interact directly or indirectly with the software product.
• Analysts who write the requirements and communicate them to the
software developers.
• Developers who design, implement and maintain software products.
Who Are Stakeholders? - 1
• Project managers who plan the project and guide the development team to
successful delivery.
• Manufacturing people who must build the products that contain the
software.
• Sales, marketing, field support, and others who will have to work with the
product and its customers.
Questions For You …
• Do you know who your stakeholders are?
• Who else should be considered a stakeholder?
• How many stakeholders are there?
• How familiar are stakeholders with the business?
• What level of skills and knowledge do they have?
• What is a successful solution worth to these stakeholders?
• How much time do we have to solve this problem?
Issues With Stakeholders
• Different perspectives on the software project being developed.
• Different backgrounds can cause communication problems.
• Different objectives which influence views on the requirements.
• Different abilities to express requirements and document them.
• Different involvement, some can make decisions and others may not.
Calling all stakeholders …
• The first step in requirements engineering is to identify everyone who
should participate in defining the requirements.
• Each person has different perspectives on requirements:
• Customers
• Users
• Indirect users/Support personnel
• Managers
• System engineer/Sales & Marketing people
• Software developers
Prioritize Stakeholders
• Not all stakeholders are equally important, so it is essential to
prioritize the identified stakeholder roles into: critical, major and
minor, to avoid risk in a software project by neglecting a stakeholder:
• If neglect might make the system useless or destroy the project, the
role is critical.
• If neglect would have significant negative impact, the stakeholder has
a major role.
• If neglect would have marginal impact then the stakeholder has a
minor role.
Key Requirements Concept
Software engineers must answer these questions:
• Who are stakeholders?
• What do they want?
• Where could it work?
• Why do they want it?
• How will we know?
• When should we build it?
The Facts Are …
• If you do not get the requirements right, it doesn’t matter how well you
execute the rest of the project.
• Requirements development is a discovery and invention process.
• Requirements change happens.
• Stakeholders are not always right, but they always have a point.
• Stakeholders involvement is the most important factor to the project.
Key Concepts
• Know who your stakeholders are.
• Understand stakeholders’ needs.
• Transform stakeholders’ needs into business requirements.
• Specify requirements based on priority:
• Critical requirements
• Major requirements
• Minor requirements
• Understanding the intent
Summary
• Requirements Engineering is the first opportunity to “mess up” the project.
• Many software developers are not trained in Requirements Engineering.
• Requirements Engineering activities must start early in the project.
• Software developers must understand stakeholders’ roles.
• Requirements are the primary reason for most project failures.
QA
Những vấn đề chưa rõ?
The end

THANK YOU

You might also like