f22 Sre Lecture 3
f22 Sre Lecture 3
Requirements Engineering
Lecture 3
W4H of Requirements
Today’s Agenda
W4H of Requirements
The Requirements Engineering Process
Requièrent Engineering Process Models
Problem Domain and the System/Ssoftware-to-be
The beginning is the most important part of the work.
RE Process and Related Activities
Why?
Identify Business Needs and Goals
What?
Derive User & Functional Requirements
How? Time
Design Solutions
TIME
Who?
When? Project Management Process
What: The various levels and types of requirements that need to be defined
Why: The benefits of having the right software requirements
Who: The stakeholders of the software requirements and getting them involved in the
process
When: Requirements activities throughout the software development life cycle
How: Techniques for eliciting, analyzing, specifying, and validating software requirements
WHAT
Requirements must be determined and agreed to by: The customers, users,
and suppliers of a software product before the software can be built.
The requirements define the “what” of a software product:
What the software must do – Functional Requirements
The capabilities of the software
What the software must be – Non- Functional Requirements
The characteristics, properties, or qualities of the software
What limitations there are on the choices
When implementing the software.
Levels and Types of Requirements
What information the practitioners need to elicit, analyze,
specify, and validate when they define their software
requirements.
Business Level
• Business requirements define :
• The business problems to be solved or the
business opportunities to be addressed by the
Business software product.
Requirements • Why the software product is being developed.
A quality
attribute may also translate into product-level nonfunctional
requirements:
Specify the characteristics the software must possess in order to meet that attribute.
Example: an ease-of-use requirement might translate into nonfunctional requirements for
response time to user commands or report requests.
Product Level
• The software functionality must be built into the
product to enable users to accomplish their tasks.
Functional • Satisfying the business requirements.
Requirements
Example: The requirements that the users can swipe their credit card might
translate into multiple functional requirements including requirements for the
software to:
• Prompt the customer to put his or her card into the reader
• Detect that the card has been swiped
• Determine if the card was incorrectly read and prompt the customer to
swipe the card again
• Parse the information from the magnetic strip on the card
Product Level Requirements
External
Interface Requirements : The requirements for the information flow across: shared interfaces to
hardware, users, and Other software applications outside the boundaries of the software product being developed.
Constraints:Anyrestrictions imposed on the choices that the supplier can make when designing and
developing the software.
Forexample, there may be a requirement that the completed software use no more than50 percent of available
system memory or disk space in order to ensure the ability for future enhancement.
DataRequirements:The specific data items or data structures that must be included as part of the software
product.
For example, a payroll system would have requirements for current and year-to-date payroll data.
Product Requirement Document: A product requirements document (PRD) is a document written by a company
that defines a product they are making, or the requirements for one or more new features for an existing product.
Product Level Control
Flow
The software may be part of a much larger
system that includes other components.
In this case, the business and user-level
requirements feed into the product
requirements at the system level.
The system architecture allocates
requirements from the set of system
requirements downward into the software,
hardware, and manual operations
components.
Why
The hardest part of building a software system is deciding precisely what to build. No other
part of the conceptual work is as difficult as establishing the detailed technical requirements,
including all of the interfaces to people, to machines, and to other software systems.
No other part of the work so cripples the resulting system if done wrong.
No other part is more difficult to rectify later”
Fredrick Brooks
Eliciting,
analyzing, and writing good requirements are the most difficult parts of software
engineering.
“If you don’t get the requirements right, it doesn’t matter how well you do anything else.”
One can end up doing a perfect job of building the wrong product.
Karl Wiegers
Why
Non serious Requirements surface:
many issues that can have a negative impact on software development projects and products:
These issues include:
Incomplete requirements
Lack of user involvement
Requirements churn
Wasted resources
Gold plating
Inaccurate estimates
Incomplete Requirements
Requirements Consequences
Incomplete building a software product that does not meet all of the
Requirements
Noritaki customer
Kano developed a model of the and user’s needs
relationship between customer satisfaction and quality
requirements
Kano Model
Expected Quality:
The expected quality line represents those quality requirements that the customer explicitly states.
For example, they will state their preferences for the make, model, options etc.
Dissatisfied if not met
Satisfaction increases if met
The expected quality requirements are the ones practitioners can elicit fairly easily if they talk to the product’s stakeholders.
Basic quality requirements A customer expects the product to have
Absence dissatisfaction
Exciting quality is the innovative requirements level and represents unexpected items
it is easy to miss both the basic and exciting quality requirements if:
Req Engr do not do a thorough job of detailed requirements elicitation and analysis or
miss a stakeholder group or
if they do not get the users involved in the process,
they can end up with gaps even in their expected requirements.
Requirements Churn
Requirements Consequences
changes in the requirements after they are initially agreed to
and base lined
Change may be:
Requirements Churn
• A part of refining developers’ understanding
• Because of changes in the environment or
• The user’s needs over time that occur as a natural part
of a project.
• If requirements are poorly defined
• Missing requirements
• Poorly written or ambiguous requirements
39
What is the right system to build ?
40
The Requirements Engineering Process
RE activities and documents (Wiegers)
There needs to be an arrow from
User requirements to System
requirements. (The system has to be
able to perform certain use cases.
The same use cases must be
supported by the software,
therefore become Software
requirements.)
Business rules (including standards
and regulations) are not only non-
functional, they also include
functional aspects (as shown by the
arrows in the diagram).
42
RE process model (suggested by Bray)
Again, this diagram shows
• RE activities (elicitation, analysis,
specification, HMI design)
• subsequent design activity (internal design)
• RE documents (elicitation notes,
requirements, specification, HMI specification)
Important point:
Distinction between
• Problem domain (described by requ. doc.)
• System (to be built) (described by spec.
doc.)
Note: One has to distinguish between current
(problematic) version of the problem domain,
and the projected future version which
includes the system to be built.
43
Typical Layered Approach (V-shaped)
45
System modelling
System modelling helps the analyst to understand the
functionality of the system and models are used to communicate
with customers
Different models present the system from different perspectives
External perspective showing the system’s context or environment
Behavioural perspective showing the behaviour of the system
Structural perspective showing the system or data architecture
Requirements and Modeling go together
The system engineering sandwich!
Why combining RE with modeling ?
For analysis – models help to understand the problem domain
For documentation – models can be used for describing
requirements (instead of solely using natural language)
Source: http://www.telelogic.com/download/paper/SystemsEngineeringSandwich.pdf
47
Different Levels of Details by Sandwich
Source: Donald C. Gause, Risk Focused Requirements Management, Tutorial at RE’09, September 2009
50
The Problem Domain and the
System/Software-to-be
What is a System
Part of a reality that can be observed and interact with the environment
Every system has a boundary
Get inputs and send outputs
Almost always composed of smaller sub-systems
Examples
Cars, weather, universe, Cardiovascular
Operating Systems
Database Servers
Organizations
Not Systems
Numbers
Letters
The Four Worlds
Subject World: Things that need to be used in the information system e.g. Account, Transaction
in a bank account, Collision Alert
Usage World: The environment where the future system will operate
People (Manager, Clerk, Customer)
Business Process (Withdraw money, Evasive Action (Plane))
System World:
What the system does within its operational environment?
What is the information needed ?
What functions should be performed? (System records log of use, System gives account Balance,
System monitors patient)
Development World: (Process, Team, Schedule, Qualities (Non-Functional Requirements) e.g.
System to be delivered in 12 months, Team should not exceed 12 people .
System Boundary
The part of the world that interacts with the system
Every system has a subsystem
The environment in itself is a system
Choosing Boundaries
Maximize modularity
Telephone system – switches, phone lines, handsets, users, account
Desktop Computer - ?
Tips
Exclude things that have no functional effect on the system
Exclude things that influence the system but cannot be influenced or controlled by the system
Include things that can be strongly influenced or controlled by the system
Problem Domain
The problem domain is the context for requirements
Part of the world within which the problem exists
Needs to be understood for effective requirements engineering
Domain model
Set of properties assumed / believed to be true about the environment
Properties relevant to the problem
Problem domain requirements should hold in the proposed new version of the domain.
58
Problem Domain and System-to-be
• My Elevator is slow
• My Elevator is slow
•Why is that a problem ?
• Well it’s a problem because
people complaint about the lines
•How better should it be?