A repair-oriented approach to product consistency in product lines using negative variability

Published in SICS Software-Intensive Cyber Physical Systems, 2019

DOI: 10.1007/s00450-016-0329-0

Download .bib-File

Abstract

Software product line engineering emphasizes the organized reuse of software artifacts in order to create customized products on demand, while maintenance costs are reduced. In the special case of negative variability, products are created by removing irrelevant elements from a multi-variant platform. One of the greatest challenges connected to negative variability is the question of product consistency. In the literature, several approaches are described to ensure consistent products: Either, the derivation of inconsistent products is inhibited in advance, which significantly restricts the product line’s customizability, or the developer is directly involved in repairing inconsistent products, which increases maintenance effort. This paper presents the theoretical foundations of an approach to automatically repair product inconsistencies based on two mechanisms, propagation strategies and selection strategies. The presented approach constitutes a compromise between strict enforcement of product consistency and the reduction of maintenance efforts. Given a consistent product description, the derivation of a consistent product is guaranteed; automatically applied repair actions may be reworked by the developer afterwards. As a proof of concept, the theoretical concepts have been implemented in the model-driven product line tool FAMILE.