Outline
1
Quality Management (chapter 26-pressman)
What is quality?
Meaning of Quality in Various Context
Some quality concepts
SQA
SQA activities
Quality Management
2
Quality Management (often called Software Quality
Assurance) is an umbrella activity that is applied through out
the software process.
Every one involved in software engineering process is
responsible for quality.
Emphasis/importance on quality in all software engg.
activities reduces the amount of rework that the software
engg. team must do
this eventually lowers costs, improves time to market
The team must identify SQA activities that will filter errors out
of the work products before they are passed on. But before
doing so,
they must define software quality at different levels of abstraction
SQA Plan is created to define the quality strategy of the team
Quality Management
3
It encompasses
Software quality assurance process
Specific quality assurance & quality control tasks (including
FTRs and testing strategies)
Effective SE practice (methods & tools)
Control of all software work products & changes made to
them
A procedure to ensure compliance with software dev.
Standards
Measurement & reporting mechanism
What is Quality?
4
British Standard Institute’s definition
Quality is totality of features & characteristics of a
product or service which relate on its ability to satisfy a
given need
American Heritage Dictionary definition
Quality is characteristic or attribute of something
Quality of Software
Quality of Software is software that does what it is
supposed to do
customer dissatisfaction is lack of quality
Meaning of Quality in Various Context
5
In Manufacturing
Quality means that the developed product should meet
its specification
In Software Development
Quality would mean that a software product conforms
to its specification
Software specification should be oriented towards customer
requirements.
There may be some implicit requirements like maintainability,
usability, etc. but they are not included in the specification
Meaning of Quality in Various Context
6
Practically , its very difficult to write complete software
specifications/ characteristics
Therefore, although the product conforms to its
specifications, it may not satisfy the customer as hence
may not be considered as a high quality product
Another school of thought …
7
Quality can be achieved by defining standards &
organizational quality procedures that check that
these standards are followed by the software
development team
Besides standards & procedures there are intangible
aspects also involved in software quality like
elegance, readability, etc.
Quality Concepts
8
Quality of design
Refers to the characteristics that designers specify for an item
Focuses on requirements, specifications & design of system
Quality of conformance
Is the degree to which the design specifications are followed during
manufacturing
Focuses primarily on implementation
User satisfaction
Robert Glass suggested the following relationship:
Compliant product + good quality + delivery within budget & schedule
Quality Concepts
9
Quality Control
Definition & enhancement of processes that ensure the software
development team has followed project quality procedures &
standards
Quality Control is a series of inspections, reviews & tests used
through out the development cycle to ensure that each work
product meets the requirements placed on it
It includes feed-back loop to the process that created the work
product
The combination of measurement & feedback helps to fine tune
the process when work products fail to meet their specification
Quality Concepts
10
Quality Assurance
The process of defining how software quality can be
achieved & how the development organization knows
that the software has the required level of quality
It involves establishment of a framework of
organizational procedures & standards that lead to high
quality software
It consists of a set of auditing & reporting functions that
assess the effectiveness of quality control activities.
The aim is to provide management with facts & figures
and proofs that product quality is meeting its goals
Quality Concepts
11
Variation Control
Variation control is the heart of quality control
Variation control may be equated to quality control
Manufacturers aim to minimize the variation among the
products that are produced
For software projects, from one project to another, we
may want to minimize the difference between predicted
resources needed to complete project and actual
resources used, including staff, equipment, and calendar
time
Quality Concepts
12
Cost of Quality
It includes all costs incurred in performing quality related
activities
Cost of quality studies are conducted to
Provide a baseline for current cost of quality
Identify opportunities for reducing cost of quality
Provide normalized basis of comparison (usually in dollars)
Quality costs are divided into
Prevention costs
Appraisal costs
Failure costs
Quality Concepts
13
Quality costs
Prevention costs relate to
Quality planning
Formal technical reviews
Test equipment
training
Appraisal costs relate to
Activities to gain insight into product – “first time through” each
process, e.g.,
In-process and inter process inspection
Equipment calibration &maintenance
testing
Quality Concepts
14
Quality costs
Failure costs
Those that would disappear if no defects appeared before
shipping a product to customer
Failure costs subdivided into 2 types
Internal failure costs (related to defects found before product is
shipped)
Rework, repair & failure analysis mode
External failure costs (related to defects found after product is
shipped)
Complaint resolution, product return and replacement,
helpline support & warranty work
Relative cost of correcting an
error
Refer to figure 26.1
0
20
40
60
80
100
120
140
160
180
200
Req.DesignCode Dev.
Test
System
test
Field Op
15
Software Quality Assurance
16
Although there are many definitions of quality but for our
purposes, software quality is:
Conformance to …
the explicitly stated functional & performance requirements,
explicitly documented development standards &
implicit characteristics that are expected of all professionally
developed software
This definition emphasizes on 3 important points
S/W requirements – a foundation from which quality is measured
Standards – define development criteria against which S/W is
engineered
Implicit requirements – often go unmentioned but if not met, can cause
suspicion in quality
Who does it?
17
Prior to 20
th
Century
SQA was responsibility of the craftsperson
During 1950s and 1960s
Responsibility of programmer
Today responsible ones are …
S/W Engrs. (Apply technical methods & measures, Conduct FTRs & perform
planned testing)
Project managers
Customers
Sales Person
SQA group (Serves as customer’s in-house representative, Looks at S/W
from customer’s point of view, Assists the S/W Engrs team to achieve
quality)
SQA
18
SQA is an activity that is applied throughout the software
process and not after the software has been developed
SQA covers the following
Quality management approach
Effective s/w engineering technology (methods & tools)
Formal technical reviews (applied throughout the process)
A multi-tiered testing strategy
Control of software documentation & changes made to it
A procedure to assure compliance with software development standards
Measurement & reporting mechanism
SQA Group & SQA Activities
19
SQA group is responsible for QA planning, oversight, record
keeping, analysis and reporting
SEI recommends the following set of SQA group activities:
Prepares an SQA plan for project
Participates in the development of project’s software process
description
Reviews s/w engg activities to verify compliance with defines s/w
process
Audits designated s/w work products to verify compliance
Ensures that deviations in s/w work & work products are
documented
Records any non compliance & reports to senior management
SQA groups also participates in change management & help
to collect & analyze s/w metrics