VariantSync II

About

Software product lines have been actively researched for more than two decades with the goal of systematic software reuse through managed software variability. Nevertheless, practitioners frequently rely on ad-hoc reuse based on a principle which is known as clone-and-own, where new variants of a software family are created by copying and adapting an existing variant. However, if a critical number of variants is reached, their maintenance and evolution becomes impractical, if not impossible.

With VariantSync I, we are closer to the vision of bridging the gap between clone-and-own and software product lines by automating the synchronization of software variants. However, during the project we identified two major challenges not being envisioned nor addressed yet by VariantSync I. First, developers that have developed ad-hoc variants in the past cannot immediately specify domain knowledge with 100% confidence and hence we need to incorporate uncertainty in domain knowledge. Second, even though the vision of VariantSync is to automate the synchronization of variants, we cannot expect variants to be 100% synchronized and need to incorporate that variants drift away from each other over time. Both challenges are crucial for our vision as described below and are planned to be investigated in VariantSync II.

This work is a continuation of VariantSync I.