SWE-Week 03
SWE-Week 03
Chapter 15
Quality Concepts
© 2020 McGraw Hill. All rights reserved. Authorized only for instructor use in the classroom.
No reproduction or further distribution permitted without the prior written consent of McGraw Hill.
What is Quality?
The American Heritage Dictionary defines quality as “a
characteristic or attribute of something.”
For software, three 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.
© McGraw Hill 2
Quality – Pragmatic Views
The user view sees product quality in terms of meeting the
end-user’s specific goals.
© McGraw Hill 4
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.
© McGraw Hill 5
Software Quality – Effective Process
• An effective software process establishes infrastructure that
supports building a high-quality software product.
• The management aspects of process create the checks and
balances that help avoid project confusions—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.
• Umbrella activities such as change management and technical
reviews have as much to do with quality as any other part of
software engineering practice.
© McGraw Hill 6
Software Quality – 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.
• A useful product satisfies a set of implicit requirement that are
expected of all high-quality software.
© McGraw Hill 7
Software Quality – 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.
© McGraw Hill 8
McCall’s Quality Factors
© McGraw Hill 9
McCall’s Quality Factors - Text alternative
Return to parent-slide containing images.
© McGraw Hill 11
Product Quality – ISO25010:2017
8 Features
• Functional suitability. Complete, correct, appropriate.
• Performance efficiency. Timing, resource use, capacity.
• Compatibility. Coexistence, interoperability.
• Usability. Appropriateness, learnability, operability, error
protection, aesthetics, accessibility.
• Reliability. Maturity, availability, fault tolerance.
• Security. Confidentiality, integrity, authenticity.
• Maintainability. Reusability, modifiability, testability.
• Portability. Adaptability, installability, replaceability.
© McGraw Hill 12
Software Quality Dilemma
• If you produce a software system that has terrible quality, you
lose because no one will want to buy it.
• If you spend infinite time, extremely large effort, and huge sums
of money to build a perfect piece of software, then it's going to
take so long to complete and will be so expensive to produce that
you'll be out of business.
• You will either missed the market window, or you exhausted all
your resources.
• People in industry try to find that magical middle ground where
the product is good enough not to be rejected right away, but
also not the object of so much perfectionism that it would take
too long or cost too much to complete.
© McGraw Hill 13
Good Enough Software
Arguments against “good enough” (buggy software):
• It is true that “good enough” may work in some application
domains and for a few major software companies.
© McGraw Hill 14
Cost of Quality
• Prevention costs - quality planning, formal technical reviews,
test equipment, training.
© McGraw Hill 15
Relative Costs to Find and Repair a
Defect
© McGraw Hill 16
Relative Costs to Find and Repair a Defect - Text alternative
Return to parent-slide containing images.
A graph displays relative costs to find and repair a defect. The graph plots
requirements, design, coding, testing, and maintenance on the x axis and the
relative costs on the y-axis. The relative costs to repair a defect are as follow:
requirements at $139, design at $455, coding at $977, testing at $7,136, and
maintenance at $14,102.
© McGraw Hill 18
Impact of Management Decisions
• Estimation decisions – irrational delivery date estimates cause
teams to take short-cuts that can lead to reduced product quality.
© McGraw Hill 19
Achieving Software Quality 1
© McGraw Hill 20
Achieving Software Quality 2
© McGraw Hill 21
Because learning changes everything. ®
www.mheducation.com
© 2020 McGraw Hill. All rights reserved. Authorized only for instructor use in the classroom.
No reproduction or further distribution permitted without the prior written consent of McGraw Hill.