Architectural Feature Re-Modularization for Software Product Line Evolution
Resumo
Extensive maintenance leads to the Software Product Line Architecture (PLA) degradation over time. When there is the need of evolving the Software Product Line (SPL) to include new features, or move to a new platform, a degraded PLA requires considerable effort to understand and modify, demanding expensive refactoring activity. In the state of the art, search-based algorithms are used to improve PLA at package level. However, recent studies have shown that the most variability and implementation details of an SPL are described in the level of classes. There is a gap between existing approaches and existing practical needs. In this work, we extend the current state of the art to deal with feature modularization in the level of classes by introducing a new search operator and a set of objective functions to deal with feature modularization in a finer granularity of the architectural elements, namely at class level. We evaluated the proposal in an exploratory study with a PLA widely investigated and a real-world PLA. The results of quantitative and qualitative analysis point out that our proposal provides solutions to properly re-modularize features in a PLA, being preferred by practitioners, in order to support the evolution of SPLs.
Palavras-chave:
Architectural Degradation, Feature Modularization, Search-based Software Engineering, Software Evolution
Publicado
19/10/2020
Como Citar
NICOLODI, Luciane Baldo; COLANZI, Thelma Elita; ASSUNÇÃO, Wesley K. G..
Architectural Feature Re-Modularization for Software Product Line Evolution. In: SIMPÓSIO BRASILEIRO DE COMPONENTES, ARQUITETURAS E REUTILIZAÇÃO DE SOFTWARE (SBCARS), 14. , 2020, Natal/RN.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2020
.
p. 31–40.