<!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>A Flexible Approach for Validating ı˙</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>32</fpage>
      <lpage>36</lpage>
      <abstract>
        <p>In this article, we present a flexible approach to verify the syntactical correctness of ı˙∗ models. We translate the information that is included in an ı˙∗ model into a set of Prolog facts. Logical reasoning is applied for finding problems in a model. Our validation method has been implemented in the openOME modelling tool. By using our validation add-on, modellers get feedback about problems and possible improvements of the model.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Models</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>
        Based on experiences from teaching the ı˙∗ framework to students it has been
reported that beginners often misunderstand the concept of some elements of
the ı˙∗ modelling language [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. They would profit from a modelling tool that can
not only locate problems resulting from such misunderstandings, but also gives
feedback on correcting the model.
      </p>
      <p>Furthermore, the ı˙∗ framework is open to extensions and adaptions. For
this reason, a modelling tool should support various modelling styles. It should
be able to check whether a model conforms to a given style or to modelling
conventions that exist in an organisation.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Scientific Contributions</title>
      <p>
        A modelling tool should assist its users when they have to create models that
adhere to the restrictions of the modelling language. First and foremost, the model
has to conform to the metamodel of the language. For the language ı˙∗, several
publications have suggested such a metamodel [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. By enforcing metamodel
conformance, an ı˙∗ modelling tool can prevent syntactical modelling errors like an
actor being modelled inside another actor. However, metamodel conformance
does not yet mean that a model is correct with respect to the language
definition. There are additional semantic constraints such as “There should not be a
cycle made from actor association links”.
      </p>
      <p>
        For checking this type of constraints, the use of the Object Constraint
Language (OCL) has been suggested in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. When we integrated validation support
into the ı˙∗ modelling tool OpenOME, we followed another approach that is based
on logic programming: First, we translate the information that is contained in a
model into a set of Prolog facts. Afterwards, logical reasoning is used for locating
problems. For translating an ı˙∗ model into the corresponding Prolog facts, we
use a simple XSLT transformation. An ı˙∗ model that needs to be validated is
translated automatically into a set of Prolog facts by this XSLT transformation.
role(’_nKlm’).
elementname(’_nKlm’, ’Internet Provider’).
task(’_LX3l’).
elementname(’_LX3l’, ’Provide Internet Access’).
contains(’_nKlm’, ’_LX3l0’).
softgoal(’_xdXW’).
elementname(’_vgGY’, ’Security and Privacy’).
contains(’_nKlm’, ’_vgGY’).
anddecomposition(’_LX3l0’, ’_xdXW’).
shape(’_nKlm’, 2005, 822, 1096, 924).
shape(’_LX3l’, 190, 423, NaN, NaN).
      </p>
      <p>shape(’_xdXW’, 1730, 1356, NaN, NaN).
to detect issues like the mentioned problem of cycles within actor dependency
links.</p>
      <p>
        Note that the size of position of the modelling elements are available as
Prolog facts as well, allowing reasoning about the layout of the model. This
allows to search for problems like the one depicted in Fig. 3. While the model is
syntactically correct, the direction of one of the task decomposition links should
be changed such that a task that is decomposed into a sub-task is always located
above the sub-task. The possibility to deal with this kind of layout problems is an
advantage of our approach compared to the OCL-based method described in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
Another advantage is that by exporting the model as Prolog facts, we have access
to a variety of methods that can analyse the textual labels of model elements.
This can be used for finding violations of naming conventions. In our current
implementation, we use a heuristic method that analyses the labels and tries to
detect two common types of errors: goals that have wrongly been modelled as
tasks and softgoals that have been wrongly modelled as goals.
      </p>
      <p>
        We have included all rules about semantic constraints that can be found in
the ı˙∗ wiki (http://istar.rwth-aachen.de) as well as some other validation rules
described in the literature [
        <xref ref-type="bibr" rid="ref3 ref4 ref5">3–5</xref>
        ] or identified by our own analysis. It is possible
to configure the subset of rules to be applied, which allows to use different styles
for ı˙∗ models. For all ı˙∗ models validated so far (including rather large
models with more than 100 elements), our validation mechanism delivered a result
within one second. In order to prevent performance problems due to running the
validation in background, we start the validation mechanism by executing it on
demand by selecting a menu item. It should, however, be possible to use the
validation mechanism as a background process without affecting the performance
(as reported in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] for a similar case).
      </p>
      <p>
        Fig. 4 shows how detected problems are reported by the modelling tool: Each
problem is shown as error or warning in the “Problems View” of the modelling
tool. Also, a visual marker is added to the model element for which the problem
has been found. If the modeller needs more information about the detected
problem, it is possible to look up additional information about each problem
class on a web site. We have already established links to the various guidelines
available on the ı˙∗ wiki. A novice user can quickly learn to draw correct ı˙∗ models
by following the cycle “Model – Validate – Learn about the reported errors –
Correct”.
The approach described in this paper has been implemented as a plugin into the
Eclipse-based tool openOME. It is flexible enough to be used with every model
editor that is based on Eclipse EMF/GMF. Previously, we have implemented
the same validation mechanism into the business process model editor bflow*
Toolbox. In a controlled experiment [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], we made the observation that providing
an immediate feedback about modelling errors had a significant influence on
model quality: The group provided with validation support made 6 errors in 7
models. For the control group which had to solve the same modelling task using
the same tool without validation support we counted 24 errors in 6 models [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Ongoing and Future Work</title>
      <p>
        We are interested in extending the approach described in this paper by analysing
the texts used in the models more deeply. This would make it possible to check
for style rules such as “The infinitive of a verb together with an object has to
be used for describing a task.” Other interesting challenges would be to
integrate the ideas of the Goal Clarification Method described in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and to develop
recommendations for correcting a erroneous model.
      </p>
      <p>Developers who are interested in using or improving our plug-in are invited to
do so. More information about the plugins can be found at the Eclipse Modeling
Toolbox project site http://sourceforge.net/projects/eclipsemodeling.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Horkoff</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Elahi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abdulhadi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Reflective analysis of the syntax and semantics of the i* framework</article-title>
          . In: Advances in Conceptual Modeling,
          <source>Challenges and Opportunities. Volume 5232 of Lecture Notes in Computer Science</source>
          . Springer (
          <year>2008</year>
          )
          <fpage>249</fpage>
          -
          <lpage>260</lpage>
        </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>Lopez</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marco</surname>
          </string-name>
          , J.:
          <article-title>Definition and uses of the i* metamodel</article-title>
          .
          <source>In: Proceedings of the 4th International i* Workshop</source>
          , Hammamet, Tunisia. Volume
          <volume>586</volume>
          of CEUR Workshop Proceedings., CEUR-WS.org (
          <year>2010</year>
          )
          <fpage>20</fpage>
          -
          <lpage>25</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Amyot</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yan</surname>
            ,
            <given-names>J.B.</given-names>
          </string-name>
          :
          <article-title>Flexible verification of user-defined semantic constraints in modelling tools</article-title>
          .
          <source>In: Proceedings of the 2008 Conference of the Center for Advanced Studies on Collaborative Eesearch: Meeting of Minds</source>
          . (
          <year>2008</year>
          )
          <volume>7</volume>
          :
          <fpage>81</fpage>
          -
          <lpage>7</lpage>
          :
          <fpage>95</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Amyot</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horkoff</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gross</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mussbacher</surname>
          </string-name>
          , G.:
          <article-title>A lightweight GRL profile for i* modeling</article-title>
          . In: Advances in Conceptual Modeling - Challenging
          <string-name>
            <surname>Perspectives</surname>
          </string-name>
          ,
          <article-title>ER 2009 Workshops</article-title>
          . Volume
          <volume>5833</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2009</year>
          )
          <fpage>254</fpage>
          -
          <lpage>264</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. de Pa´dua Albuquerque Oliveira,
          <string-name>
            <surname>A.</surname>
          </string-name>
          , do Prado Leite,
          <string-name>
            <given-names>J.C.S.</given-names>
            ,
            <surname>Cysneiros</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.M.:</surname>
          </string-name>
          <article-title>Using i* meta modeling for verifying i* models</article-title>
          .
          <source>In: Proceedings of the 4th International i* Workshop</source>
          , Hammamet, Tunisia. Volume
          <volume>586</volume>
          of CEUR Workshop Proceedings., CEUR-WS.org (
          <year>2010</year>
          )
          <fpage>76</fpage>
          -
          <lpage>80</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Blanc</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mounier</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mougenot</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Detecting model inconsistency through operation-based model construction</article-title>
          .
          <source>In: ICSE '08: Proceedings of the 30th International Conference on Software engineering</source>
          , New York, USA, ACM (
          <year>2008</year>
          )
          <fpage>511</fpage>
          -
          <lpage>520</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Laue</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Ku¨hne,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Gadatsch</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Evaluating the Effect of Feedback on Syntactic Errors for Novice Modellers</article-title>
          .
          <source>In: EPK</source>
          <year>2009</year>
          ,
          <article-title>Gescha¨ftsprozessmanagement mit Ereignisgesteuerten Prozessketten</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <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>
          )
          <fpage>806</fpage>
          -
          <lpage>821</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Jureta</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Faulkner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Clarifying goal models</article-title>
          .
          <source>In: Challenges in Conceptual Modelling. Tutorials, posters, panels and industrial contributions at the 26th International Conference on Conceptual Modeling - ER 2007</source>
          .
          <article-title>Volume 83 of CRPIT</article-title>
          .,
          <source>Australian Computer Society</source>
          (
          <year>2007</year>
          )
          <fpage>139</fpage>
          -
          <lpage>144</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>