Lecture 04 RE
Lecture 04 RE
Engineering
by
Dr. Rizwan
Software Requirement
3
4
Produced or Provided
5
Requirement
Can be
functionality
constraint
How? the
System
system
Property or
should
Attributes
behave
Constraint on
What?
the
should be
development
implemented
process
Requirement
Need and Want
8
Requirements Engineering
The hardest single part of building a software system is
deciding what to build… No other part of the work so
cripples the resulting system if done wrong. No other part
is more difficult to rectify later.
9
Requirement Engineering Vs
Architecture and Design
Functional requirements
Non-Functional requirements
Domain requirements
Business Requirements
UI Requirements
Inverse Requirements
Design and Implementation Constraints
11
Functional and Non-Functional Requirements
Functional requirements
Statements of services the system should provide, how
the system should react to particular inputs and how the
system should behave in particular situations.
May state what the system should not do.
Functional system requirements should describe the
system services in detail.
Customers and developers usually focus all their
attention on functional requirements
12
Functional Requirements
13
Non-functional Requirements
Constraints on the services or functions offered by the
system such as timing constraints, constraints on the
development process, standards, etc.
Often apply to the system as a whole rather than individual
features or services.
These define system properties and constraints e.g.
reliability, response time and storage requirements.
Constraints are I/O device capability, system
representations, etc.
Process requirements may also be specified mandating a
particular IDE, programming language or development
method.
14
Non-Functional Requirements
15
Non-Functional Requirements
They are often more critical than individual functional
requirements
Capture the emergent behavior of the system, that is they relate to
system as a whole
Failure to meet a non-functional system requirement may make
the whole system unusable
If an aircraft system does not meet reliability requirements, it will
not be certified as ‘safe’
If a real-time control system fails to meet its performance
requirements, the control functions will not operate correctly
Non-functional requirements may arise through user needs,
because of Budget constraints, organizational policies, need of
interoperability with other software and hardware systems,
external factors such as safety regulations, privacy legislation,
etc.
16
Non-Functional Requirements
18
Metrics for Non-Functional Requirements
Reliability
Mean time to failure
Probability of unavailability
Rate of failure occurrence
Availability
Portability
Percentage of target-dependent statements
Software Requirement Types
User Requirement vs.
System Requirement
User requirements
Statements in natural language plus diagrams of the services the
system provides and its operational constraints. Written for
customers.
System requirements
A structured document setting out detailed descriptions of the
system’s functions, services and operational constraints. Defines
what should be implemented so may be part of a contract
between client and contractor.
Stakeholders
Stakeholder types
End users
System managers
System owners
External stakeholders
Software Engineering: Goal
29
Why Engineer Requirement
30
Why Engineer Requirement
The requirements are how we communicate
They are the only part that everyone understand
CUSTOMER
USER DEVELOPER
Requirements
Why Engineer Requirement
Why Engineer Requirement
Causes of the failed projects
Incomplete requirements
Lack of resources
Unrealistic expectations
Changing requirements
Lack of planning
10% 20%
Inconsistent and incomplete requirements are the most frequent causes of the system
problems
Why Engineer Requirement
Wicked problems
Most large software systems address wicked problems
Problems which are so complex that they can never be
fully understood and where understanding evolves during
the system development
Therefore, requirements are normally both incomplete and
inconsistent
Why Engineer Requirement
36
Why Engineer Requirement
38
Without Requirement Engineering
After Requirement Engineering
Requirements Engineering Process
Ian Sommerville
Requirement Engineering (Cont.)
49
Requirement Engineering Process
RE involves:
Identification of user requirements,
Analysis of the requirements to drive additional requirements,
Documentation of the requirements as a specification
Validation of the documented requirements against user
needs, as well as processes that support these activities.
Requirement Engineering Process
Requirement Engineering Process
Communication Barriers
Communication is not a single direction information flow
Users and developers come from different worlds and have
different professional vocabularies
The users have different concerns from those of developers
Medium of communication-Natural language are inherently
ambiguous
People involved are different-some are submissive, some
are assertive
There are different value system among people
Difficulties in Requirement Elicitation
Problem Complexity
The complexity of modern software system makes the
process of requirements elicitation extremely difficult.
These systems have interconnections between subsystems
and environments that even expert in specialized disciplines
have difficulty understanding.
Nature of Requirements
Requirements change and migrate
Users learn and grow
Requirements are diverse and conflicting
Multiple views can be difficult to integrate
Requirements can be difficult to evaluate.
Difficulties in Requirement Elicitation
Interpret,
Understand,
Analysis Phase
Involves great detail
what the information system needs to accomplish
In order to provide the organization
with the desired benefits.
Analysis
Analysis means looking into the problem,
investigating.
Its purpose is to understand the business
requirements “WHAT” through problem domain
understanding so as to suggest solution in
accordance to user requirements.
This is only possible when analysis is brought under
consideration.
Be sure you really understand problem!
Refine, simplify, clarify, think. Repeat.
Decompose it into sub-problems
First ideas are NEVER the best ones.
Analysis
66
Why Analyze Software
67
Why Analyze Software
Complexity
Due to larger size of software
IEEE
Ian Summerville
Requirement Engineering Process
Characteristics of SRS
Correct
All requirements stated in the SRS are one that the
logical interpretation.
Characteristics of SRS
Unambiguous Requirements
Requirement Engineering Process
Complete
The SRS includes all significant requirements
The SRS includes all realizable classes of input
data
The SRS includes full labels and references to
all figures, tables and diagrams.
With requirement engineering
All screens must When the user
accesses any screen,
Without requirement engineering
appear on the
it must appear on the
monitor quickly. monitor within 2
How long is seconds.
quickly?
Incomplete Requirements
With requirement engineering
On power loss,
Without requirement engineering
battery backup
must support On power loss ,
normal operations. battery backup must
support normal
For how long? operations for 20
minutes.
Incomplete Requirements
Requirement Engineering Process: An
Example of Incompleteness
Incomplete Requirements
D grade at 47
No grading criteria is defined e.g. Relative marking,
Absolute marking etc.
Requirement Engineering Process
Characteristics of SRS
Verifiable
For every requirement stated in the SRS, there exists
some finite cost-effective process with which a person or
machine can check that the software meets the
requirements.
Modifiable
The entire SRS has a style and structure such that any
changes to the requirements can be made
Easily,
Completely, and
Consistently and retaining the structure and style.
Requirement Engineering Process
Consistent
No subset of individual requirements stated in the
SRS conflict with other individual requirements.
Requirement Engineering
Traceable
For every requirement stated in the SRS, it is
clear of the requirements origin and it is possible
to reference each requirement in future
developments.
Traceability in Requirement Engineering
Requirement Engineering
Verification of
the SRS
Document
Requirement Engineering Process
Advantages of SRS
The SRS can establish the basis for contractual
agreement between the customer and developers.
The SRS can establish the basis for performing cost,
schedule, and resource estimates for the
developmental effort.
The SRS can provide a baseline for verification and
validation of the software.
Requirements Reviews
88
Requirements Review Process
Follow‐up Revise
actions documents
89
Review Activities
Plan review
The review team is selected and a time and place
for the review meeting is chosen.
Distribute documents
The requirements document is distributed to the
review team members.
Prepare for review
Individual reviewers read the requirements to find
conflicts, omissions, inconsistencies, deviations
from standards and other problems.
90
Review Activities Cont.
Hold review meeting
Individual comments and problems are
discussed and a set of actions to address the
problems is agreed.
Follow-up actions
The chair of the review checks that the agreed
actions have been carried out.
Revise document
The requirements document is revised to
reflect the agreed actions. At this stage, it may
be accepted or it may be re-reviewed.
91
Types of SRS
Production of System Specification
Written document
Graphical model
Formal mathematical model
Usage scenarios
Prototype
Any combination of above
Outcomes of Requirement Engineering
Tangible
Intangible
Outcome of a Good Requirement
Engineering Process
Users Perspective
The users will have a better understanding of their needs and
constraints.
The users will be in a position to evaluate alternatives and
understand the implications of their decisions.
This level of understanding is extremely important since it is
usually the users who drives the requirements, which in turn
drives the design and implementation of the entire software
system.
Thus, the quality of the requirements document is related to
the users understanding of the issues and tradeoffs involved.
Outcome of a Good Requirement
Engineering Process
Users Perspective
The users and the developers form a common vision of
the problem and the conceptualized software solution.
To strive for this common understanding of all
individuals involved in the software engineering
process
A sense of ownership
Feel informed and educated
Committed to the success of the project
Outcome of a Good Requirement
Engineering Process
Developers Perspective
This is the fundamental process that will be used
to construct a clear high level specification of the
problem that is to be solved.
Other outcomes of a good elicitation process are
developers who:
Are developing a solution to the right problem
Are solving a problem that is feasible from all
perspectives
Have a high level specification of the solution
Have cooperative users
Outcome of a Good Requirement
Engineering Process
Developers Perspective
Have all the necessary information, explanations, and
justifications
Can make proper design justifications
Need minimal ongoing interactions with the users
They have trust and confidence of the customer
Knowledge of the domain of the system
Agile Methods and Requirements
100
Mastering the Requirements Process – Third Edition,
Page # 24
101
102
103
104
105
106
107
108
109