Safe Evolution Patterns for Software Product Lines

More Info
expand_more

Abstract

Despite a global recognition of the problem, and massive investment from researchers and practitioners, the evolution of complex software systems is still a major challenge for today's architects and developers. In the context of product lines, or highly configurable systems, variability in the implementation and design makes many of the pre-existing challenges even more difficult to tackle.Many approaches and tools have been designed, but developers still miss the tools and methods enabling safe evolution of complex, variable systems.In this paper, we present our research plans toward this goal: making the evolution of software product lines safer.We show, by use of two concrete examples of changes that occurred in Linux, that simple heuristics can be applied to facilitate change comprehension and avoid common mistakes, without relying on heavy tooling.Based on those observations, we present the steps we intend to take to build a framework to regroup and classify changes, run simple checks, and eventually increase the quality of code deliveries affecting the variability model, mapping and implementation of software product lines.