Software Engineering Metric
for Object Oriented
November 3, 2005
gineering metrics is an important feature in the software
management functions of project planning and project evaluation. Researchers have
developed various metrics for object oriented software development environment
there has been an extensive use of
object oriented methods in software development.
Object oriented programming requires a different approach in design and
implementation than that in structured programming. In addition to this,
as objects are
the fundamental building blocks for the object
oriented programming rather than
the approach of software engineering metrics for the object oriented
environment should be different from the fun
ctional programming environment.
object oriented paradigm results in new relationships with
in module and among other
software modules. Metrics developed for structured programming do not account for
these new relationships and may be insufficient for use in object oriented environment.
In this context, this paper
ring metrics for the object
oriented development environment
in the literature
Object oriented programming, Software engineering metric
‘Software’ refers to a program and all of the associated information and
to support its installation, operation, repair and enhancement
‘Software engineering’ refers to the
disciplined applications of engineering, scientific
and mathematical principles and methods to the economical production of quality
. The field of software engineering was born in 1968 in response to the
chronic failures of large software projects to meet schedule and budget constraints
Software engineering process constitutes of
(1) requirement, (2) analysis, (3) design,
mentation, and (5) test
One of the key issues in the management
of the development process is the capability to measure and record the relevant
attributes of the software products and of the process itself in a structured and coherent
. The availability of the software metric helps manager to control the
various activities of the development life cycle and contributes to the overall objective
of software quality.
Object oriented programming is a popular concept in
development environment. They are often heralded as the silver bullet for solving
software problems, while in reality there is no silver bullet; object oriented technology
has proved its value for the systems that must be maintained and mo
evaluate the quality of the object oriented software, we need to assess and analyze its
design and implementation using appropriate metrics and e
Metrics developed for structured programming may be insufficient for assessing and
analyzing the design and implementation of the object oriented deve
In this context, this paper illustrates various software engineering metrics
for the object oriented development environment and answers whether any of the
traditional metrics can be adapted to the object oriented environment.
of the paper is organized as follows
Section 2 deals with the
characteristics and the importance of having software engineering metrics
development. Section 3 reviews various software engineering metrics for object
conclusion of this term paper is given in section 5.
Characteristics and Importance of
Software Engineering Metrics
Software engineering metric provides measurement which is an ideal
mechanism for characterizing, evaluating, predicting, and providing motiv
ation for the
various aspects of software construction processes and products
understanding of both the product and the construction process is
if measurements are taken on both the software processes and the various
. This helps in improving the quality of the product.
Subjective and objective
metrics are required for achieving the success of
applying metric for object oriented programming. Many process, product and
environment aspects can be characterized by either subjective or objective metrics.
Other aspects which are not characterized by bo
th; but they can be characterized on a
quantitative scale to a reasonable degree of accuracy
[6, 8, 11]
Most aspects of
software processes and products are too complicated to be captured by a single metric.
efinition and interpretation purposes, a set of metrics that frame the purpose for
measurement needs to be defined
Software engineering metric helps in
(1) identification of ‘hidden’
problems in earlier stages, (2) effective control of quality, and (3) providing the
comprehensive solution to the problem of evaluating the benefits of technological
migration or transition.
Although the metrication in object oriented environment seems to be
familiar, traditional software metrics are aimed at the traditional procedu
languages. Traditional software metrics do not address the various issues in object
oriented paradigm like
classes, methods, inheritance, polymorphism, encapsulation
Thus, a number of researchers have developed va
rious metrics for object
oriented environment to manage and foster quality in object oriented software
Engineering Metrics for Object Oriented Environment
The problem of assessing the design quality of object oriented system has
een of interest to many researchers
This paper demonstrates the candidate
metrics derived by Morris
observations on object oriented code.
List of software engineering metrics for object oriented environment
derived by Morris
are as follows
Methods per class,
Degree of coupling between objects,
Degree of cohesion of objects,
Object library effectiveness,
Degree of reuse of inheritance methods,
Average method complexity,
Addition of a method to an object increases the size of the object.
the larger number of methods per object complicates testing due to
the increased object size and complexity.
In the context of reusability, inheritance tree depth is likely to be
re favorable than the inheritance tree breadth. But in terms of testing,
deep inheritance is difficult to test.
of coupling between objects
In the context of reusability, the higher the degree of object
independence the more likely the object will be suitable for reuse within
the same applications and within other applications
. Testing is likely to
degrade with the higher the degree of coupling between objects as object
interactions and interconnections are more complex.
Degree of Cohesion of Objects
In the context of reusability, the objects which are less dependent
on other objects are likely to be more reusable. Though, in terms of
reliability low degree o
f cohesion adds complexity which can translate
into a reduction in application reliability.
Average method complexity
In terms of reliability, greater method complexity adversely affects
the application reliability. In terms of testing, greater method complexity
is difficult to test.
Degree of reuse of inheritance methods
Simply defining methods in such a way that they can be reused via
inheritance does not guarantee th
at those methods are actually reused.
derived various software engineering metric for object oriented
programming. Here in this paper, we will consider size metrics derived by
Size metrics are an important piece of the resource estimation process.
Various candidate size metrics derived by
(1) method size
metrics, (2) class size metrics, (3) system size metrics.
an overview of a compilation of software engineering
metrics for object oriented programming environment that should be considered
throughout the development life cycle. Software engineering metrics derived by Morris
and Fernando are also studied in this
of software engineering
metrics to software development results in developing a clearer picture of system with
regard to whether the notion of the object oriented programming has been fully applied
to the best of its capabilities. In ad
this, these software metrics are useful in
estimating any shortcomings of a similar nature that can be rectified in the future