Software Engineering Quality Management
Software Engineering Quality Management
Traditional definition of
quality:
fitness of purpose,
a quality product does exactly
what the users want it to do.
1
Fitness of purpose
2
Fitness of purpose
A satisfactory definition of
quality for many products:
a car, a table fan, a food mixer,
microwave oven, etc.
But, not satisfactory for
software products.
3
Introduction
Consider a software product:
functionally correct,
i.e. performs all functions as
specified in the SRS document,
but has an almost unusable
user interface.
cannot be considered as a
quality product. 4
Introduction
Another example:
a product which does
everything that users want.
but has an almost
incomprehensible and
unmaintainable code.
5
Modern view of quality
A software product is
correct,
if different requirements as
specified in the SRS document
have been correctly
implemented.
Accuracy of results. 7
Portability
9
Usability
10
Maintainability
11
MCCall’s Model
12
Software Quality
Management System
Auditing of projects
Review of the quality system
Development of standard, procedures and
guidelines
Production of reports for the top management
summarizing the effectiveness of quality
system.
15
Quality system
16
Quality System Activities:
Auditing of projects
Development of:
standards, procedures, and
guidelines, etc.
Production of reports for the top
management
summarizing the effectiveness of the
quality system in the organization.
Review of the quality system itself.
17
Quality system
19
Evolution of Quality
Systems
20
Evolution of Quality
Systems
21
Evolution of Quality
Systems
22
Evolution of Quality
Systems
23
Quality control (QC)
25
Quality assurance
26
Quality assurance
27
Total quality management
(TQM)
Advocates:
continuous process
improvements through process
measurements.
28
Business Process
reengineering
34
ISO 9000
36
ISO 9001:
Applies to:
organizations engaged in design,
development, production, and
servicing of goods.
applicable to most software
development organizations.
37
ISO 9002:
ISO 9002 applies to:
organizations who do not design products:
but are only involved in production.
Examples of this category of industries:
steel or car manufacturing industries
buy the product and plant designs from external
sources:
only manufacture products.
not applicable to software development
organizations.
38
ISO 9003
39
ISO 9000 for Software
Industry
ISO 9000 is a generic standard:
applicable to many industries,
starting from a steel manufacturing industry to
a service rendering company.
Many clauses of ISO 9000 documents:
use generic terminologies
very difficult to interpret them in the
context of software organizations.
40
Software vs. other
industries
Very difficult to interpret many
clauses for software industry:
software development is radically
different from development of
other products.
41
Software vs. other
industries
Software is intangible
therefore difficult to control.
It is difficult to control anything that we cannot
see and feel.
In contrast, in a car manufacturing unit:
we can see a product being developed through
stages such as fitting engine, fitting doors, etc.
one can accurately tell about the status of the
product at any time.
Software project management is an
altogether different ball game. 42
Software vs. other
industries
During software development:
the only raw material consumed is data.
For any other product development:
Lot of raw materials consumed
e.g. Steel industry consumes large volumes of
iron ore, coal, limestone, etc.
ISO 9000 standards have many clauses
corresponding to raw material control .
not relevant to software organizations.
43
Software vs. other
industries
45
Why Get ISO 9000
Certification?
Several benefits:
Confidence of customers in an
organization increases
if organization qualified for ISO
9001 certification.
This is especially true in the
international market.
46
Why Get ISO 9000
Certification?
47
Why Get ISO 9000
Certification?
Requires:
a well-documented software
production process to be in place.
contributes to repeatable and higher
quality software.
Makes development process:
focussed, efficient, and cost-effective
48
Why Get ISO 9000
Certification?
49
How to Get ISO 9000
Certification?
50
How to Get ISO 9000
Certification?
Application stage:
Applies to a registrar for
registration.
Pre-assessment:
the registrar makes a rough
assessment of the organization.
51
How to Get ISO 9000
Certification?
Document review and adequacy
audit:
process and quality-related
documents.
the registrar reviews the
documents
makes suggestions for
improvements.
52
How to Get ISO 9000
Certification?
53
How to Get ISO 9000
Certification?
Registration:
The registrar awards ISO 9000
certificate after successful
completions of all previous phases.
Continued surveillance:
The registrar continues monitoring
the organization periodically.
54
ISO 9000 Certification
Management responsibility(4.1):
Management must have an
effective quality policy.
The responsibility and authority
of all those whose work affects
quality:
must be defined and documented.
56
Management
responsibility(4.1)
60
Document control (4.5):
61
Purchasing (4.6):
62
Purchaser Supplied Products (4.7):
Material supplied by a
purchaser,
for example,
client-provided software must
be properly managed and
checked.
63
Product Identification (4.8):
64
Process Control (4.9) :
65
Inspection and Testing
(4.10) :
In software terms this requires
effective testing i.e.,
unit testing, integration testing
and system testing.
Test records must be
maintained.
66
Inspection, measuring and test
equipment(4.11):
67
Control of nonconforming product
(4.13) :
68
Corrective Action (4.14) :
69
Handling (4.15) and Quality audits
(4.17):
71
Salient features of ISO 9001
requirements:
Important documents
independently checked and
reviewed:
for effectiveness and correctness.
The product should be tested :
against specification.
Several organizational aspects:
e.g., management reporting of the
quality team. 73
Shortcomings of ISO 9001
Certification (1)
74
Shortcomings of ISO 9001
Certification (6)
ISO 9001 addresses mostly management
aspects.
Techniques specific to software development
have been ignored
Configuration management
Reviews
Release builds
Problem Notification system
75
SEI Capability Maturity
Model
Developed by Software Engineering
Institute (SEI) of the Carnegie
Mellon University, USA:
to assist the U.S. Department of
Defense (DoD) in software acquisition.
The rationale was to include:
likely contractor performance as a factor
in contract awards.
76
SEI Capability Maturity
Model
Major DoD contractors began CMM-
based process improvement initiatives:
as they vied for DoD contracts.
SEI CMM helped organizations:
Improve quality of software they
developed
Realize adoption of SEI CMM model had
significant business benefits.
Other organizations adopted CMM.
77
SEI Capability Maturity
Model
In simple words,
CMM is a model for apprising the
software process maturity of a
contractor into different levels.
Can be used to predict the most likely
outcome to be expected from the next
project that the organization
undertakes.
78
SEI Capability Maturity
Model
Can be used in two ways:
Capability evaluation
Software process assessment.
79
Capability Evaluation
80
Software Process
Assessment
Used by an organization to assess
its current process:
Suggests ways to improve the
process capability.
This type of assessment is for
purely internal use.
81
SEI Capability Maturity
Model
The SEI CMM classifies software
development industries into:
Five maturity levels.
Stages are ordered so that
improvements at one stage provide
foundations for the next
Based on the pioneering work of Philip
Crosby
82
SEI Capability Maturity
Model
Optimizing (5)
Managed (4)
Defined (3)
Repeatable (2)
Initial (1)
83
Level 1: (Initial)
Organization operates
without any formalized process
or project plans
An organization at this level is
characterized by
ad hoc and often chaotic
activities.
84
Level 1: (Initial)
Software production processes are
not defined,
different engineers follow their own
process
development efforts become chaotic.
The success of projects depend on
individual efforts and heroics.
85
Level 2: (Repeatable)
Management and
development activities:
defined and documented.
Common organization-wide
understanding of activities,
roles, and responsibilities.
87
Level 3: (Defined)
88
Level 4: (Managed)
89
Level 4: (Managed)
90
Level 5: (Optimizing)
93
Level 2 KPAs
94
Level 3 KPAs
95
Level 4 KPAs
Quantitative measurements
Process management
96
Level 5 KPAs
Defect prevention
Technology change management
Process change management
97
Shortcomings of CMM
99
Comparison between ISO 9001
and SEI CMM
100
Comparison between ISO 9001
and SEI CMM
102
Remarks on Quality Model
Usage
Highly systematic and measured approach to
software development process suits certain
circumstances
negotiated software, safety-critical software, etc
What about small organizations?
Typically handle applications such as internet, e-comm.
without an established product range,
without revenue base, experience on past projects, etc.
CMM may be incompatible
103
Small Organizations
104
Small Organizations
105
Small Organizations
106
Personal Software Process
(PSP)
Based on the work of Humphrey
PSP is a scaled down version of industrial
software process
suitable for individual use
Even CMM assumes that engineers use
effective personal practices
107
Personal Software Process
(PSP)
A process is the set of steps for doing a
job
The quality and productivity of an
engineer
largely determined by his process
PSP is framework that
helps software engineers to measure and
improve the way they work.
108
Personal Software Process
(PSP)
Planning
Design
Code Logs
Compile
Test
Project plan
Postmortem
summary
111
PSP-Planning
Problem definition
Estimate max, min, and total LOC
Determine minutes/LOC
Calculate max,min, and total development
times
Enter the plan data in project plan
summary form
record the planned time in Log
112
PSP-Design
113
PSP-Code
114
PSP-Compile
115
PSP-Test/Postmortem
Test
Test the program
Fix all the defects found
Record testing time in time recording log
Postmortem
Compare the log data with project plan to
achieve better planning in future projects to
improve his process.
116
Personal Software Process
(PSP)
118
Six Sigma
To achieve six sigma
a process must not produce more than 3.4
defects per million opportunities.
5 Sigma -> 230 defects per million
4 Sigma -> 6210 defects per million
Six sigma methodologies
DMAIC (Define, Measure, Analyze,
Improve, Control)
DMADV: (Define, Measure, Analyze, Design,
Verify) 119
Six Sigma Methodologies
120
Summary
ISO 9000:
basic premise:
if a good process is followed
good products are bound to follow
provides guidelines for
establishing a quality system.
122
Summary
ISO 9000
series of three standards
9001, 9002, and 9003
9001 is applicable to software
industry
123
Summary
SEI CMM
developed specially for software
industry
classifies software organizations
into five categories.
According to the maturity of their
development process.
124
Current Trends