Context Navigation

FAMILIAR

Feature models are a popular formalism for managing variability in software product lines (SPLs).
Realistic SPLs involve the modeling of a large number of features to comprehensively represent different viewpoints, sub-systems or concerns of the software system.
To manage complexity, there is a need to separate, inter-relate and compose several feature models while automating the reasoning on their compositions -- from validity checks to configuration process.
We propose a Domain-Specific Language (DSL) that is dedicated to the management of feature models and that complements existing tool support.

The DSL, called FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning), is an executable language that supports manipulating and reasoning about feature models.
FAMILIAR is developed in Java language using Xtext, a framework for development of DSLs. Off-the-shelf SAT solvers (i.e., SAT4J) and BDD library (i.e., JavaBDD) are internally used to perform FAMILIAR operations.

We provide an Eclipse text editor and an interpreter that executes the various scripts. The interpreter can be used in an interactive mode.
We provide multiple notations for specifying feature models (SPLOT, GUIDSL/FeatureIDE, a subset of TVL, etc.)
The integration of the language to the FeatureIDE environment has been done to support experimentation, e.g., all graphical edits are synchronized with variables environment and all interactive commands are synchronized with the graphical editors.