Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 39

Atsa Etoundi Roger

Full professor
University of Yaounde
I
atsa.etoundi@ict4d.cm
Waterfall Model
The Requirement Engineering
Process
The process of establishing what services are required and the
constraints on the system’s operation and development
Requirements engineering help software engineers to better
understand the problem they will work to solve. It encompasses
the set of tasks that lead to an understanding of what the
business impact of the software will be, what the customer
wants and how end-users will interact with the software.

Requirement Engineering Process


 Feasibility Study
 Requirements elicitation and analysis
 Requirements Specification
 Requirements Validation
Process activities
 Domain understanding
 Requirements collection
 Classification
 Conflict resolution
 Prioritisation
 Requirements checking
The Requirements Engineering
Process
Feasibility studies
 A feasibility study decides whether or
not the proposed system is worthwhile
 A short focused study that checks
 If the system contributes to organisational objectives
 If the system can be engineered using
current technology and within budget
 If the system can be integrated with other systems
that
are used
Feasibility study
implementation
 Based on information assessment (what is
required), information collection and report writing
 Questions for people in the organisation
 What if the system wasn’t implemented?
 What are current process problems?
 How will the proposed system help?
 What will be the integration problems?
 Is new technology needed? What skills?
 What facilities must be supported by the
proposed system?
Requirements Elicitation
It is the practice of obtaining the requirements of a system
from users, customers and other stakeholders. The practice is
also sometimes referred to as Requirement gathering.

Requirements elicitation practice include the following:


 Interviews
 Questionnaires
 User observation
 Workshops
 Brain storming
 Use cases
 Role playing
 And prototyping
Requirements Elicitation
 Problems of Requirement Elicitation
 Problems of scope: The boundary of system is
ill- defined. Or unnecessary details are provided.
 Problems of understanding: The users are not sure
of what they need, and don’t have full understanding of
the problem domain.
 Problems of volatility: the requirements change
overtime.
Requirements Elicitation
 Guidelines of Requirements Elicitation
 Assess the business and technical feasibility for the proposed system
 Identify the people who will help specify requirements.
 Define the technical environment (e.g. computing architecture,
operating system, telecommunication needs) into which the system or
product will be placed
 Identify “domain constraints” (i.e. characteristics of the
business environment specific to the application domain) that
limit the functionality or performance of the system or product
to build
 Define one or more requirements elicitation methods (e.g. interviews,
team meetings, ..etc)
 Solicit participation from many people so that requirements are
defined from different point of views.
 Create usage scenarios of use cases to help customers/ users better
identify key requirements.
Requirements Analysis
 Requirements Analysis, determining whether
the stated requirements are clear, complete,
consistent and unambiguous.
Requirements Analysis
 Stakeholder Identification
 Stakeholders are people or organizations that have a
valid interest in the system. They may be affected by
it directly or indirectly.
 Stake holders may include:
 Anyone who operates the system
 Anyone who benefits from the system

 Anyone involved in purchasing or procuring the system

 People opposed to the system (negative stakeholders)

 Organizations responsible for the system


Requirements Analysis
 Stakeholder Interviews
 Interviews are a common technique used in
requirement analysis.
 This technique can serve as a means of obtaining
the highly focused knowledge from different
stakeholders perspectives
Requirements Analysis
Types of Requirements:
 Customer Requirements:
 Operational distribution or deployment: Where will the system
be used?
 Mission profile or scenario: How will the system accomplish its
mission objective?
 Performance and related parameters: What are the critical
system parameters to accomplish the mission?
 Utilization environments: how are the various system components
to be used?
 Effectiveness requirements: How effective or efficient must the
system be in performing its mission?
 Operational life cycle: How long will the system be in use by
the user?
 Environment: what environments will the system be expected
to operate in an effective manner?
Requirements Analysis
 Types of Requirements:
 Architectural Requirements:
 A formal description and representation of a system,
organized in a way that support reasoning about the
structure of the system which comprises system
components, the externally visible properties of those
components, the relationships and the behavior between
them, and provides a plan from which products can be
procured and systems developed, that will work together to
implement the overall system.
Requirements Analysis
 Types of Requirements:
 Functional Requirements:
 Defines functions of a software system or its components.
They may be calculations, technical details, data
manipulation and processing and other specific
functionality that define “what a system is supposed to
accomplish?”
 They describe particular results of a system.

 Functional requirements are supported by Non-functional


requirements.
Requirements Analysis
 Types of Requirements:
 Non-Functional Requirements:
 They are requirements that specify criteria that can be used to
judge the operation of a system, rather than specific behavior.
 Functional requirements define what the system is supposed to
do, whereas non-functional requirements define how a system is
supposed to be.
 Non-functional requirements can be divided into two
main categories:
 Execution qualities, such as security and usability, which are
observable at runtime.
 Evolution qualities, such as testability, maintainability and
scalability.
System models
 Different models may be produced during
the requirements analysis activity
 Requirements analysis may involve three
structuring
activities which result in these different models
 Partitioning. Identifies the structural (part-
of) relationships between entities
 Abstraction. Identifies generalities among entities
 Projection. Identifies different ways of looking at
a problem
Problems of requirements
analysis
 Stakeholders don’t know what they really want
 Stakeholders express requirements in their own
terms
 Different stakeholders may have conflicting
requirements
 Organisational and political factors may influence
the system requirements
 The requirements change during the analysis
process. New stakeholders may emerge and the
business environment change
Elicitation and analysis
 Sometimes called requirements
elicitation or requirements discovery
 Involves technical staff working with customers to
find out about the application domain, the services
that the system should provide and the system’s
operational constraints
 May involve end-users, managers, engineers
involved in maintenance, domain experts, trade
unions, etc. These are called stakeholders
Requirements Specifications
 Requirements Specification is the direct result
of a requirement analysis and can refer to:
 Software Requirements Specification
 Hardware Requirements Specification
Requirements Specifications
 A Software Requirements Specification (SRS) – a
requirements specification for a software system – is
a complete description of the behavior of a system to
be developed. It includes a set of use cases that
describe all the interactions the users will have with
the software. In addition to use cases, the SRS also
contains non-functional requirements (such as
performance requirements, quality standards, or
design constraints)
Requirements Specifications
A Software Requirements Specification (SRS)
 The software requirement specification document enlists all
necessary requirements for project development. To derive the
requirements we need to have clear and thorough understanding
of the products to be developed.
 A general organization of an SRS is as follows:
 Introduction
 Purpose, Scope, Definitions, System Overview, References
 Overall Description
 Product Perspective, Product functions, User characteristics,
constraints, assumptions and dependencies.
 Specific Requirements
 External Interface requirements, functional requirements,
performance requirements, design constraints, logical
database requirement, software system attributes.
Requirements Validation and
Verification
 Validation (& Verification), is the process of
checking whether the requirements, as identified, do
not contradict the expectations about the system of
various stakeholders and do not contradict each
other.
 It is Requirements Quality Control
Validation Vs. Verification
 Validation: “Am I building the right product?”
checking a work product against higher-level
work products or authorities that frame this
particular product.
 Requirements are validated by stakeholders

 Verification: “Am I building the product right?”


checking a work product against some standards
and conditions imposed on this type of product and
the process of its development.
 Requirements are verified by the analysts mainly
More about validation
 Requirements validation makes sure that
requirements meet stakeholders’ goals and don’t
conflict with them.
 Concerned with demonstrating that the
requirements
define the system that the customer really wants
 Requirements error costs are high so validation is
very important
 Fixing a requirements error after delivery may cost up
to 100 times the cost of fixing an implementation error
Characteristics of a good
requirement
 Feasible
 Valid
 Unambiguous
 Verifiable
 Modifiable
 Consistent
 Complete
 Traceable
Requirements checking
 Validity. Does the system provide the functions
which best support the customer’s needs?
 Consistency. Are there any requirements
conflicts?
 Completeness. Are all functions required by the
customer included?
 Realism. Can the requirements be implemented
given available budget and technology
 Verifiability. Can the requirements be checked?
Requirements validation
techniques
 Requirements reviews
 Systematic manual analysis of the requirements
 Prototyping
 Using an executable model of the system to check
requirements. Covered in Chapter 8
 Test-case generation
 Developing tests for requirements to check testability
 Automated consistency analysis
 Checking the consistency of a structured
requirements description
Requirements reviews
 Regular reviews should be held while the
requirements definition is being formulated
 Both client and contractor staff should be involved
in
reviews
 Reviews may be formal (with completed
documents) or informal. Good communications
between developers, customers and users can resolve
problems at an early stage
Review checks
 Verifiability. Is the requirement realistically
testable?
 Comprehensibility. Is the requirement
properly understood?
 Traceability. Is the origin of the requirement
clearly
stated?
 Adaptability. Can the requirement be changed
without a large impact on other requirements?
Requirements management
 Requirements management is the process of
managing changing requirements during the
requirements engineering process and system
development
 Requirements are inevitably incomplete and
inconsistent
 New requirements emerge during the process as
business needs change and a better understanding
of the system is developed
 Different viewpoints have different requirements
and these are often contradictory
Requirements change
 The priority of requirements from different
viewpoints changes during the development process
 System customers may specify requirements
from a business perspective that conflict with
end-user requirements
 The business and technical environment of the
system changes during its development
Requirements management
planning
 During the requirements engineering process,
you have to plan:
 Requirements identification
 How requirements are individually identified
 A change management process
 The process followed when analysing a requirements change
 Traceability policies
 The amount of information about requirements relationships
that is maintained
 CASE tool support
 The tool support required to help manage requirements
change
Traceability
 Traceability is concerned with the relationships
between requirements, their sources and the
system design
 Source traceability
 Links from requirements to stakeholders who
proposed these requirements
 Requirements traceability
 Links between dependent requirements
 Design traceability
 Links from the requirements to the design
Social and organisational
factors
 Software systems are used in a social and
organisational context. This can influence or
even dominate the system requirements
 Social and organisational factors are not a single
viewpoint but are influences on all viewpoints
 Good analysts must be sensitive to these factors
but currently no systematic way to tackle their
analysis
Scope of ethnography
 Requirements that are derived from the way
that people actually work rather than the way I
which process definitions suggest that they ought
to work
 Requirements that are derived from cooperation
and
awareness of other people’s activities
Key points
 The requirements engineering process includes a
feasibility study, requirements elicitation and
analysis, requirements specification and
requirements management
 Requirements analysis is iterative
involving domain understanding, requirements
collection, classification, structuring, prioritisation
and validation
 Systems have multiple stakeholders with different
requirements
Key points
 Social and organisation factors influence
system requirements
 Requirements validation is concerned with
checks for validity, consistency, completeness,
realism and verifiability
 Business changes inevitably lead to
changing requirements
 Requirements management includes planning
and change management

You might also like