Professional Documents
Culture Documents
Wollo College Informatics Department of Computer Science: University
Wollo College Informatics Department of Computer Science: University
Wollo College Informatics Department of Computer Science: University
College Informatics
Department of Computer Science
Fundamentals of Software Engineering
Course Code: CoSc3061
1 07/02/2022
Chapter- 3
Requirement Engineering
07/02/2022 2
Why RE in Sys Eng?
System Engineering = Engineering System
07/02/2022 3
Why RE in SysEng?
The term system may also refer to a set of
rules that governs structure and/or behavior.
07/02/2022
Why RE?
Software Lifecycle Revisited
Project Planning
Systems Engineering and Mgmt
Configuration
Implementation
Management
Reverse
Engineering Testing
Evolution and
SQA and Metrics Re-engineering
Maintenance
07/02/2022 6
Cont’d
07/02/2022 7
Requirement
• Something required, something wanted or
needed.
– Webster’s dictionary
• There is a huge difference between wanted
and needed and it should be kept in mind all
the time.
07/02/2022 8
Software Requirements
• A complete description of what the software
system will do without describing how it will do.
• Software requirements are complete
specification of the desired external behavior
of the software system to be built.
• They also represent External behavior of the
system.
07/02/2022 9
Software Requirements Cont…
07/02/2022 10
IEEE Definition of Requirement
IEEE Standard Glossary of Software Engineering
Technology:
A requirement is:
1. A condition or capability needed by a user to solve
a problem or achieve an objective.
07/02/2022 12
Example1
Course Example
Requirements
Read in a list of 200 positive integers
Sort the list of integers in ascending order
Display the average of the numbers
07/02/2022 13
Sources of Requirements
• Stakeholders
– People affected in some way by the system
• Documents
• Existing system
• Domain/business area
07/02/2022 14
Kinds of Software Requirements
• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements
• Design and implementation constraints
07/02/2022 15
Functional Requirements
• Statements describing what the system does.
• Functionality of the system.
• Statements of services the system should
provide:
– Response/reaction to particular inputs.
07/02/2022 16
Functional Requirements Cont…
17
07/02/2022
Comments on Examples
• Notice the ambiguity in the requirement for solving the
quadratic equation.
• The requirement does not speak about the possibility
when the value of ‘a’ is zero.
x = (-b+sqrt(b2 – 4*a*c))/2*a
07/02/2022 19
Non-Functional Requirements
• They are often more critical than individual
functional requirements.
• Capture the emergent behavior of the system,
that is they relate to system as a whole.
• Must be built into the framework of the
software product.
• Failure to meet a non-functional system
requirement may make the whole system
unusable.
07/02/2022 20
Non-Functional Requirements
07/02/2022 21
Non-Functional Requirements
From where we get NFR?
• Non-functional requirements arise through user
needs, because of budget constraints, because of
organizational policies, because of the need of
interoperability with other software and hardware
systems, or because of external factors such as
safety regulations, privacy legislation, etc.
07/02/2022 22
Non-Functional Requirements
Non-Functional
requirements
07/02/2022 23
Non-Functional Requirements
Product Requirements:
Product
requirements
Performance Space
requirements requirements
07/02/2022 24
Non-Functional Requirements
Organizational Requirements:
Organizational
requirements
07/02/2022 25
Non-Functional Requirements
External Requirements:
External
requirements
Privacy Safety
requirements requirements
07/02/2022 26
Non-Functional Requirements
Observations on NFR (Cont…):
07/02/2022 27
Non-Functional Requirements
Observations on NFR (Cont…):
Property Measure
Ease of use 1. Training time
2. Number of help frame
Property Measure
Robustness 1. Time to restart after failure
2. Percentage of events causing failure
3. Probability of data corruption on failure
Property Measure
Portability 1. Percentage of target-dependent statements.
2. Number of target systems.
07/02/2022 33
Domain Requirements Cont…
• Their absence can cause significant dissatisfaction.
07/02/2022 34
Inverse Requirements
• They explain what the system shall not do.
• Many people find it convenient to describe their needs in
this manner.
• These requirements indicate unconfident nature of
customers about certain aspects of a new software product.
• Example:
The system shall not use red color in the user interface,
whenever it is asking for inputs from the end-user.
07/02/2022 35
Design and Implementation Constraints
• The system shall be developed using open source tools and shall
run on Linux operating system.
07/02/2022 36