0% found this document useful (0 votes)
9 views

DBMS 2

Uploaded by

Makwaje
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

DBMS 2

Uploaded by

Makwaje
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Chapter 1

◼ 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.

◼ User satisfaction = compliant product + good quality


+ delivery within budget and schedule
3
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.
4
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.

5
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.
6
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.
7
Quality Dimensions
◼ 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?
8
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.

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:

◼ 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.

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:

◼ Software Engineering Methods

◼ Project Management Techniques

◼ Quality Control

◼ Quality Assurance

14

You might also like