Requirement Engineering
Requirement Engineering
Engineering
(FALL 2023)
Lecture 7
Requirements
Engineering
Process
10/17/2023 CSE291 - Introduction to Software Engineering 2
Objectives
• Feasibility studies
• Requirements elicitation and analysis
• Requirements validation
• Requirements management
10/17/2023 CSE291 - Introduction to Software Engineering 3
Requirements Engineering
Feasibility Study
• A feasibility study decides whether or not the proposed system
is worth implementing.
Requirements documentation(Specification)
• Requirements are documented.
10/17/2023 CSE291 - Introduction to Software Engineering 11
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.
Scenarios
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
• A set of use cases should describe all possible interactions with the
system.
Ethnography
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
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
Questionnaires
Questionnaires are mainly used during the early stages of
requirements elicitation and may consist of open and/or
closed questions.
Requirements Validation
Requirements Checking
Checks include
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 Evolution
10/17/2023 CSE291 - Introduction to Software Engineering 31
Requirements Change
Management
• Should be apply to all proposed changes to the requirements.
Change Management
10/17/2023 CSE291 - Introduction to Software Engineering 33
Key Points
Key Points
Chapter Reading
• Chapter 4, Requirement Engineering,
Software Engineering by Ian Sommerville