Litcius/Paper detail

The Effect of Code Smells on the Relationship Between Design Patterns and Defects

Tarek Alkhaeir, Bartosz Walter

2020IEEE Access16 citationsDOIOpen Access PDF

Abstract

The relationship between design patterns and defects was investigated in the literature, but with mixed results. While the majority of studies found the presence of patterns to be positively correlated with defects, other works reported the opposite conclusions. This may suggest that contextual factors affect this relationship. In this study we analyze the role of code smells as a confounding variable in the relationship between design patterns and defects in Java classes. To investigate this, we applied statistical tests to capture the difference in the impact on defects between pattern classes with/without code smells in 10 Java systems from the PROMISE dataset, with respect to 13 design patterns and 10 code smells. The presence of code smells in patterns appears to be a valid factor affecting defect-proneness. Pattern classes with smells attract more defects than non-smelly pattern classes, and in most systems smelly design patterns are positively correlated with the presence of defects, while non-smelly patterns tend to have no impact, or a slightly negative impact on the presence of defects. As a result, the presence of code smells in design pattern classes appears to be a contextual factor affecting the defect-proneness of the subject code.

Topics & Concepts

Code smellComputer scienceCode (set theory)JavaArtificial intelligenceProgramming languageSoftware qualitySoftware developmentSoftwareSet (abstract data type)Software Engineering ResearchSoftware Reliability and Analysis ResearchSoftware System Performance and Reliability