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.

Have a look at the screencasts that demonstrate FAMILIAR in the Eclipse/FeatureIDE environment. Do not hesitate to contact us in case of questions or other requests.

FAMILIAR was at ASE'11 conference for a tool demonstration and short paper presentation. New operators and applications have been presented!

FAMILIAR has been presented in Belgium for VaMoS 2011 (tool demonstration) and in Taiwan for SAC 2011 (formal presentation).

FAMILIAR is under constant development and the current website is regularly updated.

Please cite FAMILIAR with the following bibliographical entry:

@article{acher-collet-etal:2013,
sorte = {revue int},
title = {FAMILIAR: A Domain-Specific Language for Large Scale Management of Feature Models},
url = {},
doi = {http://dx.doi.org/10.1016/j.scico.2012.12.004},
journal = {Science of Computer Programming (SCP) Special issue on programming languages},
author = {Acher, Mathieu and Collet, Philippe and Lahire, Philippe and France, Robert},
isbn = {},
lang = {english},
hal_id = {hal-00767175},
important = {1},
abstract = { The feature model formalism has become the de facto standard for managing variability in software product lines (SPLs).
In practice, developing an SPL can involve modeling a large number of features representing di erent viewpoints, sub-systems or concerns of the software system.
This activity is generally tedious and error-prone.
In this article, we present FAMILIAR a Domain-Specific Language (DSL) that is dedicated to the large scale management of feature models and that complements existing tool support.
The language provides a powerful support for separating concerns in feature modeling, through the provision of composition and decomposition operators, reasoning facilities and scripting capabilities with modularization mechanisms.
We illustrate how an SPL consisting of medical imaging services can be practically managed using reusable FAMILIAR scripts that implement reasoning mechanisms.
We also report on various usages and applications of FAMILIAR and its operators, to demonstrate their applicability to di erent domains and use for di erent purposes. },
pages = {55},
year = {2013}
}