DBMS 2
DBMS 2
◼ Quality Concepts
1
Software Quality
◼ In 2005, Computer World [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.
2
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.
5
Useful Product
◼ A useful product delivers the content, functions, and
features that the end-user desires
9
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 10
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.
11
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.
◼ Example:
12
Quality and Security
◼ “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.” 13
Achieving Software Quality
◼ Critical success factors:
◼ Quality Control
◼ Quality Assurance
14