Evolving Delta-Oriented Product Lines: A Case Study on Feature Interaction, Safe and Partially Safe Evolution - Camargo, Leomar; Fantin, Luisa; Lobão, Gabriel; Figueiredo, Thiago; Bonifacio, Rodrigo; Gomes, Karine; Teixeira, Leopoldo (Anais do Simpósio Brasileiro de Engenharia de Software (SBES), 2021)
Software product line engineering is a well-known approach for building a set of configurable systems for a specific domain, and different techniques have been used to manage product line variability, including source-code preprocessing, aspect-oriented programming (AOP), and delta-oriented programming (DOP). Although existing studies have explored the design and evolution of product lines using techniques such as source-code preprocessing and AOP, little is known about the practical implications of using DOP to bootstrap and evolve software product lines. In this paper we address this issue, reporting our experience of using DeltaJ to implement two product lines (Reminder-PL and Iris-PL). This experience covers different scenarios of evolution (such as the inclusion of mandatory, optional, and alternative features) that indeed led to several feature interactions. Altogether, this work brings several contributions, including evidence that existing templates for safe and partially safe evolution of product lines can also help developers to evolve delta-oriented SPLs—although we revealed the need for two additional templates for safe evolution. Also, we present a description of the feature interactions that appeared during the evolution of both product lines and how we modularized these interactions using DOP constructs.