Advancing Negative Variability in Model-Driven Software Product Line Engineering

Published in Evaluation of Novel Approaches to Software Engineering - 11th International Conference, ENASE 2016, Rome, Italy, April 27-28, 2016, Revised Selected Papers, 2016

DOI: 10.1007/978-3-319-56390-9_1

Download .bib-File

Abstract

Model-driven software product line engineering aims at increasing the productivity of development of variational software. The principle of negative variability is realized by a multi-variant domain model, from which elements not needed for specific product variants are removed. The application of negative variability is impeded by two factors: First, metamodel restrictions lead to limited expressiveness of the multi-variant domain model. Second, unintended information loss may occur during product derivation. In this paper, we present two conceptual extensions to model-driven product line engineering based on negative variability, being alternative mappings and surrogates. Alternative mappings virtually extend the multi-variant domain model. Surrogates repair unintended information loss by context-sensitive analyses. Both extensions have been implemented in FAMILE, a model-driven product line tool that is based on EMF. Alternative mappings are defined in a dedicated mapping model. Surrogate rules may be defined in a declarative domain-specific language and are taken into account during product derivation. The added value of alternative mappings and surrogates is demonstrated by a running example, a UML-based graph library.