The Community for Technology Leaders
Green Image
Issue No. 05 - Sept.-Oct. (2008 vol. 34)
ISSN: 0098-5589
pp: 700-720
Girish Maskeri Rama , Infosys Technologies Ltd, Bangalore
Avinash C. Kak , Purdue University, West Lafayette
Santonu Sarkar , Infosys Technologies Ltd, Bangalore
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.
INDEX TERMS
Metrics/Measurement, Maintainability, Modules and interfaces, Object-oriented programming, Coupling, Maintenance and Enhancement, Large-Scale Software
CITATION
Girish Maskeri Rama, Avinash C. Kak, Santonu Sarkar, "Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software", IEEE Transactions on Software Engineering, vol. 34, no. , pp. 700-720, Sept.-Oct. 2008, doi:10.1109/TSE.2008.43
93 ms
(Ver 3.1 (10032016))