Issue No.05 - Sept.-Oct. (2008 vol.34)
Avinash C. Kak , Purdue University, West Lafayette
Santonu Sarkar , Infosys Technologies Ltd, Bangalore
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2008.43
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.
Metrics/Measurement, Maintainability, Modules and interfaces, Object-oriented programming, Coupling, Maintenance and Enhancement, Large-Scale Software
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. 5, pp. 700-720, Sept.-Oct. 2008, doi:10.1109/TSE.2008.43