Automating the Synchronization of Software Variants
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, we aim to enable a fundamentally new development approach which bridges the gap between clone-and-own and product lines, combining the minimal overhead of clone-and-own with the systematic handling of variability of software product lines in a highly flexible methodology. The key idea is to transparently integrate the central product-line concept of a feature with variant management facilities known from version control systems in order to automatically synchronize a set of evolving variants. Thereby, we explore the continuum between softwa product lines and ad-hoc clone-and-own wrt. three dimensions; feature mapping, synchronization, and development organization. We believe that our research results have the potential to effectively change the way how practitioners will develop multi-variant software systems for which it is hard to foresee which variants will be added or released in the future.