On the Impact of Aspect-Oriented Code Smells on Architecture Modularity: An Exploratory Study - Macia, Isela; Garcia, Alessandro; von Staa, Arndt; Garcia, Joshua; Medvidovic, Nenad (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2011: Anais do V Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2011)
Aspect-oriented programming (AOP) aims to improve software modularity, although developers can unwittingly introduce code smells in their programs. A code smell is any symptom in the source code that possibly indicates a deeper modularity problem. Several works have been concerned about code smell occurrences in aspect-oriented systems. However, there is little knowledge about their actual damage to the modularity of architectural designs. This gap makes it difficult for developers understand and manage the harmful architecture-level impact of recurring code smells. This paper presents an exploratory analysis that investigates the influence of aspect-oriented code smells on evolving architectural designs. We analyzed code smell occurrences in 14 versions of 2 applications designed using different architectural styles. The outcome of our evaluation suggests that code smell occurrences often entail architecture modularity problems in these systems. Even worse, our analysis revealed that certain architecturally-relevant code smells were not targeted by the refactoring strategies in place.