An Empirical Analysis of Package-Modularization Metrics: Implications for Software Fault-Proneness

Yangyang Zhao,Yibiao Yang,Hongmin Lu,Yuming Zhou,Qinbao Song,Baowen Xu
DOI: https://doi.org/10.1016/j.infsof.2014.09.006
IF: 3.9
2014-01-01
Information and Software Technology
Abstract:Context: In a large object-oriented software system, packages play the role of modules which group related classes together to provide well-identified services to the rest of the system. In this context, it is widely believed that modularization has a large influence on the quality of packages. Recently, Sarkar, Kak, and Rama proposed a set of new metrics to characterize the modularization quality of packages from important perspectives such as inter-module call traffic, state access violations, fragile base-class design, programming to interface, and plugin pollution. These package-modularization metrics are quite different from traditional package-level metrics, which measure software quality mainly from size, extensibility, responsibility, independence, abstractness, and instability perspectives. As such, it is expected that these package-modularization metrics should be useful predictors for fault-proneness. However, little is currently known on their actual usefulness for fault-proneness prediction, especially compared with traditional package-level metrics.Objective: In this paper, we examine the role of these new package-modularization metrics for determining software fault-proneness in object-oriented systems.Method: We first use principal component analysis to analyze whether these new package-modularization metrics capture additional information compared with traditional package-level metrics. Second, we employ univariate prediction models to investigate how these new package-modularization metrics are related to fault-proneness. Finally, we build multivariate prediction models to examine the ability of these new package-modularization metrics for predicting fault-prone packages.Results: Our results, based on six open-source object-oriented software systems, show that: (I) these new package-modularization metrics provide new and complementary views of software complexity compared with traditional package-level metrics; (2) most of these new package-modularization metrics have a significant association with fault-proneness in an expected direction; and (3) these new package-modularization metrics can substantially improve the effectiveness of fault-proneness prediction when used with traditional package-level metrics together.Conclusions: The package-modularization metrics proposed by Sarkar, Kak, and Rama are useful for practitioners to develop quality software systems. (C) 2014 Elsevier B.V. All rights reserved.
What problem does this paper attempt to address?