CO2401: Software Development
Lecture 1
Understanding Requirements
1. What Are Requirements?
o A requirement is a condition or capability that a system must
conform to or fulfil.
o It specifies what should be implemented in the system.
o Requirements can be viewed differently depending on the
stakeholder:
Business Analyst: User requirements.
Architect: Influences on the system’s design.
Developers: Drives design choices.
2. Whose Requirement?
o A system's property that provides value to its stakeholder. To
understand requirements, one must understand the stakeholders,
which include:
Users
Developers
Sponsors
Types of Requirements
1. User Requirements
o Statements in natural language plus diagrams of the services the
system provides and its operational constraints.
o Written for customers.
2. System Requirements
o A structured document detailing the system’s functions, services,
and operational constraints.
o Defines what should be implemented, often part of a contract
between client and contractor.
, 3. Examples
o User Requirement: The system shall generate monthly
management reports showing the cost of drugs prescribed by each
clinic.
o System Requirement: The system shall generate the report for
printing after 17:30 on the last working day of the month.
Agile Methods and Requirements
1. Overview
o Agile methods argue that producing detailed system requirements
may be unnecessary as requirements change rapidly.
o Incremental requirements engineering is used, often expressed as
"user stories."
2. Agile Methods
o Scrum, Kanban, and Extreme Programming (XP) are common
agile methods.
o While practical for business systems, agile methods can be
problematic for critical systems requiring pre-delivery analysis or
those developed by multiple teams.
Functional and Non-Functional Requirements
1. Functional Requirements
o Describe what the system should do, including system functions,
inputs, outputs, and behaviour in specific situations.
o Examples:
A user shall be able to search the appointments list for all
clinics.
Each staff member using the system shall be uniquely
identified by their 8-digit employee number.
2. Non-Functional Requirements
o Constraints on the services or functions offered by the system, such
as reliability, response time, and storage requirements.
o These requirements are often more critical than functional
requirements. If unmet, the system may be useless.
o Examples:
Product requirement: The system shall implement patient
privacy provisions.
Lecture 1
Understanding Requirements
1. What Are Requirements?
o A requirement is a condition or capability that a system must
conform to or fulfil.
o It specifies what should be implemented in the system.
o Requirements can be viewed differently depending on the
stakeholder:
Business Analyst: User requirements.
Architect: Influences on the system’s design.
Developers: Drives design choices.
2. Whose Requirement?
o A system's property that provides value to its stakeholder. To
understand requirements, one must understand the stakeholders,
which include:
Users
Developers
Sponsors
Types of Requirements
1. User Requirements
o Statements in natural language plus diagrams of the services the
system provides and its operational constraints.
o Written for customers.
2. System Requirements
o A structured document detailing the system’s functions, services,
and operational constraints.
o Defines what should be implemented, often part of a contract
between client and contractor.
, 3. Examples
o User Requirement: The system shall generate monthly
management reports showing the cost of drugs prescribed by each
clinic.
o System Requirement: The system shall generate the report for
printing after 17:30 on the last working day of the month.
Agile Methods and Requirements
1. Overview
o Agile methods argue that producing detailed system requirements
may be unnecessary as requirements change rapidly.
o Incremental requirements engineering is used, often expressed as
"user stories."
2. Agile Methods
o Scrum, Kanban, and Extreme Programming (XP) are common
agile methods.
o While practical for business systems, agile methods can be
problematic for critical systems requiring pre-delivery analysis or
those developed by multiple teams.
Functional and Non-Functional Requirements
1. Functional Requirements
o Describe what the system should do, including system functions,
inputs, outputs, and behaviour in specific situations.
o Examples:
A user shall be able to search the appointments list for all
clinics.
Each staff member using the system shall be uniquely
identified by their 8-digit employee number.
2. Non-Functional Requirements
o Constraints on the services or functions offered by the system, such
as reliability, response time, and storage requirements.
o These requirements are often more critical than functional
requirements. If unmet, the system may be useless.
o Examples:
Product requirement: The system shall implement patient
privacy provisions.