Customization is a general trend in software engineering, demanding systems
that support variable stakeholder requirements. Two opposing strategies are
commonly used to create variants: software clone & own and software
configuration with an integrated platform. Organizations often start with the
former, which is cheap, agile, and supports quick innovation, but does not
scale. The latter scales by establishing an integrated platform that shares
software assets between variants, but requires high up-front investments or
risky migration processes. So, could we have a method that allows an easy
transition or even combine the benefits of both strategies? We propose a method
and tool that supports a truly incremental development of variant-rich systems,
exploiting a spectrum between both opposing strategies. We design, formalize,
and prototype the variability-management framework virtual platform. It bridges
clone & own and platform-oriented development. Relying on
programming-language-independent conceptual structures representing software
assets, it offers operators for engineering and evolving a system, comprising:
traditional, asset-oriented operators and novel, feature-oriented operators for
incrementally adopting concepts of an integrated platform. The operators record
meta-data that is exploited by other operators to support the transition. Among
others, they eliminate expensive feature-location effort or the need to trace
clones. Our evaluation simulates the evolution of a real-world, clone-based
system, measuring its costs and benefits.Comment: 13 pages, 10 figures; accepted for publication at the 43rd
International Conference on Software Engineering (ICSE 2021), main technical
trac