SlideShare a Scribd company logo
1 of 27
Software Engineering Software Requirements
S.H
CSC 342
1
Chapter 3
Software Requirements
Software Engineering – CSC 342
King Saud University
College of Computer and Information Sciences
Department of Computer Science
Dr. S. HAMMAMI
Software Engineering Software Requirements
S.H
CSC 342
2
Objectives
 To introduce the concepts of user and system
requirements
 To describe functional and non-functional
requirements
 To explain how software requirements may be
organised in a requirements document
Software Engineering Software Requirements
S.H
CSC 342
3
Outcomes
When you have read the chapter, you will
 Understand the concepts of user requirements
 Understand the concepts of system requirements
 Understand why these requirements should be written in different
ways
 Understand the differences between functional and non-functional
software requirements
 Understand how requirements may be organized in a software
requirements document.
Software Engineering Software Requirements
S.H
CSC 342
4
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.
Software Engineering Software Requirements
S.H
CSC 342
5
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.
 The requirements analysis and definition establish the
system's services, constraints and goals by consultation
with users. They are then defined in a manner that is
understandable by both users and development staff.
Requirements define the function of the system FROM
THE CLIENT'S VIEWPOINT.
Requirements Analysis and Definition
Software Engineering Software Requirements
S.H
CSC 342
6
Types of requirement
 User requirements
• Statements in natural language plus diagrams of what services
the system is expected to provide 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.
Software Engineering Software Requirements
S.H
CSC 342
7
Types of requirement
User Requirement:
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. Hence the 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.
Software Engineering Software Requirements
S.H
CSC 342
8
Types of requirement
System Requirement:
 After documenting the user’s perspective in the form of user
requirements, the system’s perspective: what is the
functionality provided by the system and how will it help the
user to accomplish these tasks. Viewed from this angle, the
functional requirement for the same user requirement could be
written as follows:
 The spell checker will find and highlight misspelled words.
Right clicking a misspelled word, 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. It will also
allow the user to make global replacements.
Software Engineering Software Requirements
S.H
CSC 342
9
Definitions and specifications
- On making a request for a document from LIBSYS, the requestor shall be
presented with a form that records details of the user and the request made.
- LIBSYS request forms shall be stored on the system for five years from
the date of the request.
- All LIBSYS request forms must be indexed by user, by the name of the
material requested and by the supplier of the request.
- LIBSYS shall maintain a log of all requests that have been made to the
system.
- For material where authors’lending rights apply, loan details shall be sent
monthly to copyright agencies that have registered with LIBSYS
Library System (LIBSYS) shall keep track of all data required by copyright licensing
agencies.
User requirement definition
System requirements specification
Software Engineering Software Requirements
S.H
CSC 342
10
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.
 Non-functional requirements (Quality Requirements)
• Constraints on the services or functions offered by the system such as timing
constraints, constraints on the development process, standards, etc.
Software system requirements are often classified as functional
requirements, non-functional requirements:
Software Engineering Software Requirements
S.H
CSC 342
11
Functional requirements
 Describe functionality or system services.
 Depend on the type of software, expected users of the
software and the general approach taken by the
organisation when writing requirements.
 Functional user requirements may be high-level
statements of what the system should do but functional
system requirements should describe the system
services in detail.
Software Engineering Software Requirements
S.H
CSC 342
12
Example: The LIBSYS system
 A library system that provides a single interface to a number of databases of
articles in different libraries.
 Users can search for, download and print these articles for personal study.
 The user shall be able to search either all of the initial set of databases or
select a subset from it.
 The system shall provide appropriate viewers for the user to read documents
in the document store.
Functional requirements may be expressed in a number of way.
Example: LIBSYS used by students and faculty to order books and documents
from other libraries.
Software Engineering Software Requirements
S.H
CSC 342
13
Non-functional requirements
 These define system properties and constraints e.g. reliability,
response time and storage requirements.
 They may define constraints on the system such as the capabilities
of I/O devices and the data representations used in system
interfaces.
 Process requirements may also be specified mandating a particular
CASE system, programming language or development method.
 Non-functional requirements may be more critical than functional
requirements. If these are not met, the system is useless.
Software Engineering Software Requirements
S.H
CSC 342
14
Non-functional classifications
 Product requirements
• Requirements which specify that the delivered product must
behave in a particular way e.g. execution speed, reliability, etc.
 Organisational requirements
• Requirements which are a consequence of organisational
policies and procedures e.g. process standards used,
implementation requirements, etc.
 External requirements
• Requirements which arise from factors which are external to the
system and its development process e.g. interoperability
requirements, legislative requirements, etc.
Software Engineering Software Requirements
S.H
CSC 342
15
User requirements
 Should describe functional and non-functional
requirements in such a way that they are
understandable by system users who don’t have
detailed technical knowledge.
 User requirements are defined using natural
language, tables and diagrams as these can be
understood by all users.
Software Engineering Software Requirements
S.H
CSC 342
16
Problems with natural language
Various problems can arise when requirements are written in
natural language sentences in a text document:
 Lack of clarity
• Precision is difficult without making the document difficult to read.
 Requirements confusion
• Functional and non-functional requirements tend to be mixed-up.
 Requirements amalgamation
• Several different requirements may be expressed together as a single
requirement.
Software Engineering Software Requirements
S.H
CSC 342
17
Guidelines for writing requirements
To minimise misunderstandings when writing user requirements, It is
recommended that you follow some simple guidelines:
 Invent a standard format and use it for all requirements.
 Use language in a consistent way. You should always distinguish
between mandatory and desirable requirements.
 Use text highlighting to identify key parts of the requirement.
 Avoid the use of computer jargon.
Software Engineering Software Requirements
S.H
CSC 342
18
System requirements
 More detailed specifications of system functions, services and
constraints than user requirements.
 They are intended to be a basis for designing the system.
 They add detail and explain how the user requirements should be
provided by the system.
 The system requirements should simply describe the external
behaviour of the system and its operational constraints.
 They should not be concerned with how the system should be
designed or implemented.
Software Engineering Software Requirements
S.H
CSC 342
19
Requirements and design
 In principle, requirements should state what the system should do
and the design should describe how it does this.
 In practice, requirements and design are inseparable
• A system architecture may be designed to structure the
requirements;
• In most cases, systems must interoperate with other existing
systems. These constrain the design, and these constraints
impose requirements on the new system;
Software Engineering Software Requirements
S.H
CSC 342
20
Problems with Natural Language (NL) specification
 Ambiguity
• The readers and writers of the requirement must interpret the same
words in the same way. NL is naturally ambiguous so this is very
difficult.
 Over-flexibility
• The same thing may be said in a number of different ways in the
specification.
 Lack of modularisation
• NL structures are inadequate to structure system requirements.
Because of these problems, requirements specification written in
natural language are prone to misunderstandings.
Software Engineering Software Requirements
S.H
CSC 342
21
Alternatives to NL specification
Notation Description
Structured natural
language
This approach depends on defining standard forms or templates to express the
requirements specifi cation.
Design
description
language s
This approach uses a language like a programmi ng langu age but with more abstract
features to specify the requirements by defining anoperational model of the system.
This approach is not now widely used although it can be useful for interface
specifications.
Graphical
notations
A graphical languag e, supp lemented by text anno tations is used to define the
func tional requirements for the system. An earlyexa mple of such a graphical
language was SADT. Now, use-case descriptions and sequence d iagrams are
commonlyused .
Mathematical
specifications
These are notations based on mathematicalconcep ts such as finite-state machines or
sets. These una mbiguous specifications reduce the arguments between customer and
contractor about system func tionalit y. Howeve r, most customers don’t unde rstand
formal specifications and a re reluctant to accept it as a system contract.
Software Engineering Software Requirements
S.H
CSC 342
22
Structured language specifications
 The freedom of the requirements writer is limited by a predefined
template for requirements.
 All requirements are written in a standard way.
 The terminology used in the description may be limited.
 The advantage is that the most of the expressiveness of natural
language is maintained but a degree of uniformity is imposed on the
specification.
 Structured language notations limit the terminology that can be used
and use templates to specify system requirements.
Software Engineering Software Requirements
S.H
CSC 342
23
Form-based specifications
 Definition of the function or entity.
 Description of inputs and where they come from.
 Description of outputs and where they go to.
 Indication of other entities required.
 Pre and post conditions (if appropriate).
 The side effects (if any) of the function.
Software Engineering Software Requirements
S.H
CSC 342
24
Graphical models
 Graphical models are most useful when you
need to show how state changes or where you
need to describe a sequence of actions.
 Different graphical models are explained in next
chapters.
Software Engineering Software Requirements
S.H
CSC 342
25
The requirements document
 The requirements document is the official statement of
what is required of the system developers (SRS).
 Should include both a definition of user requirements and
a specification of the system requirements.
 It is NOT a design document. As far as possible, it should
set of WHAT the system should do rather than HOW it
should do it
Software Engineering Software Requirements
S.H
CSC 342
26
Key points
 Requirements set out what the system should do and
define constraints on its operation and implementation.
 Functional requirements set out services the system
should provide.
 Non-functional requirements constrain the system being
developed or the development process.
 User requirements are high-level statements of what the
system should do. User requirements should be written
using natural language, tables and diagrams.
Software Engineering Software Requirements
S.H
CSC 342
27
Key points
 System requirements are intended to communicate the
functions that the system should provide.
 A software requirements document is an agreed
statement of the system requirements.
 The IEEE standard is a useful starting point for defining
more detailed specific requirements standards.

More Related Content

Similar to chapter_3_8 of software requirements engineering

Software engineering lecture 1
Software engineering  lecture 1Software engineering  lecture 1
Software engineering lecture 1JusperKato
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineeringJennifer Polack
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2SIMONTHOMAS S
 
W4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringW4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringFareeha Iftikhar
 
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.pptxYaseenNazir3
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements EngineeringEhsan Elahi
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements EngineeringHuda Alameen
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)kunj desai
 
INTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationsINTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationskylan2
 
Ch 2 types of reqirement
Ch 2  types of reqirementCh 2  types of reqirement
Ch 2 types of reqirementFish Abe
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement SpecificationKishan Kaushik
 
Lecture 2 & 3.pptx
Lecture 2 & 3.pptxLecture 2 & 3.pptx
Lecture 2 & 3.pptxRaoShahid10
 

Similar to chapter_3_8 of software requirements engineering (20)

Software engineering lecture 1
Software engineering  lecture 1Software engineering  lecture 1
Software engineering lecture 1
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
SE UNIT 2.pdf
SE UNIT 2.pdfSE UNIT 2.pdf
SE UNIT 2.pdf
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
W4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringW4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gathering
 
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
 
Chap1 RE Introduction
Chap1 RE IntroductionChap1 RE Introduction
Chap1 RE Introduction
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Se lec 4
Se lec 4Se lec 4
Se lec 4
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Unit 2.ppt
Unit 2.pptUnit 2.ppt
Unit 2.ppt
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)
 
INTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specificationsINTRODUCTION to software engineering requirements specifications
INTRODUCTION to software engineering requirements specifications
 
Ch 2 types of reqirement
Ch 2  types of reqirementCh 2  types of reqirement
Ch 2 types of reqirement
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Se week 4
Se week 4Se week 4
Se week 4
 
Se week 4
Se week 4Se week 4
Se week 4
 
Lec srs
Lec srsLec srs
Lec srs
 
Lecture 2 & 3.pptx
Lecture 2 & 3.pptxLecture 2 & 3.pptx
Lecture 2 & 3.pptx
 

More from JavedKhan524377

Linear Search for design and analysis of algorithm
Linear Search for design and analysis of algorithmLinear Search for design and analysis of algorithm
Linear Search for design and analysis of algorithmJavedKhan524377
 
Greedy algorithm for design and analysis
Greedy algorithm for design and analysisGreedy algorithm for design and analysis
Greedy algorithm for design and analysisJavedKhan524377
 
Binary Search Tree for design and analysis
Binary Search Tree for design and analysisBinary Search Tree for design and analysis
Binary Search Tree for design and analysisJavedKhan524377
 
Software Engineering Book for beginnerss
Software Engineering Book for beginnerssSoftware Engineering Book for beginnerss
Software Engineering Book for beginnerssJavedKhan524377
 
Software tetsing paper related to industry
Software tetsing paper related to industrySoftware tetsing paper related to industry
Software tetsing paper related to industryJavedKhan524377
 
Week 1 Lecture 1 LAB Weka lecture for machine learning
Week 1 Lecture 1 LAB Weka lecture for machine learningWeek 1 Lecture 1 LAB Weka lecture for machine learning
Week 1 Lecture 1 LAB Weka lecture for machine learningJavedKhan524377
 
lecture_for programming and computing basics
lecture_for programming and computing basicslecture_for programming and computing basics
lecture_for programming and computing basicsJavedKhan524377
 

More from JavedKhan524377 (7)

Linear Search for design and analysis of algorithm
Linear Search for design and analysis of algorithmLinear Search for design and analysis of algorithm
Linear Search for design and analysis of algorithm
 
Greedy algorithm for design and analysis
Greedy algorithm for design and analysisGreedy algorithm for design and analysis
Greedy algorithm for design and analysis
 
Binary Search Tree for design and analysis
Binary Search Tree for design and analysisBinary Search Tree for design and analysis
Binary Search Tree for design and analysis
 
Software Engineering Book for beginnerss
Software Engineering Book for beginnerssSoftware Engineering Book for beginnerss
Software Engineering Book for beginnerss
 
Software tetsing paper related to industry
Software tetsing paper related to industrySoftware tetsing paper related to industry
Software tetsing paper related to industry
 
Week 1 Lecture 1 LAB Weka lecture for machine learning
Week 1 Lecture 1 LAB Weka lecture for machine learningWeek 1 Lecture 1 LAB Weka lecture for machine learning
Week 1 Lecture 1 LAB Weka lecture for machine learning
 
lecture_for programming and computing basics
lecture_for programming and computing basicslecture_for programming and computing basics
lecture_for programming and computing basics
 

Recently uploaded

Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...Nguyen Thanh Tu Collection
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
Introduction to TechSoup’s Digital Marketing Services and Use Cases
Introduction to TechSoup’s Digital Marketing  Services and Use CasesIntroduction to TechSoup’s Digital Marketing  Services and Use Cases
Introduction to TechSoup’s Digital Marketing Services and Use CasesTechSoup
 
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lessonQUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lessonhttgc7rh9c
 
Spellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPSSpellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPSAnaAcapella
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...EADTU
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
What is 3 Way Matching Process in Odoo 17.pptx
What is 3 Way Matching Process in Odoo 17.pptxWhat is 3 Way Matching Process in Odoo 17.pptx
What is 3 Way Matching Process in Odoo 17.pptxCeline George
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Pooja Bhuva
 
AIM of Education-Teachers Training-2024.ppt
AIM of Education-Teachers Training-2024.pptAIM of Education-Teachers Training-2024.ppt
AIM of Education-Teachers Training-2024.pptNishitharanjan Rout
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxJisc
 
Model Attribute _rec_name in the Odoo 17
Model Attribute _rec_name in the Odoo 17Model Attribute _rec_name in the Odoo 17
Model Attribute _rec_name in the Odoo 17Celine George
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptxJoelynRubio1
 

Recently uploaded (20)

Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...
 
Introduction to TechSoup’s Digital Marketing Services and Use Cases
Introduction to TechSoup’s Digital Marketing  Services and Use CasesIntroduction to TechSoup’s Digital Marketing  Services and Use Cases
Introduction to TechSoup’s Digital Marketing Services and Use Cases
 
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lessonQUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
 
Spellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPSSpellings Wk 4 and Wk 5 for Grade 4 at CAPS
Spellings Wk 4 and Wk 5 for Grade 4 at CAPS
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
What is 3 Way Matching Process in Odoo 17.pptx
What is 3 Way Matching Process in Odoo 17.pptxWhat is 3 Way Matching Process in Odoo 17.pptx
What is 3 Way Matching Process in Odoo 17.pptx
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
AIM of Education-Teachers Training-2024.ppt
AIM of Education-Teachers Training-2024.pptAIM of Education-Teachers Training-2024.ppt
AIM of Education-Teachers Training-2024.ppt
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Model Attribute _rec_name in the Odoo 17
Model Attribute _rec_name in the Odoo 17Model Attribute _rec_name in the Odoo 17
Model Attribute _rec_name in the Odoo 17
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx
 

chapter_3_8 of software requirements engineering

  • 1. Software Engineering Software Requirements S.H CSC 342 1 Chapter 3 Software Requirements Software Engineering – CSC 342 King Saud University College of Computer and Information Sciences Department of Computer Science Dr. S. HAMMAMI
  • 2. Software Engineering Software Requirements S.H CSC 342 2 Objectives  To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how software requirements may be organised in a requirements document
  • 3. Software Engineering Software Requirements S.H CSC 342 3 Outcomes When you have read the chapter, you will  Understand the concepts of user requirements  Understand the concepts of system requirements  Understand why these requirements should be written in different ways  Understand the differences between functional and non-functional software requirements  Understand how requirements may be organized in a software requirements document.
  • 4. Software Engineering Software Requirements S.H CSC 342 4 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.
  • 5. Software Engineering Software Requirements S.H CSC 342 5 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.  The requirements analysis and definition establish the system's services, constraints and goals by consultation with users. They are then defined in a manner that is understandable by both users and development staff. Requirements define the function of the system FROM THE CLIENT'S VIEWPOINT. Requirements Analysis and Definition
  • 6. Software Engineering Software Requirements S.H CSC 342 6 Types of requirement  User requirements • Statements in natural language plus diagrams of what services the system is expected to provide 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.
  • 7. Software Engineering Software Requirements S.H CSC 342 7 Types of requirement User Requirement: 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. Hence the 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.
  • 8. Software Engineering Software Requirements S.H CSC 342 8 Types of requirement System Requirement:  After documenting the user’s perspective in the form of user requirements, the system’s perspective: what is the functionality provided by the system and how will it help the user to accomplish these tasks. Viewed from this angle, the functional requirement for the same user requirement could be written as follows:  The spell checker will find and highlight misspelled words. Right clicking a misspelled word, 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. It will also allow the user to make global replacements.
  • 9. Software Engineering Software Requirements S.H CSC 342 9 Definitions and specifications - On making a request for a document from LIBSYS, the requestor shall be presented with a form that records details of the user and the request made. - LIBSYS request forms shall be stored on the system for five years from the date of the request. - All LIBSYS request forms must be indexed by user, by the name of the material requested and by the supplier of the request. - LIBSYS shall maintain a log of all requests that have been made to the system. - For material where authors’lending rights apply, loan details shall be sent monthly to copyright agencies that have registered with LIBSYS Library System (LIBSYS) shall keep track of all data required by copyright licensing agencies. User requirement definition System requirements specification
  • 10. Software Engineering Software Requirements S.H CSC 342 10 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.  Non-functional requirements (Quality Requirements) • Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Software system requirements are often classified as functional requirements, non-functional requirements:
  • 11. Software Engineering Software Requirements S.H CSC 342 11 Functional requirements  Describe functionality or system services.  Depend on the type of software, expected users of the software and the general approach taken by the organisation when writing requirements.  Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail.
  • 12. Software Engineering Software Requirements S.H CSC 342 12 Example: The LIBSYS system  A library system that provides a single interface to a number of databases of articles in different libraries.  Users can search for, download and print these articles for personal study.  The user shall be able to search either all of the initial set of databases or select a subset from it.  The system shall provide appropriate viewers for the user to read documents in the document store. Functional requirements may be expressed in a number of way. Example: LIBSYS used by students and faculty to order books and documents from other libraries.
  • 13. Software Engineering Software Requirements S.H CSC 342 13 Non-functional requirements  These define system properties and constraints e.g. reliability, response time and storage requirements.  They may define constraints on the system such as the capabilities of I/O devices and the data representations used in system interfaces.  Process requirements may also be specified mandating a particular CASE system, programming language or development method.  Non-functional requirements may be more critical than functional requirements. If these are not met, the system is useless.
  • 14. Software Engineering Software Requirements S.H CSC 342 14 Non-functional classifications  Product requirements • Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.  Organisational requirements • Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc.  External requirements • Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
  • 15. Software Engineering Software Requirements S.H CSC 342 15 User requirements  Should describe functional and non-functional requirements in such a way that they are understandable by system users who don’t have detailed technical knowledge.  User requirements are defined using natural language, tables and diagrams as these can be understood by all users.
  • 16. Software Engineering Software Requirements S.H CSC 342 16 Problems with natural language Various problems can arise when requirements are written in natural language sentences in a text document:  Lack of clarity • Precision is difficult without making the document difficult to read.  Requirements confusion • Functional and non-functional requirements tend to be mixed-up.  Requirements amalgamation • Several different requirements may be expressed together as a single requirement.
  • 17. Software Engineering Software Requirements S.H CSC 342 17 Guidelines for writing requirements To minimise misunderstandings when writing user requirements, It is recommended that you follow some simple guidelines:  Invent a standard format and use it for all requirements.  Use language in a consistent way. You should always distinguish between mandatory and desirable requirements.  Use text highlighting to identify key parts of the requirement.  Avoid the use of computer jargon.
  • 18. Software Engineering Software Requirements S.H CSC 342 18 System requirements  More detailed specifications of system functions, services and constraints than user requirements.  They are intended to be a basis for designing the system.  They add detail and explain how the user requirements should be provided by the system.  The system requirements should simply describe the external behaviour of the system and its operational constraints.  They should not be concerned with how the system should be designed or implemented.
  • 19. Software Engineering Software Requirements S.H CSC 342 19 Requirements and design  In principle, requirements should state what the system should do and the design should describe how it does this.  In practice, requirements and design are inseparable • A system architecture may be designed to structure the requirements; • In most cases, systems must interoperate with other existing systems. These constrain the design, and these constraints impose requirements on the new system;
  • 20. Software Engineering Software Requirements S.H CSC 342 20 Problems with Natural Language (NL) specification  Ambiguity • The readers and writers of the requirement must interpret the same words in the same way. NL is naturally ambiguous so this is very difficult.  Over-flexibility • The same thing may be said in a number of different ways in the specification.  Lack of modularisation • NL structures are inadequate to structure system requirements. Because of these problems, requirements specification written in natural language are prone to misunderstandings.
  • 21. Software Engineering Software Requirements S.H CSC 342 21 Alternatives to NL specification Notation Description Structured natural language This approach depends on defining standard forms or templates to express the requirements specifi cation. Design description language s This approach uses a language like a programmi ng langu age but with more abstract features to specify the requirements by defining anoperational model of the system. This approach is not now widely used although it can be useful for interface specifications. Graphical notations A graphical languag e, supp lemented by text anno tations is used to define the func tional requirements for the system. An earlyexa mple of such a graphical language was SADT. Now, use-case descriptions and sequence d iagrams are commonlyused . Mathematical specifications These are notations based on mathematicalconcep ts such as finite-state machines or sets. These una mbiguous specifications reduce the arguments between customer and contractor about system func tionalit y. Howeve r, most customers don’t unde rstand formal specifications and a re reluctant to accept it as a system contract.
  • 22. Software Engineering Software Requirements S.H CSC 342 22 Structured language specifications  The freedom of the requirements writer is limited by a predefined template for requirements.  All requirements are written in a standard way.  The terminology used in the description may be limited.  The advantage is that the most of the expressiveness of natural language is maintained but a degree of uniformity is imposed on the specification.  Structured language notations limit the terminology that can be used and use templates to specify system requirements.
  • 23. Software Engineering Software Requirements S.H CSC 342 23 Form-based specifications  Definition of the function or entity.  Description of inputs and where they come from.  Description of outputs and where they go to.  Indication of other entities required.  Pre and post conditions (if appropriate).  The side effects (if any) of the function.
  • 24. Software Engineering Software Requirements S.H CSC 342 24 Graphical models  Graphical models are most useful when you need to show how state changes or where you need to describe a sequence of actions.  Different graphical models are explained in next chapters.
  • 25. Software Engineering Software Requirements S.H CSC 342 25 The requirements document  The requirements document is the official statement of what is required of the system developers (SRS).  Should include both a definition of user requirements and a specification of the system requirements.  It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it
  • 26. Software Engineering Software Requirements S.H CSC 342 26 Key points  Requirements set out what the system should do and define constraints on its operation and implementation.  Functional requirements set out services the system should provide.  Non-functional requirements constrain the system being developed or the development process.  User requirements are high-level statements of what the system should do. User requirements should be written using natural language, tables and diagrams.
  • 27. Software Engineering Software Requirements S.H CSC 342 27 Key points  System requirements are intended to communicate the functions that the system should provide.  A software requirements document is an agreed statement of the system requirements.  The IEEE standard is a useful starting point for defining more detailed specific requirements standards.