Software Quality
CHAPTER
Software Project Management Slide# 1
Software Quality
CHAPTER
Objectives
Objectives
• Explain the importance of software quality to software users and
developers;
• Define the qualities of good software;
• Design methods of measuring the required qualities of software;
• Monitor the quality of the processes in a software project;
• Use external quality standards to ensure the quality of software
acquired from an outside supplier;
• Develop system using procedures that will increase their quality.
Software Project Management Slide# 2
Software Quality
1. Introduction
Quality is generally agreed to be ‘ a good thing’, that means:
• Define precisely what qualities we require of a system;
• System meets quality requirements and this needs
measurement.
How about checking software quality from out-sources?
Software Project Management Slide# 3
Software Quality
2. The place of software quality in project planning
0
Select Project
1 Identify project
2
Identify project
scope and objective infrastructure
3
Analyze project
characteristics
4 Identify the
Review products and activities
5 Estimate effort
for activity
For each activity
Lower level detail
6 Identify
activity risks
10 Lower level planning
7
Allocate resources
9 Execute plan 8
Review/publicize plan
Software Project Management Slide# 4
Software Quality
2. The place of software quality in project planning
• Step 1: Identify project scope and objectives. Some objectives
could relate to the qualities of the application to be delivered.
• Step 2: identify project infrastructure. Identifies installation
standards and procedures. Some of these will most certainly be
about quality.
• Step 3: analyze project characteristics. The application to be
implemented will be examined to see if it has any special quality
requirements.
• Step 4: identify the products and activities of the project. It is
at this point that the entry, exit and process requirements are
identified for each activity.
• Step 5: review and publicize plan. At this stage the overall
quality aspects of the project plan are reviewed.
Software Project Management Slide# 5
Software Quality
3. The importance of software quality
The special characteristics of software, and in particular its
intangibility and complexity, make special demands.
• Increasing criticality of software
• The intangibility of software
• Accumulating errors during software development
Software Project Management Slide# 6
Software Quality
4. Defining software quality
Three specifications:
• A functional specification
• A quality (or attribute) specification
• A resource specification
Software Project Management Slide# 7
Software Quality
4. Defining software quality
James A. McCall grouped software qualities into three sets of quality
factors:
• Product operation qualities
• Product revision qualities
• Product transition qualities
Software Project Management Slide# 8
Software Quality
4. Defining software quality
Product operation quality factors
• Correctness
• Reliability
• Efficiency
• Integrity
• Usability
Refer to software quality criteria (Table 12.1)
Software Project Management Slide# 9
Software Quality
4. Defining software quality
Product revision quality factors
• Maintainability
• Testability
• Flexibility
Refer to software quality criteria (Table 12.1)
Software Project Management Slide# 10
Software Quality
4. Defining software quality
Product transition quality factors
• Portability
• Reusability
• Interoperability
Refer to software quality criteria (Table 12.1)
Software Project Management Slide# 11
Software Quality
4. Defining software quality
McCall – quality factors, the developers would be concerned with
quality criteria:
• Scale
• Test
• Worst
• Plan
• Best
• Now
Software Project Management Slide# 12
Software Quality
5. ISO 9126
<< intentionally blanks>>
Software Project Management Slide# 13
Software Quality
6. Practical software quality measures
Reliability
• Availability
• Mean time between failures
• Failure on demand
• Support activity
Software Project Management Slide# 14
Software Quality
6. Practical software quality measures
Maintainability
• Flexibility plus
• New quality diagnosability
(average time to diagnose a fault)
Software Project Management Slide# 15
Software Quality
6. Practical software quality measures
Extendibility
• Quality of flexibility
• Productivity needed to incorporate a new feature
into an existing system expressed as a percentage
of the normal productivity when developing the
software from scratch
EXAMPLE: the original IOE maintenance billing system comprised
5000 SLOC and took 400 work-days to implement. An amendment to
the core system caused by the introduction of group accounts has led
to 100 SLOC being added which took 20 work-days to implement:
Software Project Management Slide# 16
Software Quality
7. Product versus process quality management
ERROR
Errors that creep in at the early stages are more expensive to
correct at later stages for the following reasons:
• The later the error is found the more rework at more stages of
development will be needed. An error in the specification found
in testing will mean rework at all the stages between
specification and testing.
• The general tendency is for each successive stage of
development to be more detailed and less able to absorb
change.
Software Project Management Slide# 17
Software Quality
7. Product versus process quality management
ERROR
Errors should therefore be eradicated by careful examination of
the deliverables of each stage before they are passed on to the next.
To do this, the following process requirements should be specified for
each activity:
• Entry requirements
• Implementation requirements
• Exit requirements
Software Project Management Slide# 18
Software Quality
8. External standards
• BS EB ISO 9001:2000
• An overview of BS EB ISO 9001:2000 QMS
requirements
• Capability process models
• Assessing software products
Software Project Management Slide# 19
Software Quality
9. Techniques to help enhance software quality
• Increasing visibility
• Procedural structure
• Checking intermediate stages
Software Project Management Slide# 20
Software Quality
9. Techniques to help enhance software quality
Inspections
Inspection means that when a piece of work is completed, copies of
the work are distributed to co-workers who then examine the work
nothing defects.
• It is a very effective way of removing superficial errors;
• It motivates developers to produce better structured and self-
explanatory software because they know that other people will
be criticizing it;
• It helps spread good programming practices as the participants
discuss the advantages and disadvantages of specific pieces of
code;
• It can enhance team spirit.
Software Project Management Slide# 21
Software Quality
9. Techniques to help enhance software quality
The general principles behind the Fagan method
• Inspections are carried out on all major deliverables.
• All types of defects are noted – not just logic or function errors.
• Inspections can be carried out by colleagues at all levels except
the very top.
• Inspections are carried out using a pre-defined set of steps.
• Inspection meetings do not last for more than two hours.
• The inspection is led by a moderator who has had specific
training in the technique.
Software Project Management Slide# 22
Software Quality
9. Techniques to help enhance software quality
The general principles behind the Fagan method (cont…)
• The other participants have defined roles
• Checklists are used to assist the fault-finding process.
• Material is inspected at an optimal rate of about 100 lines an
hour.
• Statistics are maintained so that the effectiveness of the
inspection process can be monitored.
Software Project Management Slide# 23
Software Quality
9. Techniques to help enhance software quality
Structural programming and clean-room software development
Type of development, developed by Harlan Mills of IBM, there are
three separate teams:
• A specification team
• A development team
• A certification team
Software Project Management Slide# 24
Software Quality
9. Techniques to help enhance software quality
Formal methods
Clean-room development mentioned the use of mathematically
verification techniques. They are used to define pre-conditions and
post-conditions for each procedure. Pre-conditions define the
allowable states, before processing, of the various items of data
upon which a procedure is to work. The post-conditions define
the state of those data items after the procedure has been
executed.
Software Project Management Slide# 25
Software Quality
9. Techniques to help enhance software quality
Software quality circles
A quality circle is a group of four to ten volunteers working in
the same area who meet for an hour a week to identify, analyze and
solve their work-related problems. One of their number is the group
leader and there could be an outsider, a facilitator, who can advise
on procedural matters. In order to make the quality circle work
effectively training needs to be given.
Software Project Management Slide# 26
Software Quality
9. Techniques to help enhance software quality
Problem solving by quality circles
a) Identify a list of problems;
b) Select one problem to solve;
c) Clarify the problem;
d) Identify and evaluate the causes;
e) Identify and evaluate the solutions;
f) Decide on a solution;
g) Develop an implementation plan;
h) Present the plan to management;
i) Implement a plan;
j) Monitor the plan;
k) Consider wider applicability of solution;
l) Restart from (b).
Software Project Management Slide# 27
Software Quality
10. Quality plans
• Purpose – scope of plan;
• List of references to other documents;
• Management, including organization, tasks and responsibility;
• Documentation to be produced;
• Standards, practices and conventions;
• Reviews and audits;
• Testing;
• Problem reporting and corrective action;
• Tools, techniques and methodologies;
• Code, media and supplier control;
• Records collection, maintenance and retention;
• Training;
• Risk management.
Software Project Management Slide# 28