Default Configurations

The XFeature tool is a configurable tool that allows users to define their own feature meta-models and feature display models. The tool configuration is defined by a set of configuration files. A subset of these configuration files are user-defined and define:

  • The family meta-model (an XML Schema representing a feature meta-model)
  • The application meta-model generator (an XSL program that translates a feature model representing a family model into an XML Schema representing the feature meta-model for the application model)
  • The family display model (an XML document that defines how each element in the family model should be displayed)
  • The application display model generator (an XSL program that translates a display model for a family into the display model for the applications instantiated from the family)
  • The Ant build file (build.xml) that puts all the above files together and provides two services: (a) runs the validation of the family meta-model and family display model against feature meta-meta-model and display meta-model and (b) runs the verification of family model and generation of application meta-model and application display model.

The tool is delivered with four sets of configuration files representing four different feature meta-models (and corresponding generators). These default configuration files are useful in themselves but are also intended as a basis for the definition of new meta-models by users.

We provide an archive (zip file) for every default configuration. This archive contains:

  • directory general_files that contains tool configuration files fixed for all four user-defined configurations (FD, FMP, ICSR, SimplifiedICSR); among others this folder contain feature meta-meta-model and display meta-model; the full and documented list of files in general_files folder is in user manual.
  • directory *_configuration _files that contains the tool configuration files for specific user-defined configuration. This directory contains:
    • user-defined configuration files: family meta-model (*.xfmm), family display model (*.xdm), application meta-model generators (*XfmmGen*.xsl), and application display model generator (*XdmGen.xsl); the application meta-model generator can be implemented as set of XSL programs (as oppose to a single XSL program) -- in this case the build.xml executes the XSL programs in sequence
    • build.xml file that (a) validates the family meta-model against the feature meta-meta-model and the family display model against the display meta-model and (b) generates the application meta-model and appplication display model from given family model
    • folder(s) *Example that contain(s):
      • an example of family feature model (*.xfm file)
      • an example of application instantiated from the family (*App.xfm)
      • two *.pos files that preserves the layout of the feature nodes from last XFeature editing session; the first *.pos file belongs to family feature model (*.xfm), the second *.pos file belongs to the application feature model *App.xfm
      • copy of the family display model (*.xdm); the copy is created automatically by XFeature and can be adjusted by the user if needed
      • application meta-model generated by application meta-model generator (*App.xfmm)
      • application display model generated by application display model generator (*App.xdm)
      • file build.xml that runs the application meta-model generator and application display model generator

We also provide an archive with all four user-defined configurations (FD, FMP, ICSR, SimplifiedICSR). There is a build.xml file in the root folder. This file runs the validation of all four default configuration delivered with XFeature tool and it runs application meta-model generators and application display model generators for all example family models delivered with the XFeature tool. Further, all application feature models are validated against their (generated) application meta-models.

To run the application meta-model generator and application display model generator via provided Ant build files you must install Ant build tool with Saxon 8 XSLT processor (saxon8.jar file have to be copied to the lib directory of the Ant installation). Examples are executed by typing 'ant' command in the folder with the build.xml file.

ICSR Configuration

The ICSR Configuration is so named because it is based on the family meta-model first introduced in a paper presented by the designers of the XFeature tool at the ICSR'04 conference. Both the above paper and the tool concept technical note gives an overview of the ICSR configurations.

The table below lists all the files that implement the ICSR Configuration. Note that these files are a subset of the tool configuration files defined in the user manual.

The family meta-model ICSR.xfmm
The application meta-model generator IcsrXfmmGen.xsl
IcsrXfmmGenMacroProcessing.xsl
IcsrXfmmGenAddUniqueNames.xsl
The display model ICSR.xdm
The application display model generator IcsrXdmGen.xsl
The transaltor of feature names in global constraints IcsrXfmNamesTranslator.xsl
The Ant build file build.xml

The complete ICSR configuration can be downloaded here .

Simplified ICSR Configuration

The Simplified ICSR Configuration is so named because it implements a simplified version of the ICSR family meta-model (see above). This simplified configuration is also arguably the simplest kind of meaningful family meta-model. The tool concept technical note gives an overview of this configuration.

The table below lists all the files that implement the Simplified ICSR Configuration. Note that these files are a subset of the tool configuration files defined in the user manual.

The family meta-model SimplifiedICSR.xfmm
The application meta-model generator SimplifiedIcsrXfmmGen.xsl
SimplifiedIcsrXfmmGenAddUniqueNames.xsl
The display model SimplifiedICSR.xdm
The application display model generator SimplifiedIcsrXdmGen.xsl
The transaltor of feature names in global constraints SimplifiedIcsrXfmNamesTranslator.xsl
The Ant build file build.xml

The complete SimplifiedICSR configuration can be downloaded here .

FMP Configuration

The third default configuration is referred to as FMP Configuration. The FMP Configuration is so named because it is based on the family meta-model used in Feature Modelling Plugin. The Feature Modelling Plugin (FMP) is described in the paper presented at OOPSLA’04 Eclipse Technology eXchange (ETX) Workshop. Adaptation of the family meta-model defined in the Feature Modelling Plugin to the XFeature configuration is discussed here. The third configuration also serves as a support for our claim that our feature meta-meta-model is capable to encompass the feature meta-models proposed by others.

The table below lists all the files that implement the FMP Configuration. Note that these files are a subset of the tool configuration files defined in the user manual.

The family meta-model FMP.xfmm
The application meta-model generator FmpXfmmGen.xsl
FmpXfmmGenAddUniqueNames.xsl
The display model FMP.xdm
The application display model generator FmpXdmGen.xsl
The Ant build file build.xml

The complete FMP configuration can be downloaded here .

FD Configuration

The fourth default configuration is referred to as FD Configuration. The FD configuration is defined to support the design of the software frameworks.

The FD configuration is derived from the ICSR configuration with the following differences (see the FD meta-model schema for reference):

  • Nodes
    • The FeatureModel node has to contain one feature node of type SolitaryFeatureNode and optionally can contain one or more macro nodes of type MacroFeatureNode.
    • The MacroFeatureNode can only contain child nodes of type GroupNode.
    • Nor MacroExtensionAppendFeatureNode neither MacroExtensionAppendGroupNode are defined in FD configuration.
    • There are two types of features nodes: GroupedFeatureNode and SolitaryFeatureNode. GroupedFeatureNode is almost identical to FeatureNode as defined in the ICSR configuration. It can only appear as a subfeature of GroupNode and it has to have cardinality. The legal child nodes are GroupNode and (newly) SolitaryFeatureNode. SolitaryFeatureNode is less similar to FeatureNode defined in ICSR configuration. It only can appear as subfeature of GroupedFeatureNode or another SolitaryFeatureNode. The legal child nodes of SolitaryFeatureNode are the GroupNode or another SolitaryFeatureNode. SolitaryFeatureNode has optional cardinality. The default cardinality of SolitaryFeatureNode is 1..1.
  • Property sets
    • The Annotation property set is identical to ICSR configuration.
    • The Attribute property set contains two mandatory properties AttributeName and AttributeType. It also contains optional property AttributeDefaultValue.
    • The DesignMapping property set defines how the feature will be implemented. A feature can be implemented in a class or in an interface. One of the InterfaceName and ClassName properties has to specified. Further, a feature can be mapped to a property (PropertyName) or an operation (OperationName and OperationType).
    • All three property sets are optional children of feature node types (SolitaryFeatureNode, GroupedFeatureNode, MacroFeatureNode).

The FD configuration is planned to be used in the ASSERT project by the DVT cluster. It is planned to use the FD configuration files for description of a family of applications that implement Packet Utilization Standard (PUS).

The table below lists all the files that implement the FD Configuration. Note that these files are a subset of the tool configuration files defined in the user manual.

The family meta-model FD.xfmm
The application meta-model generator FdXfmmGen.xsl
FdXfmmGenAddUniqueNames.xsl
The display model FD.xdm
The application display model generator FdXdmGen.xsl
The transaltor of feature names in global constraints FdXfmNamesTranslator.xsl
The Ant build file build.xml

The complete FD configuration can be downloaded here .




All four XFeature default configurations can be downloaded here .