Loading [MathJax]/extensions/MathZoom.js
Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software | IEEE Journals & Magazine | IEEE Xplore

Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software


Abstract:

The metrics formulated to date for characterizing the modularization quality of object-oriented software have considered module and class to be synonymous concepts. But a...Show More

Abstract:

The metrics formulated to date for characterizing the modularization quality of object-oriented software have considered module and class to be synonymous concepts. But a typical class in object oriented programming exists at too low a level of granularity in large object-oriented software consisting of millions of lines of code. A typical module (sometimes referred to as a superpackage) in a large object-oriented software system will typically consist of a large number of classes. Even when the access discipline encoded in each class makes for "clean" class-level partitioning of the code, the intermodule dependencies created by associational, inheritance-based, and method invocations may still make it difficult to maintain and extend the software. The goal of this paper is to provide a set of metrics that characterize large object-oriented software systems with regard to such dependencies. Our metrics characterize the quality of modularization with respect to the APIs of the modules, on the one hand, and, on the other, with respect to such object-oriented inter-module dependencies as caused by inheritance, associational relationships, state access violations, fragile base-class design, etc. Using a two-pronged approach, we validate the metrics by applying them to popular open-source software systems.
Published in: IEEE Transactions on Software Engineering ( Volume: 34, Issue: 5, Sept.-Oct. 2008)
Page(s): 700 - 720
Date of Publication: 12 September 2008

ISSN Information:


1 Introduction

OBJECT-ORIENTED software is of more recent vintage than the old-style procedural code. Nonetheless, there now exist many commercial object-oriented applications that show the same signs of aging as the legacy procedural code. So what may have started out as a well-modularized architecture may have decayed into a system of interdependent modules that are difficult to maintain and extend on an individual basis.

Contact IEEE to Subscribe

References

References is not available for this document.