Towards a metrics suite for object oriented design
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
Object-oriented software metrics: a practical guide
Object-oriented software metrics: a practical guide
A software complexity model of object-oriented systems
Decision Support Systems - Special issue on information technologies and systems
Cohesion and reuse in an object-oriented system
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Property-Based Software Engineering Measurement
IEEE Transactions on Software Engineering
An investigation into coupling measures for C++
ICSE '97 Proceedings of the 19th international conference on Software engineering
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Polymorphism measures for early risk prediction
Proceedings of the 21st international conference on Software engineering
Are large C++ classes change-prone? An empirical investigation
Software—Practice & Experience
Exploring the relationship between design measures and software quality in object-oriented systems
Journal of Systems and Software
Applying meta-analytical procedures to software engineering experiments
Journal of Systems and Software
Finding failures by cluster analysis of execution profiles
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics
IEEE Transactions on Software Engineering
Modeling Development Effort in Object-Oriented Systems Using Design Properties
IEEE Transactions on Software Engineering - Special section on the seventh international software metrics symposium
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Research Synthesis in Software Engineering: A Case for Meta-Analysis
METRICS '99 Proceedings of the 6th International Symposium on Software Metrics
Measurement of Change: Stable and Change-Prone Constructs in a Commercial C++ System
METRICS '99 Proceedings of the 6th International Symposium on Software Metrics
OO Design Patterns, Design Structure, and Program Changes: An Industrial Case Study
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Understanding Change-Proneness in OO Software through Visualization
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Heuristics for Computing Attribute Values of C++ Program Complexity Metrics
COMPSAC '96 Proceedings of the 20th Conference on Computer Software and Applications
Design Patterns and Change Proneness: An Examination of Five Evolving Systems
METRICS '03 Proceedings of the 9th International Symposium on Software Metrics
Dynamic Coupling Measurement for Object-Oriented Software
IEEE Transactions on Software Engineering
Empirical Software Engineering
IEEE Transactions on Software Engineering
The interpretation and utility of three cohesion metrics for object-oriented design
ACM Transactions on Software Engineering and Methodology (TOSEM)
Identifying and characterizing change-prone classes in two large-scale open-source products
Journal of Systems and Software
The effectiveness of pair programming: A meta-analysis
Information and Software Technology
IEEE Transactions on Software Engineering
On the ability of complexity metrics to predict fault-prone classes in object-oriented systems
Journal of Systems and Software
Evaluating usefulness of software metrics: an industrial experience report
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
Many studies have investigated the relationships between object-oriented (OO) metrics and change-proneness and conclude that OO metrics are able to predict the extent of change of a class across the versions of a system. However, there is a need to re-examine this subject for two reasons. First, most studies only analyze a small number of OO metrics and, therefore, it is not clear whether this conclusion is applicable to most, if not all, OO metrics. Second, most studies only uses relatively few systems to investigate the relationships between OO metrics and change-proneness and, therefore, it is not clear whether this conclusion can be generalized to other systems. In this paper, based on 102 Java systems, we employ statistical meta-analysis techniques to investigate the ability of 62 OO metrics to predict change-proneness. In our context, a class which is changed in the next version of a system is called change-prone and not change-prone otherwise. The investigated OO metrics cover four metric dimensions, including 7 size metrics, 18 cohesion metrics, 20 coupling metrics, and 17 inheritance metrics. We use AUC (the area under a relative operating characteristic, ROC) to evaluate the predictive effectiveness of OO metrics. For each OO metric, we first compute AUCs and the corresponding variances for individual systems. Then, we employ a random-effect model to compute the average AUC over all systems. Finally, we perform a sensitivity analysis to investigate whether the AUC result from the random-effect model is robust to the data selection bias in this study. Our results from random-effect models reveal that: (1) size metrics exhibit moderate or almost moderate ability in discriminating between change-prone and not change-prone classes; (2) coupling and cohesion metrics generally have a lower predictive ability compared to size metrics; and (3) inheritance metrics have a poor ability to discriminate between change-prone and not change-prone classes. Our results from sensitivity analyses show that these conclusions reached are not substantially influenced by the data selection bias.