Variability is a crosscutting aspect that affects all phases of the development lifecycle, e.g., requirements must include the definition of the different required features and their dependencies. The system architecture as well as software implementation must satisfy these variability requirements and adds more variability specific to architecture and implementation. Furthermore, the ongoing trends for continuous deployment and self-adaptation at run-time results that variability must also be taken into account after delivery of the product to the customer. Finally, the development process itself is also affected by the variability.
Non- or mismanagement of!the system’s variability results in longer time to market, lower productivity as well unnecessary costs. Consequently, a good variability management aids in the goal of!the Software Center for 10x productivity increase in 10 years.
The key research questions are: How to trace an ensure consistency of Features and Parameters over the whole development lifecycle including hardware, software and licenses? What variability points should be configured at build time, order time, and run time? Where to address non-functional properties like performance, safety, and flexibility? How to minimize test effort by exploiting the variability information? What is the minimal but sufficient set of terminology and attributes for all related artifacts to support variability? Which terms should be in a core terminology, which spans all development lifecycle artifacts, and which terms should be in development phase specific terminologies? What impact has variability-support on the agility/time-to-market of new software functionality.