Professional Documents
Culture Documents
2006 08 31 It607 Quality Management
2006 08 31 It607 Quality Management
Adapted from Software Engineering: A Practitioner's Approach. R.S. Pressman & Associates, Inc.
Quality
The American Heritage Dictionary defines quality
as
a characteristic or attribute of something.
Software Quality
Conformance to explicitly stated functional and
performance requirements, explicitly documented
development standards, and implicit characteristics
that are expected of all professionally developed
software.
Cost of Quality
Prevention costs include
quality planning
formal technical reviews
test equipment
Training
Software Quality
Assurance
Process
Definition &
Standards
Formal
Technical
Reviews
Analysis
&
Reporting
Measurement
Test
Planning
& Review
60.00-100.00
log
scale
10.00
10
0.75
Req.
1.00
1.50
Design
3.00
test
system
code
test
field
use
The Players
review
leader
producer
maintenance
oracle
reviewer
recorder
user rep
Conducting the
1. be preparedevaluate
Review
product before the review
2. review the product, not
the producer
3. keep your tone mild, ask
questions instead of
making accusations
4. stick to the review agenda
5. raise issues, don't resolve them
6. avoid discussions of stylestick to technical
correctness
7. schedule reviews as project tasks
8. record and report all review results
IPR *
WT
IN
no
maybe
maybe
maybe
no
maybe
no
no
no
no
yes
yes
yes
yes
no
yes
no
no
yes
yes
yes
yes
yes
no
yes
yes
yes
yes
yes
yes
RRR
yes
yes
yes
no
no
yes
no
no
yes
maybe
Sample-Driven Reviews
(SDRs)
SDRs attempt to quantify those work products that are
primary targets for full FTRs.
To accomplish this
Inspect a fraction ai of each software work product, i.
Record the number of faults, fi found within ai.
Develop a gross estimate of the number of faults within
work product i by multiplying fi by 1/ai.
Sort the work products in descending order according to
the gross estimate of the number of faults in each.
Focus available review resources on those work products
that have the highest estimated number of faults.
Statistical
SQA
Product
& Process
measurement
... an understanding of how
to improve quality ...
Software Reliability
A simple measure of reliability is mean-timebetween-failure (MTBF), where
MTBF = MTTF + MTTR
The acronyms MTTF and MTTR are mean-time-tofailure and mean-time-to-repair, respectively.
Software availability is the probability that a
program is operating according to
requirements at a given point in time and is
defined as
Availability = [MTTF/(MTTF + MTTR)] x 100%
Software Safety
Software safety is a software quality
assurance activity that focuses on the
identification and assessment of
potential hazards that may affect
software negatively and cause an entire
system to fail.
If hazards can be identified early in the
software process, software design
features can be specified that will either
eliminate or control potential hazards.
A Good Manager
Measures
process
process metrics
measurement
product
project metrics
product metrics
What do we
use as a
basis?
size?
function?
Why Do We
Measure?
assess the status of an ongoing project
track potential risks
uncover problem areas before they go
critical,
adjust work flow or tasks,
evaluate the project teams ability to
control quality of software work
products.
Process Measurement
We measure the efficacy of a software process
indirectly.
That is, we derive a set of metrics based on the outcomes
that can be derived from the process.
Outcomes include
measures of errors uncovered before release of the software
defects delivered to and reported by end-users
work products delivered (productivity)
human effort expended
calendar time expended
schedule conformance
other measures.
Software Process
Improvement
Process model
Improvement goals
Process metrics
SPI
Process improvement
recommendations
Process Metrics
Quality-related
focus on quality of work products and deliverables
Productivity-related
Production of work-products related to effort
expended
Reuse data
The number of components produced and their
degree of reusability
Project Metrics
used to minimize the development schedule by
making the adjustments necessary to avoid
delays and mitigate potential problems and
risks
used to assess product quality on an ongoing
basis and, when necessary, modify the
technical approach to improve quality.
every project should measure:
inputsmeasures of the resources (e.g., people, tools)
required to do the work.
outputsmeasures of the deliverables or work
products created during the software engineering
process.
resultsmeasures that indicate the effectiveness of
the deliverables.
Typical Project
Metrics
Effort/time per software engineering task
Errors uncovered per review hour
Scheduled vs. actual milestone dates
Changes (number) and their
characteristics
Distribution of effort on software
engineering tasks
Metrics
Guidelines
Typical Size-Oriented
Metrics
errors per KLOC (thousand lines of code)
defects per KLOC
$ per LOC
pages of documentation per KLOC
errors per person-month
Errors per review hour
LOC per person-month
$ per page of documentation
Typical Function-Oriented
Metrics
errors per FP (thousand lines of code)
defects per FP
$ per FP
pages of documentation per FP
FP per person-month
Ada
Assembler
C
C++
154
337
162
66
315
109
53
104
91
33
29
205
694
704
178
77
63
58
60
78
32
40
26
40
47
77
53
63
67
31
41
19
37
42
14
77
42
22
11
33
10
7
16
400
75
263
105
49
55
110
158
COBOL
Java
JavaScript
Perl
PL/1
Powerbuilder
SAS
Smalltalk
SQL
Visual Basic
Measuring
Quality
Correctness the degree to which a
program operates according to
specification
Maintainability the degree to which a
program is amenable to change
Integrity the degree to which a program
is impervious to outside attack
Usability the degree to which a program
is easy to use
Defect Removal
Efficiency
DRE = E /(E + D)
Establishing a Metrics
Program
Identify your business goals.
Identify what you want to know or learn.
Identify your subgoals.
Identify the entities and attributes related to your subgoals.
Formalize your measurement goals.
Identify quantifiable questions and the related indicators that
you will use to help you achieve your measurement goals.
Identify the data elements that you will collect to construct the
indicators that help answer your questions.
Define the measures to be used, and make these definitions
operational.
Identify the actions that you will take to implement the
measures.
Prepare a plan for implementing the measures.