DocumentCode
858697
Title
Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software
Author
Sarkar, Santonu ; Kak, Avinash C. ; Rama, Girish Maskeri
Author_Institution
Accenture Technol. Labs., Bangalore
Volume
34
Issue
5
fYear
2008
Firstpage
700
Lastpage
720
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.
Keywords
application program interfaces; inheritance; object-oriented programming; software metrics; software quality; API; granularity; inheritance; large-scale object-oriented software; modularization quality; object-oriented intermodule dependencies; open-source software systems; synonymous concepts; Coupling; Large-Scale Software; Maintainability; Maintenance and Enhancement; Metrics/Measurement; Modules and interfaces; Object-oriented programming;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2008.43
Filename
4623684
Link To Document