<!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>The b ow* Hive { Adding Functionality to Eclipse-based Modelling Tools</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ralf Laue</string-name>
          <email>ralf.laue@fh-zwickau.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Arian Storch</string-name>
          <email>arian.storch@it-factum.de</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Felix Ho</string-name>
          <email>Felix.Hoess@studium.uni-hamburg.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Applied Sciences of Zwickau, Department of Information Science Dr.-Friedrichs-Ring 2a</institution>
          ,
          <addr-line>08056 Zwickau</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Hamburg, Chair of Information Systems</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>it factum GmbH Hainstr.</institution>
          <addr-line>6, 04109 Leipzig</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>The b ow* Hive is a collection of Eclipse plug-ins that can be integrated into various Eclipse-based modeling tools. It adds several features that are useful in particular for model analysis and model exchange. Most of these features put the principle of end user-programming into practice: Modeling tool users can add their own add-ons at runtime without having to re-compile the original modeling tool. We hope that this will be useful in particular for researchers. They can extend a modeling tool with own model analysis features without having to touch the sources of the modeling tool.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The b ow* Toolbox [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is an Eclipse-based open-source tool for graphical business
process modeling using the Event-Driven Process Chains notation. From the
beginning, it was the aim of its developers to make the tool open for contributions.
While this is quite normal for an open-source product, we tried to go one step
further. We provided interfaces to third-party tools such that those tools can be
integrated into our modeling tool without having to become familiar with our
source code or with Eclipse programming. A survey by Hannebauer et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
showed that a major part of the barrier to contribute to open-source software is
the e ort invested until the rst build. By lowering this barrier, we hope that
more contributors can be encouraged to add their own extensions to our modeling
tool.
      </p>
      <p>While in the rst years, our work concentrated on our own tool, we soon
realized that this idea could be useful for other graphical modeling tools as well.
Therefore we refactored our code which resulted in Eclipse plug-ins that can
Copyright c 2015 for this paper by its authors. Copying permitted for private and
academic purposes
be used with other modelling tools based on Eclipse using EMF and GMF or
Graphiti. As a result, modellers and researchers can add their own extensions to
those tools.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Features</title>
      <sec id="sec-2-1">
        <title>Export / Import</title>
        <p>We provide two ways for adding a transformation into or from an external le
format: either by using XSLT or by using a transformation language which is based
on the template language Apache Velocity. A new export/import can be added
by creating a transformation script le, another le de ning the transformation
metadata (for instance, name or description) and placing both into a subdirectory
of the modelling tool's workspace.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>User-De ned Attributes and Icons</title>
        <p>For model analysis purposes, it is often desirable to add custom-de ned attributes
to model elements (for example information about cost and duration to an activity
or a probability to a control- ow edge). Unfortunately, this is not always supported
by the original modelling tool. We created a new Eclipse view called \Attribute
View" which allows to add arbitrary attributes to model elements. An attribute
can be a numerical or textual value or an URL. In the latter case, the resource
located by the URL can be opened from the Attribute View. This makes it
possible to attach les or web sites with additional information to any node or
vertex in the model. Additionally, a \Filter View" allows to show only those
model elements whose attributes have a certain value (for example all activities
where the attribute \cost" is larger than a given value).</p>
        <p>
          It is possible to de ne that the shapes of the diagram should be decorated
with icons when the value of a user-de ned attribute is within a given range.
For this purpose, the icon graphics and a map from attribute values to icons
to be shown has to be added to a subfolder of the modeling tool. Using this
mechanism, we were able to include the EPC model variant for Risk-aware
Event-Driven Process Chains [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] into the b ow* Toolbox without the need to
change the metamodel. Fig. 1(a) shows the Attribute View integrated into the
BPMN2 Modeler (www.eclipse.org/bpmn2-modeler/); Fig. shows 1(b) an event
in the b ow* Toolbox with a decorating \Risk" icon.
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Model Validation</title>
        <p>
          For improving the model quality, it can be desirable to give the modeller feedback
about possible modelling problems or detected anti-patterns at modelling time.1
For this purpose, we provide a mechanism to de ne checking rules in three
1 The reader who is interested in this, might alternatively consider to use the EMF
Refactor project, see www.eclipse.org/emf-refactor [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]
(a) User-De ned Attributes added to the BPMN2
Modeler
(b) Shape with
        </p>
        <p>Icon
languages: the Epsilon Validation language (EVL), openArchitectureWare Check
and Prolog. For rules expressed in EVL, it is also possible to de ne so-called
\Quick-Fixes", i.e. model transformations that correct a problem.</p>
        <p>The b ow* Hive provides the functionality for adding user-de ned validation
rules, for selecting the rules that should be applied, for the internationalisation
of problem messages and for changing the problem messages according to the
users' preferences. Fig. 2 shows how validation rules have been integrated into
openOME, a tool for goal-oriented requirements modelling.
2.4</p>
        <p>Add-ons
The framework allows to de ne \add-ons". An add-on can be described as a
sequence of steps which de nes how to...
1. Extract the model data and translate it into the input format that is required
by an external program.
2. Call the external program or a chain of such programs with speci ed
parameters.
3. Read the result data of the program(s).
4. Show the result by changing one or more views in the modeling tool.</p>
        <p>For each of those steps, our framework already provides out-of-the-box
components which just need to be invoked in the right order and with the right
parameters.</p>
        <p>Fig. 3 shows possible executions of an add-on. As illustrated, the components
are combined using a pipes-and- lters architecture.</p>
        <p>The called program(s) deliver the result by writing either into a le or to the
standard output stream of the process. To update a view of the model within the
modeling tool, the rightmost component in Fig. 3 a) requires an input in form of
prede ned commands. If the external program does not provide the output in
the required format, we have to call another program as an adapter. For showing
the results of the external program(s), it is possible to use components that can
do the following actions:
{ Printing information into the Eclipse Console View
{ Adding information about an error, warning or information Eclipse's Problems</p>
        <p>View
{ Changing the label or the graphical attributes (e.g. size, color, font-style) of
model elements
{ Changing the user-de ned attributes of model elements (in addition, this can
result in decorating a model element with icons) (as shown in Fig. 1(b))
{ Showing a generated HTML page</p>
        <p>
          With the help of the add-on mechanism, extensions in great variety have been
developed. There are add-ons for model-checking, quality-of-service calculation for
business processes, business process simulation [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], risk management, simulation
of projects expressed as IDEF-0-like diagrams [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], checking the conformance of
element labels to grammatical style rules and for nding modeling anti-patterns
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. Thanks to the add-on framework in the b ow* Hive, it was possible to add
all this functionality without having to change the sources of the modeling tool.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>How to Obtain</title>
      <p>
        The b ow* Hive is already integrated into our own EPC modelling tool b ow*
Toolbox (http://b ow.org), into UPROM [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] (a modeler that allows functional
software size estimation) and into the requirements modeling tool openOME
(http://sourceforge.net/projects/openome/).
      </p>
      <p>The source code can be obtained from https://github.com/b owtoolbox/app
where all plug-ins named org.b ow.toolbox.hive.* are part of the tool-independent
b ow* Hive. With the help of these plug-ins, modeling tool developers can include
the functionality described in this article into their own Eclipse-based modeling
tool. The easiest way for a user to pro t from the features provided by the b ow*
Hive in the modelling language of his or her choice is to download the most recent
version of the b ow* Toolbox from the web site mentioned above and to use
Eclipse's update mechanism for adding support for other modelling languages.</p>
      <p>We are looking forward to reports from people who made use of the b ow* Hive
into their tools, developed le exports, imports or add-ons using our mechanism
or improved the source-code of the b ow* Hive.</p>
      <p>Any questions related to our plug-ins are welcome to bflow@bflow.org.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Bohme,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Hartmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Kern</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.</surname>
          </string-name>
          , Kuhne,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Laue</surname>
          </string-name>
          ,
          <string-name>
            <surname>R.</surname>
          </string-name>
          , Nuttgens,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rump</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.J.</given-names>
            ,
            <surname>Storch</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.:</surname>
          </string-name>
          <article-title>b ow* Toolbox - an open-source business process modelling tool</article-title>
          .
          <source>In: Proceedings of the Business Process Management 2010 Demonstration Track</source>
          . (
          <year>2010</year>
          )
          <volume>46</volume>
          {
          <fpage>51</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Hannebauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Book</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gruhn</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>An exploratory study of contribution barriers experienced by newcomers to open source software projects</article-title>
          .
          <source>In: Proceedings of the 1st International Workshop on CrowdSourcing in Software Engineering. CSI-SE</source>
          <year>2014</year>
          , New York, NY, USA, ACM (
          <year>2014</year>
          )
          <volume>11</volume>
          {
          <fpage>14</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Rieke</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winkelmann</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Modellierung und Management von Risiken</article-title>
          .
          <article-title>Ein prozessorientierter Risikomanagement-Ansatz zur Identi kation und Behandlung von Risiken in Geschaftsprozessen</article-title>
          .
          <source>Wirtschaftsinformatik</source>
          <volume>50</volume>
          (
          <year>2008</year>
          )
          <volume>346</volume>
          {
          <fpage>356</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Arendt</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taentzer</surname>
          </string-name>
          , G.:
          <article-title>A tool environment for quality assurance based on the Eclipse Modeling Framework</article-title>
          .
          <source>Automated Software Engineering</source>
          <volume>20</volume>
          (
          <year>2013</year>
          )
          <volume>141</volume>
          {
          <fpage>184</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Muller, C.:
          <article-title>Generation of EPC based simulation modells</article-title>
          .
          <source>In: 25th European Conference on Operational Research</source>
          . (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Schneider</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <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>Mutze-Niewohner, S.: Graphical modelling and simulation of product development projects</article-title>
          .
          <source>In: Proceedings of the 2012 European Simulation and Modelling Conference ESM'</source>
          <year>2012</year>
          ,
          <string-name>
            <surname>EUROSIS</surname>
          </string-name>
          (
          <year>2011</year>
          )
          <volume>285</volume>
          {
          <fpage>292</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gruhn</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laue</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A heuristic method for detecting problems in business process models</article-title>
          .
          <source>Business Process Management Journal</source>
          <volume>16</volume>
          (
          <year>2010</year>
          )
          <volume>806</volume>
          {
          <fpage>821</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Aysolmaz</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Demirors, O.:
          <article-title>Automated functional size estimation using business process models with UPROM method</article-title>
          .
          <source>In: 2014 Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement</source>
          . (
          <year>2014</year>
          )
          <volume>114</volume>
          {
          <fpage>124</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>