Software Engineering Metrics

handprintΛογισμικό & κατασκευή λογ/κού

18 Νοε 2013 (πριν από 4 χρόνια και 6 μήνες)

116 εμφανίσεις

Software Engineering Metrics
for Object Oriented

Developed by

Shrijit Joshi


Software engineering metrics is an important

in the software
management functions of project planning and project evaluation

Object oriented programming requires a

approach in design and
implementation than that in structured programming.


are the fundamental building blocks for the object oriented
programming rather than algorithm, the approach of software engineering
metrics for the object oriented environment should be different from the
functional programming environment.

Metrics developed for structured programming do not

for these
new relationships and may be insufficient for use in object oriented

In this context, this

discusses software engineering metrics for the
object oriented development environment.

Basic Concept

’ refers to a program and all of the associated information and
materials needed to support its installation, operation, repair and
enhancement [1].

Software engineering
’ refers to the disciplined applications of engineering,
scientific and mathematical principles and methods to the economical
production of quality software [1,2].

The field of software engineering was born in

in response to the
chronic failures of large software projects to meet schedule and budget
constraints [2].

Software engineering process constitutes of

(1) requirement, (2) analysis,
(3) design, (4) implementation, and (5) test work flows.


Object oriented programming is a

concept in today’s software
development environment.

To evaluate the quality of the object oriented software, we need to assess
and analyze its design and implementation using appropriate

evaluation techniques [3].

The availability of the software metric helps

to control the various
activities of the development life cycle and contributes to the overall
objective of software quality.


Software engineering metric provides

which is an ideal
mechanism for characterizing, evaluating, predicting, and providing
motivation for the various aspects of software construction processes and
products [4].

Using the software metric, understanding of both the product and the
construction process is achieved if measurements are taken on both the
software processes and the various software products [4, 5]. This helps in

the quality of the product.

Most aspects of software processes and products are too complicated to be
captured by a
single metric
. For definition and interpretation purposes, a set
of metrics that frame the purpose for measurement needs to be defined [4]


Software engineering metric helps in [3]

(1) identification of ‘hidden’ problems in earlier stages,

(2) effective control of quality, and

(3) providing the most comprehensive solution to the problem of evaluating the
benefits of technological migration or evaluation


This paper demonstrates the candidate metrics derived by Morris [6] for
productivity measurement while making observations on object oriented code

List of Metric


of software engineering

for object oriented
environment derived by Morris [6] are as follows


Methods per class,


Inheritance dependencies,


Degree of coupling between objects,


Degree of cohesion of objects,


Object library effectiveness,


Factoring effectiveness,


Degree of reuse of inheritance methods,


Average method complexity,


Application granularity.

Methods per class [6]

Addition of a

to an object increases the size
of the object.

Thus, the larger number of methods per object

due to the increased object size and

Inheritance dependencies [6]

In the context of reusability, inheritance tree

likely to be more favorable than the inheritance tree

But in terms of
, deep inheritance is difficult to

Degree of coupling between
objects [6]

In the context of
, 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.


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 [6]

In the context of
, the objects which are
less dependent on other objects are likely to be more

Though, in terms of

low degree of cohesion
adds complexity which can translate into a reduction in
application reliability

Average method complexity [6]

In terms of
, 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 [6]

Simply defining methods in such a way that they can
be reused via inheritance does not guarantee that
those methods are actually reused.


Application 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


[1] Humphrey, W.S.,
The Software Engineering Process: Definition and Scope
The Mythical Man
Month. 1975: Addison Wesley.

Carlo Ghezzi, Mehdi Jazayeri, and D. Mandrioli, Fundamentals of Software


Sherif M. Yacoub, Hany H. Ammar, and T. Robinson, Dynamic Metrics for
Object Oriented Designs.

[4] Victor R. Basili and H.D. Rombach, The TAME Project: Towards
Oriented Software Environments. IEEE Transactions of
Software Engineering, June 1988. 14(6).

[5] Agresti, W. SEL Ada experiment: Status and design experience. in Eleventh
Annu. Software Engineering Workshop. Dec. 1986. NASA Goddard Space
Flight Center, Greenbelt, MD.

[6] Morris, Metrics for Object
Oriented Software Development Environments, in
Master's Thesis, Sloan School of Management. 1989, M. I. T.