AuthorsA. Yamashita and L. Moonen
TitleExploring the Impact of Inter-Smell Relations in the Maintainability of a System: an Empirical Study
AfilliationSoftware Engineering
Project(s)No Simula project
Publication TypeTechnical reports
Year of Publication2012
PublisherSimula Research Laboratory

Code smells are indicators of deeper problems in the design that may cause difficulties in the evolution of a system. While previous studies have mainly focused on studying the effects of individual smells on maintainability, we believe that interactions tend to occur between code smells. The research in this paper investigates the potential interactions amongst twelve different code smells, and how those interactions can lead to maintenance problems. Four medium-sized systems with equivalent functionality but dissimilar design were examined for smells. The systems were the object of several change requests for a period of four weeks. During that period, we recorded on a daily basis problems faced by developers and their associated Java files. The first analysis is based on Principal Component Analysis (PCA), to identify components formed by collocated code smells (i.e., smells located in the same file). Analysis on the nature of the problems, as reported by the developers in daily interviews and think-aloud sessions, revealed how some of the collocated smells interacted with each other, causing maintenance problems. Finally, we could observe that some interactions occur across files, for which we suggest integrating dependency analysis when analyzing effects of code smells on maintainability.

Citation KeySimula.simula.1494