On Identifying Architectural Smells in Search-based Product Line Designs - Perissato, Eduardo G.; Choma Neto, João; Colanzi, Thelma E.; Oizumi, Willian; Garcia, Alessandro (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), 2018)
The Product Line Architecture (PLA) defines a common design for all products derived from the software product line. PLA design is a high-effort task since it is influenced by several factors, such as feature modularity, PLA variability and extensibility. Given the complexity and variety of such influential factors, the use of search-based algorithms have recently been explored to derive PLA designs in the seminal approach named Multi-Objective Approach for Product-Line Architecture Design (MOA4PLA). MOA4PLA produces a set of alternative PLA designs that improve the different optimized factors. Besides the optimization of these factors, the obtained PLA designs should ideally have no architectural smell. An architectural smell may harm not only the PLA variability and extensibility, but also other non-functional attributes. However, no previous study was performed to investigate if and to what extent state-of-the-art search-based approaches, such as MOA4PLA, adversely introduce architectural smells in resulting designs. Thus, we performed an exploratory investigation about the presence of architectural smells in a set of PLA designs obtained from MOA4PLA. Such an investigation was also useful to derive guidelines for: (i) improving the resulting search-based PLA designs, or (ii) preventing upfront the emergence of architectural smells in PLA designs automatically obtained with search-based approaches.