XFeature -- Feature Modelling Tool

This is the web site for the XFeature Tool. XFeature is a feature modelling tool which supports the modelling of product families and of the applications instantiated from them. XFeature allows users to define their own feature meta-model. The tool is provided as a plug-in for the Eclipse platform.

The tool was designed by Ondrej Rohlik and Alessandro Pasetti. Initial development was done under ESA contract 18499/04/NL/LvH with P&P Software GmbH and the Automatic Control Laboratory of ETH-Zürich. The tool is currently being extended by and used at ETH-Zürich in the context of the ASSERT project.

This site documents and gives access to the XFeature tool software and document. It in particular gives access to the XFeature tool prototype that is made available as free and open software under the terms of GNU General Public Licence (see the download page).


The objective of the XFeature project was to demonstrate a concept for a tool to automate the modelling and configuration process of reusable software assets. The tool is aimed at space applications but is more generally useful whenever software developed is based on the product family approach.

A product family is a set of applications that are developed from a pool of shared software assets. Individual applications are obtained by configuring and composing the family assets. The product family approach is used in non-space fields where it has been the most successful means to increase software reuse. Its wider use is hindered by the lack of tools to model the assets in the family and their configuration. In the case of space applications, there is the further need to ensure that the family modelling technique takes account of the qualification needs.

The XFeature project investigated the construction of a tool for modelling product families based on a concept that had been elaborated in an academic setting. Its innovative points are: use of standard (XML and Eclipse) technology; customizability of the family meta-model; and provision of metamodels for space applications. The precursor work done in the academic setting is documented in the paper XML-Based Feature Modelling presented at the "International Conference on Software Reuse" in Madrid in July 2004 and published in the book Software Reuse: Methods, Techniques, and Tools edited by J. Bosch and C. Krueger and published by Springer-Verlag.


The main project deliverable is a proof-of-concept version of the XFeature tool. The tool will be tested by using it to model a product family of relevance to spacecraft on-board applications. The figure below shows a screenshot of the editing area of the tool as it exists at the moment. The tool is used to built a model of a set of configurable software assets. Such a model has a tree-like structure where each node represents a feature and each feature may be described by a set of sub-features represented as children nodes. The tool enforces certain conventions to distinguish between mandatory features (features that must appear in all applications instantiated from the family) and optional features (features that are present only in some family instances) and it offers facilities to express the constraints on the legal combinations of features.


Figure 1: XFeatureScreenshot

The feature diagram in the figure represents a family of (much simplified) spacecraft control systems. The diagram states that all control systems in the family have a single processor, which is characterized by its internal memory size, and have one to four sensors and one or more actuators. Sensors and actuators may have a self-test facility (optional feature). Sensors are either attitude or position sensors whereas actuators can only be attitude actuators. To each feature, various textual and numerical attributes can be attached using the property sheet pane at the bottom of the figure. The tool allows users to construct both the model of a family and the model of applications instantiated from the family.


The first version of the tool prototype was released in the summer 2005. The tool can be obtained through the download page . The tool will be gradually expanded in the future and new releases will be available through this website. More information can be obtained by contacting the project authors.