<!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>Towards employing UML Model Mappings for Platform Independent User Interface Design</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tim Schattkowsky C-LAB</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Germany tim@c-lab.de</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Marc Lohmann University of Paderborn</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>While model based design of platform independent application logic has already shown significant success, the design of platform independent user interfaces still needs further investigation. Nowadays, user interface design is usually platform specific or based on C-level cross-platform libraries. In this paper, we propose a MDA like design approach for user interfaces based on the transformation of UML models at different levels of abstraction. This enables platform independent design of user interfaces and a clear separation of UI and application logic design while enabling full use of native controls in the actual user interface implementation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Providing individual User Interface (UI)
implementations for each target platform of a
contemporary application becomes an increasing
burden as the number platforms as well as the size of
the applications increases. In the context of
modelbased design methods and the UML [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a manual
implementation of different UI for each platform is
undesirable.
      </p>
      <p>
        Model Driven Architecture (MDA) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] presents the
idea of mapping a platform independent model (PIM)
to a platform specific model (PSM) to separate the core
implementation from the platform specific
implementation aspects. Still, the UI is often
considered to be platform specific although it seems to
be possible to provide a generic abstract description of
such an UI in terms of a platform independent model.
      </p>
      <p>Furthermore, lack of abstraction in UI design forces
large parts of the UI implementation into the
responsibility of the software engineer rather than
enabling the UI designer to work concurrently. A clear
separation of UI and application logic design is
desirable to improve both productivity and software
quality.</p>
      <p>The remainder of this paper is organized as follows:
The next section discusses related work before
Section 3 introduces our approach. Finally, Section 4
closes with a conclusion and future work.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>UI design has been subject to research for quite some
time now. However, model based methods are
discussed mainly in the context of XML.</p>
      <p>
        The User Interface Markup Language (UIML) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is
an XML language that aims at providing a meta
language for the declarative description of UIs. UIML
maps abstract UI elements to actual platform widgets
and describes events on these elements. The mapping
is based on identifiers with no additional semantics and
must be done by the application. UIML does not
provide a generic mapping approach from a single
abstract specification to different platforms.
Furthermore, the event mapping mechanism is quite
limited. This is addressed by [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] where a similar UI
description is complemented by more sophisticated
behavior specification. However, these are note
comparable to the expressiveness of UML’s behavior
models.
      </p>
      <p>
        The USer interface eXtensible Markup Language
(USIXML) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] addresses the need for more abstraction
in UI design, but still in an XML context. However, it
introduces the idea to create an abstract UI model
based on a domain model that is later refined to a
concrete UI model consisting of existing widgets. This
model is the basis for generating the final UI
implementation. The whole approach is based on XML
and graph transformations [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. It is not aligned with the
UML or behavior modeling in general. However, the
approach could produce UML compliant output and a
UI design tool based on the approach is available [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        Finally, [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] discusses UI modeling using the UML.
Different levels of abstraction exist in the form of a
fixed simple model for abstract UIs that is the
foundation for manual refinement of the abstract model
to the actual application model.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Design Approach</title>
      <p>Our approach is driven by the idea to allow for a
complete separation of the UI and application logic
design. As in MDA, our approach starts with the
creation of a platform independent model. Before
generating a platform specific UI implementation, the
designer can configure the UI on multiple levels of
PIMs, each independent of a target platform. From the
most detailed PIM we can generate a platform specific
UI implementation (see Figure 1). Transformation
rules between the different models facilitate tool
support for our UI development approach.</p>
      <p>Our basic PIM is the Information Model (IM). This
class diagram provides an abstract definition of the
information and their logical dependencies. The goal is
to develop a UI for presenting this information. It is
undistorted by technology information. Therefore, it
allows business experts to ascertain much better than
with a platform specific model and it provides an early
starting point for user interface design.</p>
      <p>Figure 2 shows the IM of an administration interface
of a simple Web server. The Web Server may have a
ContentHandler at a certain Port to which a
Connection can be made by a User to access the
content of a Folder if he has the necessary
Permissions according to his Group
memberships. Furthermore, the pending Requests
and Responses are represented.</p>
      <p>ContentHandler</p>
      <p>Port
* «editable» * + «creatable» Number: Integer
+ «creatable» UseSSL: Boolean
«deletable» *</p>
      <p>InternetAddress
1 + Hostname: String</p>
      <p>+ IPAddress: Integer [1..4] {ordered}</p>
      <sec id="sec-3-1">
        <title>Information Model (IM)</title>
        <sec id="sec-3-1-1">
          <title>Information</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>Metamodel</title>
          <p>The associations and attributes in the IM are marked
to indicate different kinds of data. Generally, the
stereotypes &lt;&lt;readonly&gt;&gt; and &lt;&lt;editable&gt;&gt; mark
associations and attributes as only displayable or
editable. Attributes marked &lt;&lt;editable&gt;&gt; may have
their values altered at runtime while such associations
may have links added and removed. If an association is
marked as &lt;&lt;deletable&gt;&gt;, links may only be removed
in contrast to attributes, which may instead be marked
as &lt;&lt;creatable&gt;&gt; indicating that their value may only
be by the constructor, i.e., when creating a new
instance. If no stereotype is provided for an attribute or
association, &lt;&lt;readonly&gt;&gt; is assumed.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Code Generation</title>
      </sec>
      <sec id="sec-3-3">
        <title>Information Retrieval Model (IRM)</title>
      </sec>
      <sec id="sec-3-4">
        <title>Concrete User Interface Model (CUIM)</title>
        <p>P
ltf
a
o</p>
      </sec>
      <sec id="sec-3-5">
        <title>Implementation Language rm</title>
        <p>D
e
p
e</p>
      </sec>
      <sec id="sec-3-6">
        <title>Platform nde</title>
        <p>M(PodMe)l tn</p>
      </sec>
      <sec id="sec-3-7">
        <title>Transformation Rules</title>
      </sec>
      <sec id="sec-3-8">
        <title>View Composition Model (VCM)</title>
        <p>P
lft
a
o</p>
      </sec>
      <sec id="sec-3-9">
        <title>View Composition rm</title>
        <p>I
n</p>
        <sec id="sec-3-9-1">
          <title>Abstract d</title>
          <p>Abstract User Interface Model (AUIM) UI Elements pe
e</p>
        </sec>
        <sec id="sec-3-9-2">
          <title>Model n</title>
          <p>Transformation Rules (AUIEM) den
t</p>
        </sec>
      </sec>
      <sec id="sec-3-10">
        <title>Information</title>
      </sec>
      <sec id="sec-3-11">
        <title>Retrieval</title>
      </sec>
      <sec id="sec-3-12">
        <title>Definition</title>
        <p>Connection
1
*
*
0..1
*
«editable»
«root»
Server</p>
        <p>*
«editable»</p>
        <p>User
+ «editable» Login: String
+ «editable» Name: String = ""
+ «editable» Password: String
«editable» * + «editable» Description: String = ""
*</p>
        <p>Folder
+ «editable» URI: String
+ «editable» BasePath: String</p>
        <p>*
«editable»
«editable» *
* «editable» *
«editable»</p>
        <p>*</p>
        <p>Group
+ «editable» Name: String</p>
        <p>Permissions
+ «editable» Read: Boolean = false
+ «editable» Write: Boolean = false
+ «editable» List: Boolean = false
+ «editable» Execute: Boolean = false
+type
1
+type
1</p>
        <p>The data types used by the attributes in the IM are
fixed and range from primitive types (e.g. Integer,
Float) to complex types defined by classes. Operations
may define interface application logic that cannot be
captured by the data model, e.g., to send explicit
messages to the application aside from persistent data.</p>
        <p>The whole IM is a composition tree starting by a
&lt;&lt;root&gt;&gt; class whose only instance represents the
whole systems. This enables inference of aggregations
to automatically generate all levels of abstraction from
the IM without the need for user interaction. However,
usually this is not desirable and the UI designer wants
to provide these decisions manually at each level of
abstraction.</p>
        <p>The PIM at the next level is the Abstract User
Interface Model (AUIM). It includes some aspects of
UI technology event though platform-specific details
are absent. Essentially, the AUIM combines the data
from the IM with abstract UI elements to access and
manipulate that data. We have developed a metamodel
–Abstract User Interface Elements Model (AUIEM)–
that defines different UI elements at an abstract level in
terms of related data sets and triggers. This metamodel
can be extended to project-specific needs by using the
UML profiling mechanism.</p>
        <p>Figure 3 shows an excerpt from the AUIEM
employed in our example. This excerpt defines the
Choice UIElement for selecting one Item from a
Set. Furthermore, it provides the necessary elements
to employ the Choice to select an Instance of a
Class or a Link from a Property.</p>
        <p>
          These elements are used in a set of graph
transformation rules [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] that facilitate tool support for
our approach. Each rule consists of a left hand side
(subgraph of the IM) and a right hand side (subgraph
of the respective AUIM to be created). In Figure 4 an
&lt;&lt;editable&gt;&gt; association is mapped to a set of
UIElements for deleting and adding links on the
association. The basic intuition is that every object or
link, which is only present in the right hand side of the
rule, is newly created and every object or link, which is
present only in the left hand side of the rule, is being
deleted. Objects or links which are present on both
sides are unaffected by the rule.
        </p>
        <p>The application order of rules is not determined.
Furthermore, different rules with the same left-hand
side may exist to provide alternative UI elements for
the same structure. The actual choice of the desired
mappings is an interactive design decision that can be
supported by tools. However, complete generation of
the AUIM based on the rules is possible. This could be
interesting in the context of an UI style defining the
actual mappings to be applied.</p>
        <p>L</p>
        <p>&lt;t&gt; :Type
+type
:Class</p>
        <p>&lt;P&gt; :Property
+memberEnd
:Extension</p>
        <p>:Association
+memberEnd
:ExtensionEnd
:Property
«UIElement»
:AddLinkTrigger
«UIElement»</p>
        <p>:Choice
R
&lt;P&gt; :Property
+target
«UIElement»</p>
        <p>:Item
+chosen
«UIElement»</p>
        <p>:Choice
+choices</p>
        <p>«UIElement»
:FilteredInstances
+class</p>
        <p>&lt;t&gt; :Type
+type
«UIElement»
:FilteredLinks
+choices
+chosen
«UIElement»</p>
        <p>:Item
+Link
«UIElement»
:KillLinkTrigger
:Stereotype
name = "editable"
&lt;C&gt; :Class</p>
        <p>&lt;C&gt; :Class
The most detailed PIM is the View Composition
Model (VCM). It partitions the AUIM into several
overlapping and navigable views. Each of these views
provides the scope of a class instance for the contained
UIElements. Thus, master-detail-like views can be
implemented. Furthermore, navigation along Links can
be defined. Finally, views can be composed. Each
contained view either inherits the scope from the
containing view or has the scope provided by links
selected in the containing view. One root view must be
defined. Views enable the purposeful selection of
different platform UI elements for the same
UIElement depending on the overall context of a
view while deriving the Concrete User Interface Model
(CUIM) representing the actual platform dependent
user interface.</p>
        <p>The CUIM is defined by the Platform Model (PM),
which contains a set of available native UI elements on
the target platform. Like in the AUIEM, these elements
are combined with the elements form the Information
Metamodel. Thus, the translation between these
models is based on the substitution of the UIElements
from the AUIEM by native UI elements from the PM.</p>
        <p>The creation of the CUIM not only involves
mapping the UIElements to actual UI controls
(widgets) on the target platform, but also providing
additional layout and decoration. A GUI builder tool
should support the whole task where the designer may
handpick individual mappings for UIElements.
Transformation rules similar to the rules for the
IMAUIM transformation can be employed here. These
rules map UIElements and their context to attributed
and annotated instances of platform specific UI classes.</p>
        <p>The resulting CUIM has to be complemented by the
Information Retrieval Model (IRM) describing how the
data processed by the UI is actually accessed. The IRM
is a behavioral UML model (e.g. an activity diagram)
giving an operational description how to retrieve the
IM elements from the actual implementation. Thus, the
IRM functions as an abstraction layer between the UI
and the application similar to database abstraction
layers. However, the actual implementation of the IRM
may vary and is not discussed here.</p>
        <p>To create the code for an Actual User Interface
Implementation, complete code generation takes place
combining the IRM and CUIM information to a
working platform dependent UI. Again, we use a set of
graph transformation rules for the transformation.</p>
        <p>Conclusion and Future Work</p>
        <p>In this paper, we have proposed a model-driven
design approach for user interfaces based on the UML.
This approach allows concurrent development of UI
and application logic by starting from a common
platform independent information model. Furthermore,
due to our code generation mechanisms we can support
different target platforms from the same abstract
model. The approach has been outlined and discussed
in the context of an interface of a Web.server.</p>
        <p>
          We are currently implementing the results of the
manual execution of our approach for this example.
Future work will include a prototype implementation in
the context of our work in the fields of executable
models [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] and concurrent software components [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Abrams</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Phanouriou</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Batongbacal</surname>
            ,
            <given-names>A. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            ,
            <given-names>S. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shuster</surname>
            ,
            <given-names>J. E.</given-names>
          </string-name>
          :
          <article-title>UIML: an applianceindependent xml user interface language</article-title>
          .
          <source>In Computer Networks</source>
          <volume>31</volume>
          ,
          <string-name>
            <surname>Elsevier</surname>
            <given-names>Science</given-names>
          </string-name>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Bleul</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schäfer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Müller</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Multimodal Dialog Description for Mobile Devices</article-title>
          .
          <source>In Proc. Workshop on XML-based User Interface Description Languages at AVI</source>
          <year>2004</year>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Limbourg</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderdonckt</surname>
          </string-name>
          , J.:
          <article-title>Addressing the Mapping Problem in User Interface Design with UsiXML</article-title>
          .
          <source>In Proc. of 3rd Int. Workshop on Task Models</source>
          and
          <article-title>Diagrams for user interface design TAMODIA'</article-title>
          <year>2004</year>
          , ACM Press, New York,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <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>
          ,
          <string-name>
            <surname>Bouillon</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lopez-Jaquero</surname>
          </string-name>
          , V.:
          <article-title>UsiXML: a Language Supporting Multi-Path Development of User Interfaces</article-title>
          .
          <source>In Proc. EHCI-DSVIS'</source>
          <year>2004</year>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Object</given-names>
            <surname>Management</surname>
          </string-name>
          <string-name>
            <surname>Group</surname>
          </string-name>
          ,
          <source>The: Unified Modeling Language: Infrastructure. OMG ad/2004-10-02</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Object</given-names>
            <surname>Management</surname>
          </string-name>
          <string-name>
            <surname>Group</surname>
          </string-name>
          ,
          <article-title>The: Model Driven Architecture (MDA)</article-title>
          .
          <source>OMG ormsc/2001-07-01</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Pinheiro da Silva</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paton</surname>
            ,
            <given-names>N.:</given-names>
          </string-name>
          <article-title>User Interface Modelling with UML</article-title>
          .
          <source>In Proc. of the 10th EuropeanJapanese Conference on Information Modelling and Knowledge Representation</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Rozenberg</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          et al (eds.):
          <article-title>Handbook of Graph Grammars and Computing by Graph Transformation</article-title>
          , Vol.
          <volume>1</volume>
          . World Scientific, Singapore,
          <year>1997</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Schattkowsky</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Förster</surname>
            ,
            <given-names>A:</given-names>
          </string-name>
          <article-title>A generic Component Framework for High Performance Locally Concurrent Computing based on UML 2.0 Activities</article-title>
          .
          <source>In Proc. 12th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS)</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Schattkowsky</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Müller</surname>
          </string-name>
          , W.:
          <article-title>Model-Based Design of Embedded Systems</article-title>
          .
          <source>In Proc. 7th IEEE International Symposium on Object-oriented Real-time distributed Computing (ISORC)</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <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 17th Conf. on Advanced Information Systems Engineering CAiSE'05 (Porto</source>
          ,
          <fpage>13</fpage>
          -
          <lpage>17</lpage>
          June 2005),
          <string-name>
            <given-names>O.</given-names>
            <surname>Pastor</surname>
          </string-name>
          &amp;
          <string-name>
            <surname>J. Falcão</surname>
          </string-name>
          e Cunha (eds.),
          <source>Lecture Notes in Computer Science</source>
          , Vol.
          <volume>3520</volume>
          , Springer-Verlag, Berlin,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>