SlideShare a Scribd company logo
1 of 32
ITS 66404
Principles of Software
Engineering
Nur Haifa
Chapter 2A-
Software
Requirements
Agenda
Requirements
What are requirements?
Classifying the requirements
Characteristics of requirements
Requirements elicitation
Documenting the requirements
Requirements analysis and negotiation
Requirements validation
Chapter 1 – Intro to Software Engineering 2
What are requirements?
Requirements are a description or statement of a function, feature or condition
that a user seeks to have implemented in a system.
UML has a modelling technique called "Use cases" to help gather
requirements.
These specify all the different ways people interact with a system.
We examine specific scenarios to test our Use cases.
How will you know when your project is complete?
3
Classifying the requirements
There are 2 broad categories of requirements:
Functional Requirements are those that relate directly to the functioning of
the system. These are the aspects of the system the client is most likely
to recognise.
Non-functional requirements cover aspects of the system such as user-
interface, performance, quality issues, interfaces to other systems,
security etc.
4
Example functional requirements
User level facility
“The word processor must include a command to check spelling”
System properties
“The system must ensure that personal information is never released without authorisation”
Specific algorithms
“If either hurdle is failed, then the final mark for the subject is the lower of the two percentages”
Specific constraints
“The sensor must be polled 10 times per second”
5
Example functional requirements
Legal constraints
The legal system may impose constraints on the behaviour of the software
by either requiring or banning certain behaviours.
“The software must calculate the tax payable and forward it to the Tax
Department”
“The system must ensure that personal information is kept secure
“The system must not allow records to be permanently deleted”
6
Example non functional requirements
Constraints on system development
“The system must be developed in Java”
Interface constraints
“The user interface must follow the host operating system’s guidelines”
Performance
“The system must respond to user requests within 2 seconds for 95% of queries”
Interfaces to other systems
“The system should be capable of integrating information from RSS feeds from
websites and displaying them on screen”.
Security
“Only authorised users should be able to access the features listed below…”
7
Characteristics of requirements
Requirements are expected to be…
Verifiable
Complete
Unambiguous
Consistent
Modifiable
Traceable
8
Characteristics of requirements
Verifiable
A requirements document often becomes part of the contract between a client and a
system developer.
It describes what the developer will deliver and be paid for.
It is important that you can check if the final product fulfills the requirements
Requirements should therefore be verifiable
It should be possible to decide if the software meets the requirements.
Requirements that contain subjective assessments of quality are always
problematic.
Example requirements that can’t be tested.
“The program must be very fast.”
What is a measure for fast?
What aspects should be fast? Startup? File saving? Computation?
9
Characteristics of requirements
Verifiable
Example requirements that can’t be tested.
“The system must be able to store all of our customer’s details.”
This could be a moving target - their customer base may be increasing as you develop
the product. You should have a fixed figure.
“The system should be able to initially store 50,000 customers, and be capable of
expanding to 200,000 customers at a small cost”.
Note you would also have to define what “a small cost” meant!
“The GUI should use pleasing colours”
Better wording would be...
“The GUI colours will be chosen by the user from a selection of colours”
“The GUI colours will be chosen from a colour picker by the user”
“The GUI will use colours based on the host operating system’s colour guidelines” 10
Characteristics of requirements
Complete
The requirements should be complete, and not leave out any areas.
This can be very hard to achieve, especially in large systems.
Current trends are to break the development up into smaller modules and
implement each of them.
As you can test each implementation, you will have greater faith that
requirements have not been overlooked.
11
Characteristics of requirements
Non ambiguous
A requirement is ambiguous if it has more than one possible meaning.
May be ambiguous due to
Poor choice of words
Differing definitions of a word or phrase.
12
Characteristics of requirements?
Ambiguous requirements
Poor choice of words
“Apple is working to improve the rest of the Mac OS code to allow for less
busy loops from their side.”
Does this mean that there will be fewer busy loops, or the loops that do
exist will be less busy?
We can see that the problem lies with the adjective “busy” and the
uncertainty as to which noun it applies.
less (busy loops)
(less busy) loops
13
Characteristics of requirements?
Ambiguous requirements
Differing definitions of a word
This is especially likely when the common meaning of a word is different from
that used in a specialised area.
“The system will store the time of each transaction”
Should this be the local time, or Universal time?
What precision should the time be recorded in?
In statistics “significant” has a specific meaning (“there is evidence of a
systematic relationship”) that is different from the general meaning
(“having or expressing a meaning”)
14
Characteristics of requirements?
Consistent
All parts of the requirements document should be consistent with each other.
They should not contradict each other (the following do).
“If you delete a task all of its subtasks should be deleted automatically”
“You should always be prompted to confirm the deletion of a task and any
of it’s subtasks”
The larger the set of requirements the more likely it is that it will be
inconsistent.
15
Characteristics of requirements?
Modifiable
The requirements should be structured so that it is possible to change it at little to no
cost.
Requires it be structured carefully, e.g.
Separating functional from non functional requirements
Supplying a glossary (a table of definitions)
Use of appropriate tools that allow you to browse and automate modifications
Use of hyperlinked (HTML) documentation.
A tool similar to Sun’s Javadoc would be ideal.
16
Characteristics of requirements?
Traceable
The requirements should be structured so that it is possible
To uniquely identify each requirement
Each one should have a unique number (e.g. “10.4.2”)
This allows it to be referred to in final testing of the delivered software, and in discussions with a client.
To identify its history
Who requested the feature?
Is it the result of any other feature?
Who authorised it.
Dates these happened
17
Requirements engineering
How to get the requirements from the client
Gathering requirements can be very difficult
The client may not have a clear idea of what they want
The problem may be very large and take a long time to fully understand
The requirements may be rapidly changing
The client may not be fully committed to the project and will not spend the
time with you that you need.
They may not understand what you need to complete the task.
They may have unreal expectations of what can be achieved
18
Requirements engineering
Requirements engineering is…
requirements elicitation
requirements analysis and negotiation
requirements specification/documentation
requirements validation
19
Requirements elicitation
More techniques for finding requirements
Interviews
Focus groups
Scenario modeling
Questionnaires, Observations, Sampling
UML Use Case diagrams, Rational Unified Process
20
Requirements elicitation
Interviews
The aim is to gather information that may not be documented.
Always arrange in advance and give people being interviewed an agenda
(a list of topics to be discussed).
Clarify note taking arrangements
Who will write down what happens during the meeting?
Ensure unanswered questions are noted, allowing you to follow up on them
later.
21
Requirements elicitation
Interviews
Follow up the interview with a report to the person being interviewed
covering the points made.
This helps ensure that you have the facts correct. If any errors are
discovered you should arrange another interview to clarify the
problems.
Interviews should be restricted to smaller groups. Larger groups tend to
defer to the most senior person in the room, sometimes resulting in one
person’s point of view only.
22
Requirements elicitation
Interviews
Respect confidentiality.
If people trust you to keep secrets, they may be willing to divulge a lot
more information
Historical reasons for certain decisions
Personality traits for people in the organisation (e.g. you may find that someone often
lies about what they do, or that they blame others for their mistakes).
You need to be careful as some people will take advantage of this to
advance their own position in detriment to others.
23
Requirements elicitation
Interviews
Open-ended/Probing questions
Interviews often work best when a specific set of questions are asked.
Probing questions generally are used to validate (or invalidate) a model
being built by the requirements engineer.
Open ended questions are used to allow the user to elaborate on things
they feel are important.
24
Requirements elicitation
Interviews
Have a mix of open-ended and probing questions
Three sets of questions are appropriate. Questions which:
focus on the customer, his/her overall goals and the benefits of the system
to them
give the analyst a better understanding of the problem, and/or give the
customer the opportunity to voice their ideas about possible solutions
check the effectiveness of the meeting.
25
Requirements elicitation
A loaded question is one where you have meanings embedded into the
question
For example...
“Would you like to use the C language, or would you put up with Java?” is loaded,
because it implies that Java is something people wouldn't want to use.
“Can you begin to appreciate the wonderful opportunity you are being offered?”
The question is not impartial. It is disingenuous to ask such questions, as it strikes at
the heart of a meaningful interview - one where you are interested in another
person's opinion.
26
Requirements elicitation
Focus groups
A focus group is a group of people who meet to focus on some issue
relevant to the problem being solved. They typically include
Requirements engineer/Systems analyst
Problem domain expert (e.g. an accountant if you are developing
accountancy software, or a lawyer for a legal system).
People who are authorised to make decisions.
27
Requirements elicitation
Scenario modeling
Scenario modeling attempts to identify how a system works by getting
current users to talk through/demonstrate how they handle situations.
Very useful as it helps highlight processes that are often not discussed
because they are “obvious”
These are so useful that there is a notation for recording them in UML
Use Case, Sequence, Collaboration and Activity diagrams.
28
Requirements elicitation
Understanding requirements
The traditional model of developing systems had all of the requirements
completed before undertaking any analysis of them.
This does not work, as it is impossible to know if you are asking sensible
questions, or whether there are any contradictions or ambiguities in the
requirements without analysing them.
Eliciting requirements therefore requires that an analysis be done at the
same time or iteratively.
29
Requirements elicitation
Understanding requirements
In some situations the analysis (understanding of the problem) may require you to
perform
Prototyping
Creating a small simple implementation of a part of the system
This can be shown to the client for confirmation of your ideas.
Proof of concept work
Develop a small simple implementation to test if the idea is feasible.
In all cases this extra work allows you to construct a more accurate requirements
document.
30
Problem
Chapter 1 Introduction 31
Imagine MyTiMES is not available on mobile, but only on desktop. It is so difficult to
submit assignments, post latest updates and to review, when not on desktop.
A lecturer (user) , post this pain points to ICT Helpdesk, and the IT department
decides to develop a mobile app.
Please provide potential user requirements and systems requirements
Provide possible requirements elicitation.
THE END
Question?

More Related Content

Similar to SE-Lecture 2A-Requirements.pptx

Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Mark John Lado, MIT
 
Software engineering requirements help11
Software engineering requirements help11Software engineering requirements help11
Software engineering requirements help11ssusere9d840
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringKanchanPatil34
 
software requirement and architecture.pdf
software requirement and architecture.pdfsoftware requirement and architecture.pdf
software requirement and architecture.pdfwajoce8790
 
Requirements Are Optional, Right?
Requirements Are Optional, Right?Requirements Are Optional, Right?
Requirements Are Optional, Right?thomstrat
 
Mingle box - Online Job seeking System
Mingle box - Online Job seeking SystemMingle box - Online Job seeking System
Mingle box - Online Job seeking SystemBharat Kalia
 
Unit2 Software engineering UPTU
Unit2 Software engineering UPTUUnit2 Software engineering UPTU
Unit2 Software engineering UPTUMohammad Faizan
 
6. ch 5-understanding requirements
6. ch 5-understanding requirements6. ch 5-understanding requirements
6. ch 5-understanding requirementsDelowar hossain
 
Improving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in RequirementsImproving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in RequirementsOsama M. Khaled
 
Chapter 2 SRS_241222135554.ppt
Chapter 2 SRS_241222135554.pptChapter 2 SRS_241222135554.ppt
Chapter 2 SRS_241222135554.pptHaviQueen
 
Software Requirements Engineering Methodologies
Software Requirements Engineering MethodologiesSoftware Requirements Engineering Methodologies
Software Requirements Engineering MethodologiesKiran Munir
 
5(re dfd-erd-data dictionay)
5(re dfd-erd-data dictionay)5(re dfd-erd-data dictionay)
5(re dfd-erd-data dictionay)randhirlpu
 
Ch 2 types of reqirement
Ch 2  types of reqirementCh 2  types of reqirement
Ch 2 types of reqirementFish Abe
 
Lecture 2 & 3.pptx
Lecture 2 & 3.pptxLecture 2 & 3.pptx
Lecture 2 & 3.pptxRaoShahid10
 

Similar to SE-Lecture 2A-Requirements.pptx (20)

Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...Software Development Process -  REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
Software Development Process - REQUIREMENTS ANALYSIS / ANALYSIS OF TECHNICAL...
 
Software engineering requirements help11
Software engineering requirements help11Software engineering requirements help11
Software engineering requirements help11
 
Requirement analysis with use case
Requirement analysis with use caseRequirement analysis with use case
Requirement analysis with use case
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement Engineering
 
SE UNIT-2.pdf
SE UNIT-2.pdfSE UNIT-2.pdf
SE UNIT-2.pdf
 
3-Requirements.ppt
3-Requirements.ppt3-Requirements.ppt
3-Requirements.ppt
 
software requirement and architecture.pdf
software requirement and architecture.pdfsoftware requirement and architecture.pdf
software requirement and architecture.pdf
 
Requirements Are Optional, Right?
Requirements Are Optional, Right?Requirements Are Optional, Right?
Requirements Are Optional, Right?
 
Requirements Everywhere
Requirements EverywhereRequirements Everywhere
Requirements Everywhere
 
Mingle box - Online Job seeking System
Mingle box - Online Job seeking SystemMingle box - Online Job seeking System
Mingle box - Online Job seeking System
 
Unit2 Software engineering UPTU
Unit2 Software engineering UPTUUnit2 Software engineering UPTU
Unit2 Software engineering UPTU
 
6. ch 5-understanding requirements
6. ch 5-understanding requirements6. ch 5-understanding requirements
6. ch 5-understanding requirements
 
Improving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in RequirementsImproving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in Requirements
 
Chapter 2 SRS_241222135554.ppt
Chapter 2 SRS_241222135554.pptChapter 2 SRS_241222135554.ppt
Chapter 2 SRS_241222135554.ppt
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Software Requirements Engineering Methodologies
Software Requirements Engineering MethodologiesSoftware Requirements Engineering Methodologies
Software Requirements Engineering Methodologies
 
5(re dfd-erd-data dictionay)
5(re dfd-erd-data dictionay)5(re dfd-erd-data dictionay)
5(re dfd-erd-data dictionay)
 
User stories
User storiesUser stories
User stories
 
Ch 2 types of reqirement
Ch 2  types of reqirementCh 2  types of reqirement
Ch 2 types of reqirement
 
Lecture 2 & 3.pptx
Lecture 2 & 3.pptxLecture 2 & 3.pptx
Lecture 2 & 3.pptx
 

More from TangZhiSiang

SE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptxSE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptxTangZhiSiang
 
SE - Lecture 12 - Software Project Management (1).pptx
SE - Lecture 12 - Software Project Management (1).pptxSE - Lecture 12 - Software Project Management (1).pptx
SE - Lecture 12 - Software Project Management (1).pptxTangZhiSiang
 
SE - Lecture 11 - Software Project Estimation.pptx
SE - Lecture 11 - Software Project Estimation.pptxSE - Lecture 11 - Software Project Estimation.pptx
SE - Lecture 11 - Software Project Estimation.pptxTangZhiSiang
 
SE - Lecture 9 n 10 Intro Robotic Process Automation.pptx
SE - Lecture 9 n 10 Intro Robotic Process Automation.pptxSE - Lecture 9 n 10 Intro Robotic Process Automation.pptx
SE - Lecture 9 n 10 Intro Robotic Process Automation.pptxTangZhiSiang
 
SE - Lecture 8 - Software Testing State Diagram.pptx
SE - Lecture 8 - Software Testing  State Diagram.pptxSE - Lecture 8 - Software Testing  State Diagram.pptx
SE - Lecture 8 - Software Testing State Diagram.pptxTangZhiSiang
 
SE - Lecture 7 - Software Quality Reliability Mgmt - in lecture.pptx
SE - Lecture 7 - Software Quality  Reliability Mgmt - in lecture.pptxSE - Lecture 7 - Software Quality  Reliability Mgmt - in lecture.pptx
SE - Lecture 7 - Software Quality Reliability Mgmt - in lecture.pptxTangZhiSiang
 
SE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxSE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxTangZhiSiang
 
SE - Lecture 5 - Requirements Engineering.pptx
SE - Lecture 5 - Requirements Engineering.pptxSE - Lecture 5 - Requirements Engineering.pptx
SE - Lecture 5 - Requirements Engineering.pptxTangZhiSiang
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxTangZhiSiang
 
SE - Lecture 3 - Software Tools n Environment.pptx
SE - Lecture 3 - Software Tools n Environment.pptxSE - Lecture 3 - Software Tools n Environment.pptx
SE - Lecture 3 - Software Tools n Environment.pptxTangZhiSiang
 
SE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptxSE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptxTangZhiSiang
 
SE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptxSE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptxTangZhiSiang
 

More from TangZhiSiang (12)

SE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptxSE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptx
 
SE - Lecture 12 - Software Project Management (1).pptx
SE - Lecture 12 - Software Project Management (1).pptxSE - Lecture 12 - Software Project Management (1).pptx
SE - Lecture 12 - Software Project Management (1).pptx
 
SE - Lecture 11 - Software Project Estimation.pptx
SE - Lecture 11 - Software Project Estimation.pptxSE - Lecture 11 - Software Project Estimation.pptx
SE - Lecture 11 - Software Project Estimation.pptx
 
SE - Lecture 9 n 10 Intro Robotic Process Automation.pptx
SE - Lecture 9 n 10 Intro Robotic Process Automation.pptxSE - Lecture 9 n 10 Intro Robotic Process Automation.pptx
SE - Lecture 9 n 10 Intro Robotic Process Automation.pptx
 
SE - Lecture 8 - Software Testing State Diagram.pptx
SE - Lecture 8 - Software Testing  State Diagram.pptxSE - Lecture 8 - Software Testing  State Diagram.pptx
SE - Lecture 8 - Software Testing State Diagram.pptx
 
SE - Lecture 7 - Software Quality Reliability Mgmt - in lecture.pptx
SE - Lecture 7 - Software Quality  Reliability Mgmt - in lecture.pptxSE - Lecture 7 - Software Quality  Reliability Mgmt - in lecture.pptx
SE - Lecture 7 - Software Quality Reliability Mgmt - in lecture.pptx
 
SE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxSE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptx
 
SE - Lecture 5 - Requirements Engineering.pptx
SE - Lecture 5 - Requirements Engineering.pptxSE - Lecture 5 - Requirements Engineering.pptx
SE - Lecture 5 - Requirements Engineering.pptx
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptx
 
SE - Lecture 3 - Software Tools n Environment.pptx
SE - Lecture 3 - Software Tools n Environment.pptxSE - Lecture 3 - Software Tools n Environment.pptx
SE - Lecture 3 - Software Tools n Environment.pptx
 
SE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptxSE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptx
 
SE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptxSE - Lecture 1 - Introduction to S Engineering.pptx
SE - Lecture 1 - Introduction to S Engineering.pptx
 

Recently uploaded

Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 

Recently uploaded (20)

Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 

SE-Lecture 2A-Requirements.pptx

  • 1. ITS 66404 Principles of Software Engineering Nur Haifa Chapter 2A- Software Requirements
  • 2. Agenda Requirements What are requirements? Classifying the requirements Characteristics of requirements Requirements elicitation Documenting the requirements Requirements analysis and negotiation Requirements validation Chapter 1 – Intro to Software Engineering 2
  • 3. What are requirements? Requirements are a description or statement of a function, feature or condition that a user seeks to have implemented in a system. UML has a modelling technique called "Use cases" to help gather requirements. These specify all the different ways people interact with a system. We examine specific scenarios to test our Use cases. How will you know when your project is complete? 3
  • 4. Classifying the requirements There are 2 broad categories of requirements: Functional Requirements are those that relate directly to the functioning of the system. These are the aspects of the system the client is most likely to recognise. Non-functional requirements cover aspects of the system such as user- interface, performance, quality issues, interfaces to other systems, security etc. 4
  • 5. Example functional requirements User level facility “The word processor must include a command to check spelling” System properties “The system must ensure that personal information is never released without authorisation” Specific algorithms “If either hurdle is failed, then the final mark for the subject is the lower of the two percentages” Specific constraints “The sensor must be polled 10 times per second” 5
  • 6. Example functional requirements Legal constraints The legal system may impose constraints on the behaviour of the software by either requiring or banning certain behaviours. “The software must calculate the tax payable and forward it to the Tax Department” “The system must ensure that personal information is kept secure “The system must not allow records to be permanently deleted” 6
  • 7. Example non functional requirements Constraints on system development “The system must be developed in Java” Interface constraints “The user interface must follow the host operating system’s guidelines” Performance “The system must respond to user requests within 2 seconds for 95% of queries” Interfaces to other systems “The system should be capable of integrating information from RSS feeds from websites and displaying them on screen”. Security “Only authorised users should be able to access the features listed below…” 7
  • 8. Characteristics of requirements Requirements are expected to be… Verifiable Complete Unambiguous Consistent Modifiable Traceable 8
  • 9. Characteristics of requirements Verifiable A requirements document often becomes part of the contract between a client and a system developer. It describes what the developer will deliver and be paid for. It is important that you can check if the final product fulfills the requirements Requirements should therefore be verifiable It should be possible to decide if the software meets the requirements. Requirements that contain subjective assessments of quality are always problematic. Example requirements that can’t be tested. “The program must be very fast.” What is a measure for fast? What aspects should be fast? Startup? File saving? Computation? 9
  • 10. Characteristics of requirements Verifiable Example requirements that can’t be tested. “The system must be able to store all of our customer’s details.” This could be a moving target - their customer base may be increasing as you develop the product. You should have a fixed figure. “The system should be able to initially store 50,000 customers, and be capable of expanding to 200,000 customers at a small cost”. Note you would also have to define what “a small cost” meant! “The GUI should use pleasing colours” Better wording would be... “The GUI colours will be chosen by the user from a selection of colours” “The GUI colours will be chosen from a colour picker by the user” “The GUI will use colours based on the host operating system’s colour guidelines” 10
  • 11. Characteristics of requirements Complete The requirements should be complete, and not leave out any areas. This can be very hard to achieve, especially in large systems. Current trends are to break the development up into smaller modules and implement each of them. As you can test each implementation, you will have greater faith that requirements have not been overlooked. 11
  • 12. Characteristics of requirements Non ambiguous A requirement is ambiguous if it has more than one possible meaning. May be ambiguous due to Poor choice of words Differing definitions of a word or phrase. 12
  • 13. Characteristics of requirements? Ambiguous requirements Poor choice of words “Apple is working to improve the rest of the Mac OS code to allow for less busy loops from their side.” Does this mean that there will be fewer busy loops, or the loops that do exist will be less busy? We can see that the problem lies with the adjective “busy” and the uncertainty as to which noun it applies. less (busy loops) (less busy) loops 13
  • 14. Characteristics of requirements? Ambiguous requirements Differing definitions of a word This is especially likely when the common meaning of a word is different from that used in a specialised area. “The system will store the time of each transaction” Should this be the local time, or Universal time? What precision should the time be recorded in? In statistics “significant” has a specific meaning (“there is evidence of a systematic relationship”) that is different from the general meaning (“having or expressing a meaning”) 14
  • 15. Characteristics of requirements? Consistent All parts of the requirements document should be consistent with each other. They should not contradict each other (the following do). “If you delete a task all of its subtasks should be deleted automatically” “You should always be prompted to confirm the deletion of a task and any of it’s subtasks” The larger the set of requirements the more likely it is that it will be inconsistent. 15
  • 16. Characteristics of requirements? Modifiable The requirements should be structured so that it is possible to change it at little to no cost. Requires it be structured carefully, e.g. Separating functional from non functional requirements Supplying a glossary (a table of definitions) Use of appropriate tools that allow you to browse and automate modifications Use of hyperlinked (HTML) documentation. A tool similar to Sun’s Javadoc would be ideal. 16
  • 17. Characteristics of requirements? Traceable The requirements should be structured so that it is possible To uniquely identify each requirement Each one should have a unique number (e.g. “10.4.2”) This allows it to be referred to in final testing of the delivered software, and in discussions with a client. To identify its history Who requested the feature? Is it the result of any other feature? Who authorised it. Dates these happened 17
  • 18. Requirements engineering How to get the requirements from the client Gathering requirements can be very difficult The client may not have a clear idea of what they want The problem may be very large and take a long time to fully understand The requirements may be rapidly changing The client may not be fully committed to the project and will not spend the time with you that you need. They may not understand what you need to complete the task. They may have unreal expectations of what can be achieved 18
  • 19. Requirements engineering Requirements engineering is… requirements elicitation requirements analysis and negotiation requirements specification/documentation requirements validation 19
  • 20. Requirements elicitation More techniques for finding requirements Interviews Focus groups Scenario modeling Questionnaires, Observations, Sampling UML Use Case diagrams, Rational Unified Process 20
  • 21. Requirements elicitation Interviews The aim is to gather information that may not be documented. Always arrange in advance and give people being interviewed an agenda (a list of topics to be discussed). Clarify note taking arrangements Who will write down what happens during the meeting? Ensure unanswered questions are noted, allowing you to follow up on them later. 21
  • 22. Requirements elicitation Interviews Follow up the interview with a report to the person being interviewed covering the points made. This helps ensure that you have the facts correct. If any errors are discovered you should arrange another interview to clarify the problems. Interviews should be restricted to smaller groups. Larger groups tend to defer to the most senior person in the room, sometimes resulting in one person’s point of view only. 22
  • 23. Requirements elicitation Interviews Respect confidentiality. If people trust you to keep secrets, they may be willing to divulge a lot more information Historical reasons for certain decisions Personality traits for people in the organisation (e.g. you may find that someone often lies about what they do, or that they blame others for their mistakes). You need to be careful as some people will take advantage of this to advance their own position in detriment to others. 23
  • 24. Requirements elicitation Interviews Open-ended/Probing questions Interviews often work best when a specific set of questions are asked. Probing questions generally are used to validate (or invalidate) a model being built by the requirements engineer. Open ended questions are used to allow the user to elaborate on things they feel are important. 24
  • 25. Requirements elicitation Interviews Have a mix of open-ended and probing questions Three sets of questions are appropriate. Questions which: focus on the customer, his/her overall goals and the benefits of the system to them give the analyst a better understanding of the problem, and/or give the customer the opportunity to voice their ideas about possible solutions check the effectiveness of the meeting. 25
  • 26. Requirements elicitation A loaded question is one where you have meanings embedded into the question For example... “Would you like to use the C language, or would you put up with Java?” is loaded, because it implies that Java is something people wouldn't want to use. “Can you begin to appreciate the wonderful opportunity you are being offered?” The question is not impartial. It is disingenuous to ask such questions, as it strikes at the heart of a meaningful interview - one where you are interested in another person's opinion. 26
  • 27. Requirements elicitation Focus groups A focus group is a group of people who meet to focus on some issue relevant to the problem being solved. They typically include Requirements engineer/Systems analyst Problem domain expert (e.g. an accountant if you are developing accountancy software, or a lawyer for a legal system). People who are authorised to make decisions. 27
  • 28. Requirements elicitation Scenario modeling Scenario modeling attempts to identify how a system works by getting current users to talk through/demonstrate how they handle situations. Very useful as it helps highlight processes that are often not discussed because they are “obvious” These are so useful that there is a notation for recording them in UML Use Case, Sequence, Collaboration and Activity diagrams. 28
  • 29. Requirements elicitation Understanding requirements The traditional model of developing systems had all of the requirements completed before undertaking any analysis of them. This does not work, as it is impossible to know if you are asking sensible questions, or whether there are any contradictions or ambiguities in the requirements without analysing them. Eliciting requirements therefore requires that an analysis be done at the same time or iteratively. 29
  • 30. Requirements elicitation Understanding requirements In some situations the analysis (understanding of the problem) may require you to perform Prototyping Creating a small simple implementation of a part of the system This can be shown to the client for confirmation of your ideas. Proof of concept work Develop a small simple implementation to test if the idea is feasible. In all cases this extra work allows you to construct a more accurate requirements document. 30
  • 31. Problem Chapter 1 Introduction 31 Imagine MyTiMES is not available on mobile, but only on desktop. It is so difficult to submit assignments, post latest updates and to review, when not on desktop. A lecturer (user) , post this pain points to ICT Helpdesk, and the IT department decides to develop a mobile app. Please provide potential user requirements and systems requirements Provide possible requirements elicitation.