Today’s software systems are often customizable by means of load-time or compile-time configuration options. These options are typically not independent and their dependencies can be specified by means of feature models. As many industrial systems contain thousands of options, the maintenance and utilization of feature models is a challenge for all stakeholders. In the last two decades, numerous approaches have been presented to support stakeholders in analyzing feature models. Such analyses are commonly reduced to satisfiability problems, which suffer from the growing number of options. While first attempts have been made to decompose feature models into smaller parts, they still require to compose all parts for analyses. We proposed the concept of a feature-model interface that only consists of a subset of features and hides all other features and dependencies. Based on a formalization of feature-model interfaces, we proved compositionality properties. We evaluated feature-model interfaces using a three-month history of an industrial feature model with 18,616 features. Our results indicate performance benefits especially under evolution as often only parts of the feature model need to be analyzed again.
[1]
Sebastian Krieter,et al.
Comparing algorithms for efficient feature-model slicing
,
2016,
SPLC.
[2]
Thomas Thüm,et al.
Implicit constraints in partial feature models
,
2016,
FOSD.
[3]
Thomas Thüm,et al.
Variability Hiding in Contracts for Dependent Software Product Lines
,
2016,
VaMoS.
[4]
Sebastian Erdweg,et al.
Abstract Features in Feature Modeling
,
2011,
2011 15th International Software Product Line Conference.
[5]
Sebastian Krieter,et al.
Feature-Model Interfaces: The Highway to Compositional Analyses of Highly-Configurable Systems
,
2016,
2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).
[6]
Gunter Saake,et al.
A Classification and Survey of Analysis Strategies for Software Product Lines
,
2014,
ACM Comput. Surv..
[7]
Mathieu Acher,et al.
Slicing feature models
,
2011,
2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).