<!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>Adding Functionality to openOME for Everyone</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ralf Laue</string-name>
          <email>laue@ebus.informatik.uni-leipzig.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Arian Storch</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Chair of Applied Telematics / e-Business, University of Leipzig</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <fpage>169</fpage>
      <lpage>171</lpage>
      <abstract>
        <p>Adding new functionality to graphical editors like openOME usually requires to become familiar with the programming environment of the underlying framework. We present an interface for Eclipse EMF/GMF-based modelling tools that allows to add new functionality very quickly - without the need to be familiar with Eclipse development.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1.1</p>
    </sec>
    <sec id="sec-2">
      <title>User-Defined Attributes</title>
      <p>An additional view for user-defined attributes allows to add own attributes to
model elements or to a model as a whole. Fig. 1 shows how user defined attributes
have been added to a task in an ı˙∗ model. If a URL referring to a local or remote
file is used as an attribute value, this file can be opened by clicking on the
URL. This way, it is possible to associate additional files to a model element (for
example business process descriptions that are related to a task).
1.2</p>
    </sec>
    <sec id="sec-3">
      <title>Export and Import</title>
      <p>
        By using the Eclipse Modeling Toolbox, it is possible to create export and import
functionality for other file formats. This export and import is done by means of
XSLT transformations. So far, we have created transformations for exporting an
openOME model to a set of Prolog facts. We are currently working on an export
to the interchange format iStarML [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>A new format can be supported by simply adding a new XSLT file and
inserting information about the export/import format to a configuration file.
We tried to make the integration of third-party programs into openOME as easy
as possible. We know from our own experience that often a lot of knowledge is
necessary before someone can actually do such integration. At least, the answers
to the following questions have to be known:
– How can we access the model data and transform them into the data format
expected by the third-party program?
– How can we start the third-party program from within the modeling tool?
– How can we transfer the answers given by the third-party program back into
the user interface of the modeling tool?</p>
      <p>With our plugins , we provide easy-to-understand interfaces for dealing with
the above questions. The already mentioned export scripts can be used for
accessing and transforming the model (including its user-defined attributes as
described in Sect. 1.2).</p>
      <p>The information on how to start the external program can be added to a
configuration table at runtime, either manually or by importing an XML file
containing the necessary information. This creates a new menu item from which
the external program can be started.</p>
      <p>Finally, we have to make sure that the results computed by the third-party
tool are transferred back into the openOME user interface. For this purpose, we
provide several interfaces. They abstract away Eclipse implementation details
and allow the external program
– to print information into the Eclipse console view,
– to add information about an error, warning or information to the Eclipse
problem view
– to add a visual marker to the graphical model element,
– to add, delete or change attributes of the modelling elements (which includes
existing attributes such as “name”, graphical attributes such as “element
size” and user-defined attributes)</p>
      <p>With the described features, it is possible to integrate new functionality into
openOME without having to learn about Eclipse development. In the most cases,
new features can be added even without having to compile the sources.
1.4</p>
    </sec>
    <sec id="sec-4">
      <title>Validation</title>
      <p>
        As an example for a useful openOME add-on, we have developed an add-on called
“Extended Model Validation”. It exports the information that is contained in the
model into a set of Prolog facts. Afterwards, SWI-Prolog is called for locating
modelling problems such as syntactical errors (like “dependency link without
dependum”), layout problems and (to some extent) problems with the labels
(like labels including the phrase “...to be...” within a task instead of a goal).
More information about the model validation approach can be found in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
2
      </p>
      <p>Status and Future Plans
It is important to mention that the Eclipse Modeling Toolbox can be
integrated within any EMF/GMF-based modelling tool. It has been used successfully
within the business process modelling tool bflow* for the development of some
useful add-ons. Future plans related to openOME include to provide iStarML
import and to add more functinality to the add-on-mechanism. Everyone is
invited to use and improve the Eclipse Modeling Toolbox which is available at
http://sourceforge.net/projects/eclipsemodeling/.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. www.cs.toronto.edu/km/openome/:
          <article-title>(Openome, an requirements engineering tool)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Cares</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Susi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards interoperability of i* models using iStarML</article-title>
          .
          <source>Computer Standards &amp; Interfaces</source>
          <volume>33</volume>
          (
          <year>2011</year>
          )
          <fpage>69</fpage>
          -
          <lpage>79</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Laue</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A flexible approach for validating i* models</article-title>
          .
          <source>In: Proceedings of the 5th International i* Workshop</source>
          , Trento,
          <string-name>
            <surname>Italy.</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>