Revisiting the relationship between code smells and refactoring

N Yoshida, T Saika, E Choi, A Ouni… - 2016 IEEE 24th …, 2016 - ieeexplore.ieee.org
N Yoshida, T Saika, E Choi, A Ouni, K Inoue
2016 IEEE 24th International Conference on Program Comprehension …, 2016ieeexplore.ieee.org
Refactoring is a critical technique in evolving software systems. Martin Fowler presented a
catalogue of refactoring patterns that defines a list of code smells and their corresponding
refactoring patterns. This list aimed at supporting programmers in finding suitable refactoring
patterns that remove code smells from their systems. However, a recent empirical study by
Bavota et al. shows that refactoring rarely removes code smells which do not align with
Fowler's catalog. To bridge the gap between them, we revisit the relationship between code …
Refactoring is a critical technique in evolving software systems. Martin Fowler presented a catalogue of refactoring patterns that defines a list of code smells and their corresponding refactoring patterns. This list aimed at supporting programmers in finding suitable refactoring patterns that remove code smells from their systems. However, a recent empirical study by Bavota et al. shows that refactoring rarely removes code smells which do not align with Fowler's catalog. To bridge the gap between them, we revisit the relationship between code smells and refactorings. In this study, we investigate whether developers apply appropriate refactoring patterns to fix code smells in three open source software systems.
ieeexplore.ieee.org