Follow Your Nose – Which Code Smells are Worth Chasing?

03/02/2021
by   Idan Amit, et al.
0

The common use case of code smells assumes causality: Identify a smell, remove it, and by doing so improve the code. We empirically investigate their fitness to this use. We present a list of properties that code smells should have if they indeed cause lower quality. We evaluated the smells in 31,687 Java files from 677 GitHub repositories, all the repositories with 200+ commits in 2019. We measured the influence of smells on four metrics for quality, productivity, and bug detection efficiency. Out of 151 code smells computed by the CheckStyle smell detector, less than 20 causal, and only a handful are rather robust. The strongest smells deal with simplicity, defensive programming, and abstraction. Files without the potentially causal smells are 50 Unfortunately, most smells are not removed, and developers tend to remove the easy ones and not the effective ones.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/17/2021

On the Distribution of "Simple Stupid Bugs" in Unit Test Files: An Exploratory Study

A key aspect of ensuring the quality of a software system is the practic...
research
09/08/2021

On the differences between quality increasing and other changes in open source Java projects

Static software metrics, e.g., size, complexity and coupling are used in...
research
06/17/2020

An Automatically Created Novel Bug Dataset and its Validation in Bug Prediction

Bugs are inescapable during software development due to frequent code ch...
research
03/21/2018

Estimating defectiveness of source code: A predictive model using GitHub content

Two key contributions presented in this paper are: i) A method for build...
research
07/21/2020

The Corrective Commit Probability Code Quality Metric

We present a code quality metric, Corrective Commit Probability (CCP), m...
research
09/17/2019

Ludwig: a type-based declarative deep learning toolbox

In this work we present Ludwig, a flexible, extensible and easy to use t...

Please sign up or login with your details

Forgot password? Click here to reset