Sometimes You Have to Treat the Symptoms: Tackling Model Drift in an Industrial Clone-and-Own Software Product Line
Many industrial software product lines use a clone-and-own approach for reuse among software products. As a result, the different
products in the product line may \emph{drift apart}, which implies increased
efforts for tasks such as change propagation, domain analysis, and
quality assurance. While many solutions have been proposed in the
literature, these are often difficult to apply in a real-world setting.
We study this drift of products in a concrete large-scale industrial
model-driven clone-and-own software product line in the railway
domain at our industry partner. For this purpose, we conducted interviews and a survey, and we investigated the models in the model
history of this project. We found that increased efforts are mainly
caused by large model differences and increased communication
efforts. We argue that, in the short-term, treating the symptoms
(i.e., handling large model differences) can help to keep efforts for
software product-line engineering acceptable — instead of employing sophisticated variability management. To treat the symptoms,
we employ a solution based on semantic-lifting to simplify model
differences. Using the interviews and the survey, we evaluate the
feasibility of variability management approaches and the semantic-lifting approach in the context of this project.