Version 24 (modified by acher, 8 years ago)



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. 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,  TVL, etc.)

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

!NEW''' some screencasts have been added.


replacing a subtree in a feature model

Managing Multiple SPL: a scenario

Other projects


 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]

A growing number of organizations produce and maintain multiple Software Product Lines (SPLs) or design software products that utilize features in SPLs maintained by competing suppliers. Manually building monolithic Feature Models (FMs) to help manage features described across different SPLs is error-prone and tedious and the resulting FMs can be difficult to understand and use. In this paper we propose a compositional approach to managing multiple SPLs that involves automatically merging FMs defined across the SPLs. We illustrate how the approach can be used to create FMs that support selection of products from among sets of competing products provided by different companies or suppliers. The merging techniques can also manage features from different SPLs which are then combined to form products. We show that the proposed approach results in more compact FMs, and we provide some empirical results on the complexity and scalability of the composition operators used in the approach.

 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]

In grid-based scientific applications, building a workflow essentially involves composing parameterized services describing families of services and then configuring the resulting workflow product line. In domains (e.g., medical imaging) in which many different kinds of highly parameterized services exist, there is a strong need to manage variabilities so that scientists can more easily configure and compose services with consistency guarantees. In this paper, we propose an approach in which variable points in services are described with several separate feature models, so that families of workflow can be defined as compositions of feature models. A compositional technique then allows reasoning about the compatibility between connected services to ensure consistency of an entire workflow, while supporting automatic propagation of variability choices when configuring services.

 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]

The use of Feature Models (FMs) to define the valid combinations of features in Software Product Lines (SPL) is becoming commonplace. To enhance the scalability of FMs, support for composing FMs describing different SPL aspects is needed. Some composition operators, with interesting property preservation capabilities, have already been defined but a comprehensive and efficient implementation is still to be proposed. In this paper, we systematically compare strengths and weaknesses of different implementation approaches. The study provides some evidence that using generic model composition frameworks are not helping much in the realization, whereas a specific solution is finally necessary and clearly stands out by its qualities.

 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]

Feature modeling is a widely used technique in Software Product Line development. Feature models allow stakeholders to describe domain concepts in terms of commonalities and differences within a family of software systems. Developing a complex monolithic feature model can require significant effort and restrict the reusability of a set of features already modeled. We advocate using modeling techniques that support separating and composing concerns to better manage the complexity of developing large feature models. In this paper, we propose a set of composition operators dedicated to feature models. These composition operators enable the development of large feature models by composing smaller feature models which address well-defined concerns. The operators are notably distinguished by their documented capabilities to preserve some significant properties.

 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]

Self-adaptive and dynamic systems adapt their behavior according to the context of execution. The contextual information exhibits multiple variability factors which induce many possible configurations of the software system at runtime. The challenge is to specify the adaptation rules that can link the dynamic variability of the context with the possible variants of the system. Our work investigates the systematic use of feature models for modeling the context and the software variants, together with their inter relations, as a way to configure the adaptive system with respect to a particular context. A case study in the domain of video surveillance systems is used to illustrate the approach.

 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]

This work explores how model-driven engineering techniques can support the configuration of systems in domains presenting multiple variability factors. Video surveillance is a good candidate for which we have an extensive experience. Ultimately, we wish to automatically generate a software component assembly from an application specification, using model to model transformations. The challenge is to cope with variability both at the specification and at the implementation levels. Our approach advocates a clear separation of concerns. More precisely, we propose two feature models, one for task specification and the other for software components. The first model can be transformed into one or several valid component configurations through step-wise specialization. This paper outlines our approach, focusing on the two feature models and their relations. We particularly insist on variability and constraint modeling in order to achieve the mapping from domain variability to software variability through model transformations.


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

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