Concepedia

TLDR

Feature models capture the variabilities and commonalities of software product lines by defining valid feature combinations, and both SPLs and their models evolve over time. We present an algorithm to reason about feature model edits to help designers determine how the program membership of an SPL has changed. The algorithm takes two feature models (before and after an edit), which may have differing feature sets, and automatically classifies the edit as a refactoring, specialization, generalization, or arbitrary change. Our algorithm can illustrate added or deleted products and efficiently classifies edits in large models with thousands of features.

Abstract

Features express the variabilities and commonalities among programs in a software product line (SPL). A feature model defines the valid combinations of features, where each combination corresponds to a program in an SPL. SPLs and their feature models evolve over time. We classify the evolution of a feature model via modifications as refactorings, specializations, generalizations, or arbitrary edits. We present an algorithm to reason about feature model edits to help designers determine how the program membership of an SPL has changed. Our algorithm takes two feature models as input (before and after edit versions), where the set of features in both models are not necessarily the same, and it automatically computes the change classification. Our algorithm is able to give examples of added or deleted products and efficiently classifies edits to even large models that have thousands of features.

References

YearCitations

Page 1