<!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>Advanced Features for Model Visualization in the UML and OCL Tool USE</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martin Gogolla</string-name>
          <email>gogolla@uni-bremen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Haleh Havakili</string-name>
          <email>havakili@uni-bremen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carsten Schipke</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University Of Bremen</institution>
          ,
          <addr-line>Database Systems</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <fpage>203</fpage>
      <lpage>207</lpage>
      <abstract>
        <p>The tool USE (UML-based Specification Environment) ofers functionalities for UML model validation, verification and exploration. The tool supports to describe system structure and behavior with class models, protocol state machines and imperative operation implementations on the modeling level, utilizing OCL constraints (a) for class and state invariants as well as (b) for operation and transition contracts. Validation and verification relies on the construction of object model snapshots. This contribution focuses on advanced visualization features that have recently been developed for object models. Using these new features, it is now feasible (a) to take advantage of various automatic layout options for object models and (b) to express advanced views on object models concentrating not only on classes but utilizing also associations.</p>
      </abstract>
      <kwd-group>
        <kwd>UML</kwd>
        <kwd>Class model</kwd>
        <kwd>Object model</kwd>
        <kwd>Object model visualization features</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The tool USE (UML-based Specification Environment) [ US20] ofers essential
functionalities for model validation, verification and exploration of UML and OCL models. The tool
allows the developer to catch system structure and behavior with class models, protocol state
machines and operation implementations on the modeling level, utilizing OCL expressions
(a) for class and state invariants, (b) for operation and transition contracts and (c) for
imperative operation implementation on the model level [GBR07, GHD18]. Recently, USE
has added new options for object models, i.e., object diagrams, that comprise (a) automatic
layout options and (b) advanced views based on associations, in addition to views based on
classes available formerly.</p>
      <p>The automatic layout options allow the developer to choose from various basic layout
forms (horizontal, vertical, swimlane) with variations (e.g., top to bottom, left to right). The
automatic layout is parameterized by interactive settings for horizontal and vertical object
distances. The automatic layout is applied only to objects and links visible at the time when
the automatic layout is called and thus interacts with options for building views discussed
below. For the layout, links are interpreted as being directed, and the direction (e.g., top to
bottom) and with this the placement of objects follows the specification in the textual USE
class model in which the roles from an association are declared in a particular order.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Recent USE Extensions and Improvements for Visualization</title>
      <p>Figure 1 shows a first USE screenshot in which the new options for automatic object layout
are demonstrated. The class model (A) describes political parties that can participate in
elections for an area that is divided into certain districts, as shown in the figure center. The
voting result is recorded with an association class that (as usual in Germany) distinguishes
between the number of first votes (for a candidate of a party) and second votes (for the
party itself). Both Party and District objects show in derived attributes the accumulated
sum of first and second votes for the Party and District, respectively. For example, the
top-most Voting link-object in the object model in the left reflects that the (liberal) party
‘FDP’ received in the German federal state Hessen (HE) in year 2017 during the election for
the Bundestag about 238.000 first votes (number of votes given in 1000 votes), ‘FDP’ in
Germany received in total about 3.241.000 votes, and in Hessen about 3.262.000 people
casted a first vote ballot. The default, clumsy object model (B) in the top middle together
with the ‘Object count’ and ‘Link count’ windows (C) in the top right reveal that 118 objects
are present (16 Districts=FederalStates + 6 (main) Parties + 96=16*6 Votings). From these
118 objects the ones connected to Hessen are selected through the ‘Selection by OCL
expression’ window (D), and these objects are automatically layouted with the ‘Horizontal
layout’ and the indicated spacing parameters (E). The result (F) is displayed in the left
‘Object diagram’ window. Additionally the Voting objects have been selected and are shown
in light gray in order to put emphasis on the Party objects and the single District object.</p>
      <p>Advanced UML Model Visualization Features 205</p>
      <p>Object model usage: In order to emphasize the import role of object models in our setting,
let us sketch invariant independence (each single invariant cannot be deduced from the other
invariants; details see [GHD18]): As the two invariants in Fig. 2 are independent, USE
supports proving independence by automatically calculating two object models (not shown
here); one in which the 1st invariant holds and the 2nd invariant fails; and one in which the
1st invariant fails and the 2nd invariant holds.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Conclusion</title>
      <p>We have demonstrated how the UML and OCL modeling tool USE has been extended and
improved recently by new visualization features for automatic object model layout and for
building sophisticated object model views utilizing associations and links.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [GBR07]
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Büttner</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Richters</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>USE: A UML-Based Specification Environment for Validating UML and OCL</article-title>
          .
          <source>Science of Computer Programming</source>
          , Elsevier,
          <volume>69</volume>
          :
          <fpage>27</fpage>
          -
          <lpage>34</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [GHD18]
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Hilken</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Doan</surname>
          </string-name>
          , K.-H.:
          <article-title>Achieving Model Quality through Model Validation, Verification and Exploration</article-title>
          .
          <source>Computer Languages, Systems and Structures</source>
          , Elsevier,
          <volume>54</volume>
          :
          <fpage>474</fpage>
          -
          <lpage>511</lpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [Go12] [Ja19]
          <string-name>
            <surname>González</surname>
            ,
            <given-names>C.A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Büttner</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Clarisó</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ; Cabot,
          <string-name>
            <surname>J.:</surname>
          </string-name>
          <article-title>EMFtoCSP: A tool for the lightweight verification of EMF models</article-title>
          . In (Gnesi,
          <string-name>
            <given-names>S.</given-names>
            ;
            <surname>Gruner</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          ; Plat,
          <string-name>
            <given-names>N.</given-names>
            ;
            <surname>Rumpe</surname>
          </string-name>
          , B., eds):
          <source>Proc. 1st Int. Workshop Formal Methods in Software Engineering. IEEE</source>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Jackson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Alloy: A language and tool for exploring software designs</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>62</volume>
          (
          <issue>9</issue>
          ):
          <fpage>66</fpage>
          -
          <lpage>76</lpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [SBP08]
          <string-name>
            <surname>Steinberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Budinsky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Paternostro</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>EMF: Eclipse Modeling Framework, 2nd Edition</article-title>
          . Addison Wesley,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <source>USETeam: USE: UML-based Specification Environment, Version</source>
          <volume>5</volume>
          .2. SourceForge together with University of Bremen,
          <year>2020</year>
          . https://sourceforge.net/projects/useocl/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>