You are on page 1of 40

Requirement

Engineering
Requirement Engineering Process
 Requirement Engineering (RE) is the process that
requires all of the activities required to create and
maintain a system requirements document.
 RE provides the appropriate mechanism for
understanding ;
1. What customer needs
2. Analyzing need
3. Assessing feasibility
4. Negotiating a reasonable solution
5. Specifying the solution unambiguously
6. Validating the specification
7. Managing requirements as they are transformed into an
operational system.
Requirement Engineering Process
 RE process can be described in five distinct steps

 Requirement Elicitation
 Requirement analysis and negotiation
 Requirement Specification
 System Modeling
 Requirement Validation
 Requirement Management
The Requirements Engineering Process

Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements

Requirements
document
Requirement Elicitation

 Ask the customer, user and others what are the


objectives for the system or product.
 What is to be accomplished
 How the system or product fits into the needs of the
business
 How the system or product is to be used on a day to
day basis which quite hard and difficult.
 Somerville and Sawyer suggest a set of detailed
guidelines for requirement elicitation:
 Assess the business & technical feasibility for the
proposed system
 Identify the people who will help specify
requirements and understand their organizational
bias.
 Define the technical environment (e.g Computing
architecture, operating system, telecommunications
needs) into which the system or ;product will be
placed.
 Identify domain constraints
 Define one or more requirement elicitation methods
(e.g interviews, focus groups, team meetings)
 Solicit participation for the collection of different point
of views.
 Identify ambiguous requirements as candidates for
prototyping
 Create usage scenarios
 Factors due to which requirement Elicitation
is difficult

 Scope : If the boundary of the system is ill defined


or the customer / user specify unnecessary details
that may confuse.
 Understanding The customers are not sure what is
needed.
 Volatility The requirements change over time.
 Requirement Elicitation work products :
 A statement of need and feasibility
 A bounded statement of scope for the system or product
 A list of customers, users and stakeholders who participated in
the Reqt Elicitation activity
 A description of system’s technical environment.
 A list of requirements (preferably organized by function) and
domain constraints that apply to each.
 A set omf usage scenarios
 Any prototype developed tobetter define requirements

Each requirement is reviewed by people who participated in


requirement elicitation.
Requirement Engineering Process

 In reality these processes cannot be performed sequentially


 All process are intertwined and performed repeatedly
 Elicitation is not universally accepted
 Identifying
 Gathering
 Determining
 Formulating
 Extracting
 Exposing
Requirement
 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.
*F.P Brooks

“How can we ensure the specified system properly meets


customer’s needs and satisfy the customer expectation?”
Requirements
 A Software Requirement is a software capability that
must be met or possessed by a software component in
order to satisfy a contract, standard, or specification.
 The source of these Requirements could come from
 Client
 Customer
 Buyers,
 Operators, People
 Users/End user, or system specifications
Requirement Engineering
 The description of the services and constraints are
the requirements for the system and
 The process of
 Finding out,
 Analyzing,
 Documenting and
 Checking these services and Constraints are called
Requirements Engineering.”

Ian Sommerville
Requirement Engineering

 A process in which “what is to be


done” is
 Elicited (produce or draw out a response or reaction)
 Modeled and
 Communicated.
Freeman
Requirement Engineering
 It is the process that involves all of the
activities required to create and maintain a
system requirements document.
Why are requirements important?
 The requirements are how we communicate
 They are the only part that everyone understand

CUSTOMER

USER DEVELOPER

Requirements
How Programs Are Usually
Written …

The requirements The developers This is how the


specification was understood it in problem is
defined like this that way solved now

This is how the program is


described by marketing
That is the program after This, in fact, is what the
department
debugging customer wanted … ;-)
Why are requirements important?
 Inconsistent and incomplete requirements are the
most frequent causes of the system problems
Incomplete requirements

Lack of user involvement

Lack of resources

Unrealistic expectations

Lack of executive support

Changing requirements

Lack of planning

System no more needed

10% 20% Causes of the failed projects


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
Requirements Types
 Needs
 are the capabilities and characteristics
required in the software system to solve the
problem.
 Wishes
 are the capabilities and characteristics of the
software system desired by the users.
 Expectations
 are the capabilities and characteristics of the
software system expected by the users.
Formats of SRS
 Production of System Specification
 Written document
 Graphical model
 Formal mathematical model
 Usage scenarios
 Prototype
 Any combination of above
Role of Software Requirements
 Software Requirements serve two major roles
in a developmental effort.
 They describe what to develop and
 Describe when the development is completed.
 Requirement Document
 Contains all the Software Requirements of the
system that is to be developed
 It communicates the customers needs,
wishes, and expectations to the developers of
the system
Role of Software Requirements

A requirement document may include


descriptions of:
 The required computational functionality
 A description of the system behavior
 Guidelines for the user interface
 Technical aspects of the Hardware / Software Interface
 Operational characteristics
Role of Software Requirements

 Second role is to form the basis for determining


 When the software product is finished.
 The verification of the software functionality against the
requirements document serves to demonstrate that the
contractual agreement between the customer and developers
has been met and generally implies the end of the
development phase.
Requirements Types

 Functional Requirements
 The functional requirements define the fundamental actions
that the software must perform.
 The actions describes accepting inputs, processing, and
generating the outputs.
 Behavioral or Non Functional Requirements
 The behavioral requirements define the actions taken when
the software responds to internal and external stimulus. This
includes describing what event causes an activity to start up
and the event that causes it to stop.
Requirements Types

 Performance Requirements
 The performance requirements specify the numeric
requirements that are placed of the software as well as on
the human interaction with the software.
 Examples of performance requirements may include:
 Number of data transactions with in a certain time frame

 Number of simultaneous users

 Number of terminals to be supported


Requirements Types
 Operational Requirements
 Are usability of the software as it communicates with its human users.
This may include information concerning the
 qualifications of the users,
 level of detail for external messages, and
 Graphical User Interface standards.
 The constraint requirements
 Define any restrictions that will impact the software that is being
developed. Constraint requirements deal with:
 Design / Development restrictions. Example: Target hardware and

programming language.
 Environment Restrictions. Example: Software size and resource

utilization.
 Data Restrictions. Example: Maximum number of files and size of

files.
Participants
 Buyer
 The buyers are the individuals that are responsible for
the acceptance of the software.
 A buyer can be an internal department of an
organization, external customer, or the general public.
 Whatever the origins, the buyers are responsible for
contracting or paying for the software system.
 End-User
 The end-users are the individuals who ultimately uses
the system to perform some predefined set of tasks.
 Ultimately, the end-users will be the individuals who
install, operate, and use the software.
Participants
 Application Experts
 The application experts are the individuals who provide domain
knowledge and supplies a more detailed understanding of the
problem.
 Software Engineers
 The software engineers are the individuals who provide expertise
on software design, prototype development, and technical
feasibility. The software engineers works closely with the end-
users, buyers, and application experts.
 Requirements Engineer
 The Requirements Engineers are the individuals who are
responsible for the identification and documentation of the
requirements. These individuals are also the mediate between
the buyers, end-users, application experts, and the software
engineers.
Participants Activities
 Context Analysis
 Determines the underlying need of why the software is to be
created.
 The technical, operational, and economic boundaries are
determined and the scope of the software system is documented.
 Requirements Elicitation
 The requirements elicitation activity creates the required
knowledge structure by gathering requirement related information.
 Techniques for requirement Elicitations are :
 Joint Application Development
 Questionnaires
 Interviews
 Observation of operational environments
Participants Activities
 Requirements Assessment
 The requirements assessment activity performs a risk
assessment on the documented software requirements.
 The goal of this activity is to achieve an acceptable level of
risk concerning the potential problems of:
 Inconsistencies with the software requirements
 Ambiguities


Incompleteness
 Exploration of design Feasibility
 The exploration of design feasibility activity is concerned with
assessing technical feasibility and
 Making requirements tradeoffs may require a demonstration
that a feasible software design does exist.
Participants Activities
 All requirements that are identified during the
Requirement Engineering activities are
documented in the Software Requirements
Specification (SRS). The goal of the SRS is to
describe all externally observed behaviors
and characteristics expected of the software
system.
Software Requirements Document

 SRS (Software Requirement specification)


 The official statement of what is required by the
system developers
 The goal of the SRS is to describe all externally
observed behaviors and characteristics expected of
the software system
 Includes user requirements and system requirements
 Standards for SRS
 RUP
 IEEE
 Ian Summerville
Characteristics of SRS
 Correct
 Every requirement stated in the SRS is one that the
software shall meet
 Unambiguous
 Every requirements stated in the SRS only has 1
logical interpretation
 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.
Characteristics of SRS
 Consistent
 No subset of individual requirements stated in the SRS
conflict with other individual requirements
 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 which retaining the
structure and style.
Characteristics of SRS
 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.
 Advantages
 The SRS can establish the bases for contractual
agreement between the customer and developers.
 The SRS can establish the bases for performing cost,
schedule, and resource estimates for the
developmental effort.
 The SRS can provide a baseline for verification and
validation of the software.
IEEE Standard
 Introduction

 Purpose of the requirement document


 Scope of the product

 Definitions, acronyms, and abbreviations

 References
IEEE Standard
 General description

 Product Perspective
 Product functions
 User characteristics

 General constraints

 Assumption and dependencies


 Specific Requirements
 Appendices
 Index
The Requirements Engineering Process

Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements

Requirements
document
Requirement Engineering Process

 In reality these processes cannot be performed sequentially


 All process are intertwined and performed repeatedly
 Elicitation is not universally accepted
 Identifying
 Gathering
 Determining
 Formulating
 Extracting
 Exposing

You might also like