<!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>Improving the Modularity of i* Models</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fernanda Alencar</string-name>
          <email>fernandaalenc@gmail.com</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Márcia Lucena</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carla Silva</string-name>
          <email>carla@dce.ufpb.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emanuel Santos</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jaelson Castro</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidade Federal da Paraíba - UFPB, Centro de Ciências Aplicadas e Educação</institution>
          ,
          <addr-line>Rio Tinto</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universidade Federal de Pernambuco - UFPE, Centro de Informática</institution>
          ,
          <addr-line>Recife</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Universidade Federal de Pernambuco - UFPE, Departamento de Eletrônica e Sistemas</institution>
          ,
          <addr-line>Recife</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Universidade Federal do Rio Grande do Norte - UFRN, Departamento de Informática e Matemática Aplicada Natal</institution>
          ,
          <country country="BR">Brazil</country>
        </aff>
      </contrib-group>
      <fpage>3</fpage>
      <lpage>8</lpage>
      <abstract>
        <p>i* offers expressive models to capture social and intentional characteristics of a system organizational context, and explicitly captures stakeholders' motivations and rationale in a requirements model. Thus, the more detailed i* models are, the more complex they become. Hence, i* models can become unnecessarily hard to read, understand, maintain and reuse. In the past years we have been investigating how to tame the complexity of the models, with a view to improve their modularity. This paper presents two of our strategies. The first one relies on aspect-orientation principles whereas the second one is based on model transformations.</p>
      </abstract>
      <kwd-group>
        <kwd>i*</kwd>
        <kwd>modularization</kwd>
        <kwd>Aspects</kwd>
        <kwd>Model Transformations</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Modularity measures the degree to which the modeling language offers well-defined
building blocks for building model. Although i* incorporates a decomposition
mechanism based on strategic actors, which could be used to improve modularization
of i* models, the way in which this mechanism is used is often not suitable to produce
models that are easy to maintain and reuse. Current modeling methods represent the
rationale of an actor in a monolithic way [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Besides, sometimes several
refinements are described in a scattered and tangled form (also known as
crosscutting), making it hard to visualize the boundaries of sub-graphs related to
specific domains. This poor modularity compromise the management of the
complexity of the models, an important pre-requisite for the adoption of i* in
industrial settings [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In order to reduce the complexity of i* models and increase
their modularity we proposed two strategies; the use of aspect oriented principles [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
or the adoption of a model transformation strategy [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The paper is organised as
follows. Section 2 describes a strategy to improve the modularity of i* models using
aspect oriented principles. Section 3 presents an approach which relies on the
definition of transformation rules to re-structure the models. Section 4 discusses
results obtained and Section 5 points out ongoing and future research.
2
      </p>
      <p>
        Modularizing i* with Aspects
The modularity of i* models can be improved by removing tangled and scattered
information into aspectual actors together with some weaving mechanisms [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Our
aspectual approach consists of (i) a set of guidelines to identify crosscutting concerns
in i* models; and (ii) an extension of the i* modeling language [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] by adding
aspectual constructors to modularize crosscutting concerns and to allow its graphical
composition with other system modules (Fig 1).
      </p>
      <p>DDD DD D
i* Model</p>
      <p>Elements related
to crosscutting</p>
      <p>Modularity
metrics
[New Iteration]</p>
      <p>Trade-off
Results</p>
      <p>No
Identification and Representation
Modularization</p>
      <p>Composition</p>
      <p>Evaluation</p>
      <p>Trade-off
Analysis</p>
      <p>Modulariy is
satisfactory
Guidelines Crosscutting concerns and</p>
      <p>Their dependencies</p>
      <sec id="sec-1-1">
        <title>Legend:</title>
      </sec>
      <sec id="sec-1-2">
        <title>Task</title>
      </sec>
      <sec id="sec-1-3">
        <title>Decision</title>
      </sec>
      <sec id="sec-1-4">
        <title>Control Flow</title>
      </sec>
      <sec id="sec-1-5">
        <title>Artifact Flow</title>
        <p>D
D D
Aspectual
i* model
D
D
D</p>
      </sec>
      <sec id="sec-1-6">
        <title>Start End</title>
        <p>Composition</p>
        <p>Rules
Evaluation
Results
DDDDDD DDDDDD iiAM**soMpdoeedcletulal</p>
      </sec>
      <sec id="sec-1-7">
        <title>Document</title>
      </sec>
      <sec id="sec-1-8">
        <title>Guidance</title>
        <p>
          In this approach the crosscutting concerns are extracted into modules, called aspects,
which are later composed back to the base model. Hence, we claim that
AspectOriented Software Development (AOSD) mechanisms [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] can contribute to increase
the modularity of i* models. Four guidelines were proposed to deal with the
identification, separation and modularity of the crosscutting concerns. Once
identified, the crosscutting concerns are removed from the original actors, and placed
in a new type of model element, the so called Aspectual Element. This element will
have a specific graphical representation. Later it will be composed (weaved) with an
actor or another aspectual element using a Crosscut Relationship. This relationship
specifies how an i* element, located inside an aspectual element, is related to another
i* element located inside an actor or another aspectual element. The composition step
can be performed by graphical transformations. The evaluation of the resulting i*
models is based on a suite of metrics adapted from the literature. Finally, a trade-off
analysis will be performed and if the results are not appropriate (modularity is still
poor) a new interaction may be executed.
3
        </p>
        <p>Modularizing i* by means of Model Transformations
Another approach to improve the modularity of i* models is to restructure the models
in order to extract the information that are not fully related to the application domain.
To balance the responsibilities of the system actor, this information could be
delegated to new system actors. Hence, we could transform the original model into a
more modularized one.</p>
        <p>
          Our model transformation approach consists of three activities (Fig 2): (i) Analyze
Internal Elements, where Internal Elements can be factored out from software actor
are identified; (ii) Apply Transformation Rules, which relies on model transformation
rules to systematically move (delegate) the identified internal elements from software
actor to new actors; (iii) Evaluate i* Models, used to evaluate the modularization of
the models. The process is semi-automatic since the activities (ii) and (iii) can be
automated, while the analysis of internal elements activity (i) depends on
requirements engineers and domain experts. In this case, it is necessary to use: (i)
heuristics to guide the decomposition of the software actor; (ii) a set of rules to
transform i* models in modular i* models; (iii) metrics to evaluate the degree of
modularity of both initial and final models. Further details can be found in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>
          Some measurement is required to check the improvement of the modularity. If the
modularization still is inappropriate, new iterations may be necessary. These modular
i* models are used as the starting point to generate architectural descriptions from
requirements models [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>Modulariy is
satisfactory</p>
        <p>No
Yes</p>
        <p>D</p>
        <p>D
D
D D D
i* Models</p>
        <p>D</p>
        <p>D
D
D D</p>
        <p>D
Modular i*</p>
        <p>Models
Analyse Internal</p>
        <p>Elements</p>
        <p>Apply
Transformation Rules</p>
        <p>Evaluate
i* Models
Heuristics to Identify</p>
        <p>Elements</p>
        <sec id="sec-1-8-1">
          <title>Selected Internal Transformation Modularity</title>
        </sec>
        <sec id="sec-1-8-2">
          <title>Elements Rules Metrics</title>
          <p>Results of
Modularity Metrics
Legend: Fig. 2 – The modular i* with model tDransformation.</p>
          <p>Work Control Flow Start DDD D Requirements Document
In oDredfienritioton illustrate the techniques used in this woDrkM,owdeel review the Media Shop
examplDeec[i3si]o.nMedia Shop isAratifascttoFrleowthat sEenldls and ships difAMfroecdhreietlencttukreinds of mGeudidiaancietems.
To increase market share, Media Shop has decided to use the Medi@ system, a
business to customer retail sales front-end on the Internet.</p>
          <p>Often i* models are overloaded with information capturing features of both the
system organizational environment and the software system itself. However, the more
detailed i* models are, the more complex they become (Fig. 3). This rich ontology
aligned with the common misuse of the decomposition mechanisms provided by the
i*, can head to models unnecessarily hard to read, understand, maintain and reuse.</p>
          <p>Proceedings of the 4th International i* Workshop - iStar10</p>
          <p>
            The proposed approach allows delegation of different issues of a problem, initially
concentrated into a single system actor, to new actors, which allows dealing with each
actor separately. Details on an earlier version of this activity can be found in [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]. We
have added a new rule, to deal with a special situation that may arise when
independent sub-graphs, i.e., sub-graphs from different domains, have the same root
goal. These sub-graphs are alternatives to satisfy this root goal. In this case, an actor
is created for each alternative. Later, each of them will be considered as a different
architectural solution.
          </p>
        </sec>
        <sec id="sec-1-8-3">
          <title>Media</title>
        </sec>
        <sec id="sec-1-8-4">
          <title>Shop</title>
          <p>Process
Internet</p>
          <p>Orders
Internet</p>
          <p>Shop</p>
          <p>Managed</p>
          <p>Produce
Statistics</p>
          <p>...</p>
          <p>Item
Searching</p>
          <p>Handled</p>
          <p>Query
Database</p>
          <p>Keyword
Search</p>
          <p>Attract New</p>
          <p>Customers
p
el</p>
          <p>H
Catalog
Consulting
Set Item
Detail</p>
          <p>Internet
Orders
Handled</p>
          <p>Catalogue
Choose
Available</p>
          <p>Item</p>
          <p>
            After carrying out the Prepare Requirements Models activity, the resulting model
is decomposed into more modularized software actors (see Fig. 4). In our example
there are two alternatives to achieve the Identification Details Collected goal (see Fig.
3). One relies on the use of standard forms, while a second alternative is to use
encrypted forms. If we apply horizontal rules (those that transform an initial i* model
into a more modular one [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]) each alternative previously identified is moved to a
different actor (see A1 and A2 dependencies in Fig. 4). Thus, in our Medi@ example,
we will have two SR i* models representing different configurations of system and to
be considered in the next activity. For the sake of space, here we present both
          </p>
          <p>Improving the Modularity of i* Models
alternatives in the same model. In fact, different SR models should have been used to
represent each alternative. But an interested reader can easily extract them.
Identification</p>
          <p>Details</p>
          <p>Collected
Identification</p>
          <p>Details</p>
          <p>Collected
Details
Identifier</p>
          <p>Identification</p>
          <p>Details
Collected</p>
          <p>Security
rt
u
H</p>
          <p>Use
Standard
Form</p>
          <p>Profile
Manager</p>
          <p>D
D</p>
          <p>Details</p>
          <p>Identifier
SHeaaItnrecdmhleindg ACtutrsatcotmNeerws</p>
        </sec>
        <sec id="sec-1-8-5">
          <title>Help</title>
          <p>Catalog
Consulting
Internet
Orders
Handled
Shopping
Cart
D</p>
          <p>D</p>
          <p>D
Query
Database
D
D</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>4 Discussion</title>
      <p>
        The aspectual approach contributes to increase modularity of i* models and, as
demonstrated by the application of the metrics in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], the number of concerns in a
single module was reduced. Also, the models’ visual complexity decreased, which
may improve model understandability. This approach was applied to two case studies:
the meeting scheduler problem [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and a web-based information system [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>However, the approach relies on aspect oriented principles. The big disadvantages
of this strategy is the need to introduce new elements (namely aspects) in the original
i* semantics. If the reader is familiarized with the aspect oriented principles this is not
a cognitive burden. Otherwise some learning curve is required.</p>
      <p>
        The second modularization approach relies on model transformations. The
evaluation results demonstrated that it also promotes reduction of complexity in i*
models. Besides, the proper definition of rules (for example in OCL, QVT or ATL)
enables the semi-automatic derivation of modular i* specifications as well as can
contribute to keep traceability among software artifacts. Note that since it does not
introduce new elements to the i* syntax/semantics it is of easier adoption. This
approach was applied to two case studies: a web-based recommendation system [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
and a web-based information system [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Both approaches can be used in a complementary way. The second approach could
be used to decompose a system actor overloaded of responsibilities into several new
system actors, whereas the first approach could be used to identify the crosscutting
concerns present in the i* models and separate them into aspectual elements.
5 Ongoing and Future Work
Currently we are evolving the Istar Tool [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to support our modularity approaches. As
future work, we intend to unify our approaches to decrease complexity, and to
increase modularity and separation of concerns in i* models.
      </p>
      <p>
        The identification of suitable metrics for goal modeling is also advancing, as other
case studies are performed in an experimental setting. We also need to validate the
metrics. We plan to define a trade-off analysis method to complement the aspectual i*
process and to investigate the use of modularized i* models to support early
architectural design. We aim at the decrease of coupling and improvement of
separation of concerns, issues which are critical when dealing with large and complex
projects. We also plan to evaluate and improve the quality of i* models [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Alencar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Araújo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreira</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <source>Towards Modular i* Models. Requirement Engineering Track at 25th ACM symposium on Applied Computing</source>
          ,
          <string-name>
            <surname>SAC</surname>
          </string-name>
          <year>2010</year>
          . pp.
          <fpage>292</fpage>
          -
          <lpage>297</lpage>
          , Sierre, Switzerland (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alencar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreira</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Araújo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J.:
          <article-title>Towards an Approach to Integrate i* with Aspects</article-title>
          .
          <source>8th Intl. Bi-Conference Ws. on Agent-Oriented Information Systems, AOIS'06 at CAISE'06</source>
          . pp.
          <fpage>183</fpage>
          -
          <lpage>201</lpage>
          , Luxembourg, June (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolp</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J.:
          <source>Towards Requirements-Driven Information Systems Engineering: The Tropos Project. Information Systems Journal, Elsevier</source>
          , Vol
          <volume>27</volume>
          :
          <fpage>365</fpage>
          --
          <lpage>89</lpage>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Estrada</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rebollar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pastor</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Mylopoulos</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>An Empirical Evaluation of the i* Framework in a Model-Based Software Generation Environment</article-title>
          . In: CAiSE'06, LNCS 4001, Springer, pp.
          <fpage>513</fpage>
          --
          <lpage>527</lpage>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Filman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , et al..
          <source>: Aspect- Oriented Software Development. Addison-Wesley</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maiden</surname>
            ,
            <given-names>N. A. M.:</given-names>
          </string-name>
          <article-title>PRiM: An i*-based process reengineering method for information systems specification</article-title>
          .
          <source>In: Information and Software Technology, v. 50</source>
          , pp.
          <fpage>76</fpage>
          -
          <lpage>100</lpage>
          (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>IstarTool</given-names>
            <surname>Project</surname>
          </string-name>
          :
          <article-title>A Model Driven Tool for Modeling i* models</article-title>
          . Available at http://portal.cin.ufpe.br/ler/Projects/IstarTool.aspx,
          <string-name>
            <surname>Mar</surname>
          </string-name>
          (
          <year>2010</year>
          ) .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alencar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castro</surname>
          </string-name>
          , J.:
          <article-title>Applying Transformation Rules to Improve i* Models. In Software Engineering and Knowledge Engineering (SEKE</article-title>
          <year>2009</year>
          ). pp.
          <fpage>43</fpage>
          -
          <lpage>48</lpage>
          , Boston, USA (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alencar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Pimentel</surname>
          </string-name>
          , J.:
          <article-title>A Model Transformation Approach to Derive Architectural Models from Goal-Oriented Requirements Models</article-title>
          .
          <source>8th Int. Ws. On System/Software Architectures (IWSSA'09) LNCS</source>
          . Berlin, Heidelberg: Springer, vol.
          <volume>5872</volume>
          , pp.
          <fpage>370</fpage>
          --
          <lpage>380</lpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ramos</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , et al.:
          <article-title>AIRDoc-Approach to Improve Requirement Documents</article-title>
          .
          <source>In: XXII Brazilian Symposium on Software Engineering (SBES'08)</source>
          , pp.
          <fpage>1</fpage>
          --
          <lpage>16</lpage>
          (
          <year>2008</year>
          ) .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Modeling Strategic Relationships for Process Reengineering</article-title>
          .
          <source>Ph.D. thesis</source>
          . Department of Computer Science, University of Toronto, Canada (
          <year>1995</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>