<!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>Support for Evaluation of Impact Models in Reuse Hierarchies with jUCMNav and TouchCORE</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Romain Alexandre⇤</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cécile Camillieri⇤</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mustafa Berk Duran</string-name>
          <email>berk.duran@mail.mcgill.ca</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aldo Navea Pina</string-name>
          <email>aldo.naveapina@mail.mcgill.ca</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Schöttle</string-name>
          <email>Matthias.Schoettle@mail.mcgill.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jörg Kienzle</string-name>
          <email>Joerg.Kienzle@mcgill.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gunter Mussbacher</string-name>
          <email>gunter.mussbacher@mcgill.ca</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>⇤ Polytech Nice Sophia</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Université de Nice</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>France</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>romain.alexandre</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>cecile.camillieri}@polytech.unice.fr</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Electrical and Computer Engineering, McGill University</institution>
          ,
          <addr-line>Montreal, QC</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computer Science, McGill University</institution>
          ,
          <addr-line>Montreal, QC</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-In Concern-Orientation, software systems are built with the help of reusable artifacts called concerns, leading to reuse hierarchies, because higher-level concerns may reuse lower-level concerns. At each level in the reuse hierarchy, a concern uses goal modelling techniques to describe the impact of selected variations from the concern on system qualities such as performance, cost, and user convenience. To reason about trade-offs among system qualities in the whole system, the individual goal models from all levels in the reuse hierarchy have to be considered together. This requires the ability to select variations from different levels in the reuse hierarchy, to connect impacts from lower levels to those at higher levels, and eventually to propagate the evaluation of lower-level goal models to higher-level goal models based on the selection of variations. This tool demonstration reports on such an evaluation mechanism for two tools that provide integrated support for Concern-Orientation: the requirements engineering tool jUCMNav and the software design tool TouchCORE.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Model-Driven Engineering (MDE) advocates the use of
different modelling formalisms during software development, so
that the most appropriate modelling notation at the right level
of abstraction can be chosen to describe and reason about the
system under development. In Concern-Orientation, software
systems are built with reusable artifacts called concerns. A
concern is a new model-based unit of reuse encapsulating
software artifacts pertaining to a domain of interest that span
multiple development phases and levels of abstraction [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Hence, various modelling notations are used to describe a
concern covering structural, behavioural, and other properties
as required by the domain of interest. However, a concern
always uses (i) feature models [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] to capture the reusable
variants/solutions provided by the concern and (ii) impact
models to capture the impact of a selection of features on
system qualities.
      </p>
      <p>
        This tool demonstration focuses on the impact models of
concerns, which are based on goal modelling technology [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and depend on the selection of features. A different
feature selection may result in drastically different impacts
on system qualities. Concern-Orientation aims to address a
shortcoming of popular reusable artifacts, such as Java
libraries or components, which excel in defining an API or
required/provided interfaces that allow the reusable artifact to
be used, but fail when it comes to describing which reusable
artifact should be chosen over another reusable artifact. A
developer typically has to discover the advantages and
disadvantages of candidate reusable artifacts by going through
documentation, blogs, and tutorials. In Concern-Orientation,
this knowledge is captured in the impact model of a concern.
      </p>
      <p>
        Concern-Orientation advocates the reuse of smaller,
lowerlevel concerns to build larger, higher-level concerns leading
to a reuse hierarchy consisting of concerns differing in size,
abstraction level, and complexity. When a concern is reused,
the impacts of selected features on system qualities must
consequently be connected to the impacts of the reusing
concern, so that eventually the whole system can be analyzed.
The connected impacts must allow for the propagation of
evaluation values from lower-level goal models to
higherlevel goal models based on the selection of variations from
different levels in the reuse hierarchy. This tool demonstration
reports on such an evaluation mechanism in the requirements
engineering tool jUCMNav [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and the software design tool
TouchCORE [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Both tools provide integrated support for
Concern-Orientation based on a common metamodel [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Out
of the many tool demonstrations for jUCMNav, TouchCORE,
and its predecessor TouchRAM, there are three demonstrations
that are most relevant to this demonstration. At RE 2014,
combined reasoning of goal and feature models was presented
with jUCMNav [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. At MODELS 2014, a demonstration
showcased how jUCMNav and TouchRAM have been integrated
to provide initial support for Concern-Orientation [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. At
Modularity 2015, the TouchCORE tool was demoed for the
first time, focusing on feature modelling and traceability in the
context of Concern-Orientation [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. However, the evaluation
of impact models across levels in reuse hierarchies, i.e., across
concern boundaries, has not been demonstrated before.
      </p>
      <p>Section II gives a brief overview of the evaluation of goal
models and outlines which challenges need to be addressed
for the evaluation of goal models in reuse hierarchies.
Section III describes the required changes to the jUCMNav and
TouchCORE tools in support of goal model evaluation in reuse
hierarchies, while the last section concludes the paper and
discusses future work.</p>
    </sec>
    <sec id="sec-2">
      <title>II. SHORTCOMINGS OF PROPAGATION-BASED</title>
      <p>EVALUATION OF GOAL MODELS</p>
      <p>
        Goal modelling notations such as the NFR Framework [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
the Goal-oriented Requirement Language (GRL), which is part
of the User Requirements Notation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], or i* [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] support
reasoning about goals and system qualities through
propagationbased evaluation mechanisms. Such evaluation mechanisms
propagate user-defined initial satisfaction values from
lowerlevel goal model elements—typically leaf nodes—to those
of higher-level goal model elements. Both jUCMNav and
TouchCORE use goal modelling technology based on GRL.
In the context of Concern-Orientation, lower-level goal model
elements are typically features of the concern (i.e., the different
variations offered by the concern) and higher-level goal model
elements describe system qualities. Furthermore, the initial
satisfaction value of a feature is either the minimum possible
(i.e., 0 in our case) if the feature is not selected and the
maximum possible (i.e., 100 in our case) if the feature is
selected.
      </p>
      <p>There are three challenges that need to be addressed to
enable propagation-based evaluation across concern boundaries
in a reuse hierarchy.</p>
      <p>
        a) Distributed Impact Models: Existing
propagationbased evaluation mechanisms assume that a goal model is
contained in one module and not distributed over the impact
models of several reusable concerns. Using existing goal
modelling concepts, one could theoretically create a single,
monolithic impact model that contains the individual impact
models from all levels in the reuse hierarchy. While this would
defeat the purpose of having multiple, reusable modules in the
first place, there is a second reason why this is problematic.
This monolithic impact model would have to be able to
dynamically discount impacts from lower-level concerns, if
the feature that is reusing the lower-level concern is currently
not selected. This is not easily possible with standard goal
modelling concepts. We therefore introduced a new goal
modelling element called the Feature Impact Node [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which
aggregates the impacts of reused concerns and the reusing
feature, takes into account whether the reusing feature is
selected or not to actually propagate upwards its satisfaction
value, and still respects concern boundaries. An improved
evaluation mechanism for Concern-Orientation has to properly
take into account Feature Impact Nodes.
      </p>
      <p>b) Distributed Specification of Initial Satisfaction Values:
Fig. 1 combines three levels of concerns in a reuse hierarchy
into one feature model. At the top, the features of a Bank
concern are shown with white background. Directed dotted
arrows in the feature model indicate the reuse of a concern.
The Authorization concern is reused in total three times: by
the Internet Banking Interaction feature, the ATM Interaction
feature, and the Vault feature. In addition, the Camera and
Sensor concerns are also reused by the Vault feature. The
Authorization, Camera, and Sensor concerns are hence at the
second level in the reuse hierarchy. The Authorization concern
itself reuses the Authentication concern, i.e., Authentication is
at the third level in the reuse hierarchy. Consequently based on
this reuse hierarchy, Authorization first reuses Authentication,
and in turn Authorization is then reused by the Bank.</p>
      <p>At the time Authorization reuses Authentication, the
developer of Authorization cannot fully select all necessary features
in Authentication. For example, the Password feature and the
Facial Recognition feature both work for what Authorization
wants to accomplish, but their impacts on system qualities
cause the first selection to be preferable if cost is an issue
and the other selection to be preferable if tighter security is
an issue. However, the developer of Authorization is not in a
position to make this decision, because this depends on the
context of whoever is going to reuse Authorization (i.e., only
the developer of the Bank in our case can determine that).
Therefore, the developer of Authorization will only make a
partial selection of features in Authentication and leave some
features open to be selected by the developer of the Bank (i.e.,
the developer of Authorization is delaying some decisions to
whoever is going to reuse Authorization).</p>
      <p>
        In Fig. 1, the checkmarks indicate that the developer of
Authorization selected the Access Blocking and Auto Logoff
features from the Authentication concern, because the
developer deemed them to be absolutely necessary for the purposes
of Authorization. This decision may be debatable, but serves
to illustrate a point with the example. The up arrows, on the
other hand, indicate those feature that can still be selected by
the developer of the Bank. Remember that feature selections
are inputs to the impact model, which contain features as
leaf nodes. Consequently, the user-defined initial satisfaction
values corresponding to the selection of features are distributed
over several concerns. Existing propagation-based evaluation
mechanisms assume that this is not the case. To address this
issue, we introduced the ability to specify a partial set of initial
satisfaction values [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. An improved evaluation mechanism
for Concern-Orientation has to combine these partial sets
into one set for each impact model before performing the
evaluation of the impact model in the reuse hierarchy.
c) Relative Contribution Values: The third issue is
orthogonal to the first two already mentioned ones. It is related
to the use of relative contribution values in impact models. In
goal models, contribution values are defined for contribution
links that connect goal model elements and propagate the
satisfaction values of source elements to a parent element with
a weighted sum approach.
      </p>
      <p>For the NFR Framework, GRL, and i*, three types of
contribution values are known: qualitative, quantitative, and real-life
values. Qualitative values are too imprecise for use in
ConcernOrientation, because they only differentiate features by limited
shades of negative and positive contributions. Quantitative
values are from a specific range (typically [-100,100]). In
the context of Concern-Orientation, they are difficult to use,
because one has to assume that many developers will build
reusable concerns. If a developer of Concern A describes the
impact on a system quality as 75 out of [-100,100] and
a developer of Concern B describes the impact on the same
system quality as 90 out of [-100,100], then there has
to be an implicit understanding what these numbers mean.
If not, the two concerns cannot be reused together, because
the inconsistency in the contribution values would render the
impact model analysis useless. Given that impacts need to be
specified to vague system qualities such as user convenience,
usability, or security, it is unlikely that such an
understanding exists. The third option (real-life values) addresses this
issue, because actual measurements from real-life are taken
to characterize the impact on a system quality. While this
addresses the inconsistency issue, it is not necessarily easy
or cost-effective to capture such measurements.</p>
      <p>
        Therefore, we have devised a way to use relative
contribution values [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. This allows each developer to specify
contribution values relative to all locally known impacts on a system
quality. Furthermore, an improved evaluation mechanism for
Concern-Orientation has to ensure that the satisfaction values,
which are derived from the relative contribution values, are
normalized to the [0,100] range, thus enabling the
composition of impact models from different concerns. In addition,
the normalization has to take constraints among impact model
elements into account [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>III. EVALUATION IN REUSE HIERARCHIES WITH</title>
      <p>JUCMNAV AND TOUCHCORE
jUCMNav is a requirements engineering tool that already
offers significant support for the evaluation of impact models,
but until now had little support for model reuse. TouchCORE,
on the other hand, is a software design tool that is
predominantly built in support of model-based reuse, and until now
had no support for goal-oriented modelling. Consequently,
different functionality had to be added to the tools to support
distributed impact models, distributed specification of initial
satisfaction values, and relative contribution values.</p>
      <p>In the TouchCORE tool, support for impact modelling was
implemented from scratch, taking best practices from GRL
into account (e.g., a clear distinction between the impact
model definition for a concern and views of those definitions,
allowing the same impact model element to be shared among
views focusing on one high-level system quality at a time).
Fig. 2 depicts an impact model for improving the security
of the Bank concern as defined in the TouchCORE tool. The
contributions are defined with relative values and four new
Feature Impact Nodes (FINs) are used in the impact model.
Each FIN is related to exactly one feature of the Bank concern
as shown in the top row of the FIN. Each additional row of a
FIN represents a reused impact model element from another
concern. The numbers in each row describe the relative impact
of the reused impact model elements and the feature itself.</p>
      <p>In jUCMNav, the concept of a Reuse Link was introduced
to allow impact model elements from a reusable concern to
be used in the impact model of the reusing concern. A Reuse
Link is illustrated as a dashed arrow in Fig. 3, which shows
the same impact model from Fig. 2 as it is visualized in the
jUCMNav tool. Note how each FIN is not represented with
a rectangle as in TouchCORE, but is visualized with goal
model elements that are already supported by jUCMNav (the
representation used by TouchCORE may also be implemented
for jUCMNav in the future). For example, the two goals
Improve Operational Security (Internet Banking Interaction)
and Internet Authorization.Improve Security as well as the
feature Internet Banking Interaction correspond to the leftmost
rectangle in Fig. 2.</p>
      <p>The evaluation of impact models in a reuse hierarchy
uses an algorithm that starts at the topmost impact model
and then recursively evaluates all impact models of reused
elements before evaluating the impact model with the reused
elements. Feature selections from various levels in the reuse
hierarchy are combined as needed. Fig. 3 shows the result
of an evaluation of impact models in a reuse hierarchy with
the contribution values as well as satisfaction values after
normalization (e.g., the 1 and 10 from the Internet Banking
Interaction FIN in Fig. 2 are translated into a 9 and 91 on the
[0,100] scale in Fig. 3).</p>
      <p>
        For the normalization of satisfaction values calculated with
relative contribution values, the improved evaluation
mechanism needs to check whether any constraints among features
are violated given a specific feature selection. This is
accomplished with the help of the FAMILIAR tool [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ][
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which
uses a SAT solver to verify whether constraints in a feature
model are violated.
      </p>
    </sec>
    <sec id="sec-4">
      <title>IV. CONCLUSION</title>
      <p>This tool demonstration showcases support for the
evaluation of impact models of reusable concerns in a reuse hierarchy
in two tools: jUCMNav—a requirements engineering tool with
a long history in goal-based modelling, and TouchCORE—
a software design tool with a long history in model-based
reuse. In Concern-Orientation, the impact of a concern’s
features on system qualities is captured in a specialized goal
model called impact model. With the new support, it is now
possible to evaluate the combined impact of all concerns in
a reuse hierarchy to enable system-wide trade-off analysis of
candidate feature selections across concern boundaries. This
is an improvement over existing propagation-based
evaluation mechanisms for goal models, which typically assume
a monolithic goal model with a centralized specification of
initial satisfaction values. In addition, it is now possible to
specify relative contribution values in impact models. In the
future, we will consider extending impact models (i) with other
goal modelling concepts such as actor (for the modelling of
intentions of stakeholders) and indicator (for the modelling of
real-life measurements) and (ii) with better support for taking
contextual information from the reusing concern into account
in the impact model of the reused concern.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>O.</given-names>
            <surname>Alam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kienzle</surname>
          </string-name>
          , and G. Mussbacher, “
          <string-name>
            <surname>Concern-Oriented Software</surname>
            <given-names>Design</given-names>
          </string-name>
          ,”
          <source>in MODELS 2013</source>
          , pp.
          <fpage>604</fpage>
          -
          <lpage>621</lpage>
          , Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Novak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Peterson</surname>
          </string-name>
          , “
          <article-title>Featureoriented domain analysis (FODA) feasibility study</article-title>
          ,
          <source>” Tech. Rep</source>
          . CMU/SEI-90
          <string-name>
            <surname>-</surname>
          </string-name>
          TR-21, SEI, CMU,
          <year>November 1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L.</given-names>
            <surname>Chung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. A.</given-names>
            <surname>Nixon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Yu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          , Non-Functional Requirements in Software Engineering. Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>International</given-names>
            <surname>Telecommunication Union (ITU-T)</surname>
          </string-name>
          , “Recommendation Z.
          <volume>151</volume>
          (
          <issue>10</issue>
          /12): User Requirements
          <string-name>
            <surname>Notation (URN) - Language Definition</surname>
          </string-name>
          ,” approved
          <year>October 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>E.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <article-title>Modelling strategic relationships for process reengineering</article-title>
          .
          <source>PhD thesis</source>
          , Department of Computer Science, University of Toronto,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>[6] “jUCMNav Tool.” http://jucmnav.softwareengineering.ca/.</mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>[7] “TouchCORE Tool.” http://touchcore.cs.mcgill.ca/.</mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>N.</given-names>
            <surname>Thimmegowda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Alam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schöttle</surname>
          </string-name>
          , W. Al Abed,
          <string-name>
            <given-names>T.</given-names>
            <surname>Di'Meco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Martellotto</surname>
          </string-name>
          , G. Mussbacher, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Kienzle</surname>
          </string-name>
          , “
          <article-title>Concern-Driven Software Development with jUCMNav and TouchRAM</article-title>
          ,”
          <source>in Proceedings of the Demonstrations Track of the International Conference on Model Driven Engineering Languages and Systems (MODELS 2014)</source>
          , vol.
          <volume>1255</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          ,
          <year>October 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Su</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Yin</surname>
          </string-name>
          , and G. Mussbacher, “
          <article-title>Combined goal and feature model reasoning with the user requirements notation and jucmnav</article-title>
          ,” in Requirements Engineering Conference (RE),
          <year>2014</year>
          IEEE 22nd International, pp.
          <fpage>321</fpage>
          -
          <lpage>322</lpage>
          ,
          <year>Aug 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Schöttle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Thimmegowda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Alam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kienzle</surname>
          </string-name>
          , and G. Mussbacher, “
          <article-title>Feature modelling and traceability for concern-driven software development with TouchCORE</article-title>
          ,” in
          <source>Companion Proceedings of MODULARITY</source>
          <year>2015</year>
          , pp.
          <fpage>11</fpage>
          -
          <lpage>14</lpage>
          , ACM,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>M. B. Duran</surname>
            ,
            <given-names>A. Navea</given-names>
          </string-name>
          <string-name>
            <surname>Pina</surname>
          </string-name>
          , and G. Mussbacher, “
          <article-title>Evaluation of Reusable Concern-Oriented Goal Models,” Model-Driven Requirements Engineering (MoDRE</article-title>
          ),
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>M. B. Duran</surname>
            , G. Mussbacher,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Thimmegowda</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kienzle</surname>
          </string-name>
          , “
          <article-title>On the Reuse of Goal Models</article-title>
          ,” SDL Forum'
          <volume>15</volume>
          ,
          <year>October 2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Acher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Collet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Lahire</surname>
          </string-name>
          , and R. B. France, “Familiar:
          <article-title>A domainspecific language for large scale management of feature models,” Science of Computer Programming (SCP)</article-title>
          , vol.
          <volume>78</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>657</fpage>
          -
          <lpage>681</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>“</surname>
            <given-names>FAMILIAR</given-names>
          </string-name>
          <string-name>
            <surname>Tool</surname>
          </string-name>
          .” http://familiar-project.
          <source>github.io/.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>