SlideShare a Scribd company logo
Requirements : Why Important?
The requirements
specification was
defined like this
The developers
understood it in
that way
This is how the
problem was
solved before.
This is how the
problem is
solved now
That is the program after
debugging
This is how the program is
described by marketing
department
This, in fact, is what the
customer wanted …
Software Lifecycle
•A sample Software Life cycle Concept Exploration- area where one would like to
position the product
Requirements, Design and Construction part of the
standard development phase
Testing, installation and Check out the part of the
system validation process
Operation and maintenance involves mass deploying
the product at customer sites and handling customer
issues and entering the maintenance process
Retirement- phasing out the product and introducing
the newer one in its place
What are Requirements?
Can we convert physical
records to computerised form?
What are Requirements?
•Example scenario
To automate records of student in university that were maintained manually.
To support the business processes of the organisation.
To control the process of floor cleaning using robo.
To gather the agriculture data of various states and suitably suggest the manure,
fertilizers and pesticides of wide variety of crops
etc.
“Requirements define what the system must do and how well the system must perform
within identified constraints”
What are Requirements?
• Specify the functionality of software
• Establish the interfaces external to the software item.
• Provide performance specifications
• Set forth the qualification criteria for software testing.
• Set forth the human factors engineering specifications for the user
interface.
Requirements Specify “What” not “How” !
•What and How- Sometimes the requirements analyst may get lost
into realising the functionality and specify the design approach for a
requirement instead of really documenting what the software shall do
• What the software shall do should be documented in detail during the
requirement phase.
• The How should be the topic of focus during the design phase.
Requirements specify “What” and not
“How”!
•In a student record management system , consider the feature of
entering enrollment number to display the result of a student
•Requirement that specifies “how ” (not recommended) : “If the user
inputs the enrollment number out of range of the system shall flash
an error message in red for 10 seconds ”
Software Requirements: Why Care?
•Rework is the major consequence of requirements problems
-Rework can consume 30% to 50% of total development costs
-Requirements errors can account for 70% to 85% of the rework cost
•Cost of fixing requirements problems at later stages can be high
-Assume that it costs $1 to fix a requirements defect when still
working on requirements; the cost to fix that defect during
operation can be $100 or more on a relative scale
Software Requirements: Why Care?
•Shortcoming in requirements practices can pose manyrisks to project
success
-Where success means delivering a product that satisfies the user's
functional and quality expectations at the agreed upon cost and
schedule
•Following sound requirements practices help create high quality
products with faster development and delivery times with less effort
spent in rework
Cost
to
change
Stage
Requirements Design Construction Test Maintenance
Software Requirements: Why Care?
•"The hardest single part of
building a system is deciding
precisely what to build. No other
part of the conceptual work is as
difficult as establishing the
detailed technical requirements,
including all interfaces to the
people, to machines, and to
other software systems. No
other part of the work so
cripples the resulting system if
done wrong. No other part is
more difficult to rectify later
- Frederick P. Brooks Jr
Software Requirements Knowledge Area
(KA)
Software
Requirements
Requirements
Developments
Requirements
Management
Requirements
elicitation
Requirements
analysis
Requirements
specification
Requirements
validation
Discussion Question
Consider the following requirement: "The system shall have 3-tiers: a
web-based presentation tier, logic tier, and data tier that uses a
relational database." ?
Is this an acceptable requirement?
Discussion Question
Consider the following requirement: “The system shall have 3-tiers: a
web-based presentation tier, logic tier, and data tier that uses a relational
database.” Is this an acceptable requirement?
ANSWER: Requirements should focus on WHAT is required to be solved by
the system and not the HOW part: specifying that the system should consist
of 3-tiers is about HOW aspects of the system.
Since the requirement talks about the HOW part, this is not an acceptable
requirement.
Functional vs. Non-Functional Requirements
Functional requirements Non-Functional Requirements
(NFRs)
• Describe the functions that
the software is to execute
• Also known as "capabilities"
or "features"
• Non-functional requirements
are the ones that act to
constrain the solution .
• Also known as "constraints”
or “quality
requirements”
Functional vs. Non-Functional Requirements
Business
objectives
Features Qualities
Robustness
Functional
Requirements
Usability Performance etc.
Reliability
Non- Functional Requirements
Exercise: Understanding NFRs
Non-Functional Requirement Name Description
A. Reusability 1.How well the system uses the processor
capacity
space, communication, or band width
B. Efficiency 2. How easy it is to correct a defect or make a
change to the software
C. Testability 3. Extent to which a component designed for one
application can be used in an totally different
application
D. Portability 4. The ease with which the software components
or integrated products can be tested
E. Maintainability 5. Effort required to move or migrate software
from one OS to an other
F. Usability 6. Degree to which the system continues to
function correctly when confronted with invalid
data
G. Robustness 7. Ease to use and human engineering, user
Exercise: Understanding NFRs
Non-Functional Requirement Name Description
A. Reusability 3. Extent to which a component designed for one
application can be used in an totally different
application
B. Efficiency 1. How well the system uses the processor
capacity, disk space, communication, or band
width
C. Testability 4. The ease with which the software components
or integrated products can be tested
D. Portability 5. Effort required to move or migrate software
from one OS to an other
E. Maintainability 2. How easy it is to correct a defect or make a
change to the software
F. Usability 7. Ease to use and human engineering, user
friendliness
G. Robustness 6. Degree to which the system continues to
function correctly when confronted with invalid
Desirable properties of Set of Requirements
Realistic
Complete
Correct
Modifiable
Ranked for
Importance
or Stability
Set of
Requirements
Desirable Properties of Individual
Requirements
cl
Individual
Requirements
Clear
Quantifiable
Prioritized
Verifiable
Traceable Feasible
Unambiguous
Consistent
Concise
Functional Requirements: Examples
•In airline tracking system, the system shall assign a unique PNR
number to each booking.
•FastTag in electronic Toll collection system assign UPI Id for making
toll payments from customers linked prepaid or saving account.
Non Functional Requirements: Examples
•In Airline Tracking System
“Given a PNR number as input, the system should display the status of
the flight within 3 seconds to the user (performance requirement).
“The System shall protect against unauthorised addition or deletion of
PNR number.” (Security Requirement)
Some Common NFRs… (1)
Availability Planned uptime, actually available and fully
operational. Example : The system should be
available 99.999% of the time.
Efficiency How well the system uses the processor capacity, disk
space , communication bandwidth etc.
Flexibility How much effort is needed to add new capability to
the product.
Interoperability Exchange data or services with other systems.
Reliability Software executing without failure
Robustness Degree to which the system continues to function,
correctly when confronted with invalid data; also
ability to recover from failures
Some Common NFRs…(2)
Usability Ease of use and human engineering, user friendliness
Maintainability How easy it is to correct a defect or make a change to the software
Portability Effort required to move or mitigate software from one platform to another.
Example: The system should support the following operating systems:
Windows 8.0 and above and Mac OS 8.0 and above.
Reusability Extent to which a component designed for one application can be used in
an totally different application
Testability Ease with which the software components or integrated products can be
tested.
Exercise: Classifying Requirements
•FRs : “Functional Requirements” (also called capabilities), state what
the software must perform.
• NFRs : “Non Functional Requirements” specify the criteria that can be
used to judge the operation of the system.
•Exercise is to match the requirements in the left-hand-side column
with the CLOSEST requirement kind given in the right-hand-side
column.
Exercise: Classifying Requirements
Requirement Functional Requirement (FR) /
Non-Functional Requirement(NFR)
A. The system should display the result of the student within 1
second.
Select one of : [FR/ NFR]
B. The date of birth of the student should be displayed in
DD/MM/YYYY format
Select one of : [FR/ NFR]
C. The student portal should support 10,000 students of the
university at a given point of time.
Select one of : [FR/ NFR]
D. The university website should be available 99.999 % of the time. Select one of : [FR/ NFR]
E. The student must be able to download the syllabus of the semester
as PDF (Portable Document Format) Files.
Select one of : [FR/ NFR]
F. The system should be menu-driven. Select one of : [FR/ NFR]
G. 80% of the new students registration must be able to take the
details in the database within the first 5 minutes of time.
Select one of : [FR/ NFR]
Exercise: Classifying Requirements
Requirement Functional Requirement (FR) /
Non-Functional Requirement(NFR)
A. The system should display the result of the student within 1
second.
Select one of : [FR/ NFR]
B. The date of birth of the student should be displayed in
DD/MM/YYYY format
Select one of : [FR/ NFR]
C. The student portal should support 10,000 students of the
university at a given point of time.
Select one of : [FR/ NFR]
D. The university website should be available 99.999 % of the time. Select one of : [FR/ NFR]
E. The student must be able to download the syllabus of the semester
as PDF (Portable Document Format) Files.
Select one of : [FR/ NFR]
F. The system should be menu-driven. Select one of : [FR/ NFR]
G. 80% of the new students registration must be able to take the
details in the database within the first 5 minutes of time.
Select one of : [FR/ NFR]
Desirable Properties of Requirements
Clear Requirements should be written in precise simple language that every reader
can understand. Example: How easy is it for a customer to use the system?
Concise Requirements should describe a single property and expressed with as few words
as possible. For Example: in the library automation problem, you should not
specify whether the library membership records need to be stored sorted on the
member’s first name in a descending order arrangement.
Consistent No requirement should contradict another. For example: one of the clerks
described that a student securing fail grades in three or more subjects should
have to repeat the entire semester. Another clerk mentioned that there is no
provision for any student to repeat a semester.
Unambiguous A requirement should have only one interpretation. For example: In a process
control application , a requirement expressed by one user is that when the
temperature becomes high , the heater should be switched off. Words such as
high, low, good, bad etc. are ambiguous without proper quantification.
Feasible A requirement should be realizable with a specified time frame. Example: It is the
probability and percentage of the software performing without failure for a
Desirable Properties of Requirements
Realistic The goals that are represented by the requirements should be attainable within
time, resource and cost constraints placed upon the project. Example : Each page
must load within 2 seconds. The process must finish within 3 hours so data is
available by 8 a.m. local time after an overnight update.
Complete All the services needed from the system should be included. For example: In a
chemical plant automation software, one of the requirements is that if the internal
temperature exceeds 200 degree C then the alarm bell must be sounded. However
there is no provision for resetting the alarm bell in any of the requirements.
Correct An SRS is correct if and only if every requirement stated therein is one that the
software shall meet.
Modifiable Changes to the requirements should be able to be made easily, completely and
consistently while retaining the structure and style. Example: Customers frequently
change the requirements during the software development development due to a
variety of reasons. Therefore, in practice the SRS document undergoes several
revisions during software development. Also, an SRS document is often modified
after the project completes to accommodate
Example: Verifiable Requirements
The functional :
"The white
requirement board
printer should
support printing
A2 size sheets"
-verifiable as an
individual feature
The non-functional
requirement
(NFR): "The
whiteboard printer
should complete
booting in 2
seconds":
verifiable at
system level
Emergent Properties
•Some requirements represent emergent properties of software
that is, requirements that cannot be addressed by a single
component but that depend on how all the software components
interoperate
-Example: The throughput requirement for a call centre would, for
example, depend on how the telephone system, information system, and
the operators all interacted under actual operating condition.
•Emergent properties are crucially dependent on the system
architecture
Quantifiable Requirements: Example
Ambiguous (un-quantified)
requirement
Unambiguous (quantified)
requirement
The call center software should
have higher throughput than the
earlier version of the software
The call center's software must
increase the center's throughput by
20% when compared to the version
10.1 of the software
The software shall be reliable The software shall have a
probability of generating a fatal
error during any hour of operation
of less than 1 * 10-8
Quantifying Requirements
Requirement Type Examples of Measures
Look and feel Rate of acceptance from users
Usability Error rates from the users
Performance and speed Response time from the software
Reliability Downtime of the software
Portability Number of platforms supported
Robustness % of fatal/nonfatal errors
Maintainability Time and work required to make a change inthe
software
Certification Compliance with standards
System vs. Software Requirements
System requirements focus on
the system as a whole
Software requirements are
those requirements that are
derived from system
requirements
Requirements may be allocated
to hardware, software,
organizational processes or
other components of the system
These requirements are
allocated to the software - What
do we want the software in the
system to do?
System vs. Software Requirements
Software
Requirements
System
Requirements
Focus on the system as a whole ("What do you want
the system to do?")
Derived from system requirements ("What
do we want the software in the system to
do?")
Deriving Requirements
Customer Statement/
Voice of the Customer
Business Use Case
System
Requirements
Software
Requirements
Specific Use Case
Discussion Question
Why are the attributes in the
table classified as important
from the user and developer
point of view? Discuss with
examples.
Important primarily
to users
Important to
developers
1. Availability 1. Maintainability
2. Efficiency 2. Portability
3. Reliability. 3. Reusability
4. Usability 4. Testability
Product vs. Process Requirements
Product requirements Process requirements
• What the software must do
or what users must be able
to do with it
• Constraints on development
of the software (including
specification of a
development language or
toolset, verification
techniques, or the overall
process to be followed)
Product Requirements: Examples
•For a course registration system in a university: "The software should
verify that a student meets all prerequisites before he or she registers
for a course“
•For a telecommunications billing application:
-“The software should be able to generate 100 bills per second (performance
requirement)”
-“The software must support Mac OS X and Windows 8.1 and later versions
(portability requirement)”
Process Requirements: Examples
•For a software embedded in a router device: “The software must be
implemented in C language (example of a language constrain)”
For a Networking Management System (NMS) software: “The
software must be implemented using Rational Unified Process (RUP)
method (example of a process constraint)”
Requirements Process Model
• The requirements process takes a business or engineeringproblem
and, from it, creates the specifications for asystem that will provide a
solution to that problem
•This generic process model shows four sets of activities to produce
specifications from business or engineering problem
- Requirements elicitation
- Requirements analysis
- Requirements specification
- Requirements validation
Requirements Process Model
Elicitation Analysis Specification Validation
clarity Close gaps rewrite
Re – evaluate
Confirm ad correct
Requirements Process Activities
Requirements Process Activity Short Description
Requirements elicitation The process of gathering or discovering the
requirements
Requirements analysis The process of reviewing the requirements,
understanding requirements them as individual
requirements and in the larger context of all
requirements, and synthesizing them to specify a
solution
Requirements specifications The creation of the software and system
specificationdocuments
Requirements Validation The set of formal and informal reviews and other
techniques that help ensure that the requirements
will produce a product that will meet the customer’s
needs when operated in its intended environment
Process Actors / Stakeholders
Users
Customers
Market Analysts
Regulator
Software
Engineers
Testing Team
Requirements
engineer/software
engineer
Process Stakeholders
•Stakeholders are people who have an interest in the software
engineering project/product
•It is important to identify stakeholders early in the process
- This will help us ensure that all sources of requirements are included
•It will not be possible to perfectly satisfy the requirementsof every
stakeholder
- It is the software engineer's job to negotiate tradeoffs that are both
acceptable to the principal stakeholders and within budgetary, technical,
regulatory, and other constraints
Typical Process Stakeholders
Role Use of Requirements
Project leader • Determine scope and create project plan
• Get agreement from owners
• Track progress
Analyst • Elicit requirements
• Decompose requirements
Development team • Design and code to requirements
Engineer efficiency and reuse
Test team • Verify conformance to requirements
Project Sponsor • Provide motivation and sign off
Maintenance team • Support users in production.
• Ensure changes fit requirements
Review Question
You are a requirements analyst working on gathering or discovering the
requirements by interviewing various project stakeholders. Which
requirements process activity are you performing?
a) Requirements elicitation
b) Requirements analysis
c) Requirements specification
d) Requirements validation
Requirements Elicitation
•Requirements elicitation is the process of working proactively with all
stakeholders gathering their needs, articulating their problem,
identify and negotiate potential conflicts thereby establishing a clear
scope and boundary for a project
•It can also be described as a process of ensuring that the stakeholders
have been identified and they have been given an opportunity to
explain their problem and needs. And describe what they would like
the new system to do
Dimensions of Requirements Elicitation
Requirements
elicitation:
Dimension
Understanding the problem
Understanding the domain
Identifying clear business objectives
Understanding the needs
Understanding constraints of the system
stakeholders
Writing business objectives for the project
Requirement Sources
High Level Goals
Feasibility
study
Focus
Groups
Stakeholders and System Context
Organizational
Environment
Operational
Environment
Requirements Elicitation
Understanding
problem
Write Business
Objectives
Gather
Information
from
Stakeholders
Goals
•The "goal" (sometimes called "business concern" or "critical success
factor") refers to the overall, high-level objectives of the software
• Goals provide the motivation for the software but are often vaguely
formulated.
•A "feasibility study" is a relatively low-cost way to assess the viability
or practicality of realizing the goals
Interviews
•Interviewing stakeholders is a "traditional" means of eliciting
requirements
Advantages Disadvantages
• Effective to get an overall
understanding of what
stakeholders do and how
they are likely to interact
with the system
• Stakeholders language is
so filled with
business-related jargon
hard for engineers to
understand
Stakeholders find some
key activities so familiar
Prototypes
•Prototyping technique is a valuable
tool for clarifying ambiguous
requirements.
•Wide range of prototyping
techniques available ranging from
paper mockups of screen designs to
beta-test versions of software
products
GUI Builder
GUI
Facilitated Meetings
•Stakeholders brainstorm and refine ideas in a meeting facilitated by a
moderator
Advantages Disadvantages
• Bring more insight into their
software requirements than
by working individually.
• Conflicting requirements
surface early
• Result in a richer and more
consistentset of
requirements
• Critical abilities of the team
may get eroded by group
loyalty
• Concerns of a few
outspoken (and perhaps
senior) people may get
favoured to the detriment of
others
Observation
•When using observation technique,
software engineers learn about user
tasks by immersing themselves in
the environment and observing how
users perform their tasks by
interacting with each other and with
software tools and other resources.
User Stories
•Refers to short, high-level descriptions of required functionality
expressed in customer terms
A user story is intended to contain just enough inform so that the
developers can produce a reasonable esti of the effort to implement it
User stories is a commonly used technique in Agile Methods
computer society
User Stories: Template
Template
“As a <role>, I want <goal/desire> so that <benefit>”
Example
“As a buyer,
I want the check out page to have “confirm” button so
that I can review the order before paying the money”

More Related Content

PPT
Ch 1-Introduction.ppt
PPTX
2.1. SW Requirements n Specifications.pptx
PPTX
Requirement-Levels in Software Requirement Engineering
PPTX
Software Requirement Engineering Documenting Requirements
PPT
CS8494 SOFTWARE ENGINEERING Unit-2
PDF
SE UNIT 2.pdf
PPT
Requirements Engineering
PPT
Software engineering lecture 1
Ch 1-Introduction.ppt
2.1. SW Requirements n Specifications.pptx
Requirement-Levels in Software Requirement Engineering
Software Requirement Engineering Documenting Requirements
CS8494 SOFTWARE ENGINEERING Unit-2
SE UNIT 2.pdf
Requirements Engineering
Software engineering lecture 1

Similar to Software Requirements Till User Stories.pdf (20)

PDF
SE-Unit II.pdf
PPT
Software Engineering Lec 4-requirments
PDF
9-Requirements Engineering process, Requirement Elicitation-21-01-2025.pdf
PPT
Requirements Engineering about one of requirement engineering process
PPT
Requirements Engineering - SRS - IEEE.ppt
PDF
3. 1 req elicitation
PPTX
Requirement Engineering. Types of requirement
PDF
Software testing and introduction to quality
PPTX
PPT ch 3 Requirement Analysis and Specification.pptx
PPTX
Beit 381 se lec 15 - 16 - 12 mar27 - req engg 1 of 3
PPTX
Software Development Life Cycle (SDLC )
PPT
Software Requiremnets
PPTX
Requirements engineering
PDF
Requirement Engineering
PPTX
Online course registration system development software engineering project pr...
PPTX
Ch 2 types of reqirement
PPTX
Software Engineering and Project Management - A Beginner's Guide - Part 2
DOC
RaviKuraba_4
PPT
Reqs analysis
PPTX
Requirements engineering
SE-Unit II.pdf
Software Engineering Lec 4-requirments
9-Requirements Engineering process, Requirement Elicitation-21-01-2025.pdf
Requirements Engineering about one of requirement engineering process
Requirements Engineering - SRS - IEEE.ppt
3. 1 req elicitation
Requirement Engineering. Types of requirement
Software testing and introduction to quality
PPT ch 3 Requirement Analysis and Specification.pptx
Beit 381 se lec 15 - 16 - 12 mar27 - req engg 1 of 3
Software Development Life Cycle (SDLC )
Software Requiremnets
Requirements engineering
Requirement Engineering
Online course registration system development software engineering project pr...
Ch 2 types of reqirement
Software Engineering and Project Management - A Beginner's Guide - Part 2
RaviKuraba_4
Reqs analysis
Requirements engineering
Ad

Recently uploaded (20)

PDF
Optimise Shopper Experiences with a Strong Data Estate.pdf
PDF
Systems Analysis and Design, 12th Edition by Scott Tilley Test Bank.pdf
PDF
Transcultural that can help you someday.
PDF
Introduction to the R Programming Language
PPTX
STERILIZATION AND DISINFECTION-1.ppthhhbx
PPTX
FMIS 108 and AISlaudon_mis17_ppt_ch11.pptx
PPTX
QUANTUM_COMPUTING_AND_ITS_POTENTIAL_APPLICATIONS[2].pptx
PPTX
Qualitative Qantitative and Mixed Methods.pptx
PPTX
Business_Capability_Map_Collection__pptx
PDF
Microsoft 365 products and services descrption
PDF
annual-report-2024-2025 original latest.
PDF
Data Engineering Interview Questions & Answers Cloud Data Stacks (AWS, Azure,...
PPT
DU, AIS, Big Data and Data Analytics.ppt
PDF
Business Analytics and business intelligence.pdf
PPTX
CYBER SECURITY the Next Warefare Tactics
PPTX
DS-40-Pre-Engagement and Kickoff deck - v8.0.pptx
PPTX
A Complete Guide to Streamlining Business Processes
PDF
Navigating the Thai Supplements Landscape.pdf
PPTX
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
PPT
Predictive modeling basics in data cleaning process
Optimise Shopper Experiences with a Strong Data Estate.pdf
Systems Analysis and Design, 12th Edition by Scott Tilley Test Bank.pdf
Transcultural that can help you someday.
Introduction to the R Programming Language
STERILIZATION AND DISINFECTION-1.ppthhhbx
FMIS 108 and AISlaudon_mis17_ppt_ch11.pptx
QUANTUM_COMPUTING_AND_ITS_POTENTIAL_APPLICATIONS[2].pptx
Qualitative Qantitative and Mixed Methods.pptx
Business_Capability_Map_Collection__pptx
Microsoft 365 products and services descrption
annual-report-2024-2025 original latest.
Data Engineering Interview Questions & Answers Cloud Data Stacks (AWS, Azure,...
DU, AIS, Big Data and Data Analytics.ppt
Business Analytics and business intelligence.pdf
CYBER SECURITY the Next Warefare Tactics
DS-40-Pre-Engagement and Kickoff deck - v8.0.pptx
A Complete Guide to Streamlining Business Processes
Navigating the Thai Supplements Landscape.pdf
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
Predictive modeling basics in data cleaning process
Ad

Software Requirements Till User Stories.pdf

  • 1. Requirements : Why Important? The requirements specification was defined like this The developers understood it in that way This is how the problem was solved before. This is how the problem is solved now That is the program after debugging This is how the program is described by marketing department This, in fact, is what the customer wanted …
  • 2. Software Lifecycle •A sample Software Life cycle Concept Exploration- area where one would like to position the product Requirements, Design and Construction part of the standard development phase Testing, installation and Check out the part of the system validation process Operation and maintenance involves mass deploying the product at customer sites and handling customer issues and entering the maintenance process Retirement- phasing out the product and introducing the newer one in its place
  • 3. What are Requirements? Can we convert physical records to computerised form?
  • 4. What are Requirements? •Example scenario To automate records of student in university that were maintained manually. To support the business processes of the organisation. To control the process of floor cleaning using robo. To gather the agriculture data of various states and suitably suggest the manure, fertilizers and pesticides of wide variety of crops etc. “Requirements define what the system must do and how well the system must perform within identified constraints”
  • 5. What are Requirements? • Specify the functionality of software • Establish the interfaces external to the software item. • Provide performance specifications • Set forth the qualification criteria for software testing. • Set forth the human factors engineering specifications for the user interface.
  • 6. Requirements Specify “What” not “How” ! •What and How- Sometimes the requirements analyst may get lost into realising the functionality and specify the design approach for a requirement instead of really documenting what the software shall do • What the software shall do should be documented in detail during the requirement phase. • The How should be the topic of focus during the design phase.
  • 7. Requirements specify “What” and not “How”! •In a student record management system , consider the feature of entering enrollment number to display the result of a student •Requirement that specifies “how ” (not recommended) : “If the user inputs the enrollment number out of range of the system shall flash an error message in red for 10 seconds ”
  • 8. Software Requirements: Why Care? •Rework is the major consequence of requirements problems -Rework can consume 30% to 50% of total development costs -Requirements errors can account for 70% to 85% of the rework cost •Cost of fixing requirements problems at later stages can be high -Assume that it costs $1 to fix a requirements defect when still working on requirements; the cost to fix that defect during operation can be $100 or more on a relative scale
  • 9. Software Requirements: Why Care? •Shortcoming in requirements practices can pose manyrisks to project success -Where success means delivering a product that satisfies the user's functional and quality expectations at the agreed upon cost and schedule •Following sound requirements practices help create high quality products with faster development and delivery times with less effort spent in rework
  • 10. Cost to change Stage Requirements Design Construction Test Maintenance Software Requirements: Why Care?
  • 11. •"The hardest single part of building a system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all interfaces to the people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later - Frederick P. Brooks Jr
  • 12. Software Requirements Knowledge Area (KA) Software Requirements Requirements Developments Requirements Management Requirements elicitation Requirements analysis Requirements specification Requirements validation
  • 13. Discussion Question Consider the following requirement: "The system shall have 3-tiers: a web-based presentation tier, logic tier, and data tier that uses a relational database." ? Is this an acceptable requirement?
  • 14. Discussion Question Consider the following requirement: “The system shall have 3-tiers: a web-based presentation tier, logic tier, and data tier that uses a relational database.” Is this an acceptable requirement? ANSWER: Requirements should focus on WHAT is required to be solved by the system and not the HOW part: specifying that the system should consist of 3-tiers is about HOW aspects of the system. Since the requirement talks about the HOW part, this is not an acceptable requirement.
  • 15. Functional vs. Non-Functional Requirements Functional requirements Non-Functional Requirements (NFRs) • Describe the functions that the software is to execute • Also known as "capabilities" or "features" • Non-functional requirements are the ones that act to constrain the solution . • Also known as "constraints” or “quality requirements”
  • 16. Functional vs. Non-Functional Requirements Business objectives Features Qualities Robustness Functional Requirements Usability Performance etc. Reliability Non- Functional Requirements
  • 17. Exercise: Understanding NFRs Non-Functional Requirement Name Description A. Reusability 1.How well the system uses the processor capacity space, communication, or band width B. Efficiency 2. How easy it is to correct a defect or make a change to the software C. Testability 3. Extent to which a component designed for one application can be used in an totally different application D. Portability 4. The ease with which the software components or integrated products can be tested E. Maintainability 5. Effort required to move or migrate software from one OS to an other F. Usability 6. Degree to which the system continues to function correctly when confronted with invalid data G. Robustness 7. Ease to use and human engineering, user
  • 18. Exercise: Understanding NFRs Non-Functional Requirement Name Description A. Reusability 3. Extent to which a component designed for one application can be used in an totally different application B. Efficiency 1. How well the system uses the processor capacity, disk space, communication, or band width C. Testability 4. The ease with which the software components or integrated products can be tested D. Portability 5. Effort required to move or migrate software from one OS to an other E. Maintainability 2. How easy it is to correct a defect or make a change to the software F. Usability 7. Ease to use and human engineering, user friendliness G. Robustness 6. Degree to which the system continues to function correctly when confronted with invalid
  • 19. Desirable properties of Set of Requirements Realistic Complete Correct Modifiable Ranked for Importance or Stability Set of Requirements
  • 20. Desirable Properties of Individual Requirements cl Individual Requirements Clear Quantifiable Prioritized Verifiable Traceable Feasible Unambiguous Consistent Concise
  • 21. Functional Requirements: Examples •In airline tracking system, the system shall assign a unique PNR number to each booking. •FastTag in electronic Toll collection system assign UPI Id for making toll payments from customers linked prepaid or saving account.
  • 22. Non Functional Requirements: Examples •In Airline Tracking System “Given a PNR number as input, the system should display the status of the flight within 3 seconds to the user (performance requirement). “The System shall protect against unauthorised addition or deletion of PNR number.” (Security Requirement)
  • 23. Some Common NFRs… (1) Availability Planned uptime, actually available and fully operational. Example : The system should be available 99.999% of the time. Efficiency How well the system uses the processor capacity, disk space , communication bandwidth etc. Flexibility How much effort is needed to add new capability to the product. Interoperability Exchange data or services with other systems. Reliability Software executing without failure Robustness Degree to which the system continues to function, correctly when confronted with invalid data; also ability to recover from failures
  • 24. Some Common NFRs…(2) Usability Ease of use and human engineering, user friendliness Maintainability How easy it is to correct a defect or make a change to the software Portability Effort required to move or mitigate software from one platform to another. Example: The system should support the following operating systems: Windows 8.0 and above and Mac OS 8.0 and above. Reusability Extent to which a component designed for one application can be used in an totally different application Testability Ease with which the software components or integrated products can be tested.
  • 25. Exercise: Classifying Requirements •FRs : “Functional Requirements” (also called capabilities), state what the software must perform. • NFRs : “Non Functional Requirements” specify the criteria that can be used to judge the operation of the system. •Exercise is to match the requirements in the left-hand-side column with the CLOSEST requirement kind given in the right-hand-side column.
  • 26. Exercise: Classifying Requirements Requirement Functional Requirement (FR) / Non-Functional Requirement(NFR) A. The system should display the result of the student within 1 second. Select one of : [FR/ NFR] B. The date of birth of the student should be displayed in DD/MM/YYYY format Select one of : [FR/ NFR] C. The student portal should support 10,000 students of the university at a given point of time. Select one of : [FR/ NFR] D. The university website should be available 99.999 % of the time. Select one of : [FR/ NFR] E. The student must be able to download the syllabus of the semester as PDF (Portable Document Format) Files. Select one of : [FR/ NFR] F. The system should be menu-driven. Select one of : [FR/ NFR] G. 80% of the new students registration must be able to take the details in the database within the first 5 minutes of time. Select one of : [FR/ NFR]
  • 27. Exercise: Classifying Requirements Requirement Functional Requirement (FR) / Non-Functional Requirement(NFR) A. The system should display the result of the student within 1 second. Select one of : [FR/ NFR] B. The date of birth of the student should be displayed in DD/MM/YYYY format Select one of : [FR/ NFR] C. The student portal should support 10,000 students of the university at a given point of time. Select one of : [FR/ NFR] D. The university website should be available 99.999 % of the time. Select one of : [FR/ NFR] E. The student must be able to download the syllabus of the semester as PDF (Portable Document Format) Files. Select one of : [FR/ NFR] F. The system should be menu-driven. Select one of : [FR/ NFR] G. 80% of the new students registration must be able to take the details in the database within the first 5 minutes of time. Select one of : [FR/ NFR]
  • 28. Desirable Properties of Requirements Clear Requirements should be written in precise simple language that every reader can understand. Example: How easy is it for a customer to use the system? Concise Requirements should describe a single property and expressed with as few words as possible. For Example: in the library automation problem, you should not specify whether the library membership records need to be stored sorted on the member’s first name in a descending order arrangement. Consistent No requirement should contradict another. For example: one of the clerks described that a student securing fail grades in three or more subjects should have to repeat the entire semester. Another clerk mentioned that there is no provision for any student to repeat a semester. Unambiguous A requirement should have only one interpretation. For example: In a process control application , a requirement expressed by one user is that when the temperature becomes high , the heater should be switched off. Words such as high, low, good, bad etc. are ambiguous without proper quantification. Feasible A requirement should be realizable with a specified time frame. Example: It is the probability and percentage of the software performing without failure for a
  • 29. Desirable Properties of Requirements Realistic The goals that are represented by the requirements should be attainable within time, resource and cost constraints placed upon the project. Example : Each page must load within 2 seconds. The process must finish within 3 hours so data is available by 8 a.m. local time after an overnight update. Complete All the services needed from the system should be included. For example: In a chemical plant automation software, one of the requirements is that if the internal temperature exceeds 200 degree C then the alarm bell must be sounded. However there is no provision for resetting the alarm bell in any of the requirements. Correct An SRS is correct if and only if every requirement stated therein is one that the software shall meet. Modifiable Changes to the requirements should be able to be made easily, completely and consistently while retaining the structure and style. Example: Customers frequently change the requirements during the software development development due to a variety of reasons. Therefore, in practice the SRS document undergoes several revisions during software development. Also, an SRS document is often modified after the project completes to accommodate
  • 30. Example: Verifiable Requirements The functional : "The white requirement board printer should support printing A2 size sheets" -verifiable as an individual feature The non-functional requirement (NFR): "The whiteboard printer should complete booting in 2 seconds": verifiable at system level
  • 31. Emergent Properties •Some requirements represent emergent properties of software that is, requirements that cannot be addressed by a single component but that depend on how all the software components interoperate -Example: The throughput requirement for a call centre would, for example, depend on how the telephone system, information system, and the operators all interacted under actual operating condition. •Emergent properties are crucially dependent on the system architecture
  • 32. Quantifiable Requirements: Example Ambiguous (un-quantified) requirement Unambiguous (quantified) requirement The call center software should have higher throughput than the earlier version of the software The call center's software must increase the center's throughput by 20% when compared to the version 10.1 of the software The software shall be reliable The software shall have a probability of generating a fatal error during any hour of operation of less than 1 * 10-8
  • 33. Quantifying Requirements Requirement Type Examples of Measures Look and feel Rate of acceptance from users Usability Error rates from the users Performance and speed Response time from the software Reliability Downtime of the software Portability Number of platforms supported Robustness % of fatal/nonfatal errors Maintainability Time and work required to make a change inthe software Certification Compliance with standards
  • 34. System vs. Software Requirements System requirements focus on the system as a whole Software requirements are those requirements that are derived from system requirements Requirements may be allocated to hardware, software, organizational processes or other components of the system These requirements are allocated to the software - What do we want the software in the system to do?
  • 35. System vs. Software Requirements Software Requirements System Requirements Focus on the system as a whole ("What do you want the system to do?") Derived from system requirements ("What do we want the software in the system to do?")
  • 36. Deriving Requirements Customer Statement/ Voice of the Customer Business Use Case System Requirements Software Requirements Specific Use Case
  • 37. Discussion Question Why are the attributes in the table classified as important from the user and developer point of view? Discuss with examples. Important primarily to users Important to developers 1. Availability 1. Maintainability 2. Efficiency 2. Portability 3. Reliability. 3. Reusability 4. Usability 4. Testability
  • 38. Product vs. Process Requirements Product requirements Process requirements • What the software must do or what users must be able to do with it • Constraints on development of the software (including specification of a development language or toolset, verification techniques, or the overall process to be followed)
  • 39. Product Requirements: Examples •For a course registration system in a university: "The software should verify that a student meets all prerequisites before he or she registers for a course“ •For a telecommunications billing application: -“The software should be able to generate 100 bills per second (performance requirement)” -“The software must support Mac OS X and Windows 8.1 and later versions (portability requirement)”
  • 40. Process Requirements: Examples •For a software embedded in a router device: “The software must be implemented in C language (example of a language constrain)” For a Networking Management System (NMS) software: “The software must be implemented using Rational Unified Process (RUP) method (example of a process constraint)”
  • 41. Requirements Process Model • The requirements process takes a business or engineeringproblem and, from it, creates the specifications for asystem that will provide a solution to that problem •This generic process model shows four sets of activities to produce specifications from business or engineering problem - Requirements elicitation - Requirements analysis - Requirements specification - Requirements validation
  • 42. Requirements Process Model Elicitation Analysis Specification Validation clarity Close gaps rewrite Re – evaluate Confirm ad correct
  • 43. Requirements Process Activities Requirements Process Activity Short Description Requirements elicitation The process of gathering or discovering the requirements Requirements analysis The process of reviewing the requirements, understanding requirements them as individual requirements and in the larger context of all requirements, and synthesizing them to specify a solution Requirements specifications The creation of the software and system specificationdocuments Requirements Validation The set of formal and informal reviews and other techniques that help ensure that the requirements will produce a product that will meet the customer’s needs when operated in its intended environment
  • 44. Process Actors / Stakeholders Users Customers Market Analysts Regulator Software Engineers Testing Team Requirements engineer/software engineer
  • 45. Process Stakeholders •Stakeholders are people who have an interest in the software engineering project/product •It is important to identify stakeholders early in the process - This will help us ensure that all sources of requirements are included •It will not be possible to perfectly satisfy the requirementsof every stakeholder - It is the software engineer's job to negotiate tradeoffs that are both acceptable to the principal stakeholders and within budgetary, technical, regulatory, and other constraints
  • 46. Typical Process Stakeholders Role Use of Requirements Project leader • Determine scope and create project plan • Get agreement from owners • Track progress Analyst • Elicit requirements • Decompose requirements Development team • Design and code to requirements Engineer efficiency and reuse Test team • Verify conformance to requirements Project Sponsor • Provide motivation and sign off Maintenance team • Support users in production. • Ensure changes fit requirements
  • 47. Review Question You are a requirements analyst working on gathering or discovering the requirements by interviewing various project stakeholders. Which requirements process activity are you performing? a) Requirements elicitation b) Requirements analysis c) Requirements specification d) Requirements validation
  • 48. Requirements Elicitation •Requirements elicitation is the process of working proactively with all stakeholders gathering their needs, articulating their problem, identify and negotiate potential conflicts thereby establishing a clear scope and boundary for a project •It can also be described as a process of ensuring that the stakeholders have been identified and they have been given an opportunity to explain their problem and needs. And describe what they would like the new system to do
  • 49. Dimensions of Requirements Elicitation Requirements elicitation: Dimension Understanding the problem Understanding the domain Identifying clear business objectives Understanding the needs Understanding constraints of the system stakeholders Writing business objectives for the project
  • 50. Requirement Sources High Level Goals Feasibility study Focus Groups Stakeholders and System Context Organizational Environment Operational Environment Requirements Elicitation Understanding problem Write Business Objectives Gather Information from Stakeholders
  • 51. Goals •The "goal" (sometimes called "business concern" or "critical success factor") refers to the overall, high-level objectives of the software • Goals provide the motivation for the software but are often vaguely formulated. •A "feasibility study" is a relatively low-cost way to assess the viability or practicality of realizing the goals
  • 52. Interviews •Interviewing stakeholders is a "traditional" means of eliciting requirements Advantages Disadvantages • Effective to get an overall understanding of what stakeholders do and how they are likely to interact with the system • Stakeholders language is so filled with business-related jargon hard for engineers to understand Stakeholders find some key activities so familiar
  • 53. Prototypes •Prototyping technique is a valuable tool for clarifying ambiguous requirements. •Wide range of prototyping techniques available ranging from paper mockups of screen designs to beta-test versions of software products GUI Builder GUI
  • 54. Facilitated Meetings •Stakeholders brainstorm and refine ideas in a meeting facilitated by a moderator Advantages Disadvantages • Bring more insight into their software requirements than by working individually. • Conflicting requirements surface early • Result in a richer and more consistentset of requirements • Critical abilities of the team may get eroded by group loyalty • Concerns of a few outspoken (and perhaps senior) people may get favoured to the detriment of others
  • 55. Observation •When using observation technique, software engineers learn about user tasks by immersing themselves in the environment and observing how users perform their tasks by interacting with each other and with software tools and other resources.
  • 56. User Stories •Refers to short, high-level descriptions of required functionality expressed in customer terms A user story is intended to contain just enough inform so that the developers can produce a reasonable esti of the effort to implement it User stories is a commonly used technique in Agile Methods computer society
  • 57. User Stories: Template Template “As a <role>, I want <goal/desire> so that <benefit>” Example “As a buyer, I want the check out page to have “confirm” button so that I can review the order before paying the money”