Code smell eradication and associated refactoring

Haitham S. Hamza, Steve Counsell, Tracy Hall, George D. Loizou · 2008

A refactoring may use many other refactorings to implement its mechanics and the dependencies thus produced form a nested ‘chain’ of other refactorings. In this paper, we propose an approach which provides a coarse guide to effort required in eradicating code ‘smells’. The approach is based on the quantitative analysis of the dependencies between two sets of code smells, namely, those of Kerievsky and Fowler. A bespoke tool was developed to extract the required dependency information. Results suggest that some code smells require a considerably larger effort to remedy than others, suggesting that, where possible, developers should avoid eradicating these smells in favour of other code smells which can be eliminated relatively easily. A clear difference in the composition between the smells of Kerievsky and those of Fowler was also observed. Key-Words: Refactoring, chain dependencies, code smells, Fowler, Kerievsky.

Read the paper · More papers on PaperTik