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 characterizes large object-oriented software systems with regard to such dependencies. Our metrics characterize the quality of modularization with respect to the APIs of t...
Santonu Sarkar, Avinash C. Kak, Girish Maskeri Ram