Software Engineering Metrics

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

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

107 εμφανίσεις

Software Engineering Metrics
for Object Oriented
Programming




Developed by









Shrijit Joshi

Abstract


Software engineering metrics is an important
feature

in the software
management functions of project planning and project evaluation
.



Object oriented programming requires a
different

approach in design and
implementation than that in structured programming.



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
functional programming environment.



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

discusses software engineering metrics for the
object oriented development environment.

Basic Concept



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 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) implementation, and (5) test work flows.

Need



Object oriented programming is a
popular

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
metrics

and
evaluation techniques [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.

Characteristics


Software engineering metric provides
measurement

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
improving

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]


Importance


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

Metrics


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


List of Metric


List

of software engineering
metrics

for object oriented
environment derived by Morris [6] 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 effectiveness,



(7)

Degree of reuse of inheritance methods,



(8)

Average method complexity,



(9)

Application granularity.

Methods per class [6]



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.


Inheritance dependencies [6]




In the context of reusability, inheritance tree
depth

is
likely to be more favorable than the inheritance tree
breadth.



But in terms of
testing
, deep inheritance is difficult to
test.

Degree of coupling between
objects [6]




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




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 of cohesion
adds complexity which can translate into a reduction in
application reliability

Average method complexity [6]




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



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

Conclusion


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

References

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

[2]
Carlo Ghezzi, Mehdi Jazayeri, and D. Mandrioli, Fundamentals of Software
Engineering.

[3]

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