Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Dr. Kumarswamy. Y
I.
INTRODUCTION
III.
SOFTWARE QUALITY
One of the most important tasks of the software engineering
is to assure the quality of the software. Throughout the
software life cycle, as the product emerges, quality must be
taken into account and empirical data
about quality must be collected in each phase of the software
development process to feed the next phase. However,
quality, from the nature of the word, is not countable thus
measuring quality and collecting empirical
data on quality of software is not very straightforward.
Throughout the software development process some quality
characteristics of software become essential. In the literature
there are many of these characteristics and they are associated
with some measurable metrics. Software quality models are
established to determine characteristics that affect quality, to
form a set of metrics that measure these characteristics, to
collect data that will help to evaluate the quality of software.
One of the established quality models is the ISO/IEC 9126-1
quality model. This
model is an international standard based on the works of
McCall (1977),Boehm (1978). ISO/IEC 9126-1 quality model
provides six main software characteristics (also referred as
factors) and some sub-characteristics.
IV.
METRICS FOR MAINTAINABILITY
In software engineering, reducing the cost and effort needed
to complete a software product is as important as developing a
software product meeting its functional requirements. That is
why maintainability of the software is an important concept in
software engineering. Highly maintainable software is;
Open to changes which means effort to adopt the software
for new environments and to add new
features is
less;
These metrics, except the last one, has been examined in detail
with regard to fault proneness by Aydnoz in. He has discussed
the relation of these metrics to fault proneness by referencing
to the literature. His conclusions are referenced in the
individual metric sections. The other remaining metric,
LCOM, measures how much a class is far from
being cohesive. Cohesiveness increases the analyzability and
testability of the class and therefore, software. And since faultproneness is closely related with the stability of the software
these metrics are worth looking at closely and individually in
terms of maintainability. Other relevant and important OO
metrics are six MOOD (Metrics for Object-Oriented Design)
which are established by Abreu and Melo. They are:
Method Hiding Factor (MHF)
Attribute Hiding Factor (AHF)
Method Inheritance Factor (MIF)
Attribute Inheritance Factor (AIF)
Coupling Factor (COF)
Polymorphism Factor (POF)
These metrics aim to measure goodness of the overall OO
design in terms of encapsulation, inheritance, polymorphism
and coupling.
Encapsulation effects analyzability by hiding complexity
behind simple interfaces and stability by decreasing fault
proneness by forbidding access to class from outside. As the
use of Inheritance increases in a design, it will result in wider
[25]