<!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 Model-Driven Approach to Graphical User Interface Runtime Adaptation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Javier Criado</string-name>
          <email>javi.criado@ual.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cristina Vicente-Chicote</string-name>
          <email>cristina.vicente@upct.es</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicolas Padilla</string-name>
          <email>npadilla@ual.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luis Iribarne</string-name>
          <email>luis.iribarne@ual.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Applied Computing Group, University of Almeria</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Information Technology and Communications, Technical University of Cartagena</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Graphical user interfaces play a key role in human-computer interaction, as they link the system with its end-users, allowing information exchange and improving communication. Nowadays, users increasingly demand applications with adaptive interfaces that dynamically evolve in response to their speci c needs. Thus, providing graphical user interfaces with runtime adaptation capabilities is becoming more and more an important issue. To address this problem, this paper proposes a component-based and model-driven engineering approach, illustrated by means of a detailed example.</p>
      </abstract>
      <kwd-group>
        <kwd>runtime model adaptation</kwd>
        <kwd>model transformation</kwd>
        <kwd>graphical user interface</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Graphical User Interfaces (GUIs) play a key role in Human-Computer
Interaction (HCI), as they link the system with its end-users, allowing information
exchange and improving communication. Nowadays, users increasingly demand
\smart" interfaces, capable of (semi-)automatically detecting their speci c
prole and needs, and dynamically adapting their structure, appearance, or
behaviour accordingly.</p>
      <p>GUIs are increasingly built from components, sometimes independently
developed by third parties. This allows end-users to con gure their applications
by selecting the components that provide them with the services that better t
their current needs. A good example of this is iGoogle, as it provides end-users
with many gadgets, allowing them to create personal con gurations by adding
or removing components on demand.</p>
      <p>
        Following this trend, the proposal presented in this paper considers GUIs as
component-based applications. Furthermore, it considers the components
integrating GUIs software architectures at two di erent abstraction levels: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) at
design time, components are de ned in terms of their external interfaces, their
internal components (if any), and their visual and interaction behaviours, while
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) at runtime, the former abstract components are instantiated by selecting
the most appropriate Commercial-O -The-Shelf (COTS) components (i.e., those
that better t the requirements imposed both by the abstract component and
by the global GUI con guration parameters) from those available in the existing
repositories.
      </p>
      <p>
        Our proposal does not only rely on a component-based approach but also, and
primarily, on a Model-Driven Engineering (MDE) approach. As detailed in the
following sections, we propose a GUI architecture description meta-model that
enables (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) the de nition of component-based abstract GUI models at
designtime, and (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) the runtime evolution (be means of automatic model-to-model
transformations) of these architectural models according to the events detected
by the system. The instantiation of these abstract models at each evolution step
is out of the scope of this paper.
      </p>
      <p>The remainder of the article is organized as follows. Section 2 reviews related
works. Section 3 describes the proposed approach and its constituting elements,
namely: the proposed GUI architecture meta-model, and a set of model
transformations enabling runtime GUI adaptation. In order to illustrate the proposal, a
GUI model evolution example is also described in detail in this section. Finally,
Section 4 draws the conclusions and outlines future works.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>There are many model-driven approaches in the literature for modelling user
interfaces, as detailed in [1]. Some of them use a MDE perspective for web-based
user interfaces [2]. However, in most cases, models are considered static entities
and no MDE technique is applied to add dynamism, for instance, using model
transformations.</p>
      <p>Model transformations enable model re nement, evolution or even, automatic
code generation. In [3], the authors investigate the development of plastic user
interfaces (which have the context adaptation ability), making use of model
transformations to enable their adaptation. However, these transformations are
used at design-time and not at runtime, as we propose here. In [4], the authors
propose an approach that makes use of model representations for developing
GUIs, and of model transformations for adapting them. This work, in which the
research described in this paper is based on, also considers these GUI models as
a composition of COTS components.</p>
      <p>The adoption of Component-Based Software Development (CBSD)
proposals for software applications design and implementation is increasingly growing.
An example can be found in [5], where the authors identify the multiple GUI
evolution possibilities that come from working with component-based software
architectures (e.g., addition of new components, interface recon guration,
adaptation to user actions or task, etc.). However, this proposal implements GUI
evolution by programming GUI aspects, instead of using model transformation
techniques, as we propose in this work. Another example is shown in [6], which
presents a combined MDE and CBSD approach to enable the modelling of
structural and behavioural aspects of component-based software architectures.
However, this proposal is aimed at general-purpose software architectures, and not
particularly suited for GUI development. In [7], the authors focus their research
on component retrieval, composition and re-usability in standalone DSLs
(Domain Speci c Languages). This is useful in web applications, especially in those
making use of the semantic web. However, as before, this work does not apply
these ideas directly to compose GUI applications.</p>
      <p>On the other hand, recent software engineering proposals advocate for the
use of models at runtime (models@runtime) [8]. Existing research in this eld
focuses on software structures and their representations. Thus, signi cant bodies
of work look at software architecture as an appropriate basis for runtime model
adaptation [9]. Our vision of models@runtime is completely aligned with this
idea as our GUIs are, in fact, architecture models. In [10], the authors study the
role of models@runtime to manage model variability dynamically. Their research
focuses on reducing the number of con gurations and recon gurations that need
to be considered when planning model adaptations. However, this work is not
focused on GUIs, but in Custom Relationship Management (CRM) applications.</p>
      <p>Next section presents the proposed GUI modelling and runtime adaptation
approach, in which GUIs will be modelled as component-based architectures.
These architecture models will be capable of evolving through model
transformations in order to self-adapt according to the events detected by the system.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Runtime GUI Adaptation</title>
      <p>This paper focuses on applications with Graphical User Interfaces (GUI). In fact,
our application models may contain any number of GUIs (e.g., one for each type
of user). Each GUI, in turn, is built by assembling components, in particular
COTS, which are well known in the CBSD literature. We call these
components cotsgets for their similarity to the gadgets, widgets and other components
frequently used in GUI development.</p>
      <p>
        All the cotsgets included in each GUI, together with their behaviour and
the composition and dependency relations that may exist among them, conform
the GUI architecture. As we have opted for a MDE approach, we model GUI
architectures using a meta-model. This architecture meta-model can be seen as
an aggregation of three parts or subsets, namely: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) an structural meta-model,
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) an interaction meta-model, and (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) a visual meta-model.
      </p>
      <p>Firstly, the structural meta-model allows designers to model composition
and dependency relationships among components. Dependencies are modelled
by connecting component ports, which may provide or require any number of
interfaces (sets of services). Secondly, the interaction meta-model is used for
modelling the behaviour associated with user-level interactions, de ned in terms
of the performed tasks. This meta-model includes concepts such as roles,
subtasks, choreography, etc. Finally, the visual meta-model aims to describe the
component behaviour from the point of view of its graphical representation on
the user interface.</p>
      <p>
        As a solution to the interface adaptation process, this work proposes a MDE
approach to GUI model evolution [11], where interface architectures are
considered as models capable of evolving at runtime. To achieve this, we have
implemented a two-stage process, where: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) the interface architecture models,
dened in terms of abstract components, are evolved by means of a model-to-model
transformation according to the (user or application) events detected by the
system, and (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) the resulting abstract models are then instantiated by means of a
regeneration process, where a trader selects (from the existing repositories) the
cotsgets that better ful ll the requirements imposed by the abstract architecture
model, and then regenerates the application in terms of the selected executable
components. Thus, the rst stage of the process (transformation phase) deals
with the runtime adaptation of the abstract interface architecture models, while
the second one (regeneration phase) deals with their instantiation (see Figure 1).
It is worth noting that this article is focused only on the transformation phase.
      </p>
      <p>Transformation phase</p>
      <p>Architecture Modeli</p>
      <sec id="sec-3-1">
        <title>DefinitSiotnruActrucrhailteMctoudreelMiodeln</title>
        <p>Visual Interaction</p>
        <p>Modeli Modeli
Regeneration phase</p>
        <p>Architecture Modelj
abstract
cotsget
repository</p>
        <p>Rules
Transformer</p>
        <p>Trader
concrete
cotsget
repository</p>
        <p>Architecture Modelj
Visual
Modelj</p>
        <p>Structural Modelj</p>
        <p>Interaction</p>
        <p>Modelj
Runtime Component</p>
        <p>Modelj</p>
        <p>
          The model-to-model transformation, implementing the rst stage of the
process, comprises a set of rules that de ne how to evolve the current abstract
interface architecture model depending on the events detected by the system.
As an output, the transformation generates a new abstract interface
architecture model, de ned in terms of the same meta-model as the input one (i.e., the
transformation evolves the input model rather than translating it from one
modelling language into another). For the sake of clarity, we have implemented this
transformation in two parts: (
          <xref ref-type="bibr" rid="ref1">1</xref>
          ) the rst one, takes the input interface model
and evolves the state machines associated to its components according to the
detected event, and (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ) the second one executes the actions associated to the
new current states of the evolved state machines. Further details about this
transformation will be given next in section 3.2.
        </p>
        <p>Service 1..*
1
service</p>
        <p>Structural metamodel
Interaction metamodel
Visual metamodel
*</p>
        <p>Interface
1..*
provided
Port
r0e.q.*uired</p>
        <p>* 0..1
* 1 endA Connector</p>
        <p>1 endB
ComponentAction 1..* ComponentActivity</p>
        <p>PseudoState
-type : pseudoType</p>
        <p>1
State
1 currentState</p>
        <p>ArchitectureModel
0..1
0..1 VisualBehaviuor
*
Component
0..1</p>
        <p>ComplexComponent</p>
        <p>*</p>
        <p>SimpleComponentDefinition
SimpleComponent</p>
        <p>definition 1
InteractionBehaviour
1 InteractionActivity</p>
        <p>StateMachine
1..*</p>
        <p>Region
1..*
Vertex
*</p>
        <p>*
1 target incoming * Transition
1 source outgoing *
LaunchEvent launchedEvent
0..*
eventLaunched</p>
        <p>1
&lt;&lt;enumeration&gt;&gt;
pseudoType
-InitialState
-JoinState
-ForkState
-FinalState</p>
        <p>Event</p>
        <p>*
transtitionEvent 1
3.1</p>
        <sec id="sec-3-1-1">
          <title>Architecture Meta-model</title>
          <p>In this paper, we focus on the structural and the visual subsets of the
architecture meta-model. The former enables the description of the software architecture
in terms of its internal components and the connections existing among them.
Similarly, the later enables the speci cation of the system visual behavior
according to the expected runtime adaptation to certain user or application events.
An excerpt of the architecture meta-model, showing the main concepts included
in these two subsets, is shown in Figure 2.</p>
          <p>ExecuteService</p>
          <p>Create</p>
          <p>Delete</p>
          <p>Activate</p>
          <p>Deactivate</p>
          <p>
            The concept ArchitectureModel is the meta-model root, and it contains
component interfaces (Interface), simple component de nitions
(SimpleComponentDe nition), and all the events considered relevant for the system evolution
(Event ). Being de ned in the root of the model, these three kinds of elements
can be reused by all the other elements in the model. Both
ComplexComponent s and SimpleComponent s are subtypes of the abstract meta-class
Component. SimpleComponent s have a reference to their corresponding
SimpleComponentDe nition, while ComplexComponent s are de ned in terms of their internal
Component s, which can be, in turn, either simple or complex. Each Component
contains two behavioural descriptions: (
            <xref ref-type="bibr" rid="ref1">1</xref>
            ) a VisualBehavior which, using a state
machine model, de nes how each component visually evolves depending on
certain Event s, and (
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) an InteractionBehavior, which enables designers to model
user's interaction and cooperation (this is out of the scope of this paper).
          </p>
          <p>The StateMachines used to model the component visual behaviour may
contain any number of orthogonal (i.e., concurrent) Regions which, in turn, may
contain any number of States. Each State contains a ComponentActivity that
models the work ow of ComponentActions that need to be executed when the
component reaches that state. On the other hand, the Transitions between states
are associated to one of the Event s de ned in the ArchitectureModel.</p>
          <p>It is worth noting that this work is not intended not prescribe how to
construct or deduce the state machine model that better describes each component
visual evolution. Conversely, this work is focused on the model transformation
supporting that evolution, which implementation is detailed next.
3.2</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Runtime Model Adaptation Process</title>
          <p>As previously stated, the runtime adaptation of the abstract inteface
architecture model has been implemented by means of a model-to-model transformation
(Figure 3). This transformation, de ned as a set of rules, takes the current
interface model (AMA) and a detected event as its inputs, and generates an evolved
interface model (AMB) as its output. Although the process seems quite straight
forward, implementing it in one step is not that easy. Thus, for the sake of
simplicity, we have splitted the transformation in two.</p>
          <p>AMA</p>
          <p>T1</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>AMAi</title>
        <p>T2</p>
        <p>AMB</p>
        <p>The rst part of the model transformation (T1) takes the interface
architecture model and the event collected by the system as an input (AMA), and
produces an intermediate interface architecture model (AMAi) where all the
state machines being a ected by the collected event are appropriately updated.
To achieve this, the transformation nds, for all the currentStates (one for each
region in every state machines in every component), all the outgoing
transitions being red by the collected event, and updates the currentState to the
target of the red transition. Once the state machine models have been
updated, the second model transformation (T2) is exectuted, taking the resulting
AMAi model as an input. The role of this second transformation is to execute
the ComponentActions contained in all the updated currentStates. As a result,
a new interface architecture model (AMB) is generated. In this rst approach
to model GUI evolution, we have de ned six types of actions that might be
executed on a component (as a result of an event launched either by the user or by
other component): Create, Delete, Activate, Deactivate, Execute Service
and Launch Event (see Figure 2). Table 1 shows two example rules, each one
belonging to one of the transformations.
 
T</p>
        <p>
          The rst of these example rules (RegionEvolution) belongs to T1 and is
related to Region elements. This rule only a ects those Regions containing a
transition that (
          <xref ref-type="bibr" rid="ref1">1</xref>
          ) has the Region's current state as its source, and (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ) is red by the
current event. As a result of apply this rule, the value of the current state will
be changed (to the state being the target of the red transition) and the
`update' attribute will be set to `true' (to inform the second transformation that the
actions associated to that state need to be executed). The second example rule
(CreateActionExecutable) belongs to T2 and it is called when the
transformation nds a Create type action that needs to be executed. Its purpose is to copy
the CreateAction element to the output model and also to add the Component
associated to this action (sourceComponent ) to the interface model.
        </p>
        <p>We have implemented our two model transformations using ATL (ATLAS
Transformation Language) [14]. The ATL language is a Domain Speci c
Language (DSL) aimed at describing model-to-model transformations. ATL is
inspired on QVT and is a hybrid language that allows both declarative and
imperative constructs. We decided to use ATL as its implementation is quite robust,
and it is widely spread in use by the MDE community.</p>
        <p>In this rst approach, random events are simulted and both transformations
are manually launched one after the other. However, we are working on an
improved implementation that automatically invokes both transformations every
time an event is detected, making use of the ATL facilities for programatically
executing transformations.
3.3</p>
        <sec id="sec-3-2-1">
          <title>A GUI Runtime Adaptation Example</title>
          <p>In order to illustrate the proposed approach, this section presents a case study
on an example GUI runtime adaptation. It describes in depth a few steps of the
adaptation process.</p>
          <p>The example shows an interface architecture model composed by two
graphical user interfaces (GUI1 and GUI2). Each of these GUIs has two simple
components (C1 and C2). We will simulate an event that adds a Chat
component to GUI1. This event will also produce the addition of a Chat
component to GUI2. Finally, we will also simulate the generation of a new event that
deletes GUI2 (and all its subcomponents) from the architecture model.
Figure 4 shows a snapshot of the interface architecture model at the initial stage
(ArchitectureModel0).</p>
          <p>
            Events
(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ) GUI1.startChat
(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) GUI1.closeComponents
(
            <xref ref-type="bibr" rid="ref3">3</xref>
            ) GUI1.showComponents
(
            <xref ref-type="bibr" rid="ref4">4</xref>
            ) GUI1.close
(
            <xref ref-type="bibr" rid="ref5">5</xref>
            ) GUI2.startChat
(
            <xref ref-type="bibr" rid="ref6">6</xref>
            ) GUI2.closeComponents
(
            <xref ref-type="bibr" rid="ref7">7</xref>
            ) GUI2.close
ArchitectureModel0
          </p>
          <p>
            C1
s1
(
            <xref ref-type="bibr" rid="ref3">3</xref>
            )
(
            <xref ref-type="bibr" rid="ref4">4</xref>
            )
          </p>
          <p>Given the initial interface architecture model, when an event occurs the
adaptation process starts. An example of this process is shown in Figure 5, which
illustrates the model transformation steps executed after the GUI1.startChat
event happens. As result, the rst transformation (T1) evolves the state machine
associated to GUI1, changing its current state to s2, as indicated by the model.
Then, when the T2 transformation is launched, it executes the Create(Chat)
and LaunchEvent(GUI2.startChat) actions. The rst action implies the
addition of a Chat component within GUI1, while the second action causes the
launching of a GUI2.startChat event. We obtain Model B as result.</p>
          <p>The adaptation process concludes when all the events haven processed.
However, the GUI2.startChat event still needs to be attended. Thus, T1 is launched
again and the GUI2 component changes its current state to s2. Finally, T2
executes the Create(Chat) action, resulting in the addition of a new Chat
component within GUI2. In this case, we obtain Model C as a result.</p>
          <p>Next, gure 6 shows another adaptation example starting from Model D
(obtained by setting GUI2.closeComponents as the system currentEvent in Model
C). In this case, we show the models involved in the adaptation process using the
re ective model editor provided by the Eclipse Modeling Framework (EMF). In
the rst step, T1 changes the current state of GUI2 to s3 and sets the `update'
T2
T2</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>Model A</title>
      </sec>
      <sec id="sec-3-4">
        <title>Model Ai</title>
      </sec>
      <sec id="sec-3-5">
        <title>Model B</title>
      </sec>
      <sec id="sec-3-6">
        <title>Model Bi</title>
        <p>GUI1
C1 C2</p>
        <p>GUI2
C1 C2</p>
        <p>GGUUII11..ucuprdraetnetS=tatrtuee= s2
GGUUII11..ucuprdraetnetS=tafatels=e s1 currentEvent=null
currentEvent=GUI1.startChat ArchitectureModel1i
ArchitectureModel1
GUI1
C1 C2</p>
        <p>GUI2
C1 C2
GUI1</p>
        <p>GUI2
GUI1</p>
        <p>GUI2</p>
        <p>Chat
GGUUCII11h..ucauptrdraetnetS=tafatels=e s2 currenGtEUvIeG2n.Uct=uI2nrr.uuelpnltdSattaete==truse2</p>
        <p>GUGI2U.cI2u.rurepndtaStteat=ef=alsse1 ArchitectureModel2i
currentEvent=GUI2.startChat
ArchitectureModel2</p>
      </sec>
      <sec id="sec-3-7">
        <title>Model C</title>
        <p>GUI1</p>
        <p>GUI2
Chat Chat</p>
        <p>GUI2.currentState = s2</p>
        <p>GUI2.update = false
currentEvent=null</p>
        <p>ArchitectureModel3
attribute to `true', as shown in Model Di (central column in gure 6). Then, T2
executes the Delete(all) action, producing the deletion of all the components
in GUI2, including itself, as shown in Model E (right column in gure 6).</p>
        <p>Fig. 6. From Model D to Model E
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusions and Future Work</title>
      <p>Nowadays, the increasingly growing number and complexity of Information
Systems force developers to make them more exible, easy to adapt and evolve,
and accessible for being manipulated at runtime. Graphical User Interfaces play
a key role in this kind of systems, as they ease communication between
applications and their end-users. Thus, it is necessary to obtain GUI dynamism
and adaptability to user pro les and context. It is also very important to get
this adaptation while the system is running, without stopping its execution and
without re-modelling its components; in other words, to support a runtime
adaptation process. However, most GUIs are still built based on traditional software
development paradigms, which do not take into account that they have to be
distributed, open, changeable and adaptable. In contrast, GUIs should be able
to regenerate themselves at runtime depending on the context, the user
interactions, and the changing application requirements.</p>
      <p>
        In this paper, we have presented a MDE approach for the development of
adaptable graphical user interfaces. The proposed approach aims to build these
applications as assemblies of GUI components. These GUIs will be
architecture models that can evolve over time through model transformations with the
purpose of changing and adapting on system events. We describe a combined
MDE and CBSD proposal to GUI architecture modelling and runtime
adaptation. This approach revolves around (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) a meta-model for formally specifying
the component-based structure and the visual and interaction behaviour of GUI
architectures, and (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) a model-to-model transformation that enables GUI model
evolution according to the behavioural rules and the actions performed by the
user at runtime. Finally, a runtime adaptation example has been presented that
illustrates the proposed approach.
      </p>
      <p>As future work, we would like to develop a graphical tool using the Eclipse
Graphical Modeling Framework (GMF) [15] in order to easily draw new GUI
models conforming to the proposed architecture meta-model. We also plan to
evaluate how the use of other MDE tools, in particular those enabling the
inclusion of action semantics in meta-models (e.g., Kermeta [16] or AMMA [17,
18]) can help us improving our runtime adaptation process. Besides, we plan
to enable the inclusion of alternative behaviours that can be appropriately
activated depending, e.g., on previous GUI evolution records or on any relevant
contextual information (i.e., enabling the adaptation not only of the interface
models but also of the model-to-model transformation itself, also at runtime).
Furthermore, we also plan to automate the adaptation process by making use of
the ATL facilities for programatically executing the transformations.</p>
      <p>Finally, we are interested in studying possible change detection in the
interaction meta-model (not covered in this article) by means of automated co-evolution
mechanisms and meta-model adaptations [19, 20].</p>
      <p>Acknowledgments. This work has been supported by the EU (FEDER) and
the Spanish MICINN under grant TIN2007-61497 and TIN2010-15588 project.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Perez-Medina</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dupuy-Chessa</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <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>
          .
          <article-title>Task Models and Diagrams for User Interface Design</article-title>
          , LNCS
          <volume>4849</volume>
          , pp.
          <volume>84</volume>
          {
          <issue>97</issue>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Chavarriaga</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Macia</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          :
          <article-title>A model-driven approach to building modern Semantic Web-Based User Interfaces</article-title>
          .
          <source>Advan. in Eng. Soft</source>
          .
          <volume>40</volume>
          ,
          <issue>1329</issue>
          {
          <fpage>1334</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Sottet</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvary</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Favre</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coutaz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demeure</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards Mapping and Model Transformation for Consistency of Plastic User Interfaces</article-title>
          .
          <source>CHI2006, Workshop on The Many Faces of Consistency in Cross-platform Design</source>
          , (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Iribarne</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Padilla</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Criado</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Asensio</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ayala</surname>
          </string-name>
          , R.:
          <article-title>A Model Transformation Approach for Automatic Composition of COTS User Interfaces in Web-Based Information Systems</article-title>
          .
          <source>Information Systems Management</source>
          ,
          <volume>27</volume>
          , 207{
          <fpage>216</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Grundy</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hosking</surname>
          </string-name>
          , J.:
          <article-title>Developing adaptable user interfaces for component-based systems</article-title>
          .
          <source>Interacting with Computers</source>
          ,
          <volume>14</volume>
          ,
          <issue>3</issue>
          , 175{
          <fpage>194</fpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Alonso</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vicente-Chicote</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barais</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>V3Studio: A Component-Based Architecture Modeling Language</article-title>
          .
          <source>In 15th IEEE Conf. ECBS</source>
          , pp.
          <volume>346</volume>
          {
          <fpage>355</fpage>
          , (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Henriksson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , A mann, U.:
          <article-title>Component models for semantic web languages. Semantic techniques for the web</article-title>
          ,
          <volume>233</volume>
          {
          <fpage>275</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Blair</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , and France, R.B (eds.): Models@Run.Time. Special Issue, Computer, IEEE Computer Society (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Garlan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmerl</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Using architectural models at runtime: Research challenges</article-title>
          .
          <source>Software Architecture</source>
          , pp.
          <volume>200</volume>
          {
          <issue>205</issue>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Morin</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Barais</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Jezequel</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Fleurey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Solberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Models at Runtime to Support Dynamic Adaptation</article-title>
          . IEEE Computer,
          <volume>42</volume>
          (
          <issue>10</issue>
          ), pp.
          <volume>44</volume>
          {
          <issue>51</issue>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Introduction and Roadmap: History and Challenges of Software Evolution</article-title>
          .
          <source>Software Evolution</source>
          , pp.
          <volume>1</volume>
          {
          <issue>11</issue>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>ISO</surname>
          </string-name>
          ,
          <string-name>
            <surname>Information</surname>
            <given-names>Technology</given-names>
          </string-name>
          | Open Distributed Processing | Trading Function:
          <article-title>Speci cation</article-title>
          .
          <source>ISO/IEC 13235-1</source>
          ,
          <string-name>
            <surname>ITU-T X</surname>
          </string-name>
          .
          <volume>950</volume>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Iribarne</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Troya</surname>
            <given-names>JM</given-names>
          </string-name>
          , and
          <article-title>Vallecillo A: A Trading Service for COTS Components</article-title>
          .
          <source>The Computer Journal. 4</source>
          ,
          <issue>3</issue>
          , pp.
          <volume>342</volume>
          {
          <issue>357</issue>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allilaire</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>ATL: A model transformation tool</article-title>
          .
          <source>Science of Computer Programming</source>
          .
          <volume>72</volume>
          (
          <issue>1</issue>
          {2),
          <volume>31</volume>
          {
          <fpage>39</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Fundation</surname>
          </string-name>
          .
          <source>Eclipse Graphical Modeling Framework (GMF)</source>
          , http://www. eclipse.org/modeling/gmf
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Muller</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Fleurey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Jezequel</surname>
            ,
            <given-names>J.M.:</given-names>
          </string-name>
          <article-title>Weaving executability into objectoriented meta-languages</article-title>
          .
          <source>Model Driven Engineering Languages and Systems</source>
          , pp.
          <volume>264</volume>
          {
          <issue>278</issue>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Del Fabro</surname>
            ,
            <given-names>M.D.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Model transformation and weaving in the AMMA platform</article-title>
          .
          <source>In Workshop on Generative and Transformational Techniques in Software Engineering (GTTSE)</source>
          , Braga, Portugal, pp.
          <volume>71</volume>
          {
          <issue>79</issue>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            and
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            and
            <surname>Kurtev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            and
            <surname>Bezivin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            and
            <surname>Pierantonio</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Extending AMMA for supporting dynamic semantics speci cations of DSLs</article-title>
          . Laboratoire
          <string-name>
            <surname>D'Informatique de</surname>
          </string-name>
          Nantes-Atlantique.
          <source>Research Report</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Cicchetti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di Ruscio</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eramo</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pierantonio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Automating Co-evolution in Model-Driven Engineering</article-title>
          .
          <source>12th Int. IEEE EDOC</source>
          , pp.
          <fpage>222</fpage>
          -
          <lpage>231</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Wachsmuth</surname>
          </string-name>
          , G.:
          <article-title>Metamodel Adaptation and Model Co-adaptation</article-title>
          .
          <source>ECOOP</source>
          <year>2007</year>
          , LNCS 4609, pp.
          <volume>600</volume>
          {
          <issue>624</issue>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>