Exploring the Eradication of Code Smells: An Empirical and Theoretical Perspective

  • Counsell S
  • Hierons R
  • Hamza H
  • et al.
N/ACitations
Citations of this article
14Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

Code smells reflect code decay, and, as such, developers should seek to eradicate such smells through application of “deodorant” in the form of one or more refactorings. However, a relative lack of studies exploring code smells either theoretically or empirically when compared with literature on refactoring suggests that there are reasons why smell eradication is neither being applied in anger, nor the subject of significant research. In this paper, we present three studies as supporting evidence for this stance. The first is an analysis of a set of five, open-source Java systems in which we show very little tendency for smells to be eradicated by developers; the second is an empirical study of a subsystem of a proprietary, C# web-based application where practical problems arise in smell identification and the third, a theoretical enumeration of smell-related refactorings to suggest why smells may be left alone from an effort perspective. Key findings of the study were that first, smells requiring application of simple refactorings were eradicated in favour of smells requiring more complex refactorings; second, a wide range of conflicts and anomalies soon emerged when trying to identify smelly code; an interesting result with respect to comment lines was also observed. Finally, perceived (estimated) effort to eradicate a smell may be a key factor in explaining why smell eradication is avoided by developers. The study thus highlights the need for a clearer research strategy on the issue of code smells and all aspects of their identification and measurement.

Cite

CITATION STYLE

APA

Counsell, S., Hierons, R. M., Hamza, H., Black, S., & Durrand, M. (2010). Exploring the Eradication of Code Smells: An Empirical and Theoretical Perspective. Advances in Software Engineering, 2010, 1–12. https://doi.org/10.1155/2010/820103

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free