In software engineering, demand of customers for configuration options that address various different business concerns creates the need to manage variability by developing not just a single software system but, in fact, an entire family of software systems with similar functionality. A Software Product Line (SPL) is a software engineering method to efficiently develop a family of software systems by capitalizing on their similarities while explicitly handling their differences in terms of configurable features. Due to the size and complexity of these systems, SPLs constitute a major investment with long-term strategic value. Over the course of time, SPLs have to be adapted as part of software evolution to address new or changed requirements, which is particularly complicated because an entire software family has to be adapted at once where features have multiple interdependencies.
While concepts exist for the construction and modification of SPLs, evolution is performed mostly as an informal procedure relying on the intuition and experience of individual engineers with, at most,medium-term goals in mind. The lack of long-term planning for SPL evolution creates a risk of potentially significantly increased development costs, deviation from intended development direction (if any) in collaborative efforts and, ultimately, missing long-term goals, which potentially causes a loss of clients and market shares for SPL vendors due to not addressing market needs properly. To counter these issues, the goal of the proposed project is to devise a methodology for long-term evolution planning in highly variable software systems to capture planned changes, to give assurances for reaching intended evolution goals and to allow collaboration which requires theoretical and practical knowledge in software engineering, variability management and software evolution.