Documente Academic
Documente Profesional
Documente Cultură
e-mail: ihgw@cs.strath.ac.uk
Abstract
The main justification for process improvement is that the quality of the
software product will improve as a result. This seems intuitive but
unfortunately there is no empirical evidence to prove its validity yet.
The purpose of this paper is to present a possible mapping between the activities
of the software process and the quality of the software product. It is argued that
the product quality characteristics should be one of the prime drivers when
assessing and improving the quality of an organisation's software process as it
is the quality of the product about which we are increasingly concerned.
Page 1
University Of Strathclyde Department Of Computer Science Research Report/94/171
1. Introduction
1.1. Software Product Quality
This is a very general view of quality, intended to encompass all products, not
just software.
Fenton [2] sites three common definitions of software quality with very
different connotations:-
The term "software quality" has different meanings for different people in a
software organisation. A marketing managers view of the quality of a product
will not be the same as a software engineers view. These views are often
conflicting and the term quality cannot be defined in such a way as to
encompass these.
Page 2
University Of Strathclyde Department Of Computer Science Research Report/94/171
Although the lists are similar and appear to contain some identical factors, these
are defined differently in each model. This multitude of proposals with many
different definitions of characteristics resulted in a lot of confusion as to what
software quality actually meant. It is for this reason that the ISO 9126 [10]
model was developed, so that international agreement could be reached on what
the software quality characteristics should be.
The different models did have one thing in common; each was based on a
Factor - Criteria - Metric paradigm whereby each quality Factor is
composed of a number of Criteria which in turn can be assessed according to a
number of defined Metrics. These metrics are actual measurements taken from
components of the software product.
It is interesting to note that further work has emerged since the publication of
ISO 9126 (1991), for example Gillies (1993) [11].
Page 3
University Of Strathclyde Department Of Computer Science Research Report/94/171
Characteristics Sub-Characteristics
Suitability
Accuracy
Interoperability
Compliance
Security
Maturity
Fault Tolerance
Recoverability
FUNCTIONALITY
Understandability
RELIABILITY Learnability
USABILITY Operability
Although ISO 9126 relates to the characteristics of the software product, there is
an intuitive idea that the quality of the process used to produce the software will
have an effect on the quality of the end product. This is an assumption of all
software process improvement work as stated in the Software Engineering
Institute's (SEI) Capability Maturity Model (CMM), one of the most successful
of previous improvement frameworks:-
"The quality of a software system is governed by the quality of the process used
to develop and maintain it" Watts Humphrey [12]
Page 4
University Of Strathclyde Department Of Computer Science Research Report/94/171
now beginning to collect evidence from its assessments to support the CMM
and this will hopefully prove the validity of this premise).
In the past, most work in the field has concentrated on either the process
approach or the product approach but not both, and the relationship between the
two is not well understood.
The purpose of this paper is to present a possible mapping between the activities
of the software process and the quality of the software product. It is argued that
the product quality characteristics should be one of the prime drivers when
assessing and improving the quality of an organisation's software process as it
is the quality of the product about which we are increasingly concerned.
At the heart of SPICE is the Baseline Practices Guide (BPG) [14] which defines
at a high level the set of activities that are considered to be fundamental to good
software engineering. These are the practices that should be implemented to
establish and improve an organisations software development, maintenance,
operation and support capabilities. SPICE uses the BPG as a basis to assess the
capability of an organisations software process.
Page 5
University Of Strathclyde Department Of Computer Science Research Report/94/171
Each of these categories consists of a set of processes which in turn are made up
of a number of base practices. A base practice is a software engineering or
management activity that addresses the purpose of a particular process.
The base practices represent the lowest level of the architecture and describe
individual activities but do not place any restrictions on how they are
implemented.
3. Approach
The analysis was essentially product based, taking each of the ISO Product
Characteristics in turn and deciding to what extent each of the base practices
affect its attainment.
Those practices that are fully supportive will have a direct effect on the degree of
the characteristic in the final product.
Page 6
University Of Strathclyde Department Of Computer Science Research Report/94/171
A matrix was used to record the results of the analysis and the most important
practices in each process category were identified. These are discussed in the
following sections. As SPICE is not yet in the public domain, the actual
matrices cannot be reproduced here as they detail the BPG architecture.
These practices fully support all of the product characteristics. During analysis,
it became apparent that they were all essential to the production of quality
software.
Page 7
University Of Strathclyde Department Of Computer Science Research Report/94/171
The following three practices are from the Manage Subcontractors process
and are only applicable if subcontracting occurs:-
Page 8
University Of Strathclyde Department Of Computer Science Research Report/94/171
Perform Problem Resolution The purpose of this is "to ensure that all
discovered problems are analysed and removed... whatever their nature or
source." This will involve problems and defects that will affect each of the
characteristics as well as deviations from the quality requirements themselves.
These are base practices that are considered to have a substantial effect on all of
the product quality characteristics but do not impact them as directly as the fully
supportive practices.
Page 9
University Of Strathclyde Department Of Computer Science Research Report/94/171
These are base practices that are considered to affect all of the quality
characteristics but in an indirect way. That is, the characteristics are not
drastically affected by their performance but they will benefit from them. Most
of these are project management practices which improve the practices that
directly affect the characteristics.
Page 10
University Of Strathclyde Department Of Computer Science Research Report/94/171
Build Project Teams The careful selection of team members and their
support and management will have a positive effect on the performance of
software engineering practices.
5. Functionality
Functionality - a set of attributes that bear on the existence of a set of
functions and their specified properties. The functions are those that satisfy
stated or implied needs
Sub-characteristics
Clearly, functionality is relevant to all software and may to some be the most
important of the six characteristics.
(In a survey of software producers carried out as part of the SCOPE project,
functionality and reliability were seen to be the two most important [16]).
The majority of the base practices can potentially affect functionality. However,
some can be identified as being critical to ensuring that the software actually
does what it is supposed to do and to as great an extent as possible.
Page 11
University Of Strathclyde Department Of Computer Science Research Report/94/171
Verification and Validation are the best techniques for assessing the
functionality of software, (particularly black-box testing).
Page 12
University Of Strathclyde Department Of Computer Science Research Report/94/171
6. Reliability
Reliability - a set of attributes that bear on the capability of software to
maintain its level of performance under stated conditions for a stated period of
time
Sub-characteristics
Therefore, base practices that are supportive of these engineering practices will
help lead to a more reliable product.
Reliability is evaluated by random testing according to an operational profile - a
profile of the predicted usage of the software- in a simulation of the environment
in which it will be used. This will not usually take place until the software has
been integrated but testing of aggregates is also important as this may reveal
further faults in the software.
Page 13
University Of Strathclyde Department Of Computer Science Research Report/94/171
Testing the Integrated System is the most important activity for assessing
reliability, especially Develop Tests For System, where the operational
profile will be used to develop and guide test plans. The software will be tested
according to its intended use and in its intended environment and failure data
will be captured against which reliability is estimated. This can be evaluated
against the stated reliability requirements.
Maintenance is also very important to reliability as failures may occur after the
product is released, particularly at the beginning of its employment.
The Customer-Supplier base practices that are considered to affect reliability are
similar to those that affect the functionality of the software.
Page 14
University Of Strathclyde Department Of Computer Science Research Report/94/171
Peer Reviews Apart from the universal supportive processes in this area,
peer reviews are especially supportive of reliability. These will help to find
defects in all work products - requirements, designs, code and test plans - that
affect the reliability of the software.
7. Portability
Portability - a set of attributes that bear on the ability of the software to be
transferred from one environment to another
Sub-Characteristics
Page 15
University Of Strathclyde Department Of Computer Science Research Report/94/171
System and Software Requirements Once again, this will be the place
where the need for portability will be established and allocated to the appropriate
parts of the software architecture.
Verification Once the code has been written, verification eg. by checking
for anomalies such as non-portable language features, will be one of the main
methods for assuring a portable product.
Prepare Acquisition Strategy may also affect portability as, for example,
off-the-shelf or customer-furnished products may only be specifically tailored to
one environment.
Page 16
University Of Strathclyde Department Of Computer Science Research Report/94/171
Management Reviews
Manage Commitments Adherence to standards is again checked by regular
management reviews and deviations are handled by taking action with the
appropriate groups.
This is a very important category for portability because as well as the universal
practices, Develop Documentation and Configuration Management are
fully supportive of it.
Page 17
University Of Strathclyde Department Of Computer Science Research Report/94/171
8. Efficiency
Efficiency - a set of attributes that bear on the relationship between the level
of performance of the software and the amount of resources used, under stated
conditions
Sub-characteristics
Integration and Testing of the System is the place where the efficiency
can be analysed in the actual environment and further bottlenecks identified.
Modification of other system elements such as hardware can improve software
performance.
Page 18
University Of Strathclyde Department Of Computer Science Research Report/94/171
Operational Testing
Resolution of Problems Testing the efficiency under real conditions can
uncover problems not identified during development.
Monitor Performance
Install Perfective Upgrades In the same vein, these two practices are
vital in providing the required level of efficiency.
Page 19
University Of Strathclyde Department Of Computer Science Research Report/94/171
9. Usability
Usability - a set of attributes that bear on the effort needed for use and on the
individual assessment of such use by a stated or implied set of users
Sub-characteristics
Learnability - Attributes of software that bear on the users' effort for learning
its application (eg. operation control, input, output)
Operability - Attributes of software that bear on the users' effort for operation
and operation control
"It is generally agreed that well structured manuals, informative error messages,
help functions and consistent interfaces are the means to achieve usability"
Fenton [2]
It seems intuitive that all these factors will make software easier to use but
during development, interfacing with the user to assess the interface and
education once the product is released are highly supportive as well.
Page 20
University Of Strathclyde Department Of Computer Science Research Report/94/171
Upgrading of the System will include additional user training which will
ensure that modifications do not compromise usability.
Evaluation of Existing Products may include the user interface and it will
be important to decide which choice is best depending on factors such as current
trends and target market.
All of the base practices of the Support Operation of Software process are
irrelevant to usability except:-
Management Reviews
Technical Reviews Review of the software by management and more
importantly by peers gives a valuable subjective evaluation of the usability.
Page 21
University Of Strathclyde Department Of Computer Science Research Report/94/171
Peer Reviews are also important when evaluating the usability of an interface
as discussed above.
10. Maintainability
Maintainability - a set of attributes that bear on the effort needed to make
specified modifications
Sub- characteristics
Ease of maintenance is desirable for all software, as even the smallest systems
will undergo change in their lifetime. As well as easy understanding and
analysis of the code, proper supporting documentation is critical.
Page 22
University Of Strathclyde Department Of Computer Science Research Report/94/171
Maintain System and Software is one of the most important processes for
maintainability as this is where maintenance is analysed, performed and
documented using the previous engineering practices.
Joint Technical Reviews with the customer are similar to those in the
Project Process Category.
Page 23
University Of Strathclyde Department Of Computer Science Research Report/94/171
Peer Reviews The importance of these has already been asserted above.
11. Conclusions
Much of the work here is subjective but well-known authors in the field of
software quality (eg. [2],[15],[16]) have suggested similar relationships
between the activities of the software process and software product quality in
the past. Empirical evidence to prove the relationships would be hard to collect
and validate and most decisions have been based on intuition rather than
objective method. However, it is held that a direct mapping between ISO 9126
and the Base Practices does exist and that this paper represents one possibility.
By making the relationship between the process and product explicit, we can
begin to better understand the nature of software production.
Page 24
University Of Strathclyde Department Of Computer Science Research Report/94/171
12. References
[1] ISO 9001, 'Quality Systems - Model for Quality Assurance for
Design/Development, Production, Installation and Servicing',
(International Standards Organisation)
Page 25
University Of Strathclyde Department Of Computer Science Research Report/94/171
[18] Vincent, J., Waters, A. and Sinclair, J.: 'Software Quality Assurance -
Volume 1 - Practice and Implementation', (Prentice Hall, 1988)
Page 26