FAMILIAR project

feature models, variability, software product lines, configuration, domain-specific language, automated reasoning, model-driven engineering

FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) is a language for importing, exporting, composing, decomposing, editing, configuring, computing "diffs", refactoring, reverse engineering, testing, and reasoning about (multiple) feature models. All these operations can be combined to realize complex variability management tasks (screencast/demonstration).

FAMILIAR was originally created at I3S laboratory by Mathieu Acher, Philippe Collet and Philippe Lahire and is now jointly and openly managed by the Triskell team (INRIA / IRISA / University of Rennes 1), the MODALIS team (I3S laboratory, University of Nice Sophia Antipolis) and at Colorado State University (USA).

Dear academics/scientists, please cite FAMILIAR with the following bibliographical entry:

@article{FAMILIAR, author = {Mathieu Acher and Philippe Collet and Philippe Lahire and Robert B. France}, title = {FAMILIAR: A domain-specific language for large scale management of feature models}, journal = {Science of Computer Programming (SCP)}, volume = {78}, number = {6}, year = {2013}, pages = {657-681}, ee = {http://dx.doi.org/10.1016/j.scico.2012.12.004}, }

News

Instructions

As stated above, we are moving to github. Meanwhile, you can play with FAMILIAR following the instructions located here:

https://github.com/FAMILIAR-project/familiar-documentation/tree/master/installation

Motivation and Overview

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. An interpreter can be used in an interactive mode. We provide multiple notations for specifying feature models (SPLOT, GUIDSL/FeatureIDE, a subset of TVL, etc.)

We provide different solutions for using FAMILIAR:

Have a look at the screencasts that demonstrate FAMILIAR in the different environments. Do not hesitate to contact us in case of questions or other requests.

Contact

Contact

Persons involved in the development of FAMILIAR are (in alphabetical order):

Do not hesitate to contact us in case of questions or other requests.

Publications

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. FAMILIAR: A Domain-Specific Language for Large Scale Management of Feature Models (2013). In Science of Computer Programming (SCP) Special issue on programming languages [bib][HAL][DOI] Abstract

Mathieu Acher, Patrick Heymans, Philippe Collet, Philippe Lahire Next-Generation Model-based Variability Management: Languages and Tools (Tutorial) In 15th International Conference on Model Driven Engineering Languages & Systems (MODELS'12) 2012, to appear.

Mathieu Acher, Raphaël Michel, Patrick Heymans Next-Generation Model-based Variability Management: Languages and Tools (Tutorial) In 16th International Conference on Software Product Line Conference (SPLC'12) 2012, to appear.

Mathieu Acher, Patrick Heymans, Philippe Collet, Clément Quinton, Philippe Lahire, and Philippe Merle. Feature Model Differences. In Proceedings of the 24th International Conference on Advanced Information Systems Engineering (CAiSE'12) 2012, to appear. [ pdf]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Separation of Concerns in Feature Modeling: Support and Applications. In Aspect-Oriented Software Development (AOSD) 2012 [ bib] [ pdf]

Mathieu Acher Managing Multiple Feature Models: Foundations, Language, and Applications. PhD thesis, september 2011 [ pdf] [ bib]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Decomposing Feature Models: Language, Environment, and Applications. In 26th Automated Software Engineering (ASE), demonstration paper, Kansas (USA), November 2011. [ bib]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Slicing Feature Models. In 26th Automated Software Engineering (ASE), AR=22%, short paper, Kansas (USA), November 2011. [ pdf] [ bib]

Mathieu Acher, Anthony Cleve, Philippe Collet, Philippe Merle, Laurence Duchien and Philippe Lahire. Reverse Engineering Architectural Feature Models In 5th European Conference on Software Architecture (ECSA), AR=22%, long paper, page 16, Essen (Germany), September 2011. [ bib]

Mathieu Acher, Philippe Collet, Philippe Lahire, Sabine Moisan, and Jean-Paul Rigault. Modeling Variability from Requirements to Runtime In Proceedings of 16th International Conference on Engineering of Complex Computer Systems (ICECCS) AR=31%, IEEE Computer Society, April 2011. [ bib] [ pdf]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Managing Feature Models with FAMILIAR: a Demonstration of the Language and its Tool Support. In Fifth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS) AR=55%, ACM, Belgium, 27-29 january 2011 [ bib] [ pdf]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. A Domain-Specific Language for Managing Feature Models In 26th Symposium on Applied Computing (SAC), Programming Languages Track, AR=33%, ACM, Taiwan, 21-25 march 2011 [ bib] [ pdf]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Managing Multiple Software Product Lines Using Merging Techniques Technical report, University of Nice Sophia Antipolis, I3S CNRS, Sophia Antipolis, France, May 2010. [ bib] | [ .pdf]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Managing Variability in Workflow with Feature Model Composition Operators In 9th International Conference on Software Composition AR=28%, volume LNCS, page 16. Springer, June 2010. [ bib] [ pdf]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Comparing Approaches to Implement Feature Model Composition In 6th European Conference on Modelling Foundations and Applications (ECMFA) AR=31%, volume LNCS, page 16. Springer, June 2010. [ bib] [ pdf]

Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert France. Composing Feature Models In 2nd International Conference on Software Language Engineering (SLE'09) AR=19%, LNCS, page 20. LNCS, October 2009. [ bib] | [ .pdf]

Mathieu Acher, Philippe Collet, Franck Fleurey, Philippe Lahire, Sabine Moisan, and Jean-Paul Rigault. Modeling Context and Dynamic Adaptations with Feature Models In 4th International Workshop Models@run.time at Models 2009 (MRT'09), page 10, October 2009. [ bib] | [ .pdf]

Mathieu Acher, Philippe Lahire, Sabine Moisan, and Jean-Paul Rigault. Tackling High Variability in Video Surveillance Systems through a Model Transformation Approach In Proceedings of the 2009 international workshop on Modeling in software engineering at ICSE 2009 (MiSE'09) AR=44%. IEEE Computer Society, May 2009. [ bib] | [ .pdf]