Intro To SE - SP17 - 12A
Intro To SE - SP17 - 12A
Intro To SE - SP17 - 12A
SOFTWARE ENGINEERING
LECTURE –12
2
CSD201 - Introduction to Software Engineering
REQUIREMENTS
ENGINEERING
• The process of establishing the services that the
customer requires from a system and the constraints
under which it operates and is developed
• The requirements themselves are the descriptions of the
system services and constraints that are generated during
the requirements engineering process
3
CSD201 - Introduction to Software Engineering
WHAT IS A REQUIREMENT?
• It may range from a high-level abstract statement of a
service or of a system constraint to a detailed
mathematical functional specification
• This is inevitable as requirements may serve a dual
function:
• May be the basis for a bid for a contract - therefore must be
open to interpretation
• May be the basis for the contract itself - therefore must be
defined in detail
4
CSD201 - Introduction to Software Engineering
TYPES OF REQUIREMENT
• User requirements
• Statements in natural language plus diagrams of the services
the system provides and its operational constraints. Written
for customers
• System requirements
• A structured document setting out detailed descriptions of the
system’s functions, services and operational constraints.
Defines what should be implemented so may be part of a
contract between client and contractor
5
CSD201 - Introduction to Software Engineering
USER AND SYSTEM
REQUIREMENTS
6
CSD201 - Introduction to Software Engineering
USER AND SYSTEM
REQUIREMENTS
• MHC-PMS (Mental Health Care-Patient Management System)
7
CSD201 - Introduction to Software Engineering
READERS OF DIFFERENT TYPES OF
REQUIREMENTS SPECIFICATION
8
CSD201 - Introduction to Software Engineering
FUNCTIONAL AND NON-
FUNCTIONAL REQUIREMENTS
• Functional requirements
• Statements of services the system should provide, how the system
should react to particular inputs and how the system should
behave in particular situations
• May state what the system should not do
• Non-functional requirements
• Constraints on the services or functions offered by the system such
as timing constraints, constraints on the development process,
standards, etc.
• Often apply to the system as a whole rather than individual
features or services
• Domain requirements
• Constraints on the system from the domain of operation
9
CSD201 - Introduction to Software Engineering
FUNCTIONAL REQUIREMENTS
• Describe functionality or system services
• Depend on the type of software, expected users and the
type of system where the software is used
• Functional user requirements may be high-level
statements of what the system should do
• Functional system requirements should describe the
system services in detail
10
CSD201 - Introduction to Software Engineering
FUNCTIONAL REQUIREMENTS
FOR THE MHC-PMS
• MHC-PMS (Mental Health Care-Patient Management
System)
• A user shall be able to search the appointments lists for
all clinics
• The system shall generate each day, for each clinic, a list
of patients who are expected to attend appointments that
day
• Each staff member using the system shall be uniquely
identified by his or her 8-digit employee number
11
CSD201 - Introduction to Software Engineering
REQUIREMENTS IMPRECISION
• Problems arise when requirements are not precisely
stated
• Ambiguous requirements may be interpreted in different
ways by developers and users
• Consider the term ‘search’ in the requirement
• User intention – search for a patient name across all
appointments in all clinics
• Developer interpretation – search for a patient name in an
individual clinic. User chooses clinic then search
12
CSD201 - Introduction to Software Engineering
Q&A
13
CSD201 - Introduction to Software Engineering