Avaliação de técnicas de Linha de Produto de Software no processo de adaptação e manutenção de sistemas customizáveis - Passos, Fernanda Almeida (2014)
Customization of open source software systems, such as the development of specific artifacts that meet their functional and non-functional requirements, can be licensed to acquiring organizations. However, it brings future problems to system maintenance, which in parallel is in constant evolution by their creators. The biggest challenge on this scenery is handling the evolutions of the original system made by their creators, which usually impact the acquiring organizations artifacts. In this context, the application of Software Product Lines (SPL) techniques emerges as a proposal to provide support in customizing acquired software. This study aims to evaluate in a real context and through controlled experiments the process of adaptation and maintenance of customized systems by comparing the approach currently used in the customizations, performed directly on the base code of the original system with the LPS techniques AspectJ, FeatureHouse and XVCL. The selection of those techniques for evaluation was based on a comparative analysis of the techniques raised on a systematic study that was realized, taking as a premise the possibility of creating customizable artifacts and the implementation of the variations apart of the base code, keeping it intact. Finally, after the experiment proposed in this study, quantitative and qualitative results regarding the usage of the SPL techniques AspectJ, FeatureHouse and XVCL in the adaptation and maintenance of customizable systems were obtained. These results show that FeatureHouse and XVCL were considered equivalent to each other and to the current approach. AspectJ, though it proved feasible, requires a steep learning curve. However, the adoption of one of those SPL techniques brings qualitative gains due to the possibility of creating customizable software artifacts and to the separation of the variations from the system base code.