F20 SRE Lecture 7 and 8
F20 SRE Lecture 7 and 8
Requirements Engineering
Lecture 7 and 8
Requirements Engineering Process
SESD-2213
FALL 2020
Main idea:
eliminate the design and implementation
activities by providing efficient execution of
behavior directly defined by the requirements.
System modelling
System modelling helps the analyst to understand the functionality of the system and models are used
to communicate with customers
Different models present the system from different perspectives
External perspective showing the system’s context or environment
Behavioural perspective showing the behaviour of the system
Structural perspective showing the system or data architecture
15
Requirements and Modeling go together
The system engineering sandwich!
Why combining RE with modeling ?
For analysis – models help to understand the problem domain
For documentation – models can be used for describing requirements (instead of solely using natural
language)
Source: http://www.telelogic.com/download/paper/SystemsEngineeringSandwich.pdf
16 Different Levels of Details by Sandwich
Source: Donald C. Gause, Risk Focused Requirements Management, Tutorial at RE’09, September 2009
The Problem Domain and the System/Software-to-be
20 Problem Domain
The problem domain is the context for requirements
Part of the world within which the problem exists
Needs to be understood for effective requirements engineering
Domain model
Set of properties assumed / believed to be true about the environment
Properties relevant to the problem
Problem domain requirements should hold in the proposed new version of the domain.
Define the system requirements such that:
If the system that is built satisfies the system requirements and the environment satisfies the properties assumed for
the environment, then the problem domain requirements will be satisfied.
In simple words: The system will behave as required if the assumptions hold.
21 Problem Domain and System-to-be
better: Problem domain requirements (if one considers the train to be the environment of the control system)
[Lamsweerde]
Requirements Engineering Activities
Requirements Engineering
Source: Larry Boldt, Trends in Requirements Engineering People-Process-Technology, Technology Builders, Inc., 2001
25 Requirements Inception
Start the process
Identification of business need
New market opportunity
Great idea
Involves
Building a business case
Preliminary feasibility assessment
Preliminary definition of project scope
Stakeholders
Business managers, marketing people, product managers.
Examples of techniques
Brainstorming, Joint Application Development (JAD) meeting.
26 Requirements Development: Elicitation (1)
Gathering of information
About problem domain
About problems requiring a solution
About constraints related to the problem or solution
Questions that need to be answered
What is the system?
What are the goals of the system?
How is the work done now?
What are the problems?
How will the system solve these problems?
How will the system be used on a day-to-day basis?
Will performance issues or other constraints affect the way the solution is approached?
27 Requirements Development: Elicitation (2)
Overview of different sources
Customers and other stakeholders
Existing systems
Documentation
Domain experts
More ...
Overview of different techniques
Brainstorming
Interviews
Task observations
Use cases / scenarios
Prototyping
More ...
28 Requirements Development: Analysis
The process of studying and analyzing the needs of stakeholders (e.g., customer, user) in view of coming up
with a “solution”. Such a solution may involve:
A new organization of the workflow in the company.
A new system (system-to-be, also called solution domain) which will be used in the existing or modified
workflow.
A new software to be developed which is to run within the existing computer system or involving
modified and/or additional hardware.
Objectives
Detect and resolve conflicts between requirements (e.g., through negotiation)
Discover the boundaries of the system / software and how it must interact with its environment
Elaborate system requirements to derive software requirements
29 Requirements Development: Specification
The invention and definition of the behavior of a new system (solution domain) such that it will produce the
required effects in the problem domain
Requirements Analysis has defined the problem domain and the required effects
Specification Document
A document that clearly and precisely describes, each of the essential requirements (functions,
performance, design constraints, and quality attributes) of the software and the external interfaces
Each requirement being defined in such a way that its achievement is capable of being objectively verified
by a prescribed method (e.g., inspection, demonstration, analysis, or test)
Different guidelines and templates exist for requirements specification
30 Requirements Development: Verification and Validation
Validation and verification
Both help ensure delivery of what the client wants
Need to be performed at every stage during the process
Validation: checks that the right product is being built (refers back to stakeholders – main concern during RE)
Verification: checks that the product is being built right
During design phase: refers back to the specification of the system or software requirements
During RE: mainly checking consistency between different requirements, detecting conflicts
Techniques used during RE
Simple checks
Formal Review
Logical analysis
Prototypes and enactments
Design of functional tests
Development of user manual
31 Requirements Management
Necessary to cope with changes to requirements
Requirements change is caused by:
Business process changes
Technology changes
Better understanding of the problem
Traceability is very important for effective requirements management
Elicitation
Requirements
notes document
Goals
rationale Design
1.1 XXXX
document
.... because
1.2 YYYY
....due to
requirement 1.2
32 Requirements Documents
Vision and Scope Document
Elicitation notes: (Raw) requirements obtained through elicitation; often unstructured, incomplete, and
inconsistent
(Problem domain) Requirements document
System requirements document
Software requirements document
The software is normally part of a system that includes hardware and software. Therefore the software
requirements are normally part of the system requirements.
Note: System and Software requirements may exist in several versions with different levels of details, such as
User (customer) requirements: Statements in natural language plus diagrams of the services the system
provides and its operational constraints; written for customers
Detailed requirements: A structured document setting out detailed descriptions of the system services;
often used as a contract between client and contractor. This description can serve as a basis for a design
or implementation; used by developers.
33 Types of Requirements Documents
Requirements
xxxx