<!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 the Engineering of Multiple User Interfaces</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Goetz Botterweck</string-name>
          <email>botterweck@uni-koblenz.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Koblenz-Landau Universitätsstr.</institution>
          <addr-line>1 D-56070 Koblenz</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper, we describe MANTRA1, a model-driven approach to the development of multiple consistent user interfaces for one application. The common essence of these user interfaces is captured in an abstract UI model (AUI) which is annotated with constraints to the dialogue flow. We consider in particular how the user interface can be adapted on the AUI level by deriving and tailoring dialogue structures which take into account constraints imposed by front-end platforms or inexperienced users. With this input we use model transformations described in ATL (Atlas Transformation Language) to derive concrete, platform-specific UI models (CUI). These can be used to generate implementation code for several UI platforms including GUI applications, dynamic websites and mobile applications. The generated user interfaces are integrated with a multi tier application by referencing WSDL-based interface descriptions and communicating with the application core over web service protocols.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>2. RELATED WORK</title>
      <p>
        The mapping problem [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], a fundamental challenge in
model-based approaches, can occur in various forms and can be dealt with
by various types of approaches [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. One instance of this is the
question of how we can identify concrete interaction elements that
match a given abstract element and other constraints [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
1 Model-based engineering of multiple interfaces with transformations
A similar challenge is the derivation of structures in a new model
based on information given in another existing model. Many
taskoriented approaches use requirements given by the task model to
determine UI structures; for example, temporal constraints similar
to the ones in our approach have been used to derive the structure
of an AUI [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] or dialogue model [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Florins et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] take an interesting perspective on a similar
problem by discussing rules for splitting existing presentations into
smaller ones. That approach combines information from the AUI
and the underlying task model – similar to our approach using an
AUI annotated with temporal constraints which are also derived
from a task model.
      </p>
      <p>
        Many model-driven approaches to UI engineering have proposed
a hierarchical organization of interaction elements grouped
together into logical units (e.g., [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). A number of approaches to
multiple user interfaces has been collected in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>3. ABSTRACT DESCRIPTION OF USER</title>
    </sec>
    <sec id="sec-3">
      <title>INTERFACES</title>
      <p>
        The MANTRA model flow (cf. Figure 1) is structured vertically
by abstraction levels similar to the CAMELEON framework [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
The goal of our process (in Figure 1 going from top to bottom) is
to create several user interfaces (front-ends) for the functionality
provided by the core of that application.
      </p>
      <p>
        Further steps are illustrated by a simple time table application.
Figure 2 shows the corresponding AUI model. The user can
search for train and bus connections by specifying several search
criteria like departure and destination locations, time of travel or
the preferred means of transportation (lower part of Figure 2). The
matching connections are retrieved by a web service operation
and displayed in a separate presentation (upper right part of
Figure 2)
At first, this model only contains UI elements ( ) and UI
composites ( ) organized in a simple aggregation hierarchy
(indicated by relations) and the web service operation necessary
to retrieve the results. This model is the starting point of our
approach (cf. result of n in Figure 1) and captures the common
essence of the multiple user interfaces of the application in one
abstract UI. This AUI contains platform-independent interaction
concepts like “Select one element from a list” or “Enter a date”.
The AUI is then further annotated by dialogue flow constraints
based on the temporal relationships of the ConcurTaskTree
approach [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. For instance we can describe that two interaction
elements have to be processed sequentially ( &gt;&gt; ) or have to be
processed, but can be processed in any order ( |=| ).
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. ADAPTING ON THE AUI LEVEL</title>
      <p>As a next step (o in Figure 1) we augment the AUI by deriving
dialogue and presentation structures. These structures are still
platform-independent. However, they can be adapted and tailored
to take into account constraints imposed, for instance, by
platforms with limited display size or by inexperienced users.</p>
    </sec>
    <sec id="sec-5">
      <title>4.1 Clustering Interaction Elements to</title>
    </sec>
    <sec id="sec-6">
      <title>Generate Presentation Units</title>
      <p>First we cluster UI elements by identifying suitable UI
composites. The subtrees starting at these nodes will become presentations
in the user interface ( ). For instance we decided that “Time
of Travel” and all UI elements below it will be presented
coherently. This first automatic clustering is done by heuristics based
on metrics like the number of UI elements in each presentation or
the nesting level of grouping elements. To further optimize the
results the clustering can be refined by the human designer.</p>
    </sec>
    <sec id="sec-7">
      <title>4.2 Inserting Control-Oriented Interaction</title>
    </sec>
    <sec id="sec-8">
      <title>Elements</title>
      <p>Secondly, we generate the navigation elements necessary to
traverse between the presentations identified in the preceding step.
For this we create triggers ( ). These are abstract interaction
elements which can start an operation (OperationTrigger) or the
transition to a different presentation (NavigationTrigger). In
graphical interfaces these can be represented as buttons, in other
front-ends they could also be implemented as speech commands.
To generate NavigationTriggers in a presentation p we calculate
dialogueSuccessors(p) which is the set of all presentations
which can “come next” if we observe the temporal constraints.
We can then create NavigationTriggers (and related Transitions)
so that the user can reach all presentations in
dialogueSuccessors(p). In addition to this we have to generate
OperationTriggers for all presentations which will trigger a web service
operation, e.g., “Search” to retrieve matching train connections
(lower right corner of Figure 2).
These two adaptation steps (identification of presentations,
insertion of triggers) are implemented as ATL model transformations.
These result in the AUI (blue symbols in Figure 2) augmented
with dialogue structures (orange symbols) which determine the
paths a user can take through our application.</p>
      <p>It is important to note that the dialogue structures are not fully
determined by the AUI. Instead, we can adapt the AUI according
to the requirements and create different variants of it (cf. results
of step o ). For instance, we could get more (but smaller)
presentations to facilitate viewing on a mobile device – or we
could decide to have large coherent presentations, taking the risk
that the user has to do lots of scrolling if restricted to a small
screen.</p>
    </sec>
    <sec id="sec-9">
      <title>4.3 Selecting Content</title>
      <p>As an additional adaptation step we can filter content retrieved
from the web service based on priorities. For instance, if a user
has a choice, higher priority is given to knowing when the train is
leaving and where it is going before discovering whether it has a
restaurant. This optional information can be factored out to
separate “more details” presentations.</p>
      <p>A similar concept are substitution rules which provide alternative
representations for reoccurring content. A train, for example,
might be designated as InterCityExpress, ICE, or by a graphical
symbol based on the train category (e.g., ) depending on how
much display space is available. These priorities and substitution
rules are domain knowledge which cannot be inferred from other
models. The necessary information can therefore be stored as
annotations to the underlying data model.</p>
    </sec>
    <sec id="sec-10">
      <title>5. GENERATING CONCRETE AND</title>
    </sec>
    <sec id="sec-11">
      <title>IMPLEMENTED USER INTERFACES</title>
      <p>Subsequently we transform the adapted AUI models into several
CUIs using a specialized model transformation (p ) for each
target platform. These transformations encapsulate the knowledge of
how the abstract interaction elements are best transformed into
platform-specific concepts. Hence, they can be reused for other
applications over and over again.</p>
      <p>As a result we get platform-specific CUI models. These artefacts
are still represented and handled as models, but use
platform-specific concepts like “HTML-Submit-Button” or “.NET
GroupBox”. This makes it easier to use them as a basis for the code
generation (q ) which produces the implementations of the desired
user interfaces in platform-typical programming or markup
languages.</p>
    </sec>
    <sec id="sec-12">
      <title>6. APPLIED TECHNOLOGIES</title>
      <p>
        We described the metamodels used in MANTRA (including
platform-specific concepts) in UML and then converted these to
Ecore, since we use the Eclipse Modeling Framework (EMF) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
to handle models and metamodels.
      </p>
      <p>
        The various model transformations (e.g. for steps o and p ) are
described in ATL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. On the one hand, the integration of ATL
with Eclipse and EMF was helpful as it supported the
development in an integrated environment which was well-known to us.
On the other hand, the work with ATL model transformations
turned out to be time consuming; for instance, ATL was sensitive
even to small mistakes and then often did not provide helpful
error messages.
      </p>
      <p>
        We use a combination of Java Emitter Templates and XSLT to
generate (q ) arbitrary text-oriented or XML-based
implementation languages (e.g., C# or XHTML with embedded PHP).
The coordination of several steps in the model flow is automated
by mechanisms provided by the Eclipse IDE and related tools,
e.g., we use the software management tool Apache Ant [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
(which is integrated in Eclipse) and custom-developed “Ant
Tasks” to manage the chain of transformations and code
generation.
We use web services as an interface between the UIs and the
application core. Hence, the UI models reference a WSDL based
description of operations in the application core. The generated
UIs then use web service operations, e.g., to retrieve results for a
query specified by the user.
      </p>
    </sec>
    <sec id="sec-13">
      <title>7. CONCLUSION</title>
      <p>We have shown how our MANTRA approach can be used to
generate several consistent user interfaces for a multi tier application
(cf. Figure 4).</p>
      <p>At the moment, the automated model flow (cf. Figure 1) starts at
the AUI level. But nothing prevents us from starting with a task
model (e.g., in CTT) and then either manually transferring the
task structures into an AUI model, or extending the automated
model flow to support task models from which the annotated AUI
model can be derived.</p>
      <p>We discussed how the user interface can be adapted on the AUI
level by tailoring dialogue and logical presentation structures
which take into account requirements imposed by front-end
platforms or inexperienced users. For this we used the hierarchical
structure of interaction elements and constraints on the dialogue
flow which can be derived from a task model.</p>
      <p>The approach generates fully working prototypes of
user-interfaces on three target platforms (GUI, dynamic website, mobile
device) which can serve as front-ends to arbitrary web services.</p>
    </sec>
    <sec id="sec-14">
      <title>8. ACKNOWLEDGEMENTS</title>
      <p>We would like to thank the anonymous reviewers for their
constructive and valuable feedback.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Budinsky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Steinberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merks</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ellersick</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          and Grose,
          <string-name>
            <surname>T.J.</surname>
          </string-name>
          <article-title>Eclipse modeling framework : a developer's guide</article-title>
          .
          <source>Addison-Wesley</source>
          , Boston, MA, USA,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <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>
          <article-title>A unifying reference framework for multi-target user interfaces</article-title>
          .
          <source>Interacting with Computers</source>
          ,
          <volume>15</volume>
          (
          <issue>3</issue>
          ).
          <fpage>289</fpage>
          -
          <lpage>308</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Clerckx</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luyten</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Coninx</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <article-title>The mapping problem back and forth: customizing dynamic models while preserving consistency</article-title>
          .
          <source>in TAMODIA '04</source>
          , (Prague, Czech Republic,
          <year>2004</year>
          ), ACM Press,
          <fpage>33</fpage>
          -
          <lpage>42</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Eisenstein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Puerta</surname>
            ,
            <given-names>A.R.</given-names>
          </string-name>
          <string-name>
            <surname>Applying</surname>
          </string-name>
          model
          <article-title>-based techniques to the development of UIs for mobile computers</article-title>
          .
          <source>in IUI '01</source>
          ,
          <year>2001</year>
          ,
          <fpage>69</fpage>
          -
          <lpage>76</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Florins</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simarro</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Michotte</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <article-title>Splitting rules for graceful degradation of user interfaces Intelligent User Interfaces</article-title>
          <year>2006</year>
          ,
          <year>2006</year>
          ,
          <fpage>264</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Forbrig</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dittmar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reichart</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Sinnig</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , From Models to Interactive Systems -- Tool Support and XIML. in IUI/CADUI 2004 workshop
          <article-title>"Making model-based user interface design practical: usable and open methods and tools", (Island of Madeira</article-title>
          , Portugal,
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Holzner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Tilly</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Ant : the definitive guide</article-title>
          .
          <source>O'Reilly</source>
          , Sebastopol, CA, USA,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <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 Model Transformations in Practice</article-title>
          (Workshop at MoDELS 2005), Montego Bay, Jamaica,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Paternò</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>One</surname>
            <given-names>Model</given-names>
          </string-name>
          ,
          <article-title>Many Interfaces</article-title>
          .
          <source>in CADUI'02</source>
          ,
          <string-name>
            <surname>(Valenciennes</surname>
          </string-name>
          , France,
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Paternò</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mancini</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Meniconi</surname>
            ,
            <given-names>S.,</given-names>
          </string-name>
          <article-title>ConcurTaskTrees: A diagrammatic notation for specifying task models</article-title>
          .
          <source>in Interact'97</source>
          ,
          <string-name>
            <surname>(Sydney</surname>
          </string-name>
          ,
          <year>1997</year>
          ), Chapman and Hall,
          <volume>362</volume>
          -
          <fpage>369</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Puerta</surname>
            ,
            <given-names>A.R.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Eisenstein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <article-title>Interactively Mapping Task Models to Interfaces in MOBI-D. in DSV-IS</article-title>
          <year>1998</year>
          ,
          <article-title>(Abingdon</article-title>
          , UK,
          <year>1998</year>
          ),
          <fpage>261</fpage>
          -
          <lpage>273</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Seffah</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Javahery</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <article-title>Multiple user interfaces : crossplatform applications and context-aware interfaces</article-title>
          .
          <source>J</source>
          . Wiley, Hoboken, NJ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <article-title>Advice-Giving Systems for Selecting Interaction Objects. in User Interfaces to Data Intensive Systems -</article-title>
          UIDIS'
          <fpage>99</fpage>
          ,
          <string-name>
            <surname>(Edinburgh</surname>
          </string-name>
          , Scotland,
          <year>1999</year>
          ),
          <fpage>152</fpage>
          -
          <lpage>157</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>