Professional Documents
Culture Documents
Engineering
IEEE: »Software Engineering«
• “the branch of systems engineering concerned with the desired properties and
constraints of software-intensive systems, the goals to be achieved in the
software’s environment, and assumptions about the environment”
Requirements engineering activities
Requirements Elicitation and Analysis
• Requirements elicitation (also called requirements acquisition, requirements
capture, requirements discovery, requirements gathering) is a process of
“identifying needs and bridging the disparities among the involved
communities for the purpose of defining and distilling requirements to meet
the constraints of these communities”
• The task of validation is to certify that the specified requirements comply with
the given user and customer intentions. This means that the requirements need
to be expressed in a notation that is understandable by the customer.
Requirements Management
• It is an on-going task throughout the whole RE process and might span the
whole software lifecycle
Why should we engineer requirements?
• Stakeholders
• People affected in some way by the system
• Documents
• Existing system
• Domain/business area
16
Types of Software Requirements
• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements
• Design and implementation constraints
17
Functional Requirements - 1
18
Functional Requirements - 2
19
Functional Requirements - 3
20
Functional Requirements - 4
21
Functional Requirements Example # 1
• The system shall solve a quadratic equation using the following formula
x = (-b+sqrt(b2 – 4*a*c))/2*a
22
Functional Requirements Example # 2
• The user shall be able to search either the entire database of patients or select
a subset from it (admitted patients, or patients with asthma, etc.)
23
Functional Requirements Example # 3
• The system shall provide appropriate viewers for the user to read documents
in the document store
24
Functional Requirements Example # 4
25
Functional Requirements Example # 5
• The system shall allow customers to return items within fifteen days of the
purchase. A customer must present the original sale receipt to return an item
26
Types of Software Requirements
• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements
• Design and implementation constraints
27
Non-Functional Requirements
30
Non-Functional Requirements
Non-Functional
requirements
31
Product Requirements
Product
requirements
Performance Space
requirements requirements
32
Organizational Requirements
Organizational
requirements
33
Organizational Requirements Examples
34
External Requirements
External
requirements
Privacy Safety
requirements requirements
35
External Requirements Examples
• The system shall not disclose any personal information about members of the
library system to other members except system administrators
• The system shall comply with the local and national laws regarding the use of
software tools.
36
Observations on Non-Functional Requirements
• Ease of use
• Recovery from failure
• Rapid user response
37
NFRs as Goals
38
Example: Goal converted into an NFR
• Goal (unverifiable)
• The system should be easy to use by experienced users and should be organized
in such a way that user errors are minimized
39
Metrics for
Non-Functional Requirements
(NFRs)
Metrics for NFRs - 1
Property Measure
Speed 1. Processed
transactions/second
2. Response time
3. Screen refresh time
Property Measure
Size 1. K bytes
2. Number of function points
Property Measure
Reliability 1. Mean time to failure
2. Probability of
unavailability
3. Rate of failure occurrence
4. Availability
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 systems
2. Number of target systems
46
Types of Software Requirements
• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements
• Design and implementation constraints
47
Domain Requirements
• Requirements that come from the application domain reflect fundamental
characteristics of that application domain
49
Domain Requirements –
Library system
• Example:
1. There shall be a standard user interface to all databases which shall be
based on the Z39.50.
2. Because of copyright restriction , some documents must be deleted
immediately on arrival.
50
Domain Requirements
• Banking domain has its own specific constraints, for example, most banks do
not allow over-draw on most accounts, however, most banks allow some
accounts to be over-drawn
51
Types of Software Requirements
• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements
• Design and implementation constraints
52
Inverse Requirements
• Example:
The system shall not use red color in the user interface, whenever it is asking
for inputs from the end-user
53
Types of Software Requirements
• Functional requirements
• Non-functional requirements
• Domain requirements
• Inverse requirements
• Design and implementation constraints
54
Design and Implementation Constraints
• They are development guidelines within which the designer must work
55
Design and Implementation Constraints
Examples
• The system shall be developed using open source tools and shall run on Linux
operating system
56
Another View of Requirements
• User/customer requirements
OR
• System contract requirements
User/Customer Requirements
User/Customer Requirements
• Functional and non-functional requirements should be stated in natural language
with the help of forms or simple diagrams describing the expected services of a
system by the User under certain constraints
• These are understandable by users, who have no, or little, technical knowledge
• Including 59
too much information in user requirements, constraints the system
designers from coming up with creative solutions
System Contract Requirements
System Contract Requirements
61
System Contract Requirements
• An initial architecture of the system may be defined to help structure the
requirements specification.
• Some specification languages may be used with natural language, which add
structure to specifications and reduce ambiguity
• When requirements are wrong, systems are late, unreliable and don’t meet
customers needs
• This results in enormous loss of time, revenue, market share, and trust of
customers
63
Requirements Engineering Process
Stakeholder Agreed
needs requirements
Requirements
Organizational Engineering Process System
standards specification
System
Regulations models
Domain
information
65
RE Process – Inputs
It includes:
• Existing system information
• Information about the functionality of systems to be replaced
• Information about other systems, which interact with the system being specified
• Stakeholder needs
• Description of what system stakeholders need from the system to support their work
• Organizational standards
• Standards used in an organization regarding system development practice, quality
management, etc.
66
RE Process – Inputs
• Regulations
• External regulations such as health and safety regulations, which apply to the system
• Domain information
• General information about the application domain of the system
67
RE Process – Outputs
It includes
• Agreed requirements
• A description of the system requirements, which is understandable by stakeholders and
which has been agreed by them
• System specification
• This is a more detailed specification of the system, which may be produced in some cases
• System models
• A set of models such as a data-flow model, an object model, a process model, etc., which
describes the system from different perspectives
68
ATM stakeholders
• Bank customers
• Representatives of other banks
• Bank managers
• Counter staff
• Database administrators
• Security managers
• Marketing department
• Hardware and software maintenance engineers
• Banking regulators
RE Process
Requirement Engineering Process has a formal starting and ending point in the
overall software development life cycle.
Begins
There is recognition that a problem exists and requires a solution
A new software idea arises
Ends
With a complete description of the external behavior of the software to be built
70
RE Process
71