SlideShare a Scribd company logo
6
Most read
7
Most read
16
Most read
Chapter 14 Quality Concepts Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e   by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009   by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with  Software Engineering: A Practitioner's Approach, 7/e.  Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use.
Software Quality In 2005,  ComputerWorld  [Hil05] lamented that  “ bad software plagues nearly every organization that uses computers, causing lost work hours during computer downtime, lost or corrupted data, missed sales opportunities, high IT support and maintenance costs, and low customer satisfaction.  A year later,  InfoWorld  [Fos06] wrote about the  “ the sorry state of software quality” reporting that the quality problem had not gotten any better. Today, software quality remains an issue, but who is to blame?  Customers blame developers, arguing that sloppy practices lead to low-quality software.  Developers blame customers (and other stakeholders), arguing that irrational delivery dates and a continuing stream of changes force them to deliver software before it has been fully validated.
Quality The  American Heritage Dictionary  defines  quality  as  “ a characteristic or attribute of something.”  For software, two kinds of quality may be encountered:  Quality of design  encompasses requirements, specifications, and the design of the system.  Quality of conformance  is an issue focused primarily on implementation. User satisfaction = compliant product + good quality + delivery within budget and schedule
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.
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   ( SEPA,  Section 14.2.2) ISO 9126 Quality Factors   ( SEPA,  Section 14.2.3) Targeted Factors  ( SEPA,  Section 14.2.4)
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

More Related Content

PPT
Software Engineering (Introduction to Software Engineering)
PPT
Software Prototyping
PPTX
Unified process model
PPT
System Models in Software Engineering SE7
PPT
Quality Management in Software Engineering SE24
PPTX
Quality and productivity factors
PDF
Traditional Process Models
PPTX
Phased life cycle model
Software Engineering (Introduction to Software Engineering)
Software Prototyping
Unified process model
System Models in Software Engineering SE7
Quality Management in Software Engineering SE24
Quality and productivity factors
Traditional Process Models
Phased life cycle model

What's hot (20)

PPT
Chapter 03
DOCX
Software engineering
PPT
PPTX
Design Model & User Interface Design in Software Engineering
PPT
Analysis modeling
PPTX
Fundamental design concepts
PPT
Software Engineering (Software Quality Assurance)
PPTX
Use case diagram
PPTX
Digital Audio in Multimedia
PPT
Chapter 15
PPTX
Off the-shelf components (cots)
PPT
Software Quality Challenge
PPT
Chapter 15 software product metrics
PPT
requirements analysis and design
PPTX
The Art of Debugging.pptx
PPT
Chapter 08
PPT
McCall's Quality Factors
PPT
CS8494 SOFTWARE ENGINEERING Unit-2
PPT
Unit 1( modelling concepts & class modeling)
PDF
Chapter 6 software metrics
Chapter 03
Software engineering
Design Model & User Interface Design in Software Engineering
Analysis modeling
Fundamental design concepts
Software Engineering (Software Quality Assurance)
Use case diagram
Digital Audio in Multimedia
Chapter 15
Off the-shelf components (cots)
Software Quality Challenge
Chapter 15 software product metrics
requirements analysis and design
The Art of Debugging.pptx
Chapter 08
McCall's Quality Factors
CS8494 SOFTWARE ENGINEERING Unit-2
Unit 1( modelling concepts & class modeling)
Chapter 6 software metrics
Ad

Similar to Chapter 14 (20)

PPT
Quality Assurance in SE lecture week 08 .ppt
PPTX
CIS512_Topic1.pptx
PDF
Software Quality Assurance
PPT
Chapter_14 sp1718.ppt
PPTX
Software Testing - Software Quality
PPT
Effective Software Process The Software Quality Dilemma
PPTX
Software engineering-5-1-SoftwareQuality.pptx
PPT
LECTURE 1 SQA.ppt
PPTX
Fault code for the whole thing is that you have a
PDF
software testing and quality assurance .pdf
PPT
Software Quality
PPT
Reliability and Quality Issues Overview (5).ppt
PPTX
Quality Concept
DOCX
Software quality management lecture notes
PPT
Quality software management
PPT
Software quality assurance lecture 1
PPT
05_SQA_Overview.ppt
PPTX
09 fse qualitymanagement
PPTX
Unit 8 software quality and matrices
Quality Assurance in SE lecture week 08 .ppt
CIS512_Topic1.pptx
Software Quality Assurance
Chapter_14 sp1718.ppt
Software Testing - Software Quality
Effective Software Process The Software Quality Dilemma
Software engineering-5-1-SoftwareQuality.pptx
LECTURE 1 SQA.ppt
Fault code for the whole thing is that you have a
software testing and quality assurance .pdf
Software Quality
Reliability and Quality Issues Overview (5).ppt
Quality Concept
Software quality management lecture notes
Quality software management
Software quality assurance lecture 1
05_SQA_Overview.ppt
09 fse qualitymanagement
Unit 8 software quality and matrices
Ad

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Modernizing your data center with Dell and AMD
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
cuic standard and advanced reporting.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Electronic commerce courselecture one. Pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
Teaching material agriculture food technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
Unlocking AI with Model Context Protocol (MCP)
Modernizing your data center with Dell and AMD
NewMind AI Weekly Chronicles - August'25 Week I
cuic standard and advanced reporting.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Monthly Chronicles - July 2025
Electronic commerce courselecture one. Pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation_ Review paper, used for researhc scholars
Mobile App Security Testing_ A Comprehensive Guide.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Teaching material agriculture food technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Chapter 14

  • 1. Chapter 14 Quality Concepts Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use.
  • 2. Software Quality In 2005, ComputerWorld [Hil05] lamented that “ bad software plagues nearly every organization that uses computers, causing lost work hours during computer downtime, lost or corrupted data, missed sales opportunities, high IT support and maintenance costs, and low customer satisfaction. A year later, InfoWorld [Fos06] wrote about the “ the sorry state of software quality” reporting that the quality problem had not gotten any better. Today, software quality remains an issue, but who is to blame? Customers blame developers, arguing that sloppy practices lead to low-quality software. Developers blame customers (and other stakeholders), arguing that irrational delivery dates and a continuing stream of changes force them to deliver software before it has been fully validated.
  • 3. Quality The American Heritage Dictionary defines quality as “ a characteristic or attribute of something.” For software, two kinds of quality may be encountered: Quality of design encompasses requirements, specifications, and the design of the system. Quality of conformance is an issue focused primarily on implementation. User satisfaction = compliant product + good quality + delivery within budget and schedule
  • 4. 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?
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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?
  • 11. 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.
  • 12. Other Views McCall’s Quality Factors ( SEPA, Section 14.2.2) ISO 9126 Quality Factors ( SEPA, Section 14.2.3) Targeted Factors ( SEPA, Section 14.2.4)
  • 13. 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]
  • 14. “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.
  • 15. 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
  • 16. 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.
  • 17. 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.
  • 18. 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.
  • 19. 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. ”
  • 20. Achieving Software Quality Critical success factors: Software Engineering Methods Project Management Techniques Quality Control Quality Assurance