• DocumentCode
    2345109
  • Title

    Improving the Precision of Fowler´s Definitions of Bad Smells

  • Author

    Zhang, Min ; Baddoo, Nathan ; Wernick, Paul ; Hall, Tracy

  • Author_Institution
    Sch. of Comput. Sci., Univ. of Hertfordshire, Hatfield, UK
  • fYear
    2008
  • fDate
    15-16 Oct. 2008
  • Firstpage
    161
  • Lastpage
    166
  • Abstract
    Current approaches to detecting bad smells in code are mainly based on software metrics. We suggest that these methods lack precision in detecting bad smells, and we propose a code pattern-based approach to detecting bad smells. However before such a pattern-based approach can be implemented, Fowler´s original definitions of bad smells need to be made more precise. Currently Fowler´s definitions are too informal to implement in a pattern-searching tool. In this paper we use an expert panel to evaluate our enhanced definitions for five of Fowler´s bad smells. We use a questionnaire to survey four experts´ opinions of our bad smell definitions. Our results show that the experts basically agree with our enhanced definitions of the message chains, middle man and speculative generality bad smells. However, there are strong disagreements on our definitions of the data clumps and switch statements bad smells. We present enhanced definitions on the basis of these expert opinions.
  • Keywords
    object-oriented programming; reverse engineering; software maintenance; software metrics; systems re-engineering; Fowler´s definition; code bad smell detection; code pattern-based approach; data clump; message chain; middle man; pattern-searching tool; questionnaire survey; reverse engineering; software metrics; software reengineering; software refactoring; speculative generality bad smell; switch statement bad smell; Computer science; Conferences; Information systems; Logic programming; Mathematics; Programming environments; Reverse engineering; Software measurement; Software metrics; Switches; Coding tools and technique; programming environments/construction tools; reengineering; restructuring; reverse engineering;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering Workshop, 2008. SEW '08. 32nd Annual IEEE
  • Conference_Location
    Kassandra
  • ISSN
    1550-6215
  • Print_ISBN
    978-0-7695-3617-0
  • Type

    conf

  • DOI
    10.1109/SEW.2008.26
  • Filename
    5328371