Prioritising refactoring using code bad smells

Min Zhang, N. Baddoo, P. Wernick, T. Hall

    Research output: Chapter in Book/Report/Conference proceedingOther chapter contribution

    9 Citations (Scopus)

    Abstract

    We investigated the relationship between six of Fowler et al.'s Code Bad Smells (Duplicated Code, Data Clumps, Switch Statements, Speculative Generality, Message Chains, and Middle Man) and software faults. In this paper we discuss how our results can be used by software developers to prioritise refactoring. In particular we suggest that source code containing Duplicated Code is likely to be associated with more faults than source code containing the other five Code Bad Smells. As a consequence, Duplicated Code should be prioritised for refactoring. Source code containing Message Chains seems to be associated with a high number of faults in some situations. Consequently it is another Code Bad Smell which should be prioritised for refactoring. Source code containing only one of the Data Clumps, Switch Statements, Speculative Generality, or Middle Man Bad Smell is not likely to be fault-prone. As a result these Code Bad Smells could be put into a lower refactoring priority.
    Original languageEnglish
    Title of host publicationProceedings - 4th IEEE International Conference on Software Testing, Verification, and Validation Workshops, ICSTW 2011
    PublisherIEEE
    Pages458-464
    Number of pages7
    ISBN (Print)978-076954345-1
    DOIs
    Publication statusPublished - 1 Jan 2011
    EventICSTW 2011, 4th IEEE International Conference on Software Testing, Verification, and Validation Workshops - Berlin, Germany
    Duration: 21 Mar 201125 Mar 2011

    Conference

    ConferenceICSTW 2011, 4th IEEE International Conference on Software Testing, Verification, and Validation Workshops
    Country/TerritoryGermany
    CityBerlin
    Period21/03/1125/03/11

    Keywords

    • code bad smells
    • fault
    • refactoring

    Fingerprint

    Dive into the research topics of 'Prioritising refactoring using code bad smells'. Together they form a unique fingerprint.

    Cite this