Chapter 1
Chapter 1
Software Quality
Introduction
What is Quality ?
For software, two kinds of quality may be encountered
o Quality of design: refers to characteristics that designers specify for
the end product to be constructed. Quality of design encompasses
requirements, specifications, and the design of the system.
o Quality of conformance: is the degree to which design
specifications are followed during developing the product. Quality
of conformance is an issue focused primarily on implementation.
User satisfaction = compliant product + good quality + delivery
within budget and schedule
2
Software Quality
“An effective software process applied in a manner that
creates a useful product that provides measurable value
for those who produce it and those who use it.”
Effective software process
Infrastructure
Check and balance
Change control and technical reviews
Useful product
Explicit and implicit requirements
Reliable, error-free
3
Software Quality -Definition
Add value for producer and user of a software product
Less maintenance effort
Efficient business process
IEEE Definition:
Software quality is:
The degree to which a system, component, or process
meets specified requirements.
The degree to which a system, component, or process
meets customer or user needs or expectations.
4
Software Quality- Definition
According to Philip B. Crosby(1979):
“Quality means conformance to requirements”
Analysis :
Crosby’s definition of software quality refers to the degree
to which the written software meets the specifications
prepared by the customer and his professional team.
This means that errors included in the software
specification are not considered and do not reduce the
software quality, a characteristic that can be considered the
approach’s deficiency.
5
Software Quality- Definition
According to Joseph M. Juran(1988):
Quality consists of those product features which meet the
needs of customers and thereby provide product
satisfaction.
Quality consists of freedom from deficiencies”
Analysis:
Juran’s definition is aimed at achieving customer
satisfaction, and views the fulfillment of customers’ real
needs as the true goal of software quality.
6
Software Quality- Definition
According to Pressman:
Software quality is defined as:
“Conformance to explicitly stated functional and performance
requirements, explicitly documented development standards, and
implicit characteristics that are expected of all professionally
developed software”.
Analysis:
Pressman’s definition suggests three requirements for quality
that are to be met by the developer:
Specific functional requirements, which refer mainly to the outputs of the
software system.
The software quality standards mentioned in the contract.
Good Software Engineering Practices (GSEP), reflecting state-of-the-art
professional practices
7
Software Quality Factors
The requirements document is one of the most important
elements for achieving software quality.
The great variety of issues related to the various attributes
of software and its use and maintenance, as defined in
software requirements documents, can be classified into
content groups called quality factors.
Classifications of software requirements into software
quality factors:
Several models of software quality factors and their
categorization in factor categories have been suggested
over the years and few are:
8
Software Quality Factors
The classic model of software quality factors,
suggested by McCall, consists of 11 factors.
McCall’s factor model
McCall’s factor model classifies all software
requirements into 11 software quality factors.
The 11 factors are grouped into three categories –
product operation, product revision and product
transition – as follows:
9
Software Quality Factors : McCall’s factor model
Product operation factors: Correctness, Reliability,
Efficiency, Integrity, Usability.
Product revision factors: Maintainability, Flexibility,
Testability.
Product transition factors: Portability, Reusability,
Interoperability.
10
Software Quality Factors : McCall’s factor model
11
McCall’s Model
Portability:
Maintainability: Will I be able to use it on
Can I fix it? another machine?
Flexibility: Reusability:
Can I change it? Will I be able to reuse some of
Testability: Product Product
transition the software?
Can I test it? revision Interoperatability:
Product Will I be able to interface it with
operations another machine / software?
Correctness: Does it do what I want?
Reliability: Does it do it accurately all the time?
Efficiency: Will it run on my machine as well as it can?
Integrity: Is it secure?
Usability: Can I run it?
12
McCall’s factor model: Product operation
software quality factors
16
McCall’s factor model: Product operation software
quality factors
Usability
Usability requirements deal with the scope of staff resources
needed to train a new employee and to operate the software system.
Example
The software usability requirements document for the new help
desk system initiated by a home appliance service company lists the
following specifications:
(a) A staff member should be able to handle at least 60 service calls a
day.
(b) Training a new employee will take no more than two days (16
training hours), immediately at the end of which the trainee will be
able to handle 45 service calls a day.
17
McCall’s factor model: Product revision software
quality factors
According to the McCall model of software quality factors,
three quality factors comprise the product revision
category.
These factors deal with those requirements that affect the
complete range of software maintenance activities:
Corrective maintenance (correction of software faults and
failures).
19
McCall’s factor model: Product revision software
quality factors
Flexibility
The capabilities and efforts required to support adaptive
maintenance activities are covered by the flexibility requirements.
These include the resources required to adapt a software
package to a variety of customers of the same trade, of various
extents of activities, of different ranges of products and so on.
This factor’s requirements also support perfective maintenance
activities, such as changes and additions to the software in order
to improve its service and to adapt it to changes in the firm’s
technical or commercial environment.
20
McCall’s factor model: Product revision software
quality factors
Example
TSS (teacher support software) deals with the documentation
of pupil achievements, the calculation of final grades, the
printing of term grade documents, and the automatic printing
of warning letters to parents of failing pupils.
The software specifications included the following flexibility
requirements:
(a) The software should be suitable for teachers of all subjects
and all school levels (elementary, junior and high schools).
.
21
McCall’s factor model: Product revision software
quality factors
Testability
Testability requirements deal with the testing of an
information system as well as with its operation. Testability
requirements for the ease of testing are related to special
features in the programs that help the tester, for instance by
providing predefined intermediate results and log files.
22
McCall’s factor model: Product revision
software quality factors
Testability requirements related to software operation include
automatic diagnostics performed by the software system prior to
starting the system, to find out whether all components of the
software system are in working order and to obtain a report about
the detected faults.
Another type of these requirements deals with automatic
diagnostic checks applied by the maintenance technicians to detect
the causes of software failures.
Example: An industrial computerized control unit is
programmed to calculate various measures of production status,
report the performance level of the machinery, and operate a
warning signal in predefined situations.
23
McCall’s factor model :Product transition software
quality factors
According to McCall, three quality factors are included in the
product transition category, a category that pertains to the
adaptation of software to other environments and its interaction
with other software systems.
Portability :
Portability requirements tend to the adaptation of a software
system to other environments consisting of different hardware,
different operating systems, and so forth.
These requirements make it possible to continue using the same
basic software in diverse situations or to use it simultaneously
in diverse hardware and operating systems situations.
24
McCall’s factor model :Product transition software
quality factors
Example
A software package designed and programmed to operate in
a Windows 2000 environment is required to allow low-cost
transfer to Linux and Windows NT environments.
Reusability
Reusability requirements deal with the use of software
modules originally designed for one project in a new software
project currently being developed.
They may also enable future projects to make use of a given
module or a group of modules of the currently developed
software.
25
McCall’s factor model :Product transition software
quality factors
The reuse of software is expected to save development
resources, shorten the development period, and provide
higher quality modules.
These benefits of higher quality are based on the
assumption that most of the software faults have already
been detected by the quality assurance activities performed
on the original software, by users of the original software,
and during its earlier reuses.
The issues of software reuse became a subject of
software industry standards
26
McCall’s factor model :Product transition software
quality factors
Example
A software development unit has been required to develop a software
system for the operation and control of a hotel swimming pool that
serves hotel guests and members of a pool club. Although the
management did not define any reusability requirements, the unit’s
team leader, after analyzing the information processing requirements of
the hotel’s spa, decided to add the reusability requirement that some of
the software modules for the pool should be designed and programmed
in a way that will allow its reuse in the spa’s future software system,
which is planned to be developed next year.
These modules will allow- entrance validity checks of
membership cards and visit recording.
27
McCall’s factor model :Product transition software quality factors
Interoperability
Interoperability requirements focus on creating interfaces with
other software systems or with other equipment firmware (for
example, the firmware of the production machinery and testing
equipment interfaces with the production control software).
Interoperability requirements can specify the name(s) of the
software or firmware for which interface is required. They can
also specify the output structure accepted as standard in a
specific industry or applications area.
E.g The firmware of a medical laboratory’s equipment is required to process
its results (output) according to a standard data structure that can then serve
as input for a number of standard laboratory information systems.
28
Quality Measurement
A quality measure is in effect a rule (or the result of a
rule) that assigns numeric values to a specific quality
indicator.
Quality measures take on numeric values.
Measure - quantitative indication of extent/degree,
amount, dimension, capacity, or size of some
attribute of a product or process. E.g., Number of
errors
29
Principles Of Measurement
The objectives of measurement should be established before
data collection begins.
1. Formulation - The derivation/origin of software measures and
metrics appropriate for the representation of the software that is
being considered.
2. Collect information - The mechanism used to accumulate data
required to derive the formulated metrics.
3. Analysis information - The computation of metrics and the
application of mathematical tools.
4. Interpretation -The evaluation of metrics results in an effort to
gain insight /awareness into the quality of the representation.
30
Types of Measures
Direct Measures (internal attributes)
Cost,
Effort,
Speed,
Memory
Indirect (external attributes)
Functionality,
Quality,
Complexity,
Efficiency, Reliability, Maintainability
31
Why Measure Software?
32
Metrics Measurement
Quantitative measure of degree to which a system,
component or process possesses a given attribute. Handle or
guess about a given attribute.
E.g., Number of errors found per person hours expended.
Motivation for Metrics
Estimate the cost and schedule of future projects.
Evaluate the productivity impacts of new tools and techniques.
Establish productivity trends over time.
Improve software quality.
Forecast future staffing needs.
Anticipate and reduce future maintenance needs.
33
Product Quality Metrics
Neutral
Dissatisfied
Very dissatisfied
35
Metrics Measurement Cont’d
37
GQM Model
39
Glib's Attributes
40
Glib’s (Goal Literal Babbling) Approach
Availability
Availability is concerned with the proportion of elapsed time
that a system is able to be used. The sub attributes highlighted
here are reliability, maintainability and integrity.
Reliability
Reliability is the degree to which the system does what it is supposed to do.
Because the purpose of each system is different, and the purpose of
different parts of the system is different, the way in which reliability is
assessed may also vary.
Glib suggests that reliability may be assessed in terms for both logic ware
(code) and data ware (data files),
41
Glib’s Approach
Maintainability
Maintainability refers to the process of fault handling. Some of the
principal sub-attributes are:
1. Problem recognition time is the time required to
recognize that a fault exists.
2. Administrative delay is the time between recognition of a
problem and activity designed to rectify it.
3. Tool collection is the time required to gather all relevant
information, e.g. program analysis and documentation.
4. Problem analysis is the time needed to trace the source
of the problem.
42
Maintainability Cont’d
Adaptability
Adaptability may be considered in terms of improvability, extendibility and
portability.
Improvability is the time taken to make minor changes to the system where
the term ' system' is taken to include items such as documentation.
Extendibility is the ease of adding new functionality to a system.
Portability is the ease of moving a system from one environment to another.
Usability
Usability may be considered as the ease of use and effectiveness of use of a
system.
This may be considered in terms of handling ability, entry requirements,
learning requirements etc,
45
Thank you
46