Software Engineering Metrics for Object Oriented Programming

glintplainvilleSoftware and s/w Development

Nov 18, 2013 (3 years and 8 months ago)

82 views


1


Software Engineering Metric
s

for Object Oriented
Programming















Name



Shrijit Joshi



Course



CSC 532



Instructor


Dr. Box


Email



ssj005@latech.edu


Date



November 3, 2005



Abstract


S
oftware en
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
as
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
algorithm,
the approach of software engineering metrics for the object oriented
environment should be different from the fun
ctional programming environment.

Hence,
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
reviews various

software enginee
ring metrics for the object
oriented development environment

in the literature
.

Keywords


Object oriented programming, Software engineering metric
s

1.
Introduction

‘Software’ 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

2

and mathematical principles and methods to the economical production of quality
software

[1, 2]
. 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
[2]
.
Software engineering process constitutes of


(1) requirement, (2) analysis, (3) design,
(4) imple
mentation, and (5) test

work flows
.
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
framework

[3]
. 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
today’s software
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
dified
[4]
.
To
evaluate the quality of the object oriented software, we need to assess and analyze its
design and implementation using appropriate metrics and e
valuation techniques
[5]
.
Metrics developed for structured programming may be insufficient for assessing and
analyzing the design and implementation of the object oriented deve
lopment
environment.
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.

The rest

of the paper is organized as follows


Section 2 deals with the
characteristics and the importance of having software engineering metrics

for software
development. Section 3 reviews various software engineering metrics for object
oriented programming

and
conclusion of this term paper is given in section 5.

2.

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
[6
-
9]
.
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
[6, 10]
. 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.
For d
efinition and interpretation purposes, a set of metrics that frame the purpose for
measurement needs to be defined
[6, 9]
.


3

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 transition.

Although the metrication in object oriented environment seems to be
familiar, traditional software metrics are aimed at the traditional procedu
ral


oriented
languages. Traditional software metrics do not address the various issues in object
oriented paradigm like


classes, methods, inheritance, polymorphism, encapsulation
etc

[3]
.
Thus, a number of researchers have developed va
rious metrics for object
oriented environment to manage and foster quality in object oriented software
environment.

3. Software

Engineering Metrics for Object Oriented Environment

The problem of assessing the design quality of object oriented system has
b
een of interest to many researchers
[12
-
17]
.

This paper demonstrates the candidate
metrics derived by Morris
[18]

for productivi
ty measurement
while making
observations on object oriented code.

List of software engineering metrics for object oriented environment
derived by Morris
[18, 19]

are as follows




(1)


Methods per class,


(2)


Inheritance dependencies,


(3)

Degree of coupling between objects,


(4)

Degree of cohesion of objects,


(5)

Object library effectiveness,


(6)

Factoring effectivenes
s,


(7)

Degree of reuse of inheritance methods,


(8)

Average method complexity,


(
9
)

Application granularity.


3.1
Methods

per class

[18]


Addition of a method to an object increases the size of the object.
Thus,
the larger number of methods per object complicates testing due to
the increased object size and complexity.


3.
2

Inheritance

d
ependencies

[18]


In the context of reusability, inheritance tree depth is likely to be
mo
re favorable than the inheritance tree breadth. But in terms of testing,
deep inheritance is difficult to test.


4

3.3
Degree

of coupling between objects

[18]


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.

3.4

Degree of Cohesion of Objects

[18]


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.

3.5

Average method complexity
[18]


In terms of reliability, greater method complexity adversely affects
the application reliability. In terms of testing, greater method complexity
is difficult to test.

3.6

Degree of reuse of inheritance methods

[18]


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

Fernando
[3]

derived various software engineering metric for object oriented
programming. Here in this paper, we will consider size metrics derived by
[3]
.

3.7

Size metrics

[3]

Size metrics are an important piece of the resource estimation process.
Various candidate size metrics derived by
[3]

are


(1) method size
metrics, (2) class size metrics, (3) system size metrics.



4.

Conclusion


This
paper presents

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
paper.

Application
s

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
dition
to
this, these software metrics are useful in
estimating any shortcomings of a similar nature that can be rectified in the future
syst
e
ms.