Published October 22, 2018 | Version v1
Conference paper Open

Structural Quality Metrics as Indicators of the Long Method Bad Smell: An Empirical Study

  • 1. Department of Computer Science, University of Groningen, Netherlands
  • 2. Department of Applied Informatics, University of Macedonia, Thessaloniki, Greece
  • 3. Department of Informatics, Aristotle University, Thessaloniki, Greece

Description

Empirical evidence has pointed out that Extract Method refactorings are among the most commonly applied refactorings by software developers. The identification of Long Method code smells and the ranking of the associated refactoring opportunities is largely based on the use of metrics, primarily with measures of cohesion, size and coupling. Despite the relevance of these proper-ties to the presence of large, complex and non-cohesive pieces of code, the empirical validation of these metrics has exhibited relatively low accuracy (max precision: 66%) regarding their predictive power for long methods or extract method opportunities. In this work we perform an empirical validation of the ability of cohesion, coupling and size metrics to predict the existence and the intensity of long method occurrences. According to the statistical analysis, the existence and the intensity of the Long Method smell can be effectively predicted by two size (LoC and NoLV), two coupling (MPC and RFC), and four cohesion (LCOM1, LCOM2, Coh, and CC) metrics. Furthermore, the integration of these metrics into a multiple logistic regression model can predict whether a method should be refactored with a precision of 89% and a recall of 91%. The model yields suggestions whose ranking is strongly correlated to the ranking based on the effect of the corresponding refactorings on source code (correl. coef. 0.520). The results are discussed by providing interpretations and implications for research and practice.

Files

structural_quality_metrics.pdf

Files (312.3 kB)

Name Size Download all
md5:7d0279320bf762e1ad6e0276566c0f98
312.3 kB Preview Download

Additional details

Funding

European Commission
SDK4ED – Software Development toolKit for Energy optimization and technical Debt elimination 780572