<!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>Definition and Uses of the i* Metamodel1</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Carlos Cares</string-name>
          <email>ccares@essi.upc.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Xavier Franch</string-name>
          <email>franch@essi.upc.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lidia López</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jordi Marco</string-name>
          <email>jmarco@lsi.upc.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad de La Frontera</institution>
          ,
          <addr-line>Av. Francisco Salazar, 01145 Temuco</addr-line>
          ,
          <country country="CL">Chile</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universitat Politècnica de Catalunya</institution>
          ,
          <addr-line>Omega-122, 08034 Barcelona</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>20</fpage>
      <lpage>25</lpage>
      <abstract>
        <p>The clear definition of a metamodel can be considered helpful for any conceptual modeling approach, and the i* framework is not an exception. Agreeing on a metamodel for i* can be considered even more convenient than ever when we are aware of the different dialects and variations that the community proposed, and keep proposing, over the seminal i* definition. In this paper we present the revised version of the i* metamodel proposed by the GESSI research group at 2005 and we report some current contexts of use: 1) definition of a data interchange format; 2) definition of the inheritance construct; 3) definition of a modularity construct; and 4) definition of a metrics framework.</p>
      </abstract>
      <kwd-group>
        <kwd>Goal-Oriented Requirements Engineering</kwd>
        <kwd>i*</kwd>
        <kwd>Metamodel</kwd>
        <kwd>iStarML</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Since it was first released, the i* framework has been adapted to the needs of specific
research groups that wanted to represent concepts specific of their software
engineering problem, like security, law compliance, trust modelling, architectural design,
model-driven development and agent-orientation, among others. Even, the i*
framework itself has experienced a natural evolution that has led to a slightly modified
version available in the i* wiki. This set of main i* variations have been object of our
study which we have described and genealogically analysed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        This diversity, although not necessarily pernicious, has some consequences. When
reading a work around the i* framework, it is necessary first to understand what
concrete version of i* is being used. If the contribution is based on the original
framework, sometimes the authors declare which version are using (lately, it is happening
to be the wiki version), but sometimes there is no explicit mention, which often makes
the reader a bit hesitant about details of the proposal being presented. On the other
hand, if the work is proposing some new variation, the semantics is sometimes given
informally or by using a formalism which is not easy to align with the available
descriptions of i*. In order to deal with this problem we proposed at 2005 a reference
metamodel for i* [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] where particular metamodels of i* variations can be obtained by
applying UML refactoring operations. Since then, we have revised this metamodel
upon which we have based our research work on: i* inheritance, requirements
interoperability, and metrics frameworks among others.
1 This work has been partially supported by the Spanish project TIN2007-64753.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 Objectives of the Research</title>
      <p>In this report-of-progress paper, we review our proposal of metamodel for the i*
framework, we show our updated version and outline several contexts in which it has
been used to formalize our i*-related proposals. In particular, our main objective has
been to define a metamodel able to express most of the current variations and
extensions of the i* framework and to use this metamodel as a reference model for our
lines of research. More precisely, we have worked with four specific objectives in
mind: (i) To define a metamodel for the i* framework not bound to any particular
technology, (ii) To use this metamodel as the underlying baseline for defining a i*
diagram interchange format, iStarML, (iii) To use this metamodel as a reference
framework over which formulating our own extensions and variations of i*, namely a
full definition of inheritance and the concept of module, and (iv) To use this
metamodel as the syntactic baseline over which formulating a framework for the definition
of metrics on i*.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Scientific Contributions</title>
      <p>
        As a first tangible contribution, we are proposing an i* metamodel compliant with the
objectives stated in Section 2 (generality, flexibility, technological independence; see
Figure 1). It has been built by consolidating several main versions of the framework,
as thoroughly described in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. It presents some superclasses of interest (Node as the
most general one, and also DependableNode and IntentionalElement) and then the
most relevant i* concepts: Actor, SR-Element and SD-Dependum as classes, and
Relationship and Link as association classes, all of them with the appropriate subclasses.
      </p>
      <p>
        The iStarML interchange format [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ] has being designed starting from the
metamodel. The format implements the metamodel as an XML grammar and also supports
the possibility of extension with new constructs. The ccistarml v0.6 Java package
(http://www.essi.upc.edu/~ccares/ccsoftware/ccistarml_v0.6.1.zip) allows creating,
importing and handling iStarML-compliant files. Several tools have been and are
being customized to support importing and exporting iStarML. Remarkably, the
HiME tool (http://www.lsi.upc.edu/~llopez/hime/) supports both export and import,
whilst we have developed an online translator from OME .tel files into iStarML
(http://www.essi.upc.edu/~ccares/index.php?section=ometranslator). It is planned for
adoption in a next release of TAOM4E (http://sra.itc.it/tools/taom4e/).
      </p>
      <p>
        The inheritance proposal presented in [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ] and the module construct as defined in
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] have been related to the metamodel. This makes the definition of both concepts
easy to integrate into the i* framework. In the case of inheritance, the integration is
very tight since inheritance appears in the metamodel itself, therefore we are just
providing a more detailed definition of a core concept. The concept of inheritance has
been implemented in the HiME tool presented above, supporting the three operations
identified in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]: extension, refinement and redefinition. As for modules, the option
has been to integrate in a loosely coupled way, meaning that modules are linked to the
metamodel but the metamodel is not modified.
      </p>
      <p>
        As a last remarkable use of the i* metamodel, we have used it as the baseline for
formulating an i* metrics definition framework. In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], we have provided a catalogue
of metric definition patterns in which their form is expressed as an OCL template
involving metamodel elements (see Figure 3 for an example). In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], we have
illustrated a particular case of application, the definition of a metric suite for business
process modeling. In this exemplar we may observe the general procedure in which
an extension of the i* metamodel for capturing the essential concepts of the domain of
interest (business processes in this case) is needed. Then, the metric suites that exist in
this domain are mapped into their counterparts using a metamodel mapping.
      </p>
      <p>Name
Context
Problem
Solution
Required
knowledge
Form</p>
      <p>Dependency-Based (Metrics Definition -&gt; Quantitative -&gt; Structural)
Some metrics have sense when applied to dependency links
The metrics will depend not just on the characteristics of the dependency link itself, but
also on the two actors that act as depender and dependee
Identify three different factors that influence the metrics: one bound to the dependency
link itself (probably related with the type of its dependum), and the others to the two
actors, depender and dependee
The effect of the depender, the dependee and the dependum in the metric, represented
by three functions:
filter: Dependum Float
correctionFactorDepender: Actor Float, correctionFactorDependee: Actor Float
context Dependency::metric(): Type
let ownerActor(x: DependableNode): Actor =</p>
      <p>if x.oclIsTypeOf(Actor) then x else x.owner in:
post: result = self. dependum.filter() *
ownerActor(self. depender).correctionFactorDepender() *
ownerActor(self.dependee).correctionFactorDependee()</p>
    </sec>
    <sec id="sec-4">
      <title>4 Conclusions</title>
      <p>This main purpose of this paper has been twofold. On the one hand, illustrating the
form that the i* reference metamodel takes by including a particular proposal. On the
second hand, providing an overview of the different uses of such a metamodel in
different contexts that may be of general interest for the i* community: for model
interchange, for definition of new concepts and for definition of metrics.</p>
      <p>
        Several authors agree on our belief that the existence of an i* metamodel could
bring some benefits (shared understanding, tool interoperability, etc.) to the i*
community [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ], although the statement could in fact be a matter of discussion, and in
fact some other researchers advocate for more focused metamodels like the Tropos
metamodel [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and the GRL metamodel [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Our view is that the differences among
the several existing approaches concerning the core concepts of i* are not so severe as
to prevent the proposed agreement, whilst the potential benefits seem attractive
enough.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Ongoing and Future Work</title>
      <p>We think that the most important future work is a community work: agreeing on a
metamodel as the “official” i* framework metamodel (being the one presented here or
other), making it available in the i* wiki for reference. Its existence shall provide a
shared context to i* researchers and practitioners, and shall serve as reference for:
new extensions and variations, semantic and pragmatic agreements, tool support, etc.</p>
      <p>
        Concerning our particular future work, we plan to advance in the following
research lines: (1) using iStarML as the technological infrastructure to connect as many
available tools as possible. This also means coping with the mapping problem where a
construct that is used in some source tool is not supported in some destination tool.
An example of how to deal with this case has been presented in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]; (2) completing
the definition of inheritance, providing the necessary restrictions on the use of the
identified operations (extension, refinement and redefinition [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]) in the form of OCL
constraints over the metamodel elements; (3) creating a comprehensive catalogue of
metrics suite based on the use of the patterns identified in our previous work; (4)
implementing the concepts presented here (inheritance, modularity and metrics) using
our HiME tool, and (5) providing semantics to the metamodel (i.e., how the different
concepts proposed in the metamodel should be interpreted).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <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>Mayol</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Quer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          “
          <article-title>A Reference Model for i*”</article-title>
          . In: Social Modelling for Requirements Engineering, The MIT Press,
          <year>2010</year>
          (in press).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ayala</surname>
            ,
            <given-names>C.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cares</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carvallo</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haya</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salazar</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mayol</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Quer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          “
          <article-title>A Comparative Analisys of i*-Based Goal-Oriented Modelling Languages”</article-title>
          .
          <source>AOSDM</source>
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <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>iStarML: An XML-based Model Interchange Format for i*”</article-title>
          .
          <source>In: Procs. of the 3rd International i* Workshop, CEUR-WS 322</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <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>
          , Elsevier (in press).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Clotet</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>López</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marco</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seyff</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grünbacher</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          “
          <article-title>The Meaning of Inheritance in i*”</article-title>
          .
          <source>AOIS</source>
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>López</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marco</surname>
          </string-name>
          , J. “
          <article-title>Defining Inheritance in i* at the Level of SR Intentional Elements”</article-title>
          .
          <source>In: Procs. of the 3rd International i* Workshop, CEUR-WS 322</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          “
          <article-title>Incorporating Modules into the i* Framework”</article-title>
          .
          <source>CAiSE</source>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grau</surname>
          </string-name>
          , G. “
          <article-title>Towards a Catalogue of Patterns for Defining Metrics over i* Models”</article-title>
          .
          <source>CAiSE</source>
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          “
          <article-title>A Method for the Definition of Metrics over i* Models”</article-title>
          .
          <source>CAiSE</source>
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          “
          <article-title>Improving Requirements Specifications in Model-Driven Development Process”</article-title>
          .
          <source>ChaMDE</source>
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Moody, D.L.,
          <string-name>
            <surname>Heymans</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matulevicius</surname>
          </string-name>
          , R. “
          <article-title>Improving the Effectiveness of Visual Representations in Requirements Engineering: An Evaluation of i* Visual Syntax”</article-title>
          .
          <source>RE</source>
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Susi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giorgini</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          “
          <article-title>The Tropos Metamodel and its Use”</article-title>
          .
          <source>Informatica</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <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>
          .
          <source>RIGiM</source>
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>