2009 · 697 citations · 41 references
ComputingComputer ScienceChange MeasurementPredictive AnalyticsSoftware EngineeringChange MetricsSoftware DesignSoftware EvolutionSoftware MaintenanceSoftware MetricsSoftware TestingChange Process AnalysisCode Complexity AnalysisComplexity MeasurementFault Prediction MetricsSoftware Evolution MetricsSoftware Fault PredictionSource Code Change AnalysisSource Code Metrics
Fault prediction has traditionally relied on measuring code complexity. The authors propose change‑process‑based complexity metrics and hypothesize that complex code changes degrade software quality. They validate the hypothesis with a case study on six large open source projects using change‑history data. The metrics outperform traditional predictors such as prior modifications and prior faults.
Predicting the incidence of faults in code has been commonly associated with measuring complexity. In this paper, we propose complexity metrics that are based on the code change process instead of on the code. We conjecture that a complex code change process negatively affects its product, i.e., the software system. We validate our hypothesis empirically through a case study using data derived from the change history for six large open source projects. Our case study shows that our change complexity metrics are better predictors of fault potential in comparison to other well-known historical predictors of faults, i.e., prior modifications and prior faults.
41
A Mathematical Theory of Communication
Claude E. Shannon · Bell System Technical Journal · 1948 · 80.7K citations
Richard J. Beckman, Sanford Weisberg · Technometrics · 1987 · 2.9K citations
The mythical man-month: essays on software engineering
Choice Reviews Online · 1996 · 2.5K citations
Mining metrics to predict component failures
Nachiappan Nagappan, Thomas Ball, Andreas Zeller · 2006 · 779 citations