<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Comparative Analysis of Graph Transforma- tion Engines for User Interface Development</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Juan Manuel González Calleros</string-name>
          <email>juan.gonzalez@student</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adrian Stanciulescu</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jean Vanderdonckt</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jean-Pierre Delacre</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Winckler</string-name>
          <email>winckler@isys.ucl.ac.be</email>
        </contrib>
      </contrib-group>
      <abstract>
        <p>In software engineering, transformational development aims at developing software systems by transforming a coarse-grained specification to final code through a sequence of small transformation steps. This transformational development method has followed a long tradition of establishing models and maintaining mappings between them so as to create and maintain accurate specifications of a user interface. User Interface mappings are also relevant to web engineering. We have been working not just User Interface mappings for webbased systems but as well for Information Systems in general. However, we have been confronted to the mapping problem as the use of an appropriate transformation tool it still an issue in our research group. Although several transformation engines support mappings a transformation engine capable of supporting a transformational approach for ensuring model-driven engineering of user interfaces is still an open issue. This paper provides a comparative analysis of transformation engines ranging from publicly or commercially available engines to be adapted to the mapping problem to hand-coded transformation engines that we developed for the sole purpose of supporting the mapping problem. The results of the comparison let authors to identify the type of transformation engine that fits better to their skills, needs and preferences.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Model engineering (i.e., a discipline that is concerned with the development
of models) is part of the numerous solutions proposed to overcome with the
increasing complexity that developers must handle to produce software.
Modeldriven development (MDD) is an OMG (www.omg.org) initiative that proposes to
define a set of non-proprietary standards that will specify interoperable
technologies with which to realize model-driven development with automated
transformations. It advocates that software development should be guided as much as
possible by the construction, and refinement of software models at various levels of
abstraction. Four principles underlie the OMG’s view of MDD for User Interfaces
(UIs):
1. Models are expressed in a well-formed unified notation and form the
cornerstone to understanding software systems for enterprise scale information
systems. The semantics of the models are based on meta-models.
2. A formal underpinning for describing models in a set of meta-models
facilitates meaningful integration and transformation among models, and is the
basis for automation through soft-ware.
3. The building of software systems can be organized around a set of models by
applying a series of transformations between models, organized into an
architectural framework of layers and transformations: model-to-model
transformations support any change between models while model-to-code
transformation are typically associated with code production, automated or not.
4. Acceptance and adoption of this model-driven approach requires industry
standards to provide openness to consumers, and foster competition among
vendors</p>
      <p>
        Not all model-based UI development environments or development methods
can pretend to be compliant with these principles [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. If we apply OMG’s
principles to the UI development life cycle, it means that models should be obtained
during steps of development until providing source code, deployment and
configuration files. MDD has been applied to many kinds of business problems and
integrated with a wide array of other common computing technologies. Considering
MDD of UIs [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] complexity related to the number of transformation needed to
support this process has been found in the literature as a major issue [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]; In Fig. 1
how graphs transformations area articulated when following MDD method. Each
development path (for instance, forward engineering) is composed of development
steps, the latter being decomposed into development sub-steps (for instance, from
abstract to concrete models). A development sub-step is realized by one (and only
one) transformation system and a transformation system is realized by a set of
graph transformation rules.
The amount of transformation rules of a rather simple system grows up to two
hundred graph transformation rules. Then, usable systems are needed to encode
transformations rules. Also, provide facilities to extend existing sets of graph
transformations. Recently, we have been working on this issue. On the one hand,
trying to use existing tools to encode graph transformation rules applied to MDD
of UIs. On the other hand, building from scratch customized tools [
        <xref ref-type="bibr" rid="ref14 ref23">14, 23</xref>
        ]
addressing the same problem.
      </p>
      <p>
        In this paper the lesson learned from using graph transformation tools is
discussed. Graph Transformation engines were compared and their benefits and
constraints are presented to authors with the goal of helping in making decisions when
confronted to selecting a graph transformation tool for MDD of UIs. Our analysis
is based on three existing tools TransformiXML [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], AGG [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and AToM³ [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. A
new tool called YATE (Yet Another Transformation Engine) recently developed
for MDD of UIs is also compared with existing ones. The remainder of this paper
is structured as follows: Section 2 describes YATE implementation. Then, in
Section 3 a case study is introduced to illustrate the different implementations in
TransformiXML, AGG, YATE and AToM³. In Section 4, a comparative analysis
is presented showing that this type of work remains unprecedented. The
conclusion summarizes the main benefits of the evaluation, while contrasting with
potential shortcomings.
      </p>
      <p>2.</p>
      <p>
        Transformation engines for User Interface Development
Several research has been conducted addressing the mapping problem for
supporting MDD of UIs, UsiXML [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], ATL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], TXL [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], 4DML [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], UIML's
internal transformation capability [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], XSLT [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], GAC [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], RDL/TT [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ],
TEALLACH [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], TERESA [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], and UI Pilot [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Some of these tools were compared
in [
        <xref ref-type="bibr" rid="ref18 ref21">18, 21</xref>
        ]. The results shows that most of existing solutions support one-to-one
mappings, which is a limitation in the context of MMD of UIs where the
mappings are normally, not always, of the type one-to-many. When a tool support
oneto-many mappings implementation, sometimes, is very complex and other issues
raised, such as: maintainability and usability.
with “-”. If a supported feature is put in brackets, it means that it is in principle
supported (maybe with some additional effort) but that the language is not
specifically designed to support that property. From this review [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] they conclude that
the effective tool depends on the approach selected. It was found that for purely
MDD, graph transformations and ATL will be good choices [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. From our
experience, we found graph transformations a good option for MDD of UIs. The
selection of graphs transformation [
        <xref ref-type="bibr" rid="ref13 ref14 ref15">13,14,15</xref>
        ] were based on the fact that graph
grammars:
are rather declarative and provide an appealing graphical syntax which does
not exclude the use of a textual one
are based on a formally defined execution semantics based notably on pushout
theory, for which many proofs have been provided (completeness; confluence)
allow to describe transformations with the same vocabulary as specification
models in a very consistent manner and for all development steps
provide extensions (i.e., conditional graph rewriting, typed graph rewriting) to
check important properties of the artifact that is produced after a
transformation
offer modularity by allowing the fragmentation of complex transformation
heuristics into small, independent chunks. The fact that graph rewritings have
no-side effects facilitates this modularization.
      </p>
      <sec id="sec-1-1">
        <title>2.1 Case Study: Virtual Polling System</title>
        <p>
          Our method UsiXML [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] relies on the Cameleon Reference Framework [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
The framework is composed of four development steps: create conceptual models
(e.g. task model, data model, user model), create Abstract UI (AUI), create
Concrete UI (CUI), and create Final UI (FUI). To detail the different techniques, to
compare and assess them is beyond the scope of this paper for more details see
[
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. In this section we use the virtual polling system case study to exemplify the
transformational approach based on graph transformations.
        </p>
        <p>
          The development scenario is the following: a forward engineering path is
applied from a definition of the task and domain viewpoint to produce both an
abstract user interface (AUI) and concrete user interface (CUI). For that purpose
more than one hundred rules are applied. The transformation rules and the details
of this example are fully described for multi-modal applications in [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] and for
Three-Dimensional UIs in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. For this case study around 6O transformations are
applied, but, for simplicity, just four rules are detailed here to illustrate how they
were implemented in AToM³, AGG, TransformiXML and YATE. The scenario
describes transformations from task model to AUI model (Fig. 2). The list of rules
to perform the transformation is:
1. For each task that has task children an abstract container (AC) will be created.
        </p>
        <p>For instance the root task participate to opinion pool has three task children
(provide personal data, answer question and send the questionnaire) so an
abstract container (AC1) is created.
2. For each leaf task an abstract individual component (AIC) will be created. For
instance for each leaf task, create name, create zip code, select sex, select age
category, show questionnaire, select answer, send questionnaire an AIC will be
created.
3. For each parent task that has children tasks, If parent task is associated to an
AC (called parent AC) and child task is associated to an AC (called child AC),
then, create an association relationship that will ensure the containment of the
child AC into the parent AC. For instance the task participate to opinion pool
associated to AC1 has two task children (provide personal data, answer
question) that are respectively associated to AC11 and AC12. An association
relationship is created to ensure the containment of AC11 and AC12 into AC1.
4. For each parent task that has children tasks, If parent task is associated to a
parent AC and child task is associated to a child AIC, then, create an
association relationship that will ensure the containment of the child AIC into the
parent AC. For instance the task answer question is associated to AC12 has two
children (show questionnaire, select answer that are respectively associated to
AIC121 and AIC 122). An association relationship is created to ensure the
containment of AIC121 and AIC122 into AC12.</p>
        <p>AC1</p>
        <p>AC11</p>
        <p>AC12
AIC13
 
AIC111</p>
        <p>AIC112</p>
        <p>AIC113</p>
        <p>AIC114</p>
        <p>AIC121</p>
        <p>AIC122</p>
      </sec>
      <sec id="sec-1-2">
        <title>2.2 YATE Implementation</title>
        <p>
          In this paper, the aim is to compare several transformation tools with respect
to a selected set of criteria considered of importance for MDD UIs. For this reason
we included the programming model, since it may be a premier choice for a
developer being familiar with either declarative or imperative programming [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. As
already described a common case study is used to illustrate its implementation on
the different tools. YATE transformation engine was developed in Java. In
practice, see sequence diagram in Fig. 3, the main class uses as a UsiXML file (which
is xml) and translates it into Java objects, then instantiates the rules class. The
main class uses JAXB to internally represent with Java objects the UsiXML file.
The Castor project is used to map a file containing two inputs: the specification of
UsiXML and the transformation rules described also is a XML format. After, the
transformation rules are executed and the result is stored in the main class. Graph
transformations are stored as methods in the rules class. The class ruleshelper
contains methods to find objects using iterators. Finally, a rulesTree class contains
the tree of the transformation rules. The current version of the tool supports just a
small set of transformation rules for forward engineering for the polling system. If
any new rules are needed then a lot of modifications are needed. The rules class,
its corresponding helpers and the rules tree class need and update. Then
maintainability of the code became an issue as the number of transformation rules increase.
Due to the fact that rules class defines all the methods for the transformation rules.
As a consequence, there is a lost in performance coming from the fact that
different rules can apply on the same object and each one will have to do the search to
find this object. A complete description of the rules can be accessed in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>The graphical user interface of YATE (Fig. 4) was developed using Java
Swing. It is composed of a very simple UI with big text areas used to show the
source (1) and target files (2); the tree containing all the implemented
transformation rules (3) each with a checkbox aside allowing the decision whether or not the
rule will be executeThe code to map files corresponding to Abstract Container
objects is as follows: the class usixml.po.AbstractContainer is mapped in the new
XML file with the name abstractContainer. Then all attributes of the class
AbstractContainer are mapped into the new XML file, for each attribute the way it
formatted (attribute or node) is specified. The last attribute is a list, with
bindxml=element and auto-naming=deriveByClass, which means that the name of the
attribute (in the new xml file) will be dynamically chosen by Castor, following the
name of the class. For instance, an AioType can be an AbstractContainer, an
AbstractIndividualComponent or an Input (all extend AioType), so the name of the
attribute can be one of these three. There is one method per transformation rule.
Consequently, the performance of the tool is affected due to constant use of
objects to apply one rule at a time. Even thought, maintainability of the code is
possible following this approach. The main difficulty encountered was the
unavailability of a dedicated pattern matching API, therefore, searching a LHS in the
UsiXML file and replacing it with the RHS is not possible. The code shown
hereafter corresponds to the transformation rule defining an abstract adjacency. The
rule express the adjacency between sibling tasks executed in AIOs, as they are
siblings we can infer that they must be next to each other in the Final User Interface.
1
2
3
 </p>
      </sec>
      <sec id="sec-1-3">
        <title>2.3 AToM³ Implementation</title>
        <p>
          The structure of UsiXML is represented as an oriented graph in AToM³ [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
The implementation in AToM³ of UsiXML meta-models, see Fig. 6, presents
some shortcomings, for instance the aggregation relationship expressing an AC is
composed of AIC became two relationships: an AC contains AIC and AIC are
contained in AC. As UsiXML has around 60 aggregation relationships, this limitation
increases the number of connecting arrows on the diagram just for this type of
relationship to 120.
        </p>
        <p>In Fig. 5 (1) correspond to tasks, (2) to ACs and (3) to AICs. The left hand
side (LHS) of the transformation engine corresponds to the condition to search on
the graph and the right hand side (RHS) part corresponds to the transformation
result. Avoiding an infinite search cycle of the condition is done by the specification
of preconditions, coded in Python. At least two actions most be performed to
apply a rule. First, set a post-condition to the nodes visited and mark them as visited.
Second, define a precondition to check whether the node has been visited or not
before applying the transformation. The designer must keep in mine these
conditions and code them when necessary.</p>
        <sec id="sec-1-3-1">
          <title>Rule 1 Creating abstract Containers </title>
        </sec>
        <sec id="sec-1-3-2">
          <title>Rule 2 Creating Abstract Individual Components </title>
          <p> 
 
 
Rule 3 Relating Abstract Containers  Rule 4 Relating Abstract Containers and Abstract  
  Individual Components </p>
          <p>Fig. 5. Rules transformation expressed in AToM³</p>
        </sec>
      </sec>
      <sec id="sec-1-4">
        <title>2.4 AGG Implementation</title>
        <p>
          AGG [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] provides a GUI enabling the specification of the transformation
rules and a customizable interpreter enabling their application through the API.
One of the advantages that AGG provides is its capacity to graphically specify the
negative application conditions (NAC) or preconditions, LHS and RHS. For the
case study the rules (Fig. 7) were more easily encoded using the NAC rule editor.
AGG provides: (1) a programming language enabling the specification of graph
grammars and (2) a customizable interpreter enabling graph transformations.
        </p>
        <p>AGG allows the graphical expression of directed, typed and attributed graphs
(for expressing specifications and rules). It has a powerful library containing
notably algorithms for graph transformation, critical pair analysis, consistency
checking, positive and negative application condition enforcement. Experiments showed
that AGG is a rigorous environment for defining and applying rules.
Unfortunately, it shows poor in terms of usability for specifying large UI models. Indeed,
it may appear somewhat abstract to the designer to describe a UI appearance with
a set of nodes and relationships. The main components are summed up as follows:
1. A design editor allows the creation and the consolidation of models exploited
in the development process. A specific environment enables the design of UI
appearance by direct manipulation of widgets.
2. A design derivator enables model to model transformations.
3. A rule editor enables the definition of new transformation rules.
4. A rule validator enables the designer to identify conflicts within a set of rules.</p>
        <p>The critical pair analysis technique is used for this purpose.
5. A design analyzer enables the verification of desirable properties of the
manipulated artifacts such as basic consistency rules, type checking or even
usability properties (i.e., IFIP properties like reachability, browsability).
 
Rule 1 Creating abstract Containers </p>
        <p>Rule 2 Creating Abstract Individual Components 
 
Rule 3 Relating Abstract Containers </p>
        <p>Rule 4 Rsterlaactitn Ign dAibvsidtruaaclt C Coomntpaoinneenrst sa nd Ab‐</p>
      </sec>
      <sec id="sec-1-5">
        <title>2.5 TransformiXML Implementation</title>
        <p>
          TransformiXML [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] is an environment that addresses the mapping problem
(any type of structural mapping) by supporting a mathematical expression of the
relationships (based on graph grammars) and allowing the definition and the
application of transformation rules. This environment is sub-divided into two
components: an Application Programming Interface (TransformiXML API) that can
be used by any application to apply transformation rules in a batch-like way (non
interactive) and a Graphical User Interface that serves as a front-end application to
the API (TransformiXML GUI) in an interactive way. The second component can
drive a transformation process involving several models in a UI development
process. Both components share a generic requirement: to manipulate any UI
model expressed in UsiXML and to apply transformation rules over them.
TransformiXML API relies on AGG API, consequently, transformation rules are
expressed exactly as in AGG (Fig. 7). TransformiXML uses a catalog of predefined
transformation rules, allows the execution of transformations in an interactive
manner, and finally allows the association of development sub-steps with
transformation systems. The basic flow of tasks with TransformiXML GUI is the
following: users choose an input file containing models to transform. Then, they
choose a development path by selecting a starting point and a destination point
(e.g., the viewpoint to obtain at the end of the process). Depending on the content
of the input file some of the development paths may not be available. A tree
allows users to visualize the proposed development model (i.e., all the steps and
sub-steps for a chosen path). Users can load another development model for the
selected path. Now the task of the user consists in attaching one transformation
system for each development sub-step. By clicking on a sub-step in the tree, a set
of transformation systems realizing the chosen sub-step are displayed. A
transformation system may be attached to the current sub-step by clicking “Attach to
current sub-step”. The user may also want to edit the rules either in an XML editor or
in AGG environment. After attaching a transformation system for each rule in the
development model, the user may apply the transformation either step by step or
as a whole. The result of the transformation is then explicitly saved in a UsiXML
file.
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>3. Comparative Analysis of Transformation Engines</title>
      <p>In this section a comparative analysis to transformation engines is presented.
This information can be relevant to HCI community while trying to tackle the
mapping problem for UI development. The selected criteria, summarized in Table
2, were chosen considering the key factors that are relevant for: (1) implementing
of a transformation engine (implementation paradigm and required programming
skills, code generation support, pattern matching API), (2) usability (rules
organization, rules scheduling organization) and further use of the transformation
engines (maintainability and flexibility and completeness). The description of each
criterion is as follows:
• Implementation paradigm and required programming skills. First major
difference between the transformation engines is whether they are imperative or
declarative. Like all graph transformation tools, AToM³ and AGG are strictly
declarative while YATE and TransformiXML are imperative. Performance is a
very important criteria and AToM³ posses a major disadvantage on this aspect.
As AToM³ is entirely coded in Python and compiled at execution the execution
is slower compared to precompiled Java code, YATE, AGG and
TransformiXML. Moreover, the fact that the transformations are graphically designed
means that the user does not have the possibility to optimize how they are
executed, the engine is in charge of that. YATE and TransformiXML are fasters
during execution. Not only because the compiled code is faster that the
interpreted code of AToM³ but also the programmer chooses exactly how the
transformation will be executed. Redundancy can be eliminated as well by grouping
transformation rules. While AToM³ needs programming skills, as there are a
few things to code in Python, like conditions, actions, constraints and variables’
valuing, AGG requires programming skills to specify conditions on attributes.
However most of the transformation are described graphically in AGG and
AToM³, consequently they are more flexible because even GUI designers with
(almost) no programming skills can use them, and also because maintaining the
rules is simpler. Nevertheless, in AGG and AToM³, the transformation rules are
specified for the meta-model that we have graphically created and a change to
this meta-model will make the transformations not work anymore.
• The model-to-model approach. TransformiXML, AGG and AToM³ use graph
transformations. The models are created graphically and so are the
transformation rules. This is a very intuitive and easy to read and maintain. YATE uses
another approach. Instead of transforming the model into a graph, it directly
modifies it. In fact, the XML file is read and transformed into Java objects.
These objects are then modified by the transformation rules and finally the Java
objects are translated back into XML. In YATE, a method is created for each
transformation rule. Comparing with the graphs the code is harder to read and
maintain.
• Code Generation. In YATE, code generation is feasible; the Castor API
supports this process. On the contrary, AGG and AToM³ code generation is
possible but it is poorly developed. To generate XML code for a model in AToM³,
we should use transformation rules, with the “action” code writing XML code
to a text file. This would be long and fastidious, if possible.
• Pattern matching. This is a big difference among all the tools. While pattern
matching is supported by TransformiXML, AGG and AToM³, YATE does not
support it for the moment. Pattern matching is still usable in YATE, but with
the help of external projects or at the price of a long a fastidious
implementation. This is more complex to implement than in TransformiXML, AGG and
AToM³.
• Rules scheduling and organization. AGG and AToM³ only allow determining a
fixed order on the rules. There is no possibility of explicit flow control on
them. And there is not a “call” instruction for a rule to call another. In fact,
preconditions serve to decide whether or not the rule will be executed. In AToM³
it is possible to create distinct set of rules and execute one after another.
However, there is no rule inheritance mechanism and import mechanism either.
Therefore rule sets can not import a rule from another set and a rule can neither
use another. Finally, TransformiXML and YATE, allow rules organization (for
example one class for each rules set), and the flow control is of course explicit.
In YATE it is possible even to call a rule in another, because each rule is a
method in Java.
• Flexibility and maintainability. The more readable the models the easiest to
maintain them. AGG, AToM³ and TransformiXML offer a best capacity to
modify and maintain meta-models, models and transformation rules. However,
when modifying rules at least two issues must be taken into account: 1) if a
meta-model is modified then transformation rules designed for that meta-model
are potentially not working anymore (because they can apply on objects
removed or modified); 2) modifying rules is sometimes difficult, for instance in
AToM³ modifications on rules leads to unexpected behavior. Finally, because
of its fully programmatic approach and more complex syntax, YATE is the
most difficult to maintain and modify, as it implies several modification in
several classes in addition to coding the transformation rules. So, flexibility is
worse than for the two other three tools.
• Completeness refers to the ability of the system to handle complex rules and
generate code. As AToM³ allows programming in Python, it is able of
executing more complex rules than strict graph-transformation rules (with only NAC,
LHS and RHS). Still, the lack of explicit flow control and the absence of
imperative constructs limit it. Because the source and target model are not
distinct, they both obviously can be navigated and modified. Finally, the lack of
code generation makes AToM³ less complete. Finally, in YATE the limit is in
fact the programming skills of the graphical interface designer.</p>
      <p>Finally, Fig. 8 shows variations between completeness/performance and
maintainability/flexibility. While it is known that robust and complete software is
desired, this is difficult to achieve. HCI is a discipline particular with constant
changes so it can be said that incompleteness is intrinsic to HCI. However
completeness on existing needs is still relevant and for UI development it seems that
TransformiXML and YATE are more complete than AGG and ATOM3. On the
other hand, the lack of maintainability and flexibility contrast with the other tools.
Authors have to choose the equilibrium that fits better their particular needs.</p>
      <p>In this paper, we introduced a comparison of transformation engines to
support UI development. Four tools were compared, including two developed in our
lab, using a common case study. From our evaluation we noticed that it is difficult
to find the perfect balance with the criteria. In particular, one of the goals of
model-driven development of UIs is to support UI run-time adaptation based on
transformation rules. Therefore, the performance is of concern. We conclude our
report with a comparative analysis that could help authors to make the decision of
the appropriate transformation engine to be used while confronting model-driven
engineering of UIs. In this area, we can conclude that a systematic method is
recommended to drive the development life cycle to guarantee some form of quality
of the resulting software system. Not all of these technologies will directly
concern the transformation involved in MDA. MDA does not necessarily rely on the
UML, but, as a specialized kind of MDD (Model Driven Development), MDA
necessarily involves the use of model(s) in development, which entails that at least
one modeling language must be used. Any modeling language used in MDA must
be described in terms of the MOF language to enable the metadata to be
understood in a standard manner, which is a precondition for any activity to perform
automated transformation.</p>
      <p>Acknowledgments We gratefully thank the support from the SIMILAR network of excellence,
supported by the 6th Framework Program of the European Commission, under contract
FP6IST1-2003-507609 (http://www.similar.cc), the Alban program (www. programalban.org)
supported by European Commission, and the CONACYT (www.conacyt.mx) program supported by
the Mexican government. All information regarding UsiXML is accessible through
http://www.usixml.org.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abrams</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Helms</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <source>User Interface Markup Language (UIML) Specification, Working Draft 3.1. OASIS</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Brown</surname>
            ,
            <given-names>S.S.</given-names>
          </string-name>
          , Conversion of notations.
          <source>Tech. Rep</source>
          ., Univ. of Cambridge,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Calvary</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coutaz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thevenin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Limbourg</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bouillon</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A Unifying</given-names>
            <surname>Reference</surname>
          </string-name>
          <article-title>Framework for Multi-Target User Interfaces</article-title>
          .
          <source>Interacting with Computers</source>
          <volume>15</volume>
          ,
          <issue>3</issue>
          (
          <year>2003</year>
          ),
          <fpage>289</fpage>
          -
          <lpage>308</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cordy</surname>
            ,
            <given-names>J.R.,</given-names>
          </string-name>
          <article-title>the TXL source transformation language</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>61</volume>
          :
          <fpage>190</fpage>
          -
          <lpage>210</lpage>
          ,
          <year>August 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Delacre</surname>
            ,
            <given-names>J.-P.</given-names>
          </string-name>
          ,
          <article-title>A Comparative Analysis of Transformation Engines for User Interface Development, M.Sc</article-title>
          . thesis, UCL,
          <string-name>
            <surname>Louvain-</surname>
          </string-name>
          la-Neuve, 28
          <year>August 2007</year>
          . http://www.isys.ucl.ac.be/bchi/publications/2007/Delacre-MSc2007.pdf
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. de Lara, J.,
          <string-name>
            <surname>Vangheluwe</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <article-title>AToM³: A tool for multi-formalism and metamodelling</article-title>
          ,
          <source>in: FASE '02: Proceedings of the 5th International Conference on Fundamental Approaches</source>
          to Software Engineering (
          <year>2002</year>
          ), pp.
          <fpage>174</fpage>
          -
          <lpage>188</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Ermel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudolf</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Taentzer</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>The AGG-Approach: Language</article-title>
          and
          <string-name>
            <given-names>Tool</given-names>
            <surname>Environment</surname>
          </string-name>
          . H.
          <string-name>
            <surname>Ehrig</surname>
          </string-name>
          , G. Engels, H.
          <article-title>-</article-title>
          <string-name>
            <surname>J. Kreowski</surname>
          </string-name>
          , G. Rozenberg (eds.).
          <source>Handbook on Graph Grammars and Computing by Graph Transformation</source>
          . Vol.
          <volume>2</volume>
          :
          <string-name>
            <surname>App</surname>
            <given-names>.</given-names>
          </string-name>
          ,
          <source>Languages and Tools</source>
          . pp.
          <fpage>551</fpage>
          -
          <lpage>603</lpage>
          . World Scientific,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fiala</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Houben</surname>
          </string-name>
          , G.-J.,
          <article-title>A generic transcoding tool for making web applications adaptive</article-title>
          .
          <source>In Proc. of the CAiSE'05 Forum. CEUR Workshop Proceedings, online CEUR-WS.org/</source>
          Vol-161/FORUM 03.pdf,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Gonzalez</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arteaga</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Method for Developing 3D User Interfaces of Information Systems</article-title>
          ,
          <source>Proc. of CADUI'2006 (Bucharest</source>
          , 6-
          <fpage>8</fpage>
          June 2006), Chapter 7, Springer-Verlag, Berlin,
          <year>2006</year>
          , pp.
          <fpage>85</fpage>
          -
          <lpage>100</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Griffiths</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barclay</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paton</surname>
            ,
            <given-names>N.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McKirdy</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kennedy</surname>
            ,
            <given-names>J.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>P.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cooper</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goble</surname>
            ,
            <given-names>C.A.</given-names>
          </string-name>
          , da Silva,
          <string-name>
            <given-names>P.P.</given-names>
            <surname>Teallach</surname>
          </string-name>
          :
          <article-title>A Model-based user interface development environment for object databases</article-title>
          .
          <source>Interacting with Computers</source>
          <volume>14</volume>
          ,
          <issue>1</issue>
          (
          <year>2001</year>
          ),
          <fpage>31</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <article-title>Transforming models with ATL</article-title>
          .
          <source>In Proc. of MoDELS 2005 Workshops</source>
          ,
          <string-name>
            <surname>LNCS</surname>
          </string-name>
          , Vol.
          <volume>3844</volume>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>138</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kay</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>XSL</surname>
          </string-name>
          <article-title>Transformations (XSLT) Version 2</article-title>
          .0,
          <string-name>
            <given-names>W3C</given-names>
            <surname>Working Draft. W3C</surname>
          </string-name>
          ,
          <year>April 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Limbourg</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <article-title>Addressing the Mapping Problem in User Interface Design with UsiXML</article-title>
          ,
          <source>Proc. of 3rd Int. Workshop on Task Models</source>
          and
          <article-title>Diagrams for user interface design TAMODIA'</article-title>
          <year>2004</year>
          ,
          <year>2004</year>
          , pp.
          <fpage>155</fpage>
          -
          <lpage>163</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Limbourg</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <article-title>Transformational Development of User Interface with Graph Transformations</article-title>
          ,
          <source>Proc. of CADUI 04 (Funchal</source>
          ,
          <fpage>12</fpage>
          -
          <lpage>14</lpage>
          January
          <year>2004</year>
          ), Kluwer Academics, Dordrecht,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Limbourg</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>UsiXML: A User Interface Description Language Sup-Porting Multiple Levels of Independence</article-title>
          . In: Matera,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Comai</surname>
          </string-name>
          , S. (eds.):
          <article-title>Engineering Advanced Web Applications</article-title>
          . Rinton Press, Paramus (
          <year>2004</year>
          ),
          <fpage>325</fpage>
          -
          <lpage>338</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Paternò</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santoro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <article-title>A unified method for designing interactive systems adaptable to mobile and stationary platforms</article-title>
          .
          <source>Interacting with Computers</source>
          <volume>15</volume>
          ,
          <issue>3</issue>
          (
          <year>2003</year>
          )
          <fpage>349</fpage>
          -
          <lpage>366</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Mori</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paternò</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santoro</surname>
            <given-names>C</given-names>
          </string-name>
          .
          <article-title>Design and development of multidevice user interfaces through multiple logical descriptions</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          <volume>30</volume>
          ,
          <issue>8</issue>
          (
          <year>2004</year>
          ),
          <fpage>507</fpage>
          -
          <lpage>520</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Pérez-Medina</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dupuy-Chessa</surname>
          </string-name>
          , and
          <string-name>
            <surname>Front</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>A Survey of Model Driven Engineering Tools for User Interface Design</article-title>
          .
          <source>In 6th International Workshop on TAsk Models and DIAgrams TAMODIA</source>
          '
          <year>2007</year>
          , Toulouse, France,
          <year>Novembre 2007</year>
          ), LNCS 4849.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Puerta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Eisenstein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <article-title>Towards a General Computational Framework for Model-Based Interface Development Systems Model-Based Interfaces</article-title>
          ,
          <source>in Proc. of ACM International Conference on Intelligent User Interfaces IUI'99</source>
          (Los Angeles, 5-
          <fpage>8</fpage>
          January
          <year>1999</year>
          ), ACM Press, New York,
          <year>1999</year>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>178</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Puerta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Micheletti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mak</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>The UI Pilot: A Model-Based Tool to Guide Early Interface Design</article-title>
          .
          <source>In Proc. of IUI'</source>
          <year>2005</year>
          , ACM Press, New York, (
          <year>2005</year>
          ),
          <fpage>215</fpage>
          -
          <lpage>222</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Schaefer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Survey on Transformation Tools for Model Based User Interface Development</article-title>
          ,
          <source>Proc. of 12th Int. Conf. on Human-Computer Interaction HCI International'2007 (Beijing</source>
          ,
          <fpage>22</fpage>
          -
          <issue>27</issue>
          <year>July 2007</year>
          ),
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , Lecture Notes in Computer Science, Vol.
          <volume>4550</volume>
          , Springer-Verlag, Berlin,
          <year>2007</year>
          , pp.
          <fpage>1178</fpage>
          -
          <lpage>1187</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Schaefer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mueller</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dangberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>RDL/TT - a description language for the profile-dependent transcoding of xml documents</article-title>
          .
          <source>In Proceedings of the first International ITEA Workshop on Virtual Home Environments</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Stanciulescu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Limbourg</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Michotte</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Montero</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>A transformational approach for multimodal web user interfaces based on UsiXML</article-title>
          .
          <source>Proc. of 7th Int. Conf. on Multimodal Interfaces ICMI'2005 (Trento, 4-6 October</source>
          ,
          <year>2005</year>
          ), ACM Press, New York,
          <year>2005</year>
          , pp.
          <fpage>259</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>A MDA-Compliant Environment for Developing User Interfaces of Information Systems</article-title>
          .
          <source>In Proc. of CAiSE'05</source>
          , Springer-Verlag, Berlin (
          <year>2005</year>
          ),
          <fpage>16</fpage>
          -
          <lpage>31</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>