DeepAI AI Chat
Log In Sign Up

Improving Change Prediction Models with Code Smell-Related Information

by   Gemma Catolino, et al.
Universität Zürich
Università degli Studi di Milano-Bicocca
University of Salerno
Delft University of Technology

Code smells represent sub-optimal implementation choices applied by developers when evolving software systems. The negative impact of code smells has been widely investigated in the past: besides developers' productivity and ability to comprehend source code, researchers empirically showed that the presence of code smells heavily impacts the change-proneness of the affected classes. On the basis of these findings, in this paper we conjecture that code smell-related information can be effectively exploited to improve the performance of change prediction models, ie models having as goal that of indicating to developers which classes are more likely to change in the future, so that they may apply preventive maintenance actions. Specifically, we exploit the so-called intensity index - a previously defined metric that captures the severity of a code smell - and evaluate its contribution when added as additional feature in the context of three state of the art change prediction models based on product, process, and developer-based features. We also compare the performance achieved by the proposed model with the one of an alternative technique that considers the previously defined antipattern metrics, namely a set of indicators computed considering the history of code smells in files. Our results report that (i) the prediction performance of the intensity-including models is statistically better than that of the baselines and (ii) the intensity is a more powerful metric with respect to the alternative smell-related ones.


Does chronology matter in JIT defect prediction? A Partial Replication Study

Just-In-Time (JIT) models detect the fix-inducing changes (or defect-ind...

Learning to predict test effectiveness

The high cost of the test can be dramatically reduced, provided that the...

An Industrial Case Study on Shrinking Code Review Changesets through Remark Prediction

Change-based code review is used widely in industrial software developme...

Why Developers Refactor Source Code: A Mining-based Study

Refactoring aims at improving code non-functional attributes without mod...

On the Need of Removing Last Releases of Data When Using or Validating Defect Prediction Models

To develop and train defect prediction models, researchers rely on datas...

TextRank Based Search Term Identification for Software Change Tasks

During maintenance, software developers deal with a number of software c...