<!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>iStarJSON: A Lightweight Data-Format for i* Models</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oscar Franco-Bedoya</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Ameller</string-name>
          <email>dameller@essi.upc.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dolors Costal</string-name>
          <email>dolors@essi.upc.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lidia Lo´pez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Group of Software and Service Engineering (GESSI) Universitat Polite`cnica de Catalunya</institution>
          ,
          <addr-line>Barcelona</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universidad Nacional de Colombia</institution>
          ,
          <addr-line>Manizales</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Universidad de Caldas</institution>
          ,
          <addr-line>Manizales</addr-line>
          ,
          <country country="CO">Colombia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <volume>1674</volume>
      <fpage>37</fpage>
      <lpage>42</lpage>
      <abstract>
        <p>JSON is one of the most widely used data-interchange format. There is a large number of tools open for modelling with i*. However, none of them provides supporting for JSON. In this paper we propose iStarJSON language, a JSON-based proposal for interchanging i* models. We also, present an open source software that transforms XML-based format models to JSON models that expose a set of web services for mining iStarJSON models.</p>
      </abstract>
      <kwd-group>
        <kwd>iStarML</kwd>
        <kwd>JSON</kwd>
        <kwd>iStar</kwd>
        <kwd>i-star</kwd>
        <kwd>i* modelling</kwd>
        <kwd>REST</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        i* is a well-known framework for goal and agent-oriented modelling and reasoning [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Throughout the years, different research groups have proposed i* language variations
and several tools for the i* framework [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. iStarML is an XML-based format for
enabling interoperability among i* tools [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In order to keep i* up-to-date with new trends
in software development (e.g., apps, JavaScript, REST, NoSQL ), we proposed the basic
structure of iStarJSON, a JSON-based model interchange language for i* models. In the
last years, JSON has emerged as the new standard format for exchanging data in both
academy and industy. Additionally, there is a large numbers of tools openly available in
the web that provide transformations between different data representation formats and
JSON. However, most of these approaches only provide a single mapping in the data
structure through individual schemas. In addition, we have developed an open source
software set of RESTful services that exposes the functionality needed to transform
iStarML, a XML-based format, models to JSON models. Furthermore, this tool not only
allows mapping from XML to JSON but also change the hierarchy structure of iStarML
schema for a lightweight graph structure. This transformation does not affect the i*
syntax and semantics. However, it allows to use a variety of tools and algorithms for
graph manipulation (e.g., graph layouts, node centrality, shortest path). As a particular
use case we have developed a web service for i* model visualization using different
layouts. Using JSON to represent i* models as a graph enables the i* researchers and
practitioners communities to develop new tools based on graph theory and the
simplicity of the JSON-based programing. This tool has been carried out in the context of a
general framework for supporting the open source software ecosystems (OSSECOs)
modelling process.
      </p>
      <p>Copyright © 2016 for this paper by its authors. Copying permitted for private and academic purposes.</p>
      <p>This paper presents JSON-based iStarJSON model interchange proposal is
presented. The objectives of this proposal are: (1) to keep i* up-to-date with new trends in
software development and (2) to present an easy programming, flexible and lightweight
data format for i* models.
2</p>
      <p>
        Background on iStarML and JSON
iStarML is a XML-based interchange format for i* diagrams. It includes six basic
categories to represent the i* abstract concepts: actor, intentional element, dependency,
boundary, intentional element link and actor association [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. iStarML is also a
powerful vehicle that enables interoperability inside the i* community [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The iStarML
proposal has been widely discussed in several papers: [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        JavaScript Object Notation (JSON) is a lightweight data-interchange format that is
less verbose and more readable than XML [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It has become predominant in the mobile
and browser domain in the last few years. JSON and XML are conceptually similar [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
however XML leads to problems with large models in terms of scaling. On the other
hand, JSON data format supports high scalability [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>3 iStarJSON Schema</title>
      <p>
        A schema that serves as a means to understand the structure of a document is as relevant
for JSON as it is for XML. But there is little enthusiasm in the JSON community for
schema languages, especially complex schema languages [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] . However, in the last
three years a set of methodological proposals to promote the definition of a standard
JSON schema have emerged4.
      </p>
      <p>A JSON schema is a JSON-based grammar declaration used to describe the
structure and content of a JSON document. this schema provides a contract specifying which
JSON data is required for a given application and how to interact with it. A JSON
schema is intended to define validation, documentation, hyperlink navigation, and
interaction control of JSON data.</p>
      <p>In iStarJSON we represent a i* model as a directed graph G = (V; E) where nodes
V correspond to i* intentional elements and actors:</p>
      <p>V = factor; agent; role; positiong [ fgoal; task; resource; softgoal; belie f g
The set of edges E E E represents relationships connecting nodes. The type of
relationships that can exist between nodes is determined by the links defined by iStarML:</p>
      <p>Atype 2 fassociation; dependency; means end; decomposition; contributiong
In contrast to the other types of links, where one link involve two nodes, dependencies
are represented by three nodes (depender, dependee and dependum) and two links, one
from the depender to the dependum and other from the dependum to the dependee.
4 http://json-schema.org/
3.1 Representing i* Models in iStarJSON
In order to illustrate how the iStarJSON structure deals with i* representations, two
examples are shown inf Fig. 2. The first example, illustrates a basic Strategic Dependency
diagram with 3 actors and 4 intentional elements. All of them are mapped into
iStarJSON array property nodes. The property boundary of each node has the default value
”none” indicating that the elements are in the general environment of the ecosystem.
The second example corresponds to an Strategic Rationale diagram, the iStarJSOn file
is similar to that of the first example, but in this case, the property boundary of each
node has as value the name of the actor where the node is inside.
3.2 The iStarJSON Tool
iStarJSON exposes two main services. The service textiStarJSONValidator, uses the
iStarJSON schema for the validation of the JSON document with the i* model, other
5 iStarJSON schema can be downloaded from: http://pastebin.com/Z6CTPgMF
"nodes": [
{
"boundary": "none",
"elemenType": "resource",
"name": "License &amp;
Maintenance Fee",
"id": "07"
"boundary": "none",
"elemenType": "softgoal",
"name": "Variety",
"id": "01"
]
},
{
},
{
},
{
},
"boundary": "none",
"elemenType": "softgoal", "linktype":
"name": "User Satisfaction", "dependency",
"id": "02" "source": "06",
"target": "01",
"linksubtype": ""
"boundary": "none",
"elemenType": "resource",
"name": "Market Chanels",
"id": "03"</p>
      <p>"linktype":
"edges": [
{
"linktype":
"dependency",
"source": "04",
"target": "07",
"linksubtype": ""
"linktype":
"dependency",
"source": "07",
"target": "06",
"linksubtype": ""
]
},
{
},
{
},
{
"nodes": [
{
"boundary": "none",
"elemenType":
"softgoal",
"name": "Variety",
"id": "01"
"edges": [
{
"linktype":
"dependency",
"source": "02",
"target": "01",
"linksubtype": ""
"boundary": "none",
"elemenType":
"actor",
"name": "Customer",
"id": "02"</p>
      <p>"linktype":
"dependency",
"source": "01",
"target": "09",
"linksubtype": ""
},
{
},
{
},
"boundary":
"Customer",</p>
      <p>"elemenType":
"goal",</p>
      <p>"name": "Have
software",</p>
      <p>"id": "03"
]</p>
      <p>"linktype":
"decomposition",
"source": "04",
"target": "03",
"linksubtype": "or"
]
},
{
},
{
},
The iStarJSON code for the i* strategic dependency diagram The iStarJSON code for the i* rationale dependency diagram
service, creates a valid iStarJSON document from a valid iStarML file. Additionally,
6
there are a set of specific services that provide functionality for the i* graph-model .</p>
      <p>
        We have implemented a simple program to transform a iStarJSON document to
7
DOT-code . This allows to draw directed graphs as hierarchies (see Fig. 5). iStarJSON
is composed by the following components:
– JSON REST server component: handles REST request from the client application
and calls internal services.
– ccistarml package: [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] allows creating, reading and modifying iStarML files.
– graph construct package: creates a dynamic graph structure from the iStarML file.
– iStarJSON converter package: transforms the dynamic graph structure into a valid
– iStarJSON validator package: validates the JSON input document using the
iStarhttp://testoneosseco.azurewebsites.net/iStarJSONServiceREST/
DOT is a plain text graph description language. It is a simple way of describing graphs that
both humans and computer programs can use
iSarJSON is an open source software project and its source code is freely available
as a GitHub repository8.
4
      </p>
      <p>Proof of Concept: Graph Visualization
In this section we show a proof of concept of the iStarJSON tool. We have developed
a REST web service that creates a visual representation of i* models by transforming
iStarJSON files into a variety of output formats (e.g., PostScript, PDF, SVG, PNG, GIF)
and using different types of layouts (i.e., dot, neato, sfdp,fdp, twopi and circo). To do
that, we have created a DOT program from the iStarJSON document. For drawing the
models we have used GraphViz an open source graph visualization software with a
heterogeneous collection of graph drawing tools 9.</p>
      <p>Fig. 5 shows the DOT programs and the graphics representation of the iStarJSON
example 2.
In this paper we present iStarJSON a light-weight technical contribution supporting
i*models in JSON. Our proposal, allows to represent iStarML models into JSON, also
we have provided a set of RESTful services for transforming iStarJSON files into a
variety of output formats (e.g., PDF, SVG, PNG). The iStarJSON approach supports
interoperability and flexibility of i* models, similar to iStarML, but with the advantages
of JSON. Table 1 shows a comparison of XML and JSON.</p>
      <p>Next steps on iStarJSON include extending the functionality to support PLATEOSS
a framework for OSS ecosystems (OSSECOs) analysis. We plan to use i* for modelling
OSSECOs and iStarJSON graph representation for enabling the power of network
analysis statistics and reasoning tools of visual analytics (e.g., identify main business goals
automatically, analyze quality of dependences between actors, calculate goals centrality
measures).</p>
    </sec>
    <sec id="sec-3">
      <title>ACKNOWLEDGMENTS</title>
      <p>This work is a result of the EOSSAC project, founded by the Ministry of Economy and
Competitiveness of the Spanish government (TIN2013-44641-P).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Modelling strategic relationships for process reengineering</article-title>
          . MIT Press (
          <year>2011</year>
          )
        </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>
          :
          <article-title>A Metamodelling Approach for i* Model Translations</article-title>
          . In: Advanced Information Systems Engineering: 23rd International Conference, CAiSE
          <year>2011</year>
          , London, UK, June 20-24,
          <year>2011</year>
          . Proceedings. Springer Berlin Heidelberg, Berlin, Heidelberg (
          <year>2011</year>
          )
          <fpage>337</fpage>
          -
          <lpage>351</lpage>
        </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>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>
          Special Issue: Secure Semantic Web.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bresciani</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giorgini</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giunchiglia</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J.:
          <article-title>Tropos: An agentoriented software development methodology</article-title>
          .
          <source>Autonomous Agents and Multi-Agent Systems</source>
          <volume>8</volume>
          (
          <year>2004</year>
          )
          <fpage>203</fpage>
          -
          <lpage>236</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cares</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.:</given-names>
          </string-name>
          <article-title>iStarML: principles and implications</article-title>
          .
          <source>In: iStar 2011: proceedings of the 5th International i* workshop: 29-30th August</source>
          ,
          <year>2011</year>
          , Trento, Italy, CEUR Workshop Proceedings (
          <year>2011</year>
          )
          <fpage>8</fpage>
          -
          <lpage>13</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <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>Colomer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , L o´pez, L.:
          <article-title>Tool interoperability using istarml</article-title>
          .
          <source>In: iStar 2011: proceedings of the 5th International i* workshop: 29-30th August</source>
          ,
          <year>2011</year>
          , Trento, Italy, CEUR Workshop Proceedings (
          <year>2011</year>
          )
          <fpage>166</fpage>
          -
          <lpage>168</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Goncalves</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>XML and JSon Processing</article-title>
          . In:
          <article-title>Beginning Java EE 7</article-title>
          .
          <string-name>
            <surname>Apress</surname>
          </string-name>
          , Berkeley, CA (
          <year>2013</year>
          )
          <fpage>387</fpage>
          -
          <lpage>416</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>JXON: an architecture for schema and annotation driven json/xml bidirectional transformations</article-title>
          .
          <source>In: Proceedings of Balisage: The Markup Conference</source>
          . (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Gerhart</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bayer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Ho¨fner,
          <string-name>
            <given-names>J.M.</given-names>
            ,
            <surname>Boger</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Approach to define highly scalable metamodels based on json (</article-title>
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Robie</surname>
          </string-name>
          , J.:
          <article-title>XQuery, XSLT and JSON adapting the XML stack for a world of XML, HTML, JSON and JavaScript</article-title>
          .
          <source>In: proceedings of the Balisage: The Markup Conference</source>
          , Mobntreal, Canada, CEUR Workshop Proceedings (
          <year>2012</year>
          )
          <fpage>8</fpage>
          -
          <lpage>13</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <source>Designing Software Ecosystems: How Can Modeling Techniques Help? In: Proceedings of 16th BPMDS 2015 and 20th a EMMSAD 2015</source>
          , Springer International Publishing (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>