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:
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:
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.*_configuration _files
that contains the
tool configuration files for specific user-defined configuration. This
directory contains:
*.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
*Example
that contain(s):
*.xfm
file)*App.xfm
)*.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
*.xdm
);
the copy is created
automatically by XFeature and can be adjusted
by the user if needed*App.xfmm
)*App.xdm
)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.
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
.
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
.
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
.
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):
FeatureModel
node has to contain one feature node of type
SolitaryFeatureNode
and optionally
can contain one or more macro
nodes of type MacroFeatureNode
.MacroFeatureNode
can only contain child nodes of type GroupNode
.MacroExtensionAppendFeatureNode
neither
MacroExtensionAppendGroupNode
are defined in FD configuration.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.Annotation
property set is identical to ICSR configuration.Attribute
property set contains two mandatory properties AttributeName
and AttributeType
. It also contains optional property AttributeDefaultValue
.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
).
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
.