A Validation of Object-Oriented Design Metrics as Quality Indicators
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
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics
IEEE Transactions on Software Engineering
Software Metrics: A Rigorous and Practical Approach
Software Metrics: A Rigorous and Practical Approach
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Some Misconceptions About Lines of Code
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
The interpretation and utility of three cohesion metrics for object-oriented design
ACM Transactions on Software Engineering and Methodology (TOSEM)
Are refactorings less error-prone than other changes?
Proceedings of the 2006 international workshop on Mining software repositories
Software Structure Metrics Based on Information Flow
IEEE Transactions on Software Engineering
Template-based reconstruction of complex refactorings
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
A Systematic Literature Review on Fault Prediction Performance in Software Engineering
IEEE Transactions on Software Engineering
When Does a Refactoring Induce Bugs? An Empirical Study
SCAM '12 Proceedings of the 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation
Hi-index | 0.00 |
A fundamental aspect of a system's performance over time is the number of faults it generates. The relationship between the software engineering concept of "coupling" (i.e., the degree of inter-connectedness of a system's components) and faults is still a research question attracting attention and a relationship with strong implications for performance; excessive coupling is generally acknowledged to contribute to fault-proneness. In this paper, we explore the relationship between faults and coupling. Two releases from each of three open-source Eclipse projects (six releases in total) were used as an empirical basis and coupling and fault data extracted from those systems. A contrasting coupling profile between fault-free and fault-prone classes was observed and this result was statistically supported. Object-oriented (OO) classes with low values of fan-in (incoming coupling) and fan-out (outgoing coupling) appeared to support fault-free classes, while classes with high fan-out supported relatively fault-prone classes. We also considered size as an influence on fault-proneness. The study thus emphasizes the importance of minimizing coupling where possible (and particularly that of fan-out); failing to control coupling may store up problems for later in a system's life; equally, controlling class size should be a concomitant goal.