<!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>Applying UI patterns for modeling dialogs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mathias Kühn</string-name>
          <email>mathias.kuehn@uni-rostock.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Forbrig</string-name>
          <email>peter.forbrig@uni-rostock.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Rostock Department of computer science Albert-Einstein-Str.</institution>
          <addr-line>22 18051 Rostock</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Software designs for use on interactive devices can be specified with models. Model-based languages allow layout specifications of UIs on different levels of abstraction. Specifications of dialogs can for instance be made with statecharts. Languages that allow specifications based on statecharts need to be adapted for use together with UI layout models. UI patterns can be applied to user interface layout and behavior designs. Corresponding specifications based on UI models can be created and changed with editors for use with platformspecific interpreters afterwards. The paper focusses the effects of UI pattern application on model-based specifications.</p>
      </abstract>
      <kwd-group>
        <kwd>user interface modeling</kwd>
        <kwd>dialog models</kwd>
        <kwd>user interface patterns</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        User interface (UI) models as platform-independent as well as dependent
specifications of interactive software surfaces can be used for runtime interpretations based on
operations of model-driven engineering. According to the Cameleon Reference
Framework (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), these operations are context-dependent transformations that result in
final user interface models for platform-specific use. Beside structures, also UI
behavior needs to be specified that refers dialog models (
        <xref ref-type="bibr" rid="ref7">7</xref>
        ) directly. UI patterns (
        <xref ref-type="bibr" rid="ref8 ref9">8,9</xref>
        ) can be
applied for specifying models that describe how parts of the UI are presented to the
user. As result, models can be created as well as changed just by applying patterns
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ). In the end, manipulated specifications can instantly be used by interpreters that
consider models at runtime. Users directly can see the effects under their platform.
However, UI patterns can reduce the effort for designing models. The following
sections focus on models for user interface layout and behavior together with UI pattern
application. A survey example gives an overview on how to apply the proposed
approach. The effects of UI patterns at design- and run-time are shown on specifications
together with generated UI instances.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>
        Models for user interfaces can be specified on different levels of abstraction.
Languages like UsiXML (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) and MARIA (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ) allow abstract and concrete UI
specifications. According to the Cameleon Reference Framework (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), task models, abstract-,
concrete-, and final-UI models can be transformed into each other. The transformation
types are abstractions (concrete to abstract models), reifications (abstract to concrete
models), and translations (models into other contexts). However, the framework
allows generating UIs depending on various contexts of use, which are specifications of
users, platforms, and environments.
      </p>
      <p>
        Behavior of software can be specified with statecharts (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ). Languages like SCXML
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) and XMI (
        <xref ref-type="bibr" rid="ref10">10</xref>
        ) allow specifications that consider states, what could be settings of
UIs, and transitions, what could be UI events triggered by users. Regarding the
Cameleon Reference Framework, statechart specifications also need to be considered
on different levels of abstraction. This results in platform-specific abstractions and
reifications of events. Statecharts explicitly do not consider the creation of objects.
Following this, mentioned languages need to be extended by specific transitions for
creating UIs at runtime (
        <xref ref-type="bibr" rid="ref7">7</xref>
        ).
      </p>
      <p>
        Considering dialogs, designers for instance are interested in specifying how users
can navigate within the UI. Tidwell (
        <xref ref-type="bibr" rid="ref8">8</xref>
        ) and van Welie (
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) identified UI patterns for
navigation. Some of them are stepwise, hub-and-spoke, pyramid, fully-connected, and
multi-level. UI dialogs that are specified with statecharts can be manipulated with
transitions and states depending on certain patterns. These automatically can be added
to and removed from the statechart.
      </p>
    </sec>
    <sec id="sec-3">
      <title>UI patterns for dialog modeling</title>
      <p>Patterns for user interfaces help not only to find well established solutions for
recurring UI design problems but also to manipulate existing solutions for
implementing changed requirements. For instance, UI patterns for navigation could be used for
generating dialog specifications. According to this, changing applied patterns would
result in adapting generated specifications. However, UI pattern applications consider
needs not only of designers but also of users. For instance, UI patterns for layout can
make UIs clearer and more usable in the end.</p>
      <p>The following example gives an overview on how to apply UI patterns for dialog
specifications of interactive software systems. The example is a survey on using
vehicles in everyday life. Participants are asked about personal information (e.g. gender,
age) and their preferred vehicles for going to school or to work (e.g. bicycle, car,
bus/train). For this reason, an interactive form is prepared that can be used as
questionnaire of the survey application. Participants are guided through the questionnaire
and can answer questions step by step. Layout and dialog specifications are needed
for interactive forms that can be generated on various devices afterwards.</p>
      <p>Fig. 2 shows the first part of the layout specification of questionnaires as
interactive forms. These are specified as concrete UI model in UsiXML. Beside the
specification are some generated user interfaces. It is assumed that tool support is available
that allows designing forms in UsiXML. After designing UI layouts, designers can
apply UI patterns for navigation. For example, applying the UI pattern hub-and-spoke
would result in generating a distinct UI that is some kind of overview. This overview
holds links to the generated UIs. Additionally, all specified UIs would also be added
with links for navigating to the overview UI. However, another example would be to
apply the UI pattern stepwise instead of hub-and-spoke. The following figure shows
instances of the applied pattern.
Fig. 3 shows the first part of the layout specification of Fig. 2 after applying the UI
pattern stepwise. A button next0 is added for navigating to the next UI.
Additionally, the dialog specification is generated that is based on SCXML. Added buttons
allow navigating between the questionnaire forms. Transitions consider events triggered
by added buttons. Participants interactively can go through the questionnaire forms by
using the Back and Next buttons. However, changing the navigation structure can be
made by applying other patterns.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Summary and outlook</title>
      <p>User interface patterns can be used for designing specifications based on UI
models for layout and behavior. The example of a survey on vehicle usage showed how to
apply patterns for generating dialogs. Pattern application generates transitions within
statechart specifications that are used as dialog of the user interface. Also the UI
layout can be manipulated according to the related pattern. The proposed approach uses
the model-based languages UsiXML, which can be used for layout specifications of
UIs, and SCXML, which can be used for statechart-based specifications. The example
showed how to apply the UI pattern stepwise within specifications based on the
approach.</p>
      <p>Future work need to be done on giving tool support for UI pattern application. For
instance, designers can create forms with a common UI designer tool and apply
different patterns just by selecting them from a list. Specifications are generated and
manipulated accordingly and can instantly be used with platform-specific interpreters
on user-related devices. However, model-based languages benefit generating UIs
depending on a specific context, what is a goal of corresponding applications.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <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>In: Interacting with computers</source>
          , vol.
          <volume>15</volume>
          , pp.
          <fpage>289</fpage>
          -
          <lpage>308</lpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Gamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helm</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Johnson, R., and
          <string-name>
            <surname>Vlissides</surname>
            ,
            <given-names>J.: Design</given-names>
          </string-name>
          <string-name>
            <surname>Patterns</surname>
          </string-name>
          .
          <article-title>Elements of Reusable Object-Oriented Software</article-title>
          , 1st ed.
          <source>Prentice Hall</source>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>A Visual Formalism for Complex Systems</article-title>
          .
          <source>In: Science of Computer Programming</source>
          <volume>8</volume>
          , vol.
          <volume>3</volume>
          , pp.
          <fpage>231</fpage>
          -
          <lpage>274</lpage>
          (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Kistner</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Nuernberger</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Developing User Interfaces using SCXML Statecharts</article-title>
          .
          <source>In: Proceedings of EICS 14 Workshop</source>
          , pp.
          <fpage>5</fpage>
          -
          <lpage>11</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Limbourg</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Vanderdonckt</surname>
          </string-name>
          , J.:
          <article-title>UsiXML: A User Interface Description Language Supporting Multiple Levels of Independence</article-title>
          .
          <source>In: Proceedings of ICWE 2004 Workshop</source>
          , pp.
          <fpage>339</fpage>
          -
          <lpage>352</lpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Paternò</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santoro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Spano</surname>
          </string-name>
          , L. D.:
          <article-title>MARIA: A universal, declarative, multiple abstraction-level language for service-oriented applications in ubiquitous environments</article-title>
          .
          <source>In: Transactions on Computer-Human Interaction</source>
          , vol.
          <volume>16</volume>
          ,
          <issue>4</issue>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Schlungbaum</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Elwert</surname>
          </string-name>
          , T.:
          <article-title>Dialogue graphs: a formal and visual specification technique for dialogue modelling</article-title>
          .
          <source>In: BCS-FACS</source>
          , pp.
          <volume>13</volume>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Tidwell</surname>
          </string-name>
          , J.:
          <source>Designing Interfaces</source>
          , 2nd ed. O
          <string-name>
            <surname>'Reilly Media</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. van Welie,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Interaction Design Pattern Library</article-title>
          . http://www.welie.com/patterns/
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>XML</given-names>
            <surname>Metadata</surname>
          </string-name>
          <article-title>Interchange (XMI): http:// www</article-title>
          .omg.org/spec/XMI/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>