{'fraction_non_alphanumeric': 0.022107243650047036, 'fraction_numerical': 0.0, 'mean_word_length': 5.406626506024097, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Towards iterative software product line engineering with incremental multi-variant model transformations

Software product line engineering (SPLE) aims at increasing productivity by relying on the principles of organized reuse and variability. In annotative approaches to SPLE the realization artifacts carry presence conditions, we refer to as annotations below, which express the presence of the artifact in configured products. On the other hand, model-driven software engineering aims at the same effect by raising the level of abstraction and automation through models expressing the system under development. Combining both disciplines seeks to exploit their benefits. In model-driven SPLE the product line typically consists of different kind of models, e.g., class diagrams may capture design decisions whereas Java source code models are enriched by realization artifacts. In order to automatically generate the source code models from the class diagrams, model transformations are written in the single-product development. However, these transformation languages have not been developed with the variability of SPLE in mind, i.e., they are not able to handle annotations out-of-the-box. Consequently, the engineer needs to annotate the target representation manually, contradicting the aim of both disciplines, SPLE and MDSE. Multi-variant model transformations have been proposed as answer to propagate annotations additionally. Since all of them require certain properties to be fulfilled for a correct propagation, still some target annotations may have to be changed or can simply not be determined by the propagation yet. Since software engineering is always an iterative process we like to preserve manual changes in the target representations which requires an incremental behavior of the annotation propagation. However, to the best of our knowledge up to now, no research on this topic has been conducted and, thus, we present strategies in this research-in-progress paper how an incremental propagation can be realized. Moreover, we like to consider incremental behavior also in the correctness criterion.