SBES 2020

This project is maintained by CleitonSilvaT

Analyzing the Impact of Refactoring on Bad Smells

This webpage containing the data of the empirical research conduct: (i) all systems analyzed, (ii) all data detected by the refactoring tools, (iii) all versions of the refactored systems, (iv) notes of particular cases, and (v) all analyses carried out to assess the impacts caused by the applied refactorings.

Abstract

Refactoring aims to remove bad smells and increase software maintainability by improving the software structure without changing its behavior. However, some studies show that refactoring tools may introduce new bad smells into the source code, but to the best of our knowledge, we have not been able to find a complete catalog that states the bad smells introduced from refactoring. To bridge this gap, this paper goal is to evaluate the impacts of refactoring on the detection of bad smells in open-source Java systems. Hence, we want to know if and when the automated refactoring removes or introduces bad smells.

Research Phases

Phases

Refactorings Applied

System Move Method Replace Refactoring Total
Checkstyle-5.6 18 5 33
Commons-codec 15 0 15
Commons-io 3 2 05
Commons-logging 0* 1 01
JHotDraw-7.5.1 13 0* 13
Quartz-1.8.3 6 11 17
Squirrel_sql-3.1.2 6 0* 06
Total 61 19 80

Bad Smells Detected by Tools

Abbreviation Bad Smell T1 T2 T3 T4 T5
DC Data Class       * *
FE Feature Envy     * *  
LC Large Class *        
ZC Lazy Class *       *
LM Long Method * * *    
LP Long Parameter List * *      
MC Message Chains *        
RB Refused Bequest *     * *
SS Shotgun Surgery       *  
SG Speculative Generality *       *
  Total 7 2 2 4 4

Impacts Assessment

Steps

Original Detection

Steps

Bad Smells Detected After Move Method

Steps

Bad Smells Detected After Replace Refactoring

Steps

Files

Involved People

Publication

Brazilian Symposium on Software Engineering (SBES)

34th Brazilian Symposium on Software Engineering

2020