<?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">VarMeR -A Variability Mechanisms Recommender for Software Artifacts</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Iris</forename><surname>Reinhartz-Berger</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Information Systems</orgName>
								<orgName type="institution">University of Haifa</orgName>
								<address>
									<country key="IL">Israel</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Anna</forename><surname>Zamansky</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Information Systems</orgName>
								<orgName type="institution">University of Haifa</orgName>
								<address>
									<country key="IL">Israel</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">VarMeR -A Variability Mechanisms Recommender for Software Artifacts</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B0838BC355529A781076625E8CE2BC82</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 Product Line Engineering</term>
					<term>Variability Analysis</term>
					<term>Variability Mechanisms</term>
					<term>Polymorphism</term>
					<term>Ontology</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Software is typically not developed from scratch and reuse of existing artifacts is a common practice. Consequently, variants of artifacts exist, challenging maintenance and future development. In this paper, we present a tool for identifying variants in object-oriented code artifacts (in Java) and guiding their systematic reuse. The tool, called VarMeRa Variability Mechanisms Recommender, utilizes known variability mechanisms, which are techniques applied to adapt generic (reusable) artifacts to the context of particular products, for both identification of variants and recommendation on systematic reuse. Building on ontological foundations for representing variability of software behaviors, VarMeR visually presents the commonality and variability of the classes in different products and recommendations on suitable polymorphism variability mechanisms to increase systematic reuse.</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>In practice, software reuse takes in many cases an ad-hoc form. Often while artifacts are not developed with reuse in mind, it is later achieved by duplicating artifacts and adapting them to the particular needs (a clone-and-own approach). Such an approach is easy to follow and intuitive, but has deficiencies in maintenance and future development. Thus, various methods have been suggested to detect variants, mainly in code, e.g., <ref type="bibr" target="#b0">[1]</ref>, <ref type="bibr" target="#b4">[5]</ref>. Targeting at comparing and evaluating clone detection tools, four types of clones are mentioned in <ref type="bibr" target="#b1">[2]</ref>: Type 1an exact copy without modifications (except for white space and comments); Type 2a syntactically identical copy (only variable, type, or function identifiers were changed); Type 3a copy with further modifications (statements were changed, added, or removed); Type 4a syntactically different copy which performs the same computation. Taking clone detection one step forward, a method, named ECCO (Extraction and Composition for Clone-and-Own), is introduced in <ref type="bibr" target="#b2">[3]</ref> to enhance the clone-and-own approach with reuse capabilities. Given a selection of the desired features by the software engineer, ECCO finds the appropriate software artifacts to reuse and also provides hints whether they need adaptation. The adaptation itself, however, is left to the software engineer.</p><p>In order to provide guidance to the adaptation process and to extract reusable artifacts which make future development and maintenance easier, we suggested in <ref type="bibr" target="#b10">[11]</ref>, <ref type="bibr" target="#b11">[12]</ref>, <ref type="bibr" target="#b12">[13]</ref> a framework for identifying variants of software artifacts and associating them with variability mechanismstechniques applied to adapt reusable artifacts to the context of particular products in Software Product Line Engineering (SPLE) <ref type="bibr" target="#b7">[8]</ref>. The framework is based on ontological foundations, where software artifacts are viewed as things exhibiting behavior. The framework allows us to identify similar behaviors (rather than cloned realizations) and associate different variability mechanisms based on the characteristics of related similarity mappings. To support this approach, we have developed a tool called VarMeRa Variability Mechanisms Recommenderwhich gets object-oriented code artifacts (in Java) that belong to two products and provides graphs that capture the commonality and variability of the classes of those products. The tool further recommends how to increase reuse by utilizing suitable variability mechanisms on similar classes. Currently VarMeR supports recommendations on three mechanisms related to polymorphism.</p><p>The rest of this paper is structured as follows. Section 2 provides the background of the approach, while Section 3 presents the capabilities of the VarMeR tool. Finally, Section 4 summarizes and refers to future development plans.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2</head><p>The Approach</p><p>The approach at the heart of VarMeR analyzes the commonality and variability of products behaviors and provides reuse recommendations in the form of associating polymorphism mechanisms to classes that behave similarly (even if their realizations are different). Accordingly, the approach is composed of three steps, which are shown in Figure <ref type="figure">1</ref>  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 1. A high level overview of the approach</head><p>Extracting Behaviors. Referring to a software behavior as a triplet of initial state, external event, and final state <ref type="bibr" target="#b10">[11]</ref>, this step extracts those behavioral components from the operations of the different classes. Each class operation specifies some behavior of the software product. We assume that the operation name captures the essence of the behavior and thus can describe the external event, e.g., Borrow and Return of a Book Copy class in a library management system.</p><p>For extracting initial and final states, we distinguish between two levels: shallowwhich refers to the signature of the operation, and deepwhich takes into consideration the operation's behavior in terms of attributes used and modified throughout the oper-ation1. The initial state of the behavior is composed of all the parameters passed to the operation (part of shallow) and all the class attributes used (read) by the operation (part of deep). The final state consists of the returned type (part of shallow) and all the class attributes modified (set) by the operation (part of deep). For the operation Borrow of the Book Copy class, we can consider the attributes AvailabilityStatus and Borrow-ingPeriod for the initial state, as they are needed for the operation to be executed. The attribute AvailabilityStatus is further modified as a result of the operation execution and hence is considered part of the operation's final state.</p><p>Compare Behaviors. After extracting the behaviors and their shallow and deep levels, a similarity mapping between their constituents is applied. This mapping can be based on existing general-purpose or domain-specific similarity metrics or some combination of such metrics. The metrics can take into account semantic considerations using semantic nets or statistical techniques to measure the distances among words and terms <ref type="bibr" target="#b9">[10]</ref>. Alternatively, they can use type or schematic similarities, potentially ignoring the semantic roles or essence of the compared elements <ref type="bibr" target="#b5">[6]</ref>. The similarity mapping associates to each operation's constituent (shallow or deep) all of its similar counterparts in the other operation (i.e., elements whose similarity with the given constituent exceeds some predefined threshold).</p><p>Analyze Variability. Suppose that the constituents of two operations o1 and o2 in classes C1 and C2 respectively are mapped using a similarity mapping sim, namely, the similarity of their constituents exceeded some predefined threshold. We can distinguish between the following situations with respect to sim:</p><p>1. USEeach constituent of o1 has exactly one counterpart in o2 and vice versa. 2. REF (abbreviation for refinement)at least one constituent in o1 has more than one counterpart in o2. 3. EXT (abbreviation for extension)at least one constituent in o1 has no counterpart in o2.</p><p>Note that REF and EXT are not mutually exclusive; we refer to a combination of both as REF-EXT (abbreviation for refined extension).</p><p>Aggregating the above notions from the level of operations to the level of classes, we aim at recommending on appropriate variability mechanisms. Our current focus is on the common polymorphism mechanisms. Polymorphism is the provision of a single interface to entities of different types. Therefore, the cases of polymorphism are characterized by similar signatures of operations (namely, the USE category in the shallow level of the operations). We further focus on three types of polymorphism which are widely used in industry <ref type="bibr" target="#b13">[14]</ref>: subtype (inclusion) polymorphism (e.g., function pointers, inheritance), parametric polymorphism (e.g., C++ templates), and overloading. Table <ref type="table" target="#tab_1">1</ref> presents recommendations for those polymorphism mechanisms based on the reuse mapping characteristics. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">The VarMeR Tool</head><p>We implemented the approach in Java. The main inputs of the tool -VarMeRare jar files implementing the software products (or applications) to be compared. Figure <ref type="figure">2</ref> presents the user interface of VarMeR: besides the names and paths to the compared jar files, the tool supports selection of similarity-related information, including thresholds, weights, and measures. Similarity measures define the way similarity is calculated.</p><p>VarMeR currently supports the text semantic similarity metric of Mihalcea, Corley, and Strapparava (MCS) <ref type="bibr" target="#b9">[10]</ref> that combines corpus-based and knowledge-based measures, the Latent Semantic Analysis (LSA) metric <ref type="bibr" target="#b8">[9]</ref>, and UMBCtop N similar words and phrase similarity metric <ref type="bibr" target="#b3">[4]</ref>. The element and parameter name weights define the ratio between name and type similarities of elements (operations or attributes) and parameters, respectively. The weights are taken into consideration when comparing behaviors.</p><p>As the names of parameters are more often meaningless (with respect to attribute/operation names), the tool supports separate weights. Finally, the similarity threshold defines the minimal value above which elements are considered similar. The jar files of the compared products are reverse engineered into class diagrams (in XMI format) and Program Dependence Graphs (PDG)2 <ref type="bibr" target="#b6">[7]</ref> (in JSON format). The shallow and deep levels of the behaviors are extracted from those representations. Then the behaviors are compared utilizing the similarity-related information provided as input.</p><p>Finally, variability is analyzed using the features of the three types of polymorphism (see Table <ref type="table" target="#tab_1">1</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 2. A screenshot of VarMeR inputs</head><p>The outcome of VarMeR is presented visually in the form of graphs. Each graph, comparing two products, shows the classes of the two products in different colors (one for the first product and one for the second product). The size of the nodes is proportional to the number of operations in the corresponding classes (the larger the node is, the more operations the class have). When hovering a node with the mouse, a tooltip showing the behavior appears, presenting the list of all operations of the current class. This way the user (e.g., a programmer or a code reviewer) can get a general idea on the role of each class, not just by its name, but also by the behavior it is expected to support.</p><p>The edges of the graphs (links between classes) represent recommendation on variability mechanisms, where:  the label on the edge (link) indicates which variability mechanisms were identified: parametric, subtyping, and/or overloading.  the width of the edge (link), as well as its length, represents the degree of evidence (i.e., the number of operations related with a certain type of polymorphism; the thicker/longer the link is, the more evidence to use the recommended variability mechanism exist). An example of VarMeR's output is depicted in Figure <ref type="figure" target="#fig_0">3</ref>. The numbers in parentheses in the tooltip indicate the numbers of operations with certain names (but different signatures). The top of the screen includes controls that allow defining the thresholds above which a given mechanism (parametric, subtyping, or overloading) will be presented. In other words, these weights separately control the minimal numbers of operation pairs that need to satisfy certain constraints (USE, REF, EXT, REF-EXT) so that the given mechanism will be recommended. In the top right part of the screen, the user can hide classes unrelated to classes in the other product (such as testFlight in Figure <ref type="figure" target="#fig_0">3</ref>). The bottom of the screen supports selecting colors for the classes of each of the two products and the links between them. Note that currently, VarMeR compares classes from different products (and not classes from the same product that may further increase reuse). Hence, links connect nodes of alternating colors, potentially connecting a single node to several nodes representing classes in the other product (see scribeFilter in Figure <ref type="figure" target="#fig_0">3</ref> as an example).  In the future, we intend to extend the tool support in several ways. First, VarMeR will be extended to support further variability mechanisms besides polymorphisms. Another direction is incorporating VarMeR into existing programming environments, so that it will be relatively easy to apply the recommendations generated by VarMeR. Furthermore, we intend to empirically explore the usefulness of VarMeR and the quality of its outcomes.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 3 .</head><label>3</label><figDesc>Figure 3. An example of VarMeR output The tool further enables zooming into relations (links) among classes to have better understanding how the recommendations are generated and how to apply the recommended variability mechanisms and systemize reuse of the corresponding classes. This option presents the related operations of the classes and the categories to which the links among them belong: USE, REF, EXT, REF-EXT. Figure 4 zooms into the subtyping link of Figure 3 presenting EXT and REF-EXT relations among operations of the corresponding classes. This mapping can be used by a programmer in order to create a class from which the two compared classes (ScribeGui and ScribeBinder) can inherit through sub-typing polymorphism.</figDesc><graphic coords="6,124.70,231.40,345.90,274.60" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 4 .</head><label>4</label><figDesc>Figure 4. Zooming into a relation in VarMeR</figDesc><graphic coords="7,136.05,147.40,345.90,293.35" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 .</head><label>1</label><figDesc>Characteristics of Polymorphism Variability Mechanisms</figDesc><table><row><cell>Shallow</cell><cell>Deep</cell><cell>Description</cell><cell>Variability</cell><cell>Recommendation</cell></row><row><cell></cell><cell></cell><cell></cell><cell>mechanism</cell><cell></cell></row><row><cell>USE</cell><cell>USE</cell><cell>Both signatures</cell><cell>Parametric</cell><cell>Add complete behavior or</cell></row><row><cell></cell><cell></cell><cell>and behaviors are</cell><cell>polymorphism</cell><cell>behavior template as a core</cell></row><row><cell></cell><cell></cell><cell>similar</cell><cell></cell><cell>asset and utilize the para-</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>metric polymorphism</cell></row><row><cell>USE</cell><cell>REF</cell><cell>Signatures are sim-</cell><cell>Subtype</cell><cell>Add the behavior as a core</cell></row><row><cell></cell><cell></cell><cell>ilar and behavior is</cell><cell>polymorphism</cell><cell>asset and utilize the</cell></row><row><cell></cell><cell></cell><cell>refined</cell><cell></cell><cell>polymorphism</cell></row><row><cell>USE</cell><cell>EXT</cell><cell>Signatures are sim-</cell><cell>Subtype</cell><cell>Add the behavior as a core</cell></row><row><cell></cell><cell></cell><cell>ilar and behavior is</cell><cell>polymorphism</cell><cell>asset and utilize the para-</cell></row><row><cell></cell><cell></cell><cell>extended</cell><cell></cell><cell>metric polymorphism; use</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>(procedure) calls to the less</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>extended code</cell></row><row><cell>USE</cell><cell>REF-</cell><cell>Signatures are sim-</cell><cell>Subtype</cell><cell>As with Refinement and</cell></row><row><cell></cell><cell>EXT</cell><cell>ilar and behavior is</cell><cell>polymorphism</cell><cell>Extension</cell></row><row><cell></cell><cell></cell><cell>both refined and</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell>extended</cell><cell></cell><cell></cell></row><row><cell>USE</cell><cell>Not</cell><cell>Signatures are sim-</cell><cell>Overloading</cell><cell>Add behavior interface as a</cell></row><row><cell></cell><cell>mapped</cell><cell>ilar and behavior is</cell><cell></cell><cell>core asset and utilize over-</cell></row><row><cell></cell><cell></cell><cell>different</cell><cell></cell><cell>loading</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">We consider only attributes and ignore local variables, as the latter can be defined for implementation and realization purposes and may hinder the essence of the operation's behavior.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">PDG explicitly represents the data and control dependencies of a program.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgment. The authors would like to thank Jonathan Liberman, Alex Kogan and Asaf Mor for their help in the implementation of the VarMeR tool. The second author was supported by the Israel Science Foundation under grant agreement 817/15.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Finding Clones with Dup: Analysis of an Experiment</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">S</forename><surname>Baker</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="issue">9</biblScope>
			<biblScope unit="page" from="608" to="621" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Comparison and Evaluation of Clone Detection Tools</title>
		<author>
			<persName><forename type="first">S</forename><surname>Bellon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Koschke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Antoniol</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Krinke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Merlo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="issue">9</biblScope>
			<biblScope unit="page" from="577" to="591" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Enhancing Cloneand-Own with Systematic Reuse for Developing Software Variants</title>
		<author>
			<persName><forename type="first">S</forename><surname>Fischer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Linsbauer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">E</forename><surname>Lopez-Herrejon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Egyed</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE International Conference on Software Maintenance and Evolution</title>
				<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="391" to="400" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">UMBC EBIQUITY-CORE: Semantic textual similarity systems</title>
		<author>
			<persName><forename type="first">L</forename><surname>Han</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kashyap</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Finin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mayfield</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Weese</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Second Joint Conference on Lexical and Computational Semantics</title>
				<meeting>the Second Joint Conference on Lexical and Computational Semantics</meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="44" to="52" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code</title>
		<author>
			<persName><forename type="first">T</forename><surname>Kamiya</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kusumoto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Inoue</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">28</biblScope>
			<biblScope unit="page" from="654" to="670" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Semantic and schematic similarities between database objects: a context-based approach</title>
		<author>
			<persName><forename type="first">V</forename><surname>Kashyap</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Sheth</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The VLDB Journal-The International Journal on Very Large Data Bases</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="276" to="304" />
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Identifying Similar Code with Program Dependence Graphs</title>
		<author>
			<persName><forename type="first">J</forename><surname>Krinke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">8 th Working Conference on Reverse Engineering</title>
				<imprint>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="301" to="309" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A Review on Variability Mechanisms for Product Lines</title>
		<author>
			<persName><forename type="first">J</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Hwang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ICCA&apos;</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="page" from="1" to="4" />
			<date type="published" when="2013">2013. 2013</date>
		</imprint>
	</monogr>
	<note>ASTL</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">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="page" from="259" to="284" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Corpus-based and knowledge-based measures of text semantic similarity</title>
		<author>
			<persName><forename type="first">R</forename><surname>Mihalcea</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Corley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Strapparava</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">American Association for Artificial Intelligence (AAAI&apos;06)</title>
				<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="775" to="780" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">An Ontological Approach for Identifying Software Variants: Specialization and Template Instantiation</title>
		<author>
			<persName><forename type="first">I</forename><surname>Reinhartz-Berger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Zamansky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Wand</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">35th International Conference on Conceptual Modeling</title>
				<imprint>
			<date type="published" when="2016">2016. 2016</date>
			<biblScope unit="page" from="98" to="112" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Analyzing Variability of Cloned Artifacts: Formal Framework and Its Application to Requirements. Enterprise, Business-Process and Information Systems Modeling</title>
		<author>
			<persName><forename type="first">I</forename><surname>Reinhartz-Berger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Zamansky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kemelman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">EMMSAD</title>
		<imprint>
			<biblScope unit="page" from="311" to="325" />
			<date type="published" when="2015">2015. 2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Taming Software Variability: Ontological Foundations of Variability Mechanisms</title>
		<author>
			<persName><forename type="first">I</forename><surname>Reinhartz-Berger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Zamansky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Wand</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">34 th International Conference on Conceptual Modeling (ER&apos;2015)</title>
				<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="volume">9381</biblScope>
			<biblScope unit="page" from="399" to="406" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Variability Mechanisms and Lessons Learned in Practice</title>
		<author>
			<persName><forename type="first">B</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Duszynski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Becker</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">1st International Workshop on Variability and Complexity in Software Design (VACE</title>
				<imprint>
			<date type="published" when="2016">2016. 2016</date>
			<biblScope unit="page" from="14" to="20" />
		</imprint>
	</monogr>
</biblStruct>

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