Professional Documents
Culture Documents
SE - Requirement Engineering
SE - Requirement Engineering
Engineering
Overview
• Describe requirement engineering activities
and processes.
• Look into techniques, problems, challenges of:
– Feasibility Studies
– Requirements elicitation
– Requirement specification
– Requirements Validation
– Requirements management and evolution
Importance of Requirements
• Making design decisions without understanding
all the constraints on the system to be developed
results in a system which fails to meet customer’s
expectations
• Costs of correcting errors increases as the design
process advances.
• An error detected in the maintenance phase is 20
times as costly to fix as an error detected in the
coding stage.
Cumulative effects of error
The Basics
• A requirement mandates that something be
accomplished, transformed, produced or
provided
• Requirements engineering is the discipline
concerned with understanding the externally
imposed conditions on a proposed computer
system, determining what capabilities will meet
these imposed conditions and and documenting
those capabilities as the software requirements
for the computer system.
Requirements Engineering Process
• The processes used for RE vary widely
depending on the application domain, the
people involved and the organisation
developing the requirements
R e q u ir e m e n ts E n g in e e r in g
R e q u ir e m e n t s E l i c i t a t i o n R e q u i r e m e n t s A n a l y s is
R e q u ir e m e n t s S p e c ific a t io n R e q u i r e m e n t s V e r i f ic a t i o n
R e q u ir e m e n t s M a n a g e m e n t
Requirements Engineering Process
• Requirements elicitation : The process through which
clients and developers review, articulate and understand
the needs of the clients and the constraints on the
software
• requires involvement with the client, domain experts,
and end-users in order to establish an the client’s needs
and the constraints on the system. Here we use
techniques such as: (1) Interviews, (2) Questionnaires,
(3) Focus groups, (4) Apprenticing, and (5) modelling.
Requirements Engineering Process
• Requirements Analysis : The process of analysing the
needs of the clients in order to arrive at a definition of
the requirements
• aims to deepen our understanding of the constraints
and client needs
• Requirements Specification : The process by which a
document is developed which clearly communicates the
requirements.
• The requirements are captured, or expressed, or
articulated, in a software requirements specification.
Requirements Engineering Process
• Requirements Validation : The process of ensuring that
the requirements and the Software Requirements
Specification are in compliance with the needs of the
clients and the system
• techniques here include (1) reviews, inspections and
walkthroughs of requirements, and (2)prototyping.
• Requirements Management and evolution : The
planning and controlling of the requirements
engineering processes. Requirements specification
should evolve with time.
Feasibility Study
Feasibility
• Feasibility studies aim to objectively and rationally
– Uncover the strengths and weaknesses of the existing
business or proposed venture
– Opportunities and threats as presented by
the environment.
– The resources required to carry through.
– Ultimately the prospects for success of the proposition
• In its simplest term, the two criteria to judge
feasibility are cost required and value to be attained.
Types of Feasibility
• The assessment is based on an outline design of
system requirements in terms of Input, Processes,
Output, Fields, Programs, and Procedures.
• Technological feasibility
– carried out to determine whether the company has the
capability, in terms of software, hardware, personnel and
expertise, to handle the completion of the project
– when writing a feasibility report, the following should be
taken to consideration:
• A brief description of the business
• The part of the business being examined
• The human and economic factor
• The possible solutions to the problems
Types of Feasibility
• Economic analysis
used method for evaluating the effectiveness of a new system. More
commonly known as cost/benefit analysis, the procedure is to determine the
benefits and savings that are expected from a candidate system and compare
them with costs. If benefits outweigh costs, then the decision is made to
design and implement the system.
Cost-based study:
It is important to identify cost and benefit factors, which can be categorized
as follows:
1. Development costs
2. Operating costs.
This is an analysis of the costs to be incurred in the system and the benefits
derivable out of the system.
Time-based study:
This is an analysis of the time required to achieve a return on investments.
The future value of a project is also a factor.
Types of Feasibility
• Legal feasibility
Determines whether the proposed system conflicts with legal
requirements, e.g. data processing system must comply with the local
Data Protection Acts.
• Operational feasibility
Operational feasibility is a measure of how well a proposed system solves
the problems, and takes advantage of the opportunities identified during
scope definition and how it satisfies the requirements identified in the
requirements analysis phase of system development.
• Schedule feasibility
A project will fail if it takes too long to be completed before it is useful.
Typically this means estimating how long the system will take to develop,
and if it can be completed in a given time period using some methods
like payback period. Schedule feasibility is a measure of how reasonable
the project timetable is. You need to determine whether the deadlines are
mandatory or desirable.
Types of Feasibility
• Financial feasibility
In case of a new project, financial viability can be judged on the
following parameters:
– Total estimated cost of the project
– Financing of the project in terms of its capital structure, debt equity ratio and
promoter's share of total cost
– Existing investment by the promoter in any other business
– Projected cash flow and profitability
EX:
Summary
Interview : Context Free Question
• Goal is to prevent prejudicing the user’s response to the
questions.
• Examples:
• Context-free questions
INCLUDES:
Functional Requirements
Non- Functional Requirements
Constraints
Design Strategy
Quality and Standards
Architecture
Development Methodology
Sequence Diagram
ATM Database
Card
Card number
Card OK
PIN request
PIN
Option menu Validate card
<<exception>>
invalid card
Card
Card removed
Complete
Cash transaction
Cash removed
Receipt
Activity Diagram
Data Flow Diagram
Validation
Requirements Validation
Validation: ensures that the software being developed will satisfy it
stakeholders
– Requirements Validation checks the software
requirements specification against stakeholders
goals and requirements
Verification:
ensures that each step followed in the process of building the soft
ware yields the right products
– Requirements Verification checks the consistency of
the software requirements specification artifacts and other
Software development products (design, implementation, ...) again
st the specification
Typical Requirements V&V
approaches
• Tracing approaches
• Prototyping
• Testing
• User manual writing
• Formal validation
• Reviews and inspections
• Walkthroughs
• Formal inspections
• Checklists
Requirements Management and Evolution
Definition
Requirements management is the process of documenting,
analyzing, tracing, prioritizing and agreeing on requirements and
then controlling change and communicating to relevant
stakeholders.