0% found this document useful (0 votes)
35 views38 pages

Chapter Three

Chapter Three discusses Requirement Engineering, defining requirements as statements that identify system capabilities essential for project success. It outlines the types of requirements, including business, user, functional, and non-functional, and details the Requirement Engineering process, which includes feasibility studies, requirement elicitation, analysis, specification, validation, and management. The chapter emphasizes the importance of clear and well-managed requirements to avoid project failures and ensure stakeholder satisfaction.

Uploaded by

sami21.good.bad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views38 pages

Chapter Three

Chapter Three discusses Requirement Engineering, defining requirements as statements that identify system capabilities essential for project success. It outlines the types of requirements, including business, user, functional, and non-functional, and details the Requirement Engineering process, which includes feasibility studies, requirement elicitation, analysis, specification, validation, and management. The chapter emphasizes the importance of clear and well-managed requirements to avoid project failures and ensure stakeholder satisfaction.

Uploaded by

sami21.good.bad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Chapter Three

Requirement
Engineering

01/22/25 Software Component Design (SENG 4093) 2


Outlines
What is requirement?
What is Requirement Engineering?
Software Requirement and their type
Requirement Engineering Process
Software Requirement Specification
Requirement Elicitation Process

01/22/25 Software Component Design (SENG 4093) 3


What is requirement?
Requirement is a statement that
identifies a capability, characteristic or
quality of system in order for it to have
value and utility to a customer or user.
It is an important factor for the
development of any project and it defines
what different stakeholders (users,
customer,
manager and developer) need and how
system will fulfil these needs.
They are generally expressed in natural
language for the reason that everyone
can well understand it.
What is requirement?
It helps the analyst to better
understand which element and
function are necessary in the
development of particular project.
Requirements are used as input in a
design, implementation and validation
stage of product development.
a project can be succeed or failed at
any time during project life cycle
because of poor requirement
gathering and managing process.
What is requirement?
 It is about WHAT not HOW
 Requirements are the descriptions of the
services provided by a system and its
operational constraints
 It may range from a high level abstract
statement to a detailed mathematical
specification
 It may be as complex as a 500 pages of
description
 2/3 of finished system errors are
requirements and design errors.
 A careful requirements process doesn’t mean
there will be no changes later
What??
Requirements must be determined and
agreed to by the customers, users, and
suppliers of
a software product.
 The requirements define the “what” of a
software product:
 Whatthe software must do to add value for its
stakeholders. (functional requirements)
What the software must be to add value for its

stakeholders. (nonfunctional
requirements)
What limitations there are on the choices that

developers have when implementing the


software.
Type and Levels of Requirement
Type and Levels of Requirement
Business requirements define the business
problems to be solved or the business
opportunities to be addressed by the software
product.
In general, the business requirements define why
the software product is being developed.
User requirements look at the functionality of the
software product from the user’s perspective.
They define what the software has to do in
order for the users to accomplish their
objectives.
Type and Levels of Requirement
The product’s functional
requirements that define the
software functionality must be built
into the product to enable users to
accomplish their tasks, thereby
satisfying the business requirements
What is Requirements
engineering?
Requirements engineering (RE) refers to the
process of defining, documenting, and
maintaining requirements in the engineering
design process.
Requirement engineering provides the
appropriate mechanism to understand what the
customer desires, analysing the need, and
assessing feasibility, negotiating a reasonable
solution, specifying the solution
clearly, validating the specifications and
managing the requirements as they are
transformed into a working system.
engineering?
Requirement engineering is the disciplined
application of proven principles, methods, tools,
and notation to describe a proposed system's
intended behaviour and its associated constraints.
It is the process to gather the software
requirements from client, analyse and document
them is known as requirement engineering.
The goal of requirement engineering is to develop
and maintain sophisticated and descriptive ‘System
Requirements Specification’ document.
Software Requirements
The software requirements are description of
features and functionalities of the
target system.
Requirements convey the expectations of
users from the software product.
The requirements can be obvious or hidden,
known or unknown, expected or
unexpected from client’s point of view.
Largely software requirements must be
categorized into two categories.
 FunctionalRequirement
 Non-Functional Requirment
Types of requirements
 Functional requirements
 Services the system should provide
 What the system should do or not in reaction to
particular situations
 Non-functional requirements
 Constraints on the services or functions offered by
the system
 Examples: Timing constraints, constraints on the
development process (CASE, language,
development method…), standards etc
 Domain requirements
 From the application domain of the system
 May be functional or non-functional
 Examples: Medicine, library, physics, chemistry
 Note: You can have user/system
functional/non-functional requirements.
User requirements
 First attempt to describe functional and
non-functional requirements

Understandable by the user
 Problems:

Lack of clarity - ambiguous language

Requirements confusion - functional, non-
functional requirements, design information
are not distinguished

Requirements amalgamation – several
requirements are defined as a single one

Incompleteness – requirements may be missing

Inconsistency – requirements may contradict
themselves
User requirements
 Guideline to minimize the issues:
 Separate requirements –separate functional
and non-functional requirements,
requirements must be clearly identified (e.g.
by a number)
 Include a rationale for each requirement –
helps clarify reasoning behind the
requirements and may be useful for evaluating
potential changes in the requirements
 Invent or use a standard form/template
 Distinguish requirements priorities

Example: MoSCoW (Must, Shall, Could, Want/Will
(no TBD))
 Testable (write test cases)
 Deliverables
System requirements
 Elaborate the user requirements to
get a precise, detailed and
complete version of them
 Used by designers and developers

 An important aspect is how to

present/write system requirements


 Natural language is often used!
 The difference between user and
system requirements must not be
thought as a detail
System requirements
 Example: If sales for current month are
below target sales, then report is to be
printed unless difference between target
sales and actual sales is less than half of
difference between target sales and actual
sales in previous month, or if difference
between target sales and actual sales for
the current month is less than 5%.
 Problems:
 Difficult to read
 Ambiguity: sales and actual sales, 5% of what?
 Incomplete: what if sales are above target
sales?
requirements
 Natural language (informal
requirements)
 Reviled by academics
 But widely practiced: everybody can read
them, finding a better notation is hard
 Structured natural language
 Forms/templates are used to bring some
rigor to natural language presentations
 Graphical notations
 Using boxes, arrows… but they mean
different things to different people
 Formal specification
 Based on logic, state machines…

Non-functional requirements
 They can be further categorized into:
 Product requirements

Product behavior

Ex: Timing, performance, memory, reliability,
portability, usability
 Organizational requirements

Policies and procedures in the customer’s and
developer’s organizations

Example: Process requirements, implementation
requirements, delivery requirements
 External requirements
Factors externals to the system and the development

process

Example: Interoperability, legislation, ethics
 Non-functional requirements may be more critical than
functional requirements. (The system may be useless…)
Non-functional requirements
Non-functional
requir ements

Product Or ganizational External


requir ements requir ements requirements

Ef ficiency Reliability Portability Interoperability Ethical


requir ements requir ements requirements requirements requirements

Usability Delivery Implementation Standards Legislative


requirements requirements requir ements requirements requirements

Performance Space Privacy Safety


requirements requir ements requirements requirements
Process
It is a four-step process, which includes
1. Feasibility Study
2. Requirement Elicitation and Analysis
3. Software Requirement Specification
4. Software Requirement Validation
5. Software Requirement Management
Feasibility Study
Feasibility is defined as the practical extent
to which a project can be performed
successfully.
Feasibility Study in Software Engineering is a
study to evaluate feasibility of proposed
project or system.
It is a measure of the software product in terms
of how much beneficial product
development will be for the organization in
a practical point of view.
Feasibility Study
Feasibility study is carried out based
on many purposes to analyse whether software product will be
right in terms of development,
implantation, contribution of project to the organization
etc.
Types of Feasibility Study
Technical Feasibility
Operational Feasibility
Economic Feasibility
Legal Feasibility
Schedule Feasibility
analysis
Next phase after feasibility is gathering
requirements from the user.
Analysts and engineers communicate with the
client and end-users to know their ideas on
what the software should provide and
which features they want the software to
include.
Requirement gathering phase is the first
software engineering activity.
Requirements gathering is also popularly
known as requirements elicitation.
Requirement Gathering
The primary objective of the requirements
gathering task is to collect the requirements
from the stakeholders.
A stakeholder is a source of the
requirements and is usually a person, or a
group of persons who either directly or
indirectly are concerned with the software.
Requirement Elicitation
Process
Requirement Elicitation
Process
Requirements gathering - The developers discuss
with the client and end users and know their
expectations from the software.
Organizing Requirements - The developers
prioritize and arrange the requirements in order
of importance, urgency and convenience.
Negotiation & discussion - If requirements are
ambiguous or there are some conflicts in requirements
of various stakeholders, if they are, it is then
negotiated and discussed with stakeholders.
Requirements may then be prioritized and reasonably
compromised.
 Documentation All formal & informal, functional and non-functional
requirements are documented and made available for next phase processing.
Requirement Elicitation
Techniques
Interview
Structured (closed) interviews, where every single
information to gather is decided in advance, they follow
pattern and matter of discussion firmly.
Non-structured (open) interviews, where information to
gather is not decided in advance, more flexible and less
biased.
Oral interviews
Written interviews
One-to-one interviews which are held between two
persons across the table.
Group interviews which are held between groups of
participants.
Requirement Elicitation
techiniques
Surveys
Organization may conduct surveys among various
stakeholders by querying about their expectation and
requirements from the upcoming system.

. Questionnaires
A document with pre-defined set of objective questions
and respective options is handed over to all
stakeholders to answer, which are collected and
compiled.
Observation
Team of experts visit the client’s organization or workplace. They
observe the actual working of the existing installed systems.
Requirement analysis
After requirements gathering is complete,
the analyst analyses the gathered requirements
to form a clear understanding of the exact
customer requirements and to weed out
any problems in the gathered
requirements.
It is natural to expect that the data collected
from various stakeholders to contain several
contradictions, ambiguities, and
incompleteness, since each stakeholder
typically has only a partial and incomplete view
of the software.
Requirement analysis
The main purpose of the requirements
analysis activity is to analyse the
gathered requirements to remove all
ambiguities, incompleteness, and
inconsistencies from the gathered
customer requirements and to obtain a
clear understanding of the software to
be developed.
Requirement analysis
Questions which are clearly understood by the
analyst before carrying out analysis
What is the problem?
Why is it important to solve the problem?
What exactly are the data input to the system and what
exactly are the data output by the system?
What are the possible procedures that need to be followed
to solve the problem?
What are the likely complexities that might arise while
solving the problem?
If there are external software or hardware with which the
developed software has to interface, then what should be
the data interchange formats with the external systems?
Requirement analysis
Different types of requirements problems in detail:
Anomaly: It is an anomaly is an ambiguity in a
requirement. When a requirement is anomalous, several
interpretations of that requirement are possible.
Example 1 While gathering the requirements for a process
control application, the following requirement was
expressed by a certain stakeholder: When the temperature
becomes high, the heater should be switched off. Please
note that words such as “high”, “low”, “goo d”, “bad” etc.
are indications of ambiguous requirements as these lack
quantification and can be subjectively interpreted.
Software Requirement
Specification
SRS is a document created by system analyst after the
requirements are collected from various stakeholders.
SRS defines how the intended software will interact with
hardware, external interfaces, speed of
operation, response time of system,
portability of software across various
platforms, maintainability, speed of recovery
after crashing, Security, Quality, Limitations
etc.
The requirements received from client are written in
natural language.
Who is writing Requirement?
First Client and second Developer.
Software Requirement
Specification
After requirement specifications are developed, the
requirements mentioned in this document are
validated.
User might ask for illegal, impractical solution or
experts may interpret the requirements incorrectly.
Requirements can be checked against following
conditions -
If they can be practically implemented
If they are valid and as per functionality and

domain of software
If there are any ambiguities

If they are complete


Software Requirement
Specification
Software Requirement
Management
Requirement management is the process of
managing changing requirements during the
requirements engineering process and system
development.
New requirements emerge during the process
as business needs a change, and a better
understanding of the system is developed.
The priority of requirements from different
viewpoints changes during development
process.
The business and technical environment of
the system changes during the development.
01/22/25 38

You might also like