SlideShare a Scribd company logo
Lecture 7&8
Requirement
Engineering
CSC291 - Software Engineering
Concepts
(Fall 2019)
Outline
• Software Requirements
• Requirement Engineering
• Types of Requirements
• Stakeholders
26/3/2020 CSC291 - Software Engineering Concepts
Requirements
3
IEEE Standard 729 defines it as
• “A condition or capability needed by a user to solve a problem
or achieve an objective”
• “A condition or capability that must be met or possessed by a
system...to satisfy a contract, standard, specification, or other
formally imposed document”
6/3/2020 CSC291 - Software Engineering Concepts
Software Requirements and Requirement
Engineering
• The requirements for a system
• are the descriptions of the services provided by the system and its
operational constraints.
• These requirements reflect the
• needs of customers for a system that helps solve some problem
such as controlling a device, placing an order or finding
information.
• “The process of finding out, analysing, documenting and
checking these services and constraints is called
requirements engineering (RE).”
46/3/2020 CSC291 - Software Engineering Concepts
Why Requirements?
• System customers
• specify the requirements and read them to check if they
meet their needs
• Project managers
• Use the requirements document to plan a bid for system
and to plan the system development process
• System engineers
• Use the requirements to understand what system is to
be developed
56/3/2020 CSC291 - Software Engineering Concepts
Why Requirements? (Contd..)
• System test engineers
• Use the requirements to develop validation tests for the
system
• System maintenance engineers
• Use the requirements to help understand the system
and the relationships between its parts
66/3/2020 CSC291 - Software Engineering Concepts
Different Levels Of Abstraction
• User requirements
• are statements, in a natural language plus diagrams, of what
services the system is expected to provide and the constraints
under which it must operate.
• System requirements
• System requirements set out the system’s functions, services and
operational constraints in detail.
• The system requirements document (sometimes called a functional
specification) should be define exactly what is to be implemented.
• It may be part of the contract between the system buyer and the
software developers.
6/3/2020 CSC291 - Software Engineering Concepts 7
Example
• User requirement: The library system should provide a way to
allow a student to borrow a book from the library.
• System requirement: The library system should provide a
withdraw interaction that allows a student to withdraw a book
given the isbn and copy number of the book to be withdrawn.
• The interaction fails if: the book is already withdrawn, the book is
not in the library's collection, the student has already withdrawn 5
books, the student owes more than $5, the book is on hold by
someone else. Otherwise…(To be completed)
6/3/2020 CSC291 - Software Engineering Concepts 8
Types Of Requirements
Business Requirements
These are used to state the high-level business objectives of
the organization or customer requesting the system or product.
They are used to document main system features and
functionalities without going into their nitty-gritty details.
They are captured in a document describing the project vision
and scope.
6/3/2020 CSC291 - Software Engineering Concepts 9
Types Of Requirements
• Software system requirements are often classified as
• Functional requirements
• Non-functional requirements
106/3/2020 CSC291 - Software Engineering Concepts
Functional Requirements
• These are statements of services the system should
provide.
• They bring in the system’s view and define from the
system’s perspective
• Services the system should provide
• How the system should react to particular input
• How the system should behave in a particular situations
or
• What the system should not do
116/3/2020 CSC291 - Software Engineering Concepts
Non-functional Requirements (NFR’s)
• These are constraints on the services or functions offered
by the system.
• They include timing constraints, constraints on the
development process and constraints imposed by
standards.
• Non-functional requirements often apply to the system as
a whole. They do not usually just apply to individual
system features or services.
126/3/2020 CSC291 - Software Engineering Concepts
Types of NFR’s
Performance
requirements
Space
requirements
Usability
requirements
Efficiency
requirements
Reliability
requirements
Portability
requirements
Interoperability
requirements
Ethical
requirements
Legislative
requirements
Implementation
requirements
Standards
requirements
Delivery
requirements
Safety
requirements
Privacy
requirements
Product
requirements
Organizational
requirements
External
requirements
Non-functional
requirements
136/3/2020 CSC291 - Software Engineering Concepts
Types of NFR’s (Contd..)
• Product requirements
• Requirements which specify that the delivered product
must behave in a particular way.
• e.g. execution speed, reliability, Usability, etc.
• Organizational requirements
• Requirements which are a consequence of organizational
policies and procedures in the customer’s and
developer's organization.
• External requirements
• Requirements which arise from factors which are external
to the system and its development process
• e.g. legislative requirements, etc.
146/3/2020 CSC291 - Software Engineering Concepts
Types of NFR’s (Contd..)
Reliability Requirements:
Reliability requirements deal with the failure to provide
service.
Example :
The failure frequency of a heart-monitoring unit that will
operate in a hospital’s intensive care ward is required to be
less than one in 20 years. Its heart attack detection function
is required to have a failure rate of less than one per million
cases.
156/3/2020 CSC291 - Software Engineering Concepts
Types of NFR’s (Contd..)
Efficiency Requirements:
• Deals with the hardware resources needed to perform the functions of
the software.
• The main hardware resources to be considered are the computer’s
processing capabilities (measured in MIPS – million instructions per
second, MHz or megahertz etc.), its data storage capability in terms
of memory and disk capacity (measured in MBs – megabytes, GBs –
gigabytes, etc.) and the data communication capability of the
communication lines (usually measured in KBPS – kilobits per
second., etc)
• The requirements may include the maximum values at which the
hardware resources will be applied in the developed software system
166/3/2020 CSC291 - Software Engineering Concepts
Types of NFR’s (Contd..)
Portability Requirements:
Portability requirements tend to the adaptation of a
software system to other environments consisting of
different hardware, different operating systems, and so
forth.
Interoperability Requirements:
• Interoperability describes the extent to which systems and
devices can exchange data, and interpret that shared
data.
• For two systems to be interoperable, they must be able to
exchange data and present that data such that it can be
understood by a user
176/3/2020 CSC291 - Software Engineering Concepts
Integrity – deal with system security that prevent
unauthorized persons access.
Usability – deals with the scope of staff resources needed
to train new employees and to operate the software system.
Types of NFR’s (Contd..)
6/3/2020 CSC291 - Software Engineering Concepts 18
Integrity
196/3/2020 CSC291 - Software Engineering Concepts
Usability
206/3/2020 CSC291 - Software Engineering Concepts
Example: A Word Processor
Let us now look at an example to understand the difference
between these different types of requirements.
Let us assume that we have a word-processing system that
does not have a spell checker. In order to be able to sell the
product, it is determined that it must have a spell checker
216/3/2020 CSC291 - Software Engineering Concepts
Contd..
• Business Requirement could be stated as:
user will be able to correct spelling errors in a document
efficiently. Hence, the Spell checker will be included as a
feature in the product.
• In the next step we need to describe what tasks must be
included to accomplish the above-mentioned business
requirement.
• The resulting User Requirement could be as follows:
Finding spelling errors in the document and deciding whether
to replace each misspelled word with one chosen from a list of
suggested words. It is important to note that this requirement is
written from a user’s perspective.
226/3/2020 CSC291 - Software Engineering Concepts
Contd..
• After documenting the user’s perspective in the form of user
requirements, we look at the system’s perspective:
• what is the functionality provided by the system and how will it
help the user to accomplish these tasks.
The functional requirement for the same user requirement
could be written as follows:
• The spell checker will find and highlight misspelled words.
• It will then display a dialog box with suggested replacements.
• The user will be allowed to select from the list of suggested
replacements.
• Upon selection it will replace the misspelled word with the selected
word.
236/3/2020 CSC291 - Software Engineering Concepts
Contd..
• Finally, a non-functional requirement of the system could
require that it must be integrated into the existing word-
processor that runs on windows platform
246/3/2020 CSC291 - Software Engineering Concepts
The Need For Comprehensive Software Non -Functional
Requirements
256/3/2020 CSC291 - Software Engineering Concepts
Contd..
266/3/2020 CSC291 - Software Engineering Concepts
Contd..
• Mostly software projects satisfactorily fulfilled the basic
requirements for correct calculations (correct inventory figures,
correct average class’s score, correct loan interest, etc.)
• Software projects suffered from poor performance in important
areas such as maintenance, reliability, software reuse, or
training.
Cause for the poor performance - lack of predefined
requirements
276/3/2020 CSC291 - Software Engineering Concepts
Specifying the Requirements
• Functional and nonfunctional requirements should be
specified in such a way that they are understandable by
system users who don’t have detailed technical
knowledge.
• These requirements are defined using natural language,
tables and diagrams as these can be understood by all
users.
286/3/2020 CSC291 - Software Engineering Concepts
Guidelines
• While specifying or writing the requirements, following
guidelines must be followed:
• Invent a standard format and use it for all requirements.
• Use language in a consistent way.
• Avoid the use of computer jargons.
• Separate functional and non-functional requirements.
• Distinguish requirements priorities
• Example: MoSCoW (Must, Shall, Could, Want/Will (no
TBD))
• Testable (write test cases
296/3/2020 CSC291 - Software Engineering Concepts
Example – Identify the problem
If sales for current month are below target sales, then
report is to be printed unless difference between target
sales and actual sales is less than half of difference
between target sales and actual sales in previous month, or
if difference between target sales and actual sales for the
current month is less than 5%.
306/3/2020 CSC291 - Software Engineering Concepts
Contd..
Problems:
• Difficult to read
• Ambiguity: sales and actual sales, 5% of what?
• Incomplete: what if sales are above target sales?
316/3/2020 CSC291 - Software Engineering Concepts
Stakeholders
Stakeholders are different people who would be
interested in the software.
326/3/2020 CSC291 - Software Engineering Concepts
Chapter Reading
• Chapter 4, Requirement Engineering,
Software Engineering by Ian Sommerville
336/3/2020 CSC291 - Software Engineering Concepts

More Related Content

What's hot

2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
Deepak Sharma
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
Rupesh Vaishnav
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
asimnawaz54
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
Ayaz Shariff
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement Analysis
sslovepk
 
Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)
Ian Sommerville
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
koolkampus
 
Requirement specification
Requirement specificationRequirement specification
Requirement specification
Abdul Basit
 
Software requirementspecification
Software requirementspecificationSoftware requirementspecification
Software requirementspecification
oshin-japanese
 
7(srs template)
7(srs template)7(srs template)
7(srs template)
randhirlpu
 
3. 1 req elicitation
3. 1 req elicitation3. 1 req elicitation
3. 1 req elicitation
Ashenafi Workie
 
Requirement analysis
Requirement analysisRequirement analysis
Requirement analysis
Shyam Bahadur Sunari Magar
 
Requirement analysis
Requirement analysisRequirement analysis
Requirement analysis
Bro Shola Ajayi
 
Requirement Analysis - Software Enigneering
Requirement Analysis - Software EnigneeringRequirement Analysis - Software Enigneering
Requirement Analysis - Software Enigneering
university of education,Lahore
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
Syed Zaid Irshad
 
An overview of software requirements engineering
An overview of software requirements engineeringAn overview of software requirements engineering
An overview of software requirements engineering
Ian Sommerville
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
University of Haripur
 
selection of hardware & software in SAD
selection of hardware & software in SAD selection of hardware & software in SAD
selection of hardware & software in SAD
Ankita Agrawal
 
Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"
Ra'Fat Al-Msie'deen
 
software requirement specification
software requirement specificationsoftware requirement specification
software requirement specification
maliksiddique1
 

What's hot (20)

2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement Analysis
 
Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)Requirements Engineering (CS 5032 2012)
Requirements Engineering (CS 5032 2012)
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
 
Requirement specification
Requirement specificationRequirement specification
Requirement specification
 
Software requirementspecification
Software requirementspecificationSoftware requirementspecification
Software requirementspecification
 
7(srs template)
7(srs template)7(srs template)
7(srs template)
 
3. 1 req elicitation
3. 1 req elicitation3. 1 req elicitation
3. 1 req elicitation
 
Requirement analysis
Requirement analysisRequirement analysis
Requirement analysis
 
Requirement analysis
Requirement analysisRequirement analysis
Requirement analysis
 
Requirement Analysis - Software Enigneering
Requirement Analysis - Software EnigneeringRequirement Analysis - Software Enigneering
Requirement Analysis - Software Enigneering
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
 
An overview of software requirements engineering
An overview of software requirements engineeringAn overview of software requirements engineering
An overview of software requirements engineering
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
selection of hardware & software in SAD
selection of hardware & software in SAD selection of hardware & software in SAD
selection of hardware & software in SAD
 
Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"
 
software requirement specification
software requirement specificationsoftware requirement specification
software requirement specification
 

Similar to W4 lecture 7&8 - requirements gathering

2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
Software engineering lecture 1
Software engineering  lecture 1Software engineering  lecture 1
Software engineering lecture 1
JusperKato
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
SE Unit 2(1).pptx
SE Unit 2(1).pptxSE Unit 2(1).pptx
SE Unit 2(1).pptx
aryan631999
 
Un it 2-se-mod-staff
Un it 2-se-mod-staffUn it 2-se-mod-staff
Un it 2-se-mod-staff
vijisvs2012
 
1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docx1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docx
jeremylockett77
 
Software Requrement
Software RequrementSoftware Requrement
Software Requrement
Seif Shaame
 
chapter_3_8 of software requirements engineering
chapter_3_8 of software requirements engineeringchapter_3_8 of software requirements engineering
chapter_3_8 of software requirements engineering
JavedKhan524377
 
SE-Unit II.pdf
SE-Unit II.pdfSE-Unit II.pdf
SE-Unit II.pdf
AMITKUMARSINGH756828
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
Jennifer Polack
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
Sutha31
 
Software requirements full sides & concepts
Software requirements full sides & conceptsSoftware requirements full sides & concepts
Software requirements full sides & concepts
realilkacase
 
INTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationsINTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specifications
kylan2
 
SE - Software Requirements
SE - Software RequirementsSE - Software Requirements
SE - Software Requirements
Jomel Penalba
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
Bala Ganesh
 
Lecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptxLecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptx
YaseenNazir3
 
Software Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationSoftware Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and Specification
Nishu Rastogi
 
Software Engineering Lec 4-requirments
Software Engineering Lec 4-requirmentsSoftware Engineering Lec 4-requirments
Software Engineering Lec 4-requirments
Taymoor Nazmy
 
Software Requirements engineering
Software Requirements engineeringSoftware Requirements engineering
Software Requirements engineering
Md. Shafiuzzaman Hira
 
Software engg unit 2
Software engg unit 2 Software engg unit 2
Software engg unit 2
Vivek Kumar Sinha
 

Similar to W4 lecture 7&8 - requirements gathering (20)

2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
 
Software engineering lecture 1
Software engineering  lecture 1Software engineering  lecture 1
Software engineering lecture 1
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
SE Unit 2(1).pptx
SE Unit 2(1).pptxSE Unit 2(1).pptx
SE Unit 2(1).pptx
 
Un it 2-se-mod-staff
Un it 2-se-mod-staffUn it 2-se-mod-staff
Un it 2-se-mod-staff
 
1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docx1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docx
 
Software Requrement
Software RequrementSoftware Requrement
Software Requrement
 
chapter_3_8 of software requirements engineering
chapter_3_8 of software requirements engineeringchapter_3_8 of software requirements engineering
chapter_3_8 of software requirements engineering
 
SE-Unit II.pdf
SE-Unit II.pdfSE-Unit II.pdf
SE-Unit II.pdf
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Software requirements full sides & concepts
Software requirements full sides & conceptsSoftware requirements full sides & concepts
Software requirements full sides & concepts
 
INTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationsINTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specifications
 
SE - Software Requirements
SE - Software RequirementsSE - Software Requirements
SE - Software Requirements
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
 
Lecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptxLecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptx
 
Software Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationSoftware Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and Specification
 
Software Engineering Lec 4-requirments
Software Engineering Lec 4-requirmentsSoftware Engineering Lec 4-requirments
Software Engineering Lec 4-requirments
 
Software Requirements engineering
Software Requirements engineeringSoftware Requirements engineering
Software Requirements engineering
 
Software engg unit 2
Software engg unit 2 Software engg unit 2
Software engg unit 2
 

Recently uploaded

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 

Recently uploaded (20)

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 

W4 lecture 7&8 - requirements gathering

  • 1. Lecture 7&8 Requirement Engineering CSC291 - Software Engineering Concepts (Fall 2019)
  • 2. Outline • Software Requirements • Requirement Engineering • Types of Requirements • Stakeholders 26/3/2020 CSC291 - Software Engineering Concepts
  • 3. Requirements 3 IEEE Standard 729 defines it as • “A condition or capability needed by a user to solve a problem or achieve an objective” • “A condition or capability that must be met or possessed by a system...to satisfy a contract, standard, specification, or other formally imposed document” 6/3/2020 CSC291 - Software Engineering Concepts
  • 4. Software Requirements and Requirement Engineering • The requirements for a system • are the descriptions of the services provided by the system and its operational constraints. • These requirements reflect the • needs of customers for a system that helps solve some problem such as controlling a device, placing an order or finding information. • “The process of finding out, analysing, documenting and checking these services and constraints is called requirements engineering (RE).” 46/3/2020 CSC291 - Software Engineering Concepts
  • 5. Why Requirements? • System customers • specify the requirements and read them to check if they meet their needs • Project managers • Use the requirements document to plan a bid for system and to plan the system development process • System engineers • Use the requirements to understand what system is to be developed 56/3/2020 CSC291 - Software Engineering Concepts
  • 6. Why Requirements? (Contd..) • System test engineers • Use the requirements to develop validation tests for the system • System maintenance engineers • Use the requirements to help understand the system and the relationships between its parts 66/3/2020 CSC291 - Software Engineering Concepts
  • 7. Different Levels Of Abstraction • User requirements • are statements, in a natural language plus diagrams, of what services the system is expected to provide and the constraints under which it must operate. • System requirements • System requirements set out the system’s functions, services and operational constraints in detail. • The system requirements document (sometimes called a functional specification) should be define exactly what is to be implemented. • It may be part of the contract between the system buyer and the software developers. 6/3/2020 CSC291 - Software Engineering Concepts 7
  • 8. Example • User requirement: The library system should provide a way to allow a student to borrow a book from the library. • System requirement: The library system should provide a withdraw interaction that allows a student to withdraw a book given the isbn and copy number of the book to be withdrawn. • The interaction fails if: the book is already withdrawn, the book is not in the library's collection, the student has already withdrawn 5 books, the student owes more than $5, the book is on hold by someone else. Otherwise…(To be completed) 6/3/2020 CSC291 - Software Engineering Concepts 8
  • 9. Types Of Requirements Business Requirements These are used to state the high-level business objectives of the organization or customer requesting the system or product. They are used to document main system features and functionalities without going into their nitty-gritty details. They are captured in a document describing the project vision and scope. 6/3/2020 CSC291 - Software Engineering Concepts 9
  • 10. Types Of Requirements • Software system requirements are often classified as • Functional requirements • Non-functional requirements 106/3/2020 CSC291 - Software Engineering Concepts
  • 11. Functional Requirements • These are statements of services the system should provide. • They bring in the system’s view and define from the system’s perspective • Services the system should provide • How the system should react to particular input • How the system should behave in a particular situations or • What the system should not do 116/3/2020 CSC291 - Software Engineering Concepts
  • 12. Non-functional Requirements (NFR’s) • These are constraints on the services or functions offered by the system. • They include timing constraints, constraints on the development process and constraints imposed by standards. • Non-functional requirements often apply to the system as a whole. They do not usually just apply to individual system features or services. 126/3/2020 CSC291 - Software Engineering Concepts
  • 14. Types of NFR’s (Contd..) • Product requirements • Requirements which specify that the delivered product must behave in a particular way. • e.g. execution speed, reliability, Usability, etc. • Organizational requirements • Requirements which are a consequence of organizational policies and procedures in the customer’s and developer's organization. • External requirements • Requirements which arise from factors which are external to the system and its development process • e.g. legislative requirements, etc. 146/3/2020 CSC291 - Software Engineering Concepts
  • 15. Types of NFR’s (Contd..) Reliability Requirements: Reliability requirements deal with the failure to provide service. Example : The failure frequency of a heart-monitoring unit that will operate in a hospital’s intensive care ward is required to be less than one in 20 years. Its heart attack detection function is required to have a failure rate of less than one per million cases. 156/3/2020 CSC291 - Software Engineering Concepts
  • 16. Types of NFR’s (Contd..) Efficiency Requirements: • Deals with the hardware resources needed to perform the functions of the software. • The main hardware resources to be considered are the computer’s processing capabilities (measured in MIPS – million instructions per second, MHz or megahertz etc.), its data storage capability in terms of memory and disk capacity (measured in MBs – megabytes, GBs – gigabytes, etc.) and the data communication capability of the communication lines (usually measured in KBPS – kilobits per second., etc) • The requirements may include the maximum values at which the hardware resources will be applied in the developed software system 166/3/2020 CSC291 - Software Engineering Concepts
  • 17. Types of NFR’s (Contd..) Portability Requirements: Portability requirements tend to the adaptation of a software system to other environments consisting of different hardware, different operating systems, and so forth. Interoperability Requirements: • Interoperability describes the extent to which systems and devices can exchange data, and interpret that shared data. • For two systems to be interoperable, they must be able to exchange data and present that data such that it can be understood by a user 176/3/2020 CSC291 - Software Engineering Concepts
  • 18. Integrity – deal with system security that prevent unauthorized persons access. Usability – deals with the scope of staff resources needed to train new employees and to operate the software system. Types of NFR’s (Contd..) 6/3/2020 CSC291 - Software Engineering Concepts 18
  • 19. Integrity 196/3/2020 CSC291 - Software Engineering Concepts
  • 20. Usability 206/3/2020 CSC291 - Software Engineering Concepts
  • 21. Example: A Word Processor Let us now look at an example to understand the difference between these different types of requirements. Let us assume that we have a word-processing system that does not have a spell checker. In order to be able to sell the product, it is determined that it must have a spell checker 216/3/2020 CSC291 - Software Engineering Concepts
  • 22. Contd.. • Business Requirement could be stated as: user will be able to correct spelling errors in a document efficiently. Hence, the Spell checker will be included as a feature in the product. • In the next step we need to describe what tasks must be included to accomplish the above-mentioned business requirement. • The resulting User Requirement could be as follows: Finding spelling errors in the document and deciding whether to replace each misspelled word with one chosen from a list of suggested words. It is important to note that this requirement is written from a user’s perspective. 226/3/2020 CSC291 - Software Engineering Concepts
  • 23. Contd.. • After documenting the user’s perspective in the form of user requirements, we look at the system’s perspective: • what is the functionality provided by the system and how will it help the user to accomplish these tasks. The functional requirement for the same user requirement could be written as follows: • The spell checker will find and highlight misspelled words. • It will then display a dialog box with suggested replacements. • The user will be allowed to select from the list of suggested replacements. • Upon selection it will replace the misspelled word with the selected word. 236/3/2020 CSC291 - Software Engineering Concepts
  • 24. Contd.. • Finally, a non-functional requirement of the system could require that it must be integrated into the existing word- processor that runs on windows platform 246/3/2020 CSC291 - Software Engineering Concepts
  • 25. The Need For Comprehensive Software Non -Functional Requirements 256/3/2020 CSC291 - Software Engineering Concepts
  • 26. Contd.. 266/3/2020 CSC291 - Software Engineering Concepts
  • 27. Contd.. • Mostly software projects satisfactorily fulfilled the basic requirements for correct calculations (correct inventory figures, correct average class’s score, correct loan interest, etc.) • Software projects suffered from poor performance in important areas such as maintenance, reliability, software reuse, or training. Cause for the poor performance - lack of predefined requirements 276/3/2020 CSC291 - Software Engineering Concepts
  • 28. Specifying the Requirements • Functional and nonfunctional requirements should be specified in such a way that they are understandable by system users who don’t have detailed technical knowledge. • These requirements are defined using natural language, tables and diagrams as these can be understood by all users. 286/3/2020 CSC291 - Software Engineering Concepts
  • 29. Guidelines • While specifying or writing the requirements, following guidelines must be followed: • Invent a standard format and use it for all requirements. • Use language in a consistent way. • Avoid the use of computer jargons. • Separate functional and non-functional requirements. • Distinguish requirements priorities • Example: MoSCoW (Must, Shall, Could, Want/Will (no TBD)) • Testable (write test cases 296/3/2020 CSC291 - Software Engineering Concepts
  • 30. Example – Identify the problem If sales for current month are below target sales, then report is to be printed unless difference between target sales and actual sales is less than half of difference between target sales and actual sales in previous month, or if difference between target sales and actual sales for the current month is less than 5%. 306/3/2020 CSC291 - Software Engineering Concepts
  • 31. Contd.. Problems: • Difficult to read • Ambiguity: sales and actual sales, 5% of what? • Incomplete: what if sales are above target sales? 316/3/2020 CSC291 - Software Engineering Concepts
  • 32. Stakeholders Stakeholders are different people who would be interested in the software. 326/3/2020 CSC291 - Software Engineering Concepts
  • 33. Chapter Reading • Chapter 4, Requirement Engineering, Software Engineering by Ian Sommerville 336/3/2020 CSC291 - Software Engineering Concepts