<!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>Model Fragment Reuse Driven by Requirements</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Raúl Lapeña</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jaime Font</string-name>
          <email>jfont@usj.es</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carlos Cetina</string-name>
          <email>ccetina@usj.es</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Óscar Pastor</string-name>
          <email>opastor@pros.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Centro de Investigación en Métodos de Producción de Software Universitat Politècnica de València Camino de Vera</institution>
          ,
          <addr-line>s/n, 46022 Valencia</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>SVIT Research Group, Universidad San Jorge Autovía A-23 Zaragoza-Huesca Km.299 50830 Villanueva de Gállego (Zaragoza)</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>73</fpage>
      <lpage>80</lpage>
      <abstract>
        <p>Clone-and-Own is a common practice in families of software products, where parts from legacy products are reused in new developments. In industrial scenarios, CAO consumes high amounts of time and effort, not guaranteeing good results. We propose a novel approach, Computer Assisted CAO for Models (CACAO4M), that uses a MultiObjective Evolutionary Algorithm (MOEA) with two objectives (Model Fragment Similitude, and Model Fragment Understandability) to rank relevant model fragments for reuse. We evaluated our approach in the industrial domain of train control software. Our approach outperforms the results of a baseline that uses only the Model Fragment Similitude metric, which encourages us to further research in this direction.</p>
      </abstract>
      <kwd-group>
        <kwd>Software Reuse</kwd>
        <kwd>Feature Location</kwd>
        <kwd>Model Driven Development</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Clone-And-Own (CAO) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a common practice in the development of new
products, consisting of adapting elements from legacy products in new product
implementations. Reuse enables faster software development and easier tracking
of projects, and helps maintain the development style and conventions consistent
between products. In practice, CAO is carried out manually, relying on
developers’ knowledge of the family. In industrial scenarios, engineers tasked with new
developments often lack knowledge over the entirety of the family, making CAO
consume high amounts of time and effort, without guaranteeing good results.
      </p>
      <p>
        This paper presents Computer Assisted Clone-And-Own for Models
(CACAO4M), a novel approach for software families where products are developed
through Model-Driven Development (MDD). The approach leverages the
MultiObjective Evolutionary Algorithm (MOEA) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] technique to rank relevant model
fragments for the requirements of a new development with two objectives: (1)
the similitude of model fragments to the provided requirement, and (2) the
understandability of model fragments from the perspective of a software engineer.
      </p>
      <p>The results of our approach are evaluated in the domain of train control
software with our industrial partner, CAF (http://www.caf.net/en), a worldwide
provider of railway solutions, and compared against those of a baseline that takes
in account only the similitude of model fragments to the provided requirement.
The results of our approach improve those of the baseline, providing engineers
with model fragments that are applicable to the problem requirement and easier
to understand than those of the baseline, encouraging further research.</p>
      <p>Through our work, Section 2 presents the background, Section 3 details our
approach, Section 4 evaluates our approach, Section 5 gathers the related works,
and Section 6 concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>This section presents the Train Control and Management Language (TCML)
that formalizes the products from our industrial partner. It has the
expressiveness required to (1) describe the interaction between train equipment, and (2)
specify non-functional aspects. We present an equipment-focused simplified
subset of TCML, along with a running example.</p>
      <sec id="sec-2-1">
        <title>Product Model</title>
      </sec>
      <sec id="sec-2-2">
        <title>Product Model Fragment</title>
      </sec>
      <sec id="sec-2-3">
        <title>Pantograph 1</title>
      </sec>
      <sec id="sec-2-4">
        <title>Circuit Breaker 1</title>
      </sec>
      <sec id="sec-2-5">
        <title>Converter 1</title>
      </sec>
      <sec id="sec-2-6">
        <title>Pantograph 2</title>
      </sec>
      <sec id="sec-2-7">
        <title>Circuit Breaker 2</title>
      </sec>
      <sec id="sec-2-8">
        <title>Converter 2</title>
      </sec>
      <sec id="sec-2-9">
        <title>Pantograph 1</title>
      </sec>
      <sec id="sec-2-10">
        <title>Circuit Breaker 1</title>
      </sec>
      <sec id="sec-2-11">
        <title>Converter 1</title>
      </sec>
      <sec id="sec-2-12">
        <title>Pantograph 2</title>
      </sec>
      <sec id="sec-2-13">
        <title>Circuit Breaker 2</title>
      </sec>
      <sec id="sec-2-14">
        <title>Converter 2</title>
      </sec>
      <sec id="sec-2-15">
        <title>Circuit</title>
        <p>Breaker 3</p>
      </sec>
      <sec id="sec-2-16">
        <title>Circuit Breaker 3 HVAC PA</title>
      </sec>
      <sec id="sec-2-17">
        <title>CCTV</title>
      </sec>
      <sec id="sec-2-18">
        <title>HVAC PA</title>
      </sec>
      <sec id="sec-2-19">
        <title>CCTV</title>
      </sec>
      <sec id="sec-2-20">
        <title>TCML Syntax</title>
      </sec>
      <sec id="sec-2-21">
        <title>Model Fragment</title>
      </sec>
      <sec id="sec-2-22">
        <title>High Voltage</title>
        <p>Equipment
Contactors</p>
      </sec>
      <sec id="sec-2-23">
        <title>Voltage</title>
        <p>Converters</p>
      </sec>
      <sec id="sec-2-24">
        <title>Consumer Equipment</title>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Approach</title>
      <p>The first step of our approach generates an initial collection of model fragments,
by randomly extracting parts of the legacy models.</p>
      <p>
        The second step of our approach generates a set of model fragments that
could realize the requirement. The generation of new model fragments is done
by applying a set of three genetic operators, adapted to work over model
fragments: selection of parents, crossover, and mutation. The selection operator
picks the best candidates from the population as input for the rest of operators.
We follow the wheel selection mechanism [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], where each model fragment from
the population has a probability of being selected proportional to its fitness
score. The crossover operation enables the creation of a new individual by
combining the genetic material from two parent model fragments. The
mutation operator is used to imitate the mutations that randomly occur in nature
when new individuals are born. The operations are taken from [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
respectively, where their application to models is detailed.
3.2
      </p>
      <sec id="sec-3-1">
        <title>Model Fragment Fitness</title>
        <p>The third step of the approach assesses each of the candidate model fragments,
ranking them according to a fitness function. Our approach presents a fitness
function based on two objectives: (1) the degree of similitude of the model
fragment to the requirement, and (2) the understandability of the model fragment.
3.2.1</p>
      </sec>
      <sec id="sec-3-2">
        <title>Model Fragment Similitude</title>
        <p>
          To assess the relevance of each model fragment with relation to the provided
requirement, we apply Latent Semantic Indexing (LSI) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. LSI constructs vector
representations of a query and a corpus of text documents by encoding them as
a term-by-document co-occurrence matrix. In our approach, terms are keywords
extracted from requirements through natural language processing techniques, the
documents are generated from the model fragments by extracting the terms that
correspond to the elements that conform them, and the query is the provided
requirement. Once the matrix is built, it is normalized and decomposed into
a set of vectors using a matrix factorization technique called Singular Value
Decomposition (SVD) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. The similarity degree between the query and each
document is calculated through the cosine between the vectors that represent
them. Fig. 3 shows an example of co-occurrence matrix, taken from our approach.
Fig. 3 also shows the result of applying the SVD technique to the matrix, and
the scores associated to each model fragment.
        </p>
        <p>s PANTO
d
ro CIRCUIT
yw BREAKER
e
K DOOR
…</p>
        <p>MF1
0
0
3
…</p>
        <p>Documents</p>
        <p>MF2
2
2
0
…
…
…
…
…
…</p>
        <p>MFN
2
5
1
…</p>
        <p>Singular Value Decomposition</p>
        <p>MFN
MF2</p>
        <p>Q</p>
        <p>MF1</p>
        <p>Score
Model Fragment
similitude scores</p>
        <p>MF2 =0.93
MFN=0.24</p>
        <p>…</p>
        <p>MF1 =-0.87
Query
Requirement
1
2
1
…</p>
        <p>Fig. 3. LSI example
3.2.2</p>
      </sec>
      <sec id="sec-3-3">
        <title>Model Fragment Understandability</title>
        <p>In order to measure the Understandability of a TCML model fragment, we
measure its size by accounting the amount of lines, shapes, and labels that appear
in the model fragment. As an example, we highlight the calculations for the
model on Fig. 1. To compute the Understandability metric, we take in account
the number of lines (9) and the number of shapes (10), for a total of 19 model
elements.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Evaluation</title>
      <p>This section evaluates our approach by applying it to a case study from our
industrial partner consisting of 23 trains, each one having an associated
requirements specification document, and an associated model. Requirements from the
document are implemented through model fragments in the model. The
documents specify, on average, around 420 requirements each. The models comprise,
on average, around 1200 elements each.
4.1</p>
      <sec id="sec-4-1">
        <title>Experimental Setup</title>
        <p>Then, CACAO4M performs the steps described in our approach to provide
a model fragment ranking for the requirement of the new product. We carry out
the genetic algorithm inside CACAO4M, weighing the two metrics (Model
Similitude and Model Understandability) as 90% - 10%. We also apply CACAO4M
with a 100% - 0% weighing, to simulate a Single Objective Evolutionary
Algorithm (SOEA) where only Model Similitude is taken in account. The SOEA is
considered as the baseline against which the results of the MOEA are compared.</p>
        <p>Finally, the first model fragment in the ranking for each result is compared
with the oracle model fragment, in order to obtain a confusion matrix. A
confusion matrix is a table used to describe the performance of a classification model
(in this case, our algorithms) on a set of test data (the resulting model
fragments) for which the true values are known (from the oracle). Each solution
outputted by the algorithm is a model fragment composed of a subset of the
model elements that are part of the product model (where the requirement is
being located). Since the granularity is at the level of model elements, each model
element presence or absence is considered as a classification.</p>
        <p>The confusion matrix distinguishes between the predicted values and the real
values classifying them into four categories: (1) True Positive (TP): predicted
true - real true; (2) False Positive (FP): predicted true - real false; (3) True</p>
      </sec>
      <sec id="sec-4-2">
        <title>Negative (TN): predicted false - real false; and (4) False Negative (FN):</title>
        <p>predicted false - real true. The evaluated performance metrics are:
(1) Precision: number of elements from the solution that are correct according
to the ground truth, expressed as
(2) Recall: number of elements of the solution retrieved by the proposed
solution, expressed as</p>
        <p>P recision =</p>
        <p>T P</p>
        <p>T P + F P
Recall =</p>
        <p>T P
T P + F N
(3) F-measure: harmonic mean of precision and recall, expressed as
F
measure =</p>
        <p>2 T P
2 T P + F P + F N</p>
        <p>We perform our evaluation separately for every requirement in an oracle, and
for all the 4 possible oracles individually.
4.2</p>
      </sec>
      <sec id="sec-4-3">
        <title>Results</title>
        <p>
          The LSI 90% &amp; U 10% (MOEA) achieves the best results, providing a mean
precision value of 55.34%, a recall value of 49.98%, and a combined F-measure
of 52.52%; while the LSI 100% &amp; U 0% (SOEA) achieves a mean precision value
of 53.21%, a recall value of 49.73%, and a combined F-measure of 51.41%.
Feature location approaches in a product family such as the one presented in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]
center their efforts in finding the code that implements a feature between the
different products by combining techniques such as FCA and LSI. We are not
interested in the code representation of a feature in the family, but in locating
the most relevant model fragments that implement a requirement.
        </p>
        <p>
          Works as [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] focus on the location of features over models by comparing the
models with each other to formalize the variability among them in the form of
a Software Product Line. We do not locate features, but model fragments that
implement requirements, and our goal is not to formalize variability, but to help
engineers develop requirements through model fragment Clone-And-Own.
        </p>
        <p>
          Font et al. [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] use a SOEA to locate features among a family of models in
the form of a variation point. Their approach is refined in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], where a SOEA
is used to find sets of suitable feature realizations. The presented approach, in
contrast, locates model fragments that are relevant for the development of a
single requirement. The presented approach also differs from [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] and [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] both
technique and metrics, by using a MOEA, with a fitness function that combines
Model Similitude and Model Understandability.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], Lapeña et. al use POS Tagging in combination with an adapted
twostep LSI to obtain rankings of methods for all the requirements of a new product
in a product family. In the presented work, we obtain only one ranking for one
requirement on demand. Plus, this approach uses a MOEA, against the modified
LSI in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Finally, the scope of this work is centered around finding models that
can be used to implement a particular requirement, not finding relevant code for
requirements implementation.
6
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>Clone-And-Own (CAO) is a common practice in the development of new
products in families of software products. In practice, it is carried out manually and
relies on human factors, consuming high amounts of time and effort without
guaranteeing good results. This paper presents Computer Assisted
Clone-AndOwn for Models (CACAO4M), a novel approach that leverages a MOEA to
rank relevant model fragments for the development of particular requirements
for a new product. CACAO4M assesses the similitude of model fragments to the
provided requirement, and their understandability. Through our approach, we
aim to prioritize the model fragments that are easier to understand from the
perspective of a software engineer. Our MOEA approach is evaluated against a
SOEA baseline that takes in account only model fragment similitude,
outperforming the baseline in every performance indicator. Model Understandability
provides a way of locating model fragments that are applicable to the problem
requirement and easier to understand than those retrieved by the SOEA. Results
encourage us to work further in this direction.
This work has been partially supported by the Ministry of Economy and
Competitiveness (MINECO) through the Spanish National R+D+i Plan and ERDF
funds under the project Model-Driven Variability Extraction for Software
Product Line Adoption (TIN2015-64397-R).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Antkiewicz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ji</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berger</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmorleiz</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lämmel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Stănciulescu, t.,
          <string-name>
            <surname>Wąsowski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schaefer</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Flexible product line engineering with a virtual platform</article-title>
          .
          <source>In: Companion Proceedings of the 36th International Conference on Software Engineering. ICSE Companion</source>
          <year>2014</year>
          , New York, NY, USA, ACM (
          <year>2014</year>
          )
          <fpage>532</fpage>
          -
          <lpage>535</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Fonseca</surname>
            ,
            <given-names>C.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fleming</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          , et al.:
          <article-title>Genetic algorithms for multiobjective optimization: Formulationdiscussion and generalization</article-title>
          .
          <source>In: ICGA</source>
          . Volume
          <volume>93</volume>
          .,
          <string-name>
            <surname>Citeseer</surname>
          </string-name>
          (
          <year>1993</year>
          )
          <fpage>416</fpage>
          -
          <lpage>423</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Haugen</surname>
          </string-name>
          , Ø.,
          <string-name>
            <surname>Møller-Pedersen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oldevik</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Olsen</surname>
            ,
            <given-names>G.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Svendsen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Adding standardized variability to domain specific languages</article-title>
          .
          <source>In: Software Product Lines, 12th International Conference, SPLC</source>
          <year>2008</year>
          , Limerick, Ireland, September 8-
          <issue>12</issue>
          ,
          <year>2008</year>
          , Proceedings. (
          <year>2008</year>
          )
          <fpage>139</fpage>
          -
          <lpage>148</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Affenzeller</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winkler</surname>
            ,
            <given-names>S.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beham</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Genetic Algorithms and Genetic Programming - Modern Concepts and Practical Applications</article-title>
          . CRC Press (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Font</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arcega</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haugen</surname>
          </string-name>
          , Ø.,
          <string-name>
            <surname>Cetina</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Feature location in model-based software product lines through a genetic algorithm</article-title>
          .
          <source>In: Software Reuse: Bridging with Social-Awareness - 15th International Conference, ICSR</source>
          <year>2016</year>
          , Limassol, Cyprus, June 5-7,
          <year>2016</year>
          , Proceedings. (
          <year>2016</year>
          )
          <fpage>39</fpage>
          -
          <lpage>54</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Font</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arcega</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haugen</surname>
          </string-name>
          , Ø.,
          <string-name>
            <surname>Cetina</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Feature location in models through a genetic algorithm driven by information retrieval techniques</article-title>
          .
          <source>In: Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems. MODELS '16</source>
          , New York, NY, USA, ACM (
          <year>2016</year>
          )
          <fpage>272</fpage>
          -
          <lpage>282</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Landauer</surname>
            ,
            <given-names>T.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Foltz</surname>
            ,
            <given-names>P.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laham</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>An introduction to latent semantic analysis</article-title>
          .
          <source>Discourse processes 25(2-3)</source>
          (
          <year>1998</year>
          )
          <fpage>259</fpage>
          -
          <lpage>284</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Xue</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xing</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jarzabek</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Feature location in a collection of product variants</article-title>
          .
          <source>In: 19th Working Conference on Reverse Engineering, WCRE</source>
          <year>2012</year>
          ,
          <article-title>Kingston</article-title>
          ,
          <string-name>
            <surname>ON</surname>
          </string-name>
          , Canada,
          <source>October 15-18</source>
          ,
          <year>2012</year>
          . (
          <year>2012</year>
          )
          <fpage>145</fpage>
          -
          <lpage>154</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Wille</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Holthusen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schulze</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schaefer</surname>
          </string-name>
          , I.:
          <article-title>Interface variability in family model mining</article-title>
          .
          <source>In: 17th International Software Product Line Conference co-located workshops, SPLC 2013 workshops, Tokyo, Japan - August 26 - 30</source>
          ,
          <year>2013</year>
          . (
          <year>2013</year>
          )
          <fpage>44</fpage>
          -
          <lpage>51</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Lapeña</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ballarín</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cetina</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Towards clone-and-own support: locating relevant methods in legacy products</article-title>
          .
          <source>In: Proceedings of the 20th International Systems and Software Product Line Conference, SPLC 2016</source>
          , Beijing, China,
          <source>September 16- 23</source>
          ,
          <year>2016</year>
          . (
          <year>2016</year>
          )
          <fpage>194</fpage>
          -
          <lpage>203</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>