<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Model Fragment Reuse Driven by Requirements</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Raúl</forename><surname>Lapeña</surname></persName>
							<email>rlapena@usj.es</email>
							<affiliation key="aff0">
								<orgName type="laboratory">SVIT Research Group</orgName>
								<orgName type="institution">Universidad San Jorge Autovía A</orgName>
								<address>
									<addrLine>-23 Zaragoza-Huesca Km.299</addrLine>
									<postCode>50830</postCode>
									<settlement>Villanueva de Gállego (Zaragoza)</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jaime</forename><surname>Font</surname></persName>
							<email>jfont@usj.es</email>
							<affiliation key="aff0">
								<orgName type="laboratory">SVIT Research Group</orgName>
								<orgName type="institution">Universidad San Jorge Autovía A</orgName>
								<address>
									<addrLine>-23 Zaragoza-Huesca Km.299</addrLine>
									<postCode>50830</postCode>
									<settlement>Villanueva de Gállego (Zaragoza)</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Carlos</forename><surname>Cetina</surname></persName>
							<email>ccetina@usj.es</email>
							<affiliation key="aff0">
								<orgName type="laboratory">SVIT Research Group</orgName>
								<orgName type="institution">Universidad San Jorge Autovía A</orgName>
								<address>
									<addrLine>-23 Zaragoza-Huesca Km.299</addrLine>
									<postCode>50830</postCode>
									<settlement>Villanueva de Gállego (Zaragoza)</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Óscar</forename><surname>Pastor</surname></persName>
							<email>opastor@pros.upv.es</email>
							<affiliation key="aff1">
								<orgName type="department">Centro de Investigación en Métodos de Producción de Software</orgName>
								<orgName type="institution">Universitat Politècnica de València Camino de Vera</orgName>
								<address>
									<addrLine>s/n</addrLine>
									<postCode>46022</postCode>
									<settlement>Valencia</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Model Fragment Reuse Driven by Requirements</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">6601E46CF99E8387E2EB17D11413F61A</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T06:10+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Software Reuse</term>
					<term>Feature Location</term>
					<term>Model Driven Development</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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 Multi-Objective 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Clone-And-Own (CAO) <ref type="bibr" target="#b0">[1]</ref> 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 (CA-CAO4M), a novel approach for software families where products are developed through Model-Driven Development (MDD). The approach leverages the Multi-Objective Evolutionary Algorithm (MOEA) <ref type="bibr" target="#b1">[2]</ref> technique to rank relevant model fragments for the requirements of a new development with two objectives: <ref type="bibr" target="#b0">(1)</ref> 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background</head><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.    <ref type="figure" target="#fig_0">1</ref> shows an example model fragment that realizes the "converter assistance" requirement, which allows the passing of current from one converter to equipment assigned to its peer to cover overload or failure. To formalize the model fragments used by CACAO4M, we use the Common Variability Language (CVL) <ref type="bibr" target="#b2">[3]</ref>, which defines variants of a base model by replacing variable parts with alternative model replacements found in a library.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Approach</head><p>Fig. <ref type="figure" target="#fig_2">2</ref> presents an overview of CACAO4M. As inputs, we use one requirement for a new product in the family, and the models that implement the legacy products in the family. Our approach runs in three steps: (1) Initialization, (2) application of Genetic Operations, and (3) Fitness Function assessing. The last two steps of the approach are repeated until the solution converges to a certain stop condition. When this occurs, the genetic algorithm provides a model fragment list, ranked according to the objectives, for the requirement.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Legacy Models</head><p>New product requirement</p><p>Step 1 -Initialization</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Initial Model Fragment Population</head><p>Step 2 -Genetic Operations</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Model Fragment Population</head><p>Converges?</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Evaluated Model Fragment Population</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>No</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Yes</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Model Fragment Ranking</head><p>Step 3 -Fitness Function </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Initialization &amp; Genetic Operations</head><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 <ref type="bibr" target="#b3">[4]</ref>, 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 <ref type="bibr" target="#b4">[5]</ref> and <ref type="bibr" target="#b5">[6]</ref> respectively, where their application to models is detailed.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Model Fragment Fitness</head><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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.1">Model Fragment Similitude</head><p>To assess the relevance of each model fragment with relation to the provided requirement, we apply Latent Semantic Indexing (LSI) <ref type="bibr" target="#b6">[7]</ref>. 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) <ref type="bibr" target="#b6">[7]</ref>. The similarity degree between the query and each document is calculated through the cosine between the vectors that represent them. Fig. <ref type="figure" target="#fig_4">3</ref> shows an example of co-occurrence matrix, taken from our approach. Fig. <ref type="figure" target="#fig_4">3</ref> also shows the result of applying the SVD technique to the matrix, and the scores associated to each model fragment.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.2">Model Fragment Understandability</head><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. <ref type="figure" target="#fig_0">1</ref>. To compute the Understandability metric, we take in account the number of lines ( <ref type="formula">9</ref>) and the number of shapes <ref type="bibr" target="#b9">(10)</ref>, for a total of 19 model elements.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Evaluation</head><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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Experimental Setup</head><p>Fig. <ref type="figure" target="#fig_5">4</ref> shows the steps followed to evaluate our approach. First, roles are assigned to products in the product family. One product acts as the new product and the rest act as legacy products. The models of the products that act as legacy products, and one requirement of the product that acts as the new product are used to perform CACAO4M, while the model fragment that implements the latter is kept apart to be used as an oracle. Therefore, in order for a product to act as an oracle, it is necessary to have the mapping between its requirements and the model fragments that implement each of them. From the 23 products in the family, the mapping is available for 4. These products are the ones that can be used as oracles in our family.  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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Role</head><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: We perform our evaluation separately for every requirement in an oracle, and for all the 4 possible oracles individually.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Results</head><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%.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Related Work</head><p>Feature location approaches in a product family such as the one presented in <ref type="bibr" target="#b7">[8]</ref> 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 <ref type="bibr" target="#b8">[9]</ref> 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. <ref type="bibr" target="#b4">[5]</ref> use a SOEA to locate features among a family of models in the form of a variation point. Their approach is refined in <ref type="bibr" target="#b5">[6]</ref>, 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 <ref type="bibr" target="#b4">[5]</ref> and <ref type="bibr" target="#b5">[6]</ref> both technique and metrics, by using a MOEA, with a fitness function that combines Model Similitude and Model Understandability.</p><p>In <ref type="bibr" target="#b9">[10]</ref>, 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 <ref type="bibr" target="#b9">[10]</ref>. 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusions</head><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-And-Own 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.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Example of TCML model and model fragment</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 1</head><label>1</label><figDesc>Fig.1depicts a real-world example model. The right part of Fig.1shows an example model fragment that realizes the "converter assistance" requirement, which allows the passing of current from one converter to equipment assigned to its peer to cover overload or failure. To formalize the model fragments used by CACAO4M, we use the Common Variability Language (CVL)<ref type="bibr" target="#b2">[3]</ref>, which defines variants of a base model by replacing variable parts with alternative model replacements found in a library.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Approach Overview</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. LSI example</figDesc><graphic coords="4,319.31,575.72,91.11,67.00" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Evaluation Steps</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>( 1 )( 1 )( 2 )</head><label>112</label><figDesc>True Positive (TP): predicted true -real true; (2) False Positive (FP): predicted true -real false; (3) True Negative (TN): predicted false -real false; and (4) False Negative (FN): predicted false -real true. The evaluated performance metrics are: Precision: number of elements from the solution that are correct according to the ground truth, expressed as P recision = T P T P + F P Recall: number of elements of the solution retrieved by the proposed solution, expressed as Recall = T P T P + F N (3) F-measure: harmonic mean of precision and recall, expressed as F − measure = 2 * T P 2 * T P + F P + F N</figDesc></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><p>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></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Flexible product line engineering with a virtual platform</title>
		<author>
			<persName><forename type="first">M</forename><surname>Antkiewicz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Ji</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Berger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Czarnecki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Schmorleiz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Stănciulescu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Wąsowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Schaefer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Companion Proceedings of the 36th International Conference on Software Engineering. ICSE Companion 2014</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="532" to="535" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Genetic algorithms for multiobjective optimization: Formulationdiscussion and generalization</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">M</forename><surname>Fonseca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">J</forename><surname>Fleming</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICGA</title>
				<imprint>
			<publisher>Citeseer</publisher>
			<date type="published" when="1993">1993</date>
			<biblScope unit="volume">93</biblScope>
			<biblScope unit="page" from="416" to="423" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Adding standardized variability to domain specific languages</title>
		<author>
			<persName><forename type="first">Ø</forename><surname>Haugen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Møller-Pedersen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Oldevik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">K</forename><surname>Olsen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Svendsen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Software Product Lines, 12th International Conference, SPLC 2008</title>
				<meeting><address><addrLine>Limerick, Ireland</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">September 8-12, 2008. 2008</date>
			<biblScope unit="page" from="139" to="148" />
		</imprint>
	</monogr>
	<note>Proceedings.</note>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Genetic Algorithms and Genetic Programming -Modern Concepts and Practical Applications</title>
		<author>
			<persName><forename type="first">M</forename><surname>Affenzeller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">M</forename><surname>Winkler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Wagner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Beham</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
			<publisher>CRC Press</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Feature location in model-based software product lines through a genetic algorithm</title>
		<author>
			<persName><forename type="first">J</forename><surname>Font</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Arcega</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ø</forename><surname>Haugen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Cetina</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Software Reuse: Bridging with Social-Awareness -15th International Conference, ICSR 2016</title>
				<meeting><address><addrLine>Limassol, Cyprus</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016">June 5-7, 2016. 2016</date>
			<biblScope unit="page" from="39" to="54" />
		</imprint>
	</monogr>
	<note>Proceedings.</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Feature location in models through a genetic algorithm driven by information retrieval techniques</title>
		<author>
			<persName><forename type="first">J</forename><surname>Font</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Arcega</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ø</forename><surname>Haugen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Cetina</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems. MODELS &apos;16</title>
				<meeting>the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems. MODELS &apos;16<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="272" to="282" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">An introduction to latent semantic analysis</title>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">K</forename><surname>Landauer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">W</forename><surname>Foltz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Laham</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Discourse processes</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="issue">2-3</biblScope>
			<biblScope unit="page" from="259" to="284" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Feature location in a collection of product variants</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Xue</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Xing</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Jarzabek</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">19th Working Conference on Reverse Engineering, WCRE 2012</title>
				<meeting><address><addrLine>Kingston, ON, Canada</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2012">October 15-18, 2012. 2012</date>
			<biblScope unit="page" from="145" to="154" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Interface variability in family model mining</title>
		<author>
			<persName><forename type="first">D</forename><surname>Wille</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Holthusen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Schulze</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Schaefer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">17th International Software Product Line Conference co-located workshops, SPLC 2013 workshops</title>
				<meeting><address><addrLine>Tokyo, Japan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2013">August 26 -30, 2013. 2013</date>
			<biblScope unit="page" from="44" to="51" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Towards clone-and-own support: locating relevant methods in legacy products</title>
		<author>
			<persName><forename type="first">R</forename><surname>Lapeña</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ballarín</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Cetina</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th International Systems and Software Product Line Conference, SPLC 2016</title>
				<meeting>the 20th International Systems and Software Product Line Conference, SPLC 2016<address><addrLine>Beijing, China</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016">September 16-23, 2016. 2016</date>
			<biblScope unit="page" from="194" to="203" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
