Investigating the Relationship between Code Smell Agglomerations and Architectural Concerns: Similarities and Dissimilarities from Distributed, Service-Oriented, and Mobile Systems - Carvalho, Luis Paulo da S.; Novais, Renato; Mendonça, Manoel (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2018: Anais do XII Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2018)
Context: software architects often decide on strategies before incorporating an asset (e.g., components) in software systems. At the same time, they are responsible for preventing code and architectural degradation caused by design problems. Problem: groups of code smells (a.k.a. agglomeration of code smells) have been recognized as a source of design problems, but no previous study has analyzed the relationship between such agglomerations and different types of software. Different types of software have different needs in terms of implementation of architectural concerns, which can lead to consequential variations in the way how code smells agglomerate. Goal: this study aims to understand how a varied set of projects and their respective architectural concerns relates to code smells agglomerations. Method: our study analyses the history of 15 Open Source Software (OSS) projects split as three groups of distributed, service-oriented, and mobile project types. It mines the projects for code smells and architectural concerns (identified from injected components). It agglomerates instances of code smells around these concerns, and analyzes them according to the grouped projects. Results/Discussion: the agglomerations of smells tend to follow a stratified pattern in which they group themselves through ramifications of similarities and dissimilarities of concerns and project types.