8.Software Quality
8.Software Quality
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
A software product is said to
be portable,
if it can be easily made to work
in different operating systems,
in different machines,
with other software products,
etc.
8
Reusability
10
Maintainability
A software product is
maintainable,
if errors can be easily corrected
as and when they show up,
new functions can be easily
added to the product,
functionalities of the product can
be easily modified, etc.
11
MCCall’s Model
Quality management
system (or quality system):
principal methodology used
by organizations to ensure
that the products have
desired quality.
13
Quality 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 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.
16
Quality system
18
Evolution of Quality Systems
19
Evolution of Quality Systems
20
Evolution of Quality Systems
21
Evolution of Quality Systems
24
Quality assurance
26
Total quality management
(TQM)
Advocates:
continuous process
improvements through
process measurements.
27
Business Process
reengineering
33
ISO 9000
35
ISO 9001:
Applies to:
organizations engaged in
design, development,
production, and servicing of
goods.
applicable to most software
development organizations.
36
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.
37
ISO 9003
38
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.
39
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.
40
Why Get ISO 9000
Certification?
41
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
42
Why Get ISO 9000
Certification?
43
How to Get ISO 9000
Certification?
44
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.
45
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.
46
How to Get ISO 9000
Certification?
Compliance audit: the
registrar checks
whether the suggestions made
by it during review have been
complied.
47
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.
48
ISO 9000 Certification
An ISO certified organization
can use the certificate for
corporate advertizements
cannot use the certificate to
advertize products.
ISO 9000 certifies organization's
process
not any product of the organization.
An organization using ISO
certificate for product
advertizements:
49
Summary of ISO 9001
Requirements
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.
50
Management
responsibility(4.1)
Responsibility of the quality
system.
independent of the development
process,
can work in an unbiased manner.
The effectiveness of the quality
system:
must be periodically by audited.
51
Quality system (4.2) and contract reviews
(4.3):
A quality system must be
maintained and
documented.
Contract reviews (4.3):
Before entering into a contract,
an organization must review the
contract
ensure that it is understood,
organization has the capability for
carrying out its obligations.
52
Design control (4.4):
55
Purchasing (4.6):
56
Purchaser Supplied Products (4.7):
Material supplied by a
purchaser,
for example,
client-provided software
must be properly managed
and checked.
57
Product Identification (4.8):
58
Process Control (4.9) :
59
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.
60
Inspection, measuring and test
equipment(4.11):
61
Control of nonconforming product (4.12) :
62
Corrective Action (4.13) :
63
Handling (4.14) and Quality audits
(4.15):
64
Training (4.16) :
65
SEI Capability Maturity Model
67
Capability Evaluation
68
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.
69
SEI Capability Maturity Model
Managed (4)
Defined (3)
Repeatable (2)
Initial (1)
71
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.
72
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.
73
Level 2: (Repeatable)
Basic project management
practices
tracking cost, schedule, and
functionality are followed.
Size and cost estimation
techniques
function point analysis, COCOMO,
etc. used.
Production process is ad hoc
not formally defined 74
Level 3: (Defined)
Management and
development activities:
defined and documented.
Common organization-wide
understanding of activities,
roles, and responsibilities.
75
Level 3: (Defined)
77
Level 4: (Managed)
Organization sets
quantitative quality goals
World-wide about 100
organizations assessed at
this level.
78
Level 5: (Optimizing)
81
Level 2 KPAs
82
Level 3 KPAs
83
Level 4 KPAs
Quantitative
measurements
Process management
84
Level 5 KPAs
Defect prevention
Technology change
management
Process change management
85
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
86
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.
87
Personal Software Process
(PSP)
Helps developing personal skills and
methods
Estimating and planning method
Shows how to track performance
against plans
Provides a defined process
can be fine tuned by individuals
Recognizes that a process for individual
use is different from that necessary for a
team project.
88
Time Management
89
Personal Software Process
(PSP)
Planning
Design
Code Logs
Compile
Test Project plan
Postmortem
summary
90
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
91
PSP-Design
Design the program
Record the design in specified format
Record the Design time in time
recording log
92
PSP-Code
Implement the design
Use a standard format for code text
Record the coding time in time
recording log
93
PSP-Compile
Compile the program
Fix all the defects
Record compile time in time recording
log
94
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.
95
Personal Software Process (PSP)
PSP 3 Personal process
evolution
96
Six Sigma
97
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)
98