SlideShare a Scribd company logo
1 of 33
CIS512SoftwareQualityAssurance
Topic 1: Introduction to
Software Quality
Quality
•The American Heritage Dictionary
defines quality as
• “a characteristic or attribute of
something.”
Quality—A Philosophical View
• Robert Persig [Per74] commented on the thing we call
quality:
• Quality . . . you know what it is, yet you don't know what it is. But that's
self-contradictory. But some things are better than others, that is, they
have more quality. But when you try to say what the quality is, apart
from the things that have it, it all goes poof! There's nothing to talk
about. But if you can't say what Quality is, how do you know what it is,
or how do you know that it even exists? If no one knows what it is, then
for all practical purposes it doesn't exist at all. But for all practical
purposes it really does exist. What else are the grades based on? Why
else would people pay fortunes for some things and throw others in the
trash pile? Obviously some things are better than others . . . but what's
the betterness? . . . So round and round you go, spinning mental wheels
and nowhere finding anyplace to get traction. What the hell is Quality?
What is it?
Quality—A Pragmatic View
• The transcendental view argues (like Persig) that
quality is something that you immediately recognize,
but cannot explicitly define.
• The user view sees quality in terms of an end-user’s
specific goals. If a product meets those goals, it
exhibits quality.
• The manufacturer’s view defines quality in terms of
the original specification of the product. If the
product conforms to the spec, it exhibits quality.
• The product view suggests that quality can be tied
to inherent characteristics (e.g., functions and
features) of a product.
• Finally, the value-based view measures quality
based on how much a customer is willing to pay for
a product. In reality, quality encompasses all of
these views and more.
SW quality - IEEE definition
1. The degree to which a system,
component, or process meets specified
requirements.
2. The degree to which a system,
component, or process meets customer
or user needs or expectations.
SW quality - Pressman’s definition
• Conformance to explicitly stated functional
and performance requirements, explicitly
documented development standards, and
implicit characteristics that are expected
of all professionally developed software.
• User satisfaction = compliant product +
good quality + delivery within budget and
schedule
Software Quality
• Software quality can be defined as:
• An effective software process applied in a
manner that creates a useful product that
provides measurable value for those who
produce it and those who use it.
• This definition has been adapted from [Bes04]
and replaces a more manufacturing-oriented view
presented in earlier editions of this book.
Effective Software Process
• An effective software process establishes the
infrastructure that supports any effort at building a
high quality software product.
• The management aspects of process create the
checks and balances that help avoid project chaos—a
key contributor to poor quality.
• Software engineering practices allow the developer
to analyze the problem and design a solid solution—
both critical to building high quality software.
• Finally, umbrella activities such as change
management and technical reviews have as much to
do with quality as any other part of software
engineering practice.
Useful Product
• A useful product delivers the content, functions,
and features that the end-user desires
• But as important, it delivers these assets in a
reliable, error free way.
• A useful product always satisfies those
requirements that have been explicitly stated
by stakeholders.
• In addition, it satisfies a set of implicit
requirements (e.g., ease of use) that are
expected of all high quality software.
Adding Value
• By adding value for both the producer and user of a
software product, high quality software provides
benefits for the software organization and the end-user
community.
• The software organization gains added value because
high quality software requires less maintenance effort,
fewer bug fixes, and reduced customer support.
• The user community gains added value because the
application provides a useful capability in a way that
expedites some business process.
• The end result is:
• (1) greater software product revenue,
• (2) better profitability when an application supports a
business process, and/or
• (3) improved availability of information that is crucial
for the business.
Quality Dimensions
• David Garvin [Gar87]:
• Performance Quality. Does the software deliver all
content, functions, and features that are specified as part
of the requirements model in a way that provides value
to the end-user?
• Feature quality. Does the software provide features
that surprise and delight first-time end-users?
• Reliability. Does the software deliver all features and
capability without failure? Is it available when it is
needed? Does it deliver functionality that is error free?
• Conformance. Does the software conform to local and
external software standards that are relevant to the
application? Does it conform to de facto design and
coding conventions? For example, does the user
interface conform to accepted design rules for menu
selection or data input?
Quality Dimensions
• Durability. Can the software be maintained (changed) or
corrected (debugged) without the inadvertent generation of
unintended side effects? Will changes cause the error rate
or reliability to degrade with time?
• Serviceability. Can the software be maintained (changed)
or corrected (debugged) in an acceptably short time period.
Can support staff acquire all information they need to
make changes or correct defects?
• Aesthetics. Most of us would agree that an aesthetic entity
has a certain elegance, a unique flow, and an obvious
“presence” that are hard to quantify but evident
nonetheless.
• Perception. In some situations, you have a set of
prejudices that will influence your perception of quality.
Other Views
• McCall’s Quality Factors
• ISO 9126 Quality Factors
• Targeted Factors
McCall’s Triangle of Quality
Maintainability
Maintainability
Flexibility
Flexibility
estability
Testability
Portability
Portability
Reusability
Reusability
Interoperability
Interoperability
Correctness
Correctness
Reliability
Reliability
Efficiency
Efficiency
Integrity
Integrity
Usability
Usability
PRODUCT TRANSITION
PRODUCT TRANSITION
PRODUCT REVISION
PRODUCT REVISION
PRODUCT OPERATION
PRODUCT OPERATION
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Product operation factors
• Correctness. The extent to which a program satisfies its
specification and fulfils the customer’s mission objectives.
• Reliability. The extent to which a program can be expected to
perform its intended function with required precision
• Efficiency. The amount of computing resources and code
required by a program to perform its function.
• Integrity. Extent to which access to software or data by
unauthorized persons can be controlled.
• Usability. Effort required to learn, operate, prepare input for,
and interpret output of a program.
Product revision factors
• Flexibility. Effort required to modify an operational program.
• Maintainability. Effort required to locate and fix an error in a
program.
• Testability. Effort required to test a program to ensure that it
performs its intended function.
Product transition factors
• Portability. Effort required to transfer the program from one
hardware and/or software system environment to another.
• Reusability. Extent to which a program [or parts of a program]
can be reused in other applications—related to the packaging
and scope of the functions that the program performs.
• Interoperability. Effort required to couple one system to
another.
ISO 9126 Quality Factor
• Functionality
• Reliability
• Usability
• Efficiency
• Maintainability
• Portability
TargetedFactors
howwouldyoureviewauserinterfaceandassessitsusability?
• Intuitiveness. The degree to which the interface follows
expected usage patterns, so that even a novice can use it
without significant training.
• Efficiency. The degree to which operations and
information can be located or initiated.
• Robustness. The degree to which the software handles
bad input data or inappropriate user interaction.
• Richness. The degree to which the interface provides a
rich feature set.
The Software Quality Dilemma
• If you produce a software system that has terrible
quality, you lose because no one will want to buy it.
• If on the other hand you spend infinite time, extremely
large effort, and huge sums of money to build the
absolutely perfect piece of software, then it's going to
take so long to complete and it will be so expensive to
produce that you'll be out of business anyway.
• Either you missed the market window, or you simply
exhausted all your resources.
• So people in industry try to get to that magical middle
ground where the product is good enough not to be
rejected right away, such as during evaluation, but
also not the object of so much perfectionism and so
much work that it would take too long or cost too much
to complete. [Ven03]
“Good Enough” Software
• Good enough software delivers high quality functions and features that end-
users desire, but at the same time it delivers other more obscure or
specialized functions and features that contain known bugs.
• Arguments against “good enough.”
• It is true that “good enough” may work in some application domains and
for a few major software companies. After all, if a company has a large
marketing budget and can convince enough people to buy version 1.0, it
has succeeded in locking them in.
• If you work for a small company be wary of this philosophy. If you
deliver a “good enough” (buggy) product, you risk permanent damage to
your company’s reputation.
• You may never get a chance to deliver version 2.0 because bad buzz may
cause your sales to plummet and your company to fold.
• If you work in certain application domains (e.g., real time embedded
software, application software that is integrated with hardware can be
negligent and open your company to expensive litigation.
Cost of Quality
• Prevention costs include
• quality planning
• formal technical reviews
• test equipment
• Training
• Internal failure costs include
• rework
• repair
• failure mode analysis
• External failure costs are
• complaint resolution
• product return and replacement
• help line support
• warranty work
Cost
• The relative costs to find and repair an error or
defect increase dramatically as we go from
prevention to detection to internal failure to
external failure costs.
Quality and Risk
• “People bet their jobs, their comforts, their safety,
their entertainment, their decisions, and their very
lives on computer software. It better be right.” SEPA,
Chapter 1
• Example:
• Throughout the month of November, 2000 at a
hospital in Panama, 28 patients received massive
overdoses of gamma rays during treatment for a
variety of cancers. In the months that followed,
five of these patients died from radiation
poisoning and 15 others developed serious
complications. What caused this tragedy? A
software package, developed by a U.S. company,
was modified by hospital technicians to compute
modified doses of radiation for each patient.
Negligence and Liability
• The story is all too common. A governmental or corporate
entity hires a major software developer or consulting
company to analyze requirements and then design and
construct a software-based “system” to support some
major activity.
• The system might support a major corporate function
(e.g., pension management) or some governmental
function (e.g., healthcare administration or homeland
security).
• Work begins with the best of intentions on both sides, but
by the time the system is delivered, things have gone bad.
• The system is late, fails to deliver desired features and
functions, is error-prone, and does not meet with
customer approval.
• Litigation ensues.
Quality and Security
• Gary McGraw comments [Wil05]:
• “Software security relates entirely and completely to
quality. You must think about security, reliability,
availability, dependability—at the beginning, in the
design, architecture, test, and coding phases, all
through the software life cycle [process]. Even
people aware of the software security problem have
focused on late life-cycle stuff. The earlier you find
the software problem, the better. And there are two
kinds of software problems. One is bugs, which are
implementation problems. The other is software
flaws—architectural problems in the design. People
pay too much attention to bugs and not enough on
flaws.”
Achieving Software Quality
• Critical success factors:
• Software Engineering Methods
• Project Management Techniques
• Quality Control
• Quality Assurance
SW defect
• Defect refers to some problem with the software
 Error: human actions that produces an incorrect
results
 Fault: an incorrect step, process, or data definition in a
computer program.
 Failure: is the departure of a system from its required
behaviour
• An error may lead to faults may lead to failures
Software development process
software fault
software failure
software error
SW Errors, Faults and Failures
Main causes of Software Errors
1.Faulty requirements definition
• Erroneous definition of RE
• Absence of vital RE
• Incomplete definition of RE
• Inclusion of unnecessary RE
Main causes of Software Errors
2. Client-developer communication failures
• Misunderstanding of the client’s instructions
• Misunderstanding of the client’s RE changes (
written form/ orally)
• Misunderstanding of the client’s responses to the
design problem
• Lake of attention to client messages
3. Deliberate deviations from software
requirements
• Reuses software modules taken from an earlier
project
• Time and budget pressures
Main causes of Software Errors
4. Logical design errors
5. Coding errors
6. Non-compliance with documentation and coding
instructions
7. Shortcomings of the testing process
8. User interface and procedure errors
9. Documentation errors
Resources
• Roger Pressman, “Software Engineering: A Practitioner’s
Approach, McGgraw-Hill, 7th edition, Published 2010
• Daniel Galin, "Software Quality Assurance: from theory to
implementation", Pearson-Addison-Wesely, 1st ed 2004

More Related Content

Similar to CIS512_Topic1.pptx

1_Software Quality Control.pptx
1_Software Quality Control.pptx1_Software Quality Control.pptx
1_Software Quality Control.pptxBahaAbuKbash
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 
05_SQA_Overview.ppt
05_SQA_Overview.ppt05_SQA_Overview.ppt
05_SQA_Overview.pptSaqibHabib11
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdfMUSAIDRIS15
 
Software Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptxSoftware Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptxNikilesh8
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssurancePramod Parajuli
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxLeahRachael
 
What is Software Quality and how to measure it?
What is Software Quality and how to measure it?What is Software Quality and how to measure it?
What is Software Quality and how to measure it?Denys Zaiats
 
How to create a successful proof of concept
How to create a successful proof of conceptHow to create a successful proof of concept
How to create a successful proof of conceptETLSolutions
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxGodwin Monserate
 
Lesson 8...Question Part 2
Lesson 8...Question Part 2Lesson 8...Question Part 2
Lesson 8...Question Part 2bhushan Nehete
 
Sw Test Engineer Ii
Sw Test Engineer IiSw Test Engineer Ii
Sw Test Engineer IiJongens85
 
Recent and-future-trends spm
Recent and-future-trends spmRecent and-future-trends spm
Recent and-future-trends spmPrakash Poudel
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxBypassFrp
 
Software Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentSoftware Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentKristine Hejna
 
An introduction to Software Testing and Test Management
An introduction to Software Testing and Test ManagementAn introduction to Software Testing and Test Management
An introduction to Software Testing and Test ManagementAnuraj S.L
 

Similar to CIS512_Topic1.pptx (20)

1_Software Quality Control.pptx
1_Software Quality Control.pptx1_Software Quality Control.pptx
1_Software Quality Control.pptx
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
05_SQA_Overview.ppt
05_SQA_Overview.ppt05_SQA_Overview.ppt
05_SQA_Overview.ppt
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdf
 
Software Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptxSoftware Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptx
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
QA Basics and PM Overview
QA Basics and PM OverviewQA Basics and PM Overview
QA Basics and PM Overview
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
 
What is Software Quality and how to measure it?
What is Software Quality and how to measure it?What is Software Quality and how to measure it?
What is Software Quality and how to measure it?
 
Quality concept
Quality concept Quality concept
Quality concept
 
How to create a successful proof of concept
How to create a successful proof of conceptHow to create a successful proof of concept
How to create a successful proof of concept
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
 
Lesson 8...Question Part 2
Lesson 8...Question Part 2Lesson 8...Question Part 2
Lesson 8...Question Part 2
 
Sw Test Engineer Ii
Sw Test Engineer IiSw Test Engineer Ii
Sw Test Engineer Ii
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Waterfall Model.pptx
Waterfall Model.pptxWaterfall Model.pptx
Waterfall Model.pptx
 
Recent and-future-trends spm
Recent and-future-trends spmRecent and-future-trends spm
Recent and-future-trends spm
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptx
 
Software Defects and SW Reliability Assessment
Software Defects and SW Reliability AssessmentSoftware Defects and SW Reliability Assessment
Software Defects and SW Reliability Assessment
 
An introduction to Software Testing and Test Management
An introduction to Software Testing and Test ManagementAn introduction to Software Testing and Test Management
An introduction to Software Testing and Test Management
 

Recently uploaded

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Pooja Bhuva
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxPooja Bhuva
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxDr. Ravikiran H M Gowda
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxPooja Bhuva
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...Nguyen Thanh Tu Collection
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17Celine George
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxannathomasp01
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsSandeep D Chaudhary
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
dusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learningdusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learningMarc Dusseiller Dusjagr
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 

Recently uploaded (20)

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & Systems
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
dusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learningdusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learning
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 

CIS512_Topic1.pptx

  • 2. Quality •The American Heritage Dictionary defines quality as • “a characteristic or attribute of something.”
  • 3. Quality—A Philosophical View • Robert Persig [Per74] commented on the thing we call quality: • Quality . . . you know what it is, yet you don't know what it is. But that's self-contradictory. But some things are better than others, that is, they have more quality. But when you try to say what the quality is, apart from the things that have it, it all goes poof! There's nothing to talk about. But if you can't say what Quality is, how do you know what it is, or how do you know that it even exists? If no one knows what it is, then for all practical purposes it doesn't exist at all. But for all practical purposes it really does exist. What else are the grades based on? Why else would people pay fortunes for some things and throw others in the trash pile? Obviously some things are better than others . . . but what's the betterness? . . . So round and round you go, spinning mental wheels and nowhere finding anyplace to get traction. What the hell is Quality? What is it?
  • 4. Quality—A Pragmatic View • The transcendental view argues (like Persig) that quality is something that you immediately recognize, but cannot explicitly define. • The user view sees quality in terms of an end-user’s specific goals. If a product meets those goals, it exhibits quality. • The manufacturer’s view defines quality in terms of the original specification of the product. If the product conforms to the spec, it exhibits quality. • The product view suggests that quality can be tied to inherent characteristics (e.g., functions and features) of a product. • Finally, the value-based view measures quality based on how much a customer is willing to pay for a product. In reality, quality encompasses all of these views and more.
  • 5. SW quality - IEEE definition 1. The degree to which a system, component, or process meets specified requirements. 2. The degree to which a system, component, or process meets customer or user needs or expectations.
  • 6. SW quality - Pressman’s definition • Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software. • User satisfaction = compliant product + good quality + delivery within budget and schedule
  • 7. Software Quality • Software quality can be defined as: • An effective software process applied in a manner that creates a useful product that provides measurable value for those who produce it and those who use it. • This definition has been adapted from [Bes04] and replaces a more manufacturing-oriented view presented in earlier editions of this book.
  • 8. Effective Software Process • An effective software process establishes the infrastructure that supports any effort at building a high quality software product. • The management aspects of process create the checks and balances that help avoid project chaos—a key contributor to poor quality. • Software engineering practices allow the developer to analyze the problem and design a solid solution— both critical to building high quality software. • Finally, umbrella activities such as change management and technical reviews have as much to do with quality as any other part of software engineering practice.
  • 9. Useful Product • A useful product delivers the content, functions, and features that the end-user desires • But as important, it delivers these assets in a reliable, error free way. • A useful product always satisfies those requirements that have been explicitly stated by stakeholders. • In addition, it satisfies a set of implicit requirements (e.g., ease of use) that are expected of all high quality software.
  • 10. Adding Value • By adding value for both the producer and user of a software product, high quality software provides benefits for the software organization and the end-user community. • The software organization gains added value because high quality software requires less maintenance effort, fewer bug fixes, and reduced customer support. • The user community gains added value because the application provides a useful capability in a way that expedites some business process. • The end result is: • (1) greater software product revenue, • (2) better profitability when an application supports a business process, and/or • (3) improved availability of information that is crucial for the business.
  • 11. Quality Dimensions • David Garvin [Gar87]: • Performance Quality. Does the software deliver all content, functions, and features that are specified as part of the requirements model in a way that provides value to the end-user? • Feature quality. Does the software provide features that surprise and delight first-time end-users? • Reliability. Does the software deliver all features and capability without failure? Is it available when it is needed? Does it deliver functionality that is error free? • Conformance. Does the software conform to local and external software standards that are relevant to the application? Does it conform to de facto design and coding conventions? For example, does the user interface conform to accepted design rules for menu selection or data input?
  • 12. Quality Dimensions • Durability. Can the software be maintained (changed) or corrected (debugged) without the inadvertent generation of unintended side effects? Will changes cause the error rate or reliability to degrade with time? • Serviceability. Can the software be maintained (changed) or corrected (debugged) in an acceptably short time period. Can support staff acquire all information they need to make changes or correct defects? • Aesthetics. Most of us would agree that an aesthetic entity has a certain elegance, a unique flow, and an obvious “presence” that are hard to quantify but evident nonetheless. • Perception. In some situations, you have a set of prejudices that will influence your perception of quality.
  • 13. Other Views • McCall’s Quality Factors • ISO 9126 Quality Factors • Targeted Factors
  • 14. McCall’s Triangle of Quality Maintainability Maintainability Flexibility Flexibility estability Testability Portability Portability Reusability Reusability Interoperability Interoperability Correctness Correctness Reliability Reliability Efficiency Efficiency Integrity Integrity Usability Usability PRODUCT TRANSITION PRODUCT TRANSITION PRODUCT REVISION PRODUCT REVISION PRODUCT OPERATION PRODUCT OPERATION These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
  • 15. Product operation factors • Correctness. The extent to which a program satisfies its specification and fulfils the customer’s mission objectives. • Reliability. The extent to which a program can be expected to perform its intended function with required precision • Efficiency. The amount of computing resources and code required by a program to perform its function. • Integrity. Extent to which access to software or data by unauthorized persons can be controlled. • Usability. Effort required to learn, operate, prepare input for, and interpret output of a program.
  • 16. Product revision factors • Flexibility. Effort required to modify an operational program. • Maintainability. Effort required to locate and fix an error in a program. • Testability. Effort required to test a program to ensure that it performs its intended function.
  • 17. Product transition factors • Portability. Effort required to transfer the program from one hardware and/or software system environment to another. • Reusability. Extent to which a program [or parts of a program] can be reused in other applications—related to the packaging and scope of the functions that the program performs. • Interoperability. Effort required to couple one system to another.
  • 18. ISO 9126 Quality Factor • Functionality • Reliability • Usability • Efficiency • Maintainability • Portability
  • 19. TargetedFactors howwouldyoureviewauserinterfaceandassessitsusability? • Intuitiveness. The degree to which the interface follows expected usage patterns, so that even a novice can use it without significant training. • Efficiency. The degree to which operations and information can be located or initiated. • Robustness. The degree to which the software handles bad input data or inappropriate user interaction. • Richness. The degree to which the interface provides a rich feature set.
  • 20. The Software Quality Dilemma • If you produce a software system that has terrible quality, you lose because no one will want to buy it. • If on the other hand you spend infinite time, extremely large effort, and huge sums of money to build the absolutely perfect piece of software, then it's going to take so long to complete and it will be so expensive to produce that you'll be out of business anyway. • Either you missed the market window, or you simply exhausted all your resources. • So people in industry try to get to that magical middle ground where the product is good enough not to be rejected right away, such as during evaluation, but also not the object of so much perfectionism and so much work that it would take too long or cost too much to complete. [Ven03]
  • 21. “Good Enough” Software • Good enough software delivers high quality functions and features that end- users desire, but at the same time it delivers other more obscure or specialized functions and features that contain known bugs. • Arguments against “good enough.” • It is true that “good enough” may work in some application domains and for a few major software companies. After all, if a company has a large marketing budget and can convince enough people to buy version 1.0, it has succeeded in locking them in. • If you work for a small company be wary of this philosophy. If you deliver a “good enough” (buggy) product, you risk permanent damage to your company’s reputation. • You may never get a chance to deliver version 2.0 because bad buzz may cause your sales to plummet and your company to fold. • If you work in certain application domains (e.g., real time embedded software, application software that is integrated with hardware can be negligent and open your company to expensive litigation.
  • 22. Cost of Quality • Prevention costs include • quality planning • formal technical reviews • test equipment • Training • Internal failure costs include • rework • repair • failure mode analysis • External failure costs are • complaint resolution • product return and replacement • help line support • warranty work
  • 23. Cost • The relative costs to find and repair an error or defect increase dramatically as we go from prevention to detection to internal failure to external failure costs.
  • 24. Quality and Risk • “People bet their jobs, their comforts, their safety, their entertainment, their decisions, and their very lives on computer software. It better be right.” SEPA, Chapter 1 • Example: • Throughout the month of November, 2000 at a hospital in Panama, 28 patients received massive overdoses of gamma rays during treatment for a variety of cancers. In the months that followed, five of these patients died from radiation poisoning and 15 others developed serious complications. What caused this tragedy? A software package, developed by a U.S. company, was modified by hospital technicians to compute modified doses of radiation for each patient.
  • 25. Negligence and Liability • The story is all too common. A governmental or corporate entity hires a major software developer or consulting company to analyze requirements and then design and construct a software-based “system” to support some major activity. • The system might support a major corporate function (e.g., pension management) or some governmental function (e.g., healthcare administration or homeland security). • Work begins with the best of intentions on both sides, but by the time the system is delivered, things have gone bad. • The system is late, fails to deliver desired features and functions, is error-prone, and does not meet with customer approval. • Litigation ensues.
  • 26. Quality and Security • Gary McGraw comments [Wil05]: • “Software security relates entirely and completely to quality. You must think about security, reliability, availability, dependability—at the beginning, in the design, architecture, test, and coding phases, all through the software life cycle [process]. Even people aware of the software security problem have focused on late life-cycle stuff. The earlier you find the software problem, the better. And there are two kinds of software problems. One is bugs, which are implementation problems. The other is software flaws—architectural problems in the design. People pay too much attention to bugs and not enough on flaws.”
  • 27. Achieving Software Quality • Critical success factors: • Software Engineering Methods • Project Management Techniques • Quality Control • Quality Assurance
  • 28. SW defect • Defect refers to some problem with the software  Error: human actions that produces an incorrect results  Fault: an incorrect step, process, or data definition in a computer program.  Failure: is the departure of a system from its required behaviour • An error may lead to faults may lead to failures
  • 29. Software development process software fault software failure software error SW Errors, Faults and Failures
  • 30. Main causes of Software Errors 1.Faulty requirements definition • Erroneous definition of RE • Absence of vital RE • Incomplete definition of RE • Inclusion of unnecessary RE
  • 31. Main causes of Software Errors 2. Client-developer communication failures • Misunderstanding of the client’s instructions • Misunderstanding of the client’s RE changes ( written form/ orally) • Misunderstanding of the client’s responses to the design problem • Lake of attention to client messages 3. Deliberate deviations from software requirements • Reuses software modules taken from an earlier project • Time and budget pressures
  • 32. Main causes of Software Errors 4. Logical design errors 5. Coding errors 6. Non-compliance with documentation and coding instructions 7. Shortcomings of the testing process 8. User interface and procedure errors 9. Documentation errors
  • 33. Resources • Roger Pressman, “Software Engineering: A Practitioner’s Approach, McGgraw-Hill, 7th edition, Published 2010 • Daniel Galin, "Software Quality Assurance: from theory to implementation", Pearson-Addison-Wesely, 1st ed 2004