CSE291- Introduction to Software
Engineering
(FALL 2023)
Lecture 7
Requirements
Engineering
Process
10/17/2023 CSE291 - Introduction to Software Engineering 2
Objectives
Requirement Engineering Process
• Feasibility studies
• Requirements elicitation and analysis
• Requirements validation
• Requirements management
10/17/2023 CSE291 - Introduction to Software Engineering 3
Requirements Engineering
“Requirement Engineering (RE) is the science and
discipline concerned with analyzing and documenting
requirements.”
10/17/2023 CSE291 - Introduction to Software Engineering 4
Requirements Engineering Process
Goal of RE Process to create and maintain a system
requirement document.
RE processes may Include four high level activities
Assessing whether the system is useful to business
and customer (Feasibility Study)
Discovering requirements (elicitation and analysis)
Converting theses requirements into some standard
form (specification).
Checking that the requirements actually define the
system that the customer wants (validation)
10/17/2023 CSE291 - Introduction to Software Engineering 5
The Requirements Engineering
Process
10/17/2023 CSE291 - Introduction to Software Engineering 6
Feasibility Study
• A feasibility study decides whether or not the proposed system
is worth implementing.
• A feasibility study is short, focused study that take place early
in the RE Process
• Does the system contributes to organizational objectives?
• Can the system be implemented within schedule and
budget using current technology?
• Can the system be integrated with other systems that are
used?
• If the answer to any of these questions is no, you should
probably not go ahead with the project.
10/17/2023 CSE291 - Introduction to Software Engineering 7
Feasibility Study Implementation
Carrying out feasibility study involves
• Information assessment (what is required)
• Information collection
• 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?
10/17/2023 CSE291 - Introduction to Software Engineering 8
Feasibility Study Implementation
In feasibility study you may consult information sources such as
• Managers of department where the system will be used
• Software engineers who are familiar with the type of proposed
system
• Technology experts
• End user of system
Should complete a feasibility study in two or three weeks
• Once you have information write feasibility report
• Make a recommendation whether or not the system should
continue
• In a report you may propose changes to scope ,budget and
schedule of the system.
10/17/2023 CSE291 - Introduction to Software Engineering 9
Requirement Elicitation and
Analysis
• Sometimes called requirement discovery.
• Involves technical staff (software engineers) 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 a variety of people in an organization
• End-users, managers, engineers involved in maintenance,
domain experts etc. These are called stakeholders
10/17/2023 CSE291 - Introduction to Software Engineering 10
Requirement Elicitation and
Analysis
Process Activities
Requirements discovery
• Interacting with stakeholders to discover their requirements.
Requirements classification and organization
• Groups related requirements and organizes them into
coherent clusters.
Prioritization and negotiation
• Prioritizing requirements and resolving requirements conflicts
through negotiation.
Requirements documentation(Specification)
• Requirements are documented.
10/17/2023 CSE291 - Introduction to Software Engineering 11
Requirements Elicitation and Analysis
Process
10/17/2023 CSE291 - Introduction to Software Engineering 12
Problems of Requirements Analysis
Understanding stakeholder requirements is difficult for
several reasons
• Stakeholders don’t know what they really want.
• Stakeholders express requirements in their own terms.
• Different stakeholders may have conflicting requirements.
• Organizational and political factors may influence the
system requirements.
• The requirements change during the analysis process.
New stakeholders may emerge and the business
environment change.
10/17/2023 CSE291 - Introduction to Software Engineering 13
Techniques of Requirement Discovery
Interview:
• Formal or informal interview with the system stakeholders
• In this, the RE team puts questions to stakeholders about the
system that they currently use and the system to be
developed.
• There are two types of interview
• Closed interviews: where the stakeholders answers a
pre-defined set of questions.
• Open interviews: in which there is no pre-defined agenda
and a range of issues are explored with stakeholders.
10/17/2023 CSE291 - Introduction to Software Engineering 14
Scenarios
• People usually find it easier to relate to real-life examples rather than
abstract descriptions.
• Scenarios are real-life examples of how a system can be used.
• Through Scenario user can understand and criticize….how they
might interact with a software system.
• Requirement engineers can use the information gained from this
discussion to formulate the actual system requirements.
10/17/2023 CSE291 - Introduction to Software Engineering 15
Scenarios
They should include:
• A description of the starting situation
• A description of the normal flow of events
• A description of what can go wrong
• Information about other concurrent activities
• A description of the state when the scenario finishes.
10/17/2023 CSE291 - Introduction to Software Engineering 16
LIBSYS Scenario
10/17/2023 CSE291 - Introduction to Software Engineering 17
LIBSYS Scenario
10/17/2023 CSE291 - Introduction to Software Engineering 18
Use Cases
• Use-cases are a scenario based technique for requirement elicitation
• Which identify the actors in an interaction and which describe the
interaction itself.
• A set of use cases should describe all possible interactions with the
system.
• Sequence diagrams may be used to add detail to use-cases by
showing the sequence of event processing in the system.
10/17/2023 CSE291 - Introduction to Software Engineering 19
LIBSYS Use Cases
10/17/2023 CSE291 - Introduction to Software Engineering 20
Social and Organizational Factors
• Software systems do not exist in isolation – they are used
in a social and organizational context.
• This can influence or even dominate the system
requirements.
• Good analysts must be sensitive to these factors.
10/17/2023 CSE291 - Introduction to Software Engineering 21
Ethnography
• is the study of people in their natural setting, involves the
analyst actively or passively participating in the normal
activities of the users over an extended period of time and
collect information on the operations being performed.
• In practice, ethnography is particularly effective when the need
for a new system is a result of existing problems with
processes and procedures.
• These techniques are especially useful when addressing
contextual factors such as usability
10/17/2023 CSE291 - Introduction to Software Engineering 22
Prototyping
• Providing stakeholders with prototypes of the system to support the
investigation of possible solutions is an effective way to gather
detailed information and relevant feedback
• This technique is particularly useful when developing
human-computer interfaces, or where the stakeholders are
unfamiliar with the available solutions.
10/17/2023 CSE291 - Introduction to Software Engineering 23
Elicitation Workshops
Requirement analyst frequently facilitates elicitation
workshops. The following guidelines are followed during
elicitation workshops.
• Stay in scope
• Time box discussions
• Keep team small and select appropriate members
• Keep everyone engaged
10/17/2023 CSE291 - Introduction to Software Engineering 24
Brainstorming
• is a process where participants from different
stakeholder groups engage in informal discussion to
rapidly generate as many ideas as possible without
focusing on any one in particular.
• One of the advantages in using brainstorming is that it
promotes freethinking and expression, and allows the
discovery of new and innovative solutions to existing
problems.
10/17/2023 CSE291 - Introduction to Software Engineering 25
Questionnaires
Questionnaires are mainly used during the early stages of
requirements elicitation and may consist of open and/or
closed questions.
Gather information from many users (statistical
indications, views, opinions)
Questions must be focused to avoid gathering large
amounts of redundant and irrelevant information.
10/17/2023 CSE291 - Introduction to Software Engineering 26
Requirements Validation
• 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.
10/17/2023 CSE291 - Introduction to Software Engineering 27
Requirements Checking
Checks include
• 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
10/17/2023 CSE291 - Introduction to Software Engineering 28
Requirements Validation
Techniques
• Requirements reviews:
• Systematic manual analysis of the requirements(by a team of
reviewers) who check for error and inconsistencies.
• Prototyping:
• Using an executable model of the system to check
requirements.
• Test-case generation:
• Developing tests for requirements to check testability.
10/17/2023 CSE291 - Introduction to Software Engineering 29
Requirements Management
• Requirements 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 change and a better understanding of the system is
developed
10/17/2023 CSE291 - Introduction to Software Engineering 30
Requirements Evolution
10/17/2023 CSE291 - Introduction to Software Engineering 31
Requirements Change
Management
• Should be apply to all proposed changes to the requirements.
• There are three principal stages to change management
process:
• Problem analysis: Discuss requirements problem and
propose change
• Change analysis and costing: Assess effects of change on
other requirements;
• Change implementation: Modify requirements document
and other documents to reflect change.
10/17/2023 CSE291 - Introduction to Software Engineering 32
Change Management
10/17/2023 CSE291 - Introduction to Software Engineering 33
Key Points
• The requirements engineering process includes a
feasibility study, requirements elicitation and analysis,
requirements specification and requirements
management.
• Requirements elicitation and analysis is iterative involving
domain understanding, requirements collection,
classification, structuring, prioritization and validation.
• Systems have multiple stakeholders with different
requirements.
10/17/2023 CSE291 - Introduction to Software Engineering 34
Key Points
• Social and organization factors influence system
requirements.
• Requirements validation is concerned with checks for
validity, consistency, completeness, realism and
verifiability.
• Requirements management includes planning and
change management.
10/17/2023 CSE291 - Introduction to Software Engineering 35
Chapter Reading
• Chapter 4, Requirement Engineering,
Software Engineering by Ian Sommerville