<?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">VariaMos: a Tool for Product Line Driven Systems Engineering with a Constraint Based Approach</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Raúl</forename><surname>Mazo</surname></persName>
							<email>raulmazo@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="laboratory">CRI</orgName>
								<orgName type="institution">Université Paris 1 -Sorbonne</orgName>
								<address>
									<addrLine>90, rue de Tolbiac</addrLine>
									<postCode>75013</postCode>
									<settlement>Paris</settlement>
									<country key="FR">France</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">Ingeniería de Sistemas</orgName>
								<orgName type="institution">Universidad de Antioquia</orgName>
								<address>
									<settlement>Medellín</settlement>
									<country key="CO">Colombia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Camille</forename><surname>Salinesi</surname></persName>
							<email>camille.salinesi@univ-paris1.fr</email>
							<affiliation key="aff0">
								<orgName type="laboratory">CRI</orgName>
								<orgName type="institution">Université Paris 1 -Sorbonne</orgName>
								<address>
									<addrLine>90, rue de Tolbiac</addrLine>
									<postCode>75013</postCode>
									<settlement>Paris</settlement>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Daniel</forename><surname>Diaz</surname></persName>
							<email>daniel.diaz@univ-paris1.fr</email>
							<affiliation key="aff0">
								<orgName type="laboratory">CRI</orgName>
								<orgName type="institution">Université Paris 1 -Sorbonne</orgName>
								<address>
									<addrLine>90, rue de Tolbiac</addrLine>
									<postCode>75013</postCode>
									<settlement>Paris</settlement>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">VariaMos: a Tool for Product Line Driven Systems Engineering with a Constraint Based Approach</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">C4F1D94737A7FFCB6ED5C0104B5F46BE</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T08:59+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>Product line engineering</term>
					<term>variability</term>
					<term>product line models</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The creation of error-free variability models and their usage in product line analysis and product derivation is central to product line engineering (PLE). The complexity of these tasks makes tool support a success-critical factor. Tools supporting the core activities of PLE are a challenge and a real need for academics, industrial researchers, and practitioners of the PLE domain. In this paper, we present a tool for variability modeling, model integration, verification and analysis, derivation requirements specification and product derivation.</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>Variability models are used to specify the variability of software product lines. These variability models are represented by means of a modeling formalism. In our literature research, we have found quite a number of variability modeling formalisms, such as FODA (Feature-Oriented Domain Analysis) <ref type="bibr" target="#b8">[9]</ref>, Orthogonal Variability Models (OVM) <ref type="bibr" target="#b12">[13]</ref>, UML classes <ref type="bibr">[26]</ref>, DOPLER <ref type="bibr" target="#b4">[5]</ref> and Goals <ref type="bibr" target="#b5">[6]</ref>. To represent and reason on these models, a number of approaches and tools exist in the literature. However, there is a lack of methods and tools that can support modeling, integration, reasoning and complex configuration on the Product Line (PL) domain. This lack is more accentuated when the model is composed of a collection of views representing the same product line. In this paper, we present a tool allowing represent, integrate, reason and configure product line models.</p><p>The paper is structured as follows: Section 2 gives a brief overview of our tool VariaMos. Section 3 describes some functions of VariaMos. Section 4 presents related tools supporting integration, verification, analysis and configuration of product line models. Section 5 concludes the paper and describes future works.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VariaMos Architecture</head><p>VariaMos (Variability Models) is an Eclipse plug-in for specification, automatic verification, analysis, configuration and integration of multi-view product line models. From a deployment point of view, VariaMos is an Eclipse plug-in that communicates with our GNU Prolog <ref type="bibr" target="#b2">[3]</ref> by means of a socket. The VariaMos tool, its documentation and a video training are available online<ref type="foot" target="#foot_0">1</ref> .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Functionalities</head><p>VariaMos allows working simultaneously on a set of models in multi-formalism mode. There are several activities that VariaMos is intended to support: domain engineering with multiple models, integrated verification of the verification criteria existing in literature <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b13">14]</ref>, analysis <ref type="bibr" target="#b0">[1]</ref> and configuration <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b15">16]</ref>. In additiVn, MariaMos allows creating/editing Product Line Models (PLMs) that have been imported as SPLOT XMI<ref type="foot" target="#foot_1">2</ref> or constraint program text files (cf. Figure <ref type="figure" target="#fig_0">1</ref>(a)) and exporting/importing PLMs using a XMI or a constraint program file. This functionality allows communicating models from and to other applications.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Integration of Variability Models by means of Constraint Programs</head><p>In our approach, each view of the product line system is transformed into a constraint program. A constraint program is a collection of constraints without a specific order. In this way, the constraint programs, representing the different views of the PL system, can be easily integrated into a single constraint program. The resulted constraint program represents the general system and offers a richer view of the PL (than individual views). VariaMos implements the five integration strategies presented by <ref type="bibr" target="#b9">[10]</ref>. In our approach, two models' elements referring to the same concept must have the same name; we do not deal with mismatching of names. Mazo et al. <ref type="bibr" target="#b9">[10]</ref> offer a list of rules to transform the most popular formalisms to represent variability models into constraint programs. Once each view of the PL system is transformed into CP, they can be integrated in a single constraint program using the graphical user interface presented in Figure <ref type="figure" target="#fig_0">1</ref> (b).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Verification of Variability Models</head><p>VariaMos implements the typology of verification criteria presented in <ref type="bibr" target="#b9">[10]</ref>. Using this classification we can detect if the model is void <ref type="bibr" target="#b8">[9]</ref>, if the model is not a false PLM <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b13">14]</ref>, if the model does not have errors (like dead variables <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b8">9,</ref><ref type="bibr" target="#b13">14]</ref> or variables with wrong domains <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b13">14]</ref>, inconsistencies (like full-mandatory features <ref type="bibr" target="#b0">[1]</ref> requiring optional features <ref type="bibr" target="#b8">[9]</ref>) and redundancies (like full-mandatory variables in-cluded by another variable <ref type="bibr" target="#b13">[14]</ref> or inclusion of a relative father <ref type="bibr" target="#b13">[14]</ref>). A snapshot of the graphical user interface of VariaMos to implement these verification operations is presented in Figure <ref type="figure" target="#fig_0">1</ref>  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Execution of Analysis Operations</head><p>All the analysis operations implemented in VariaMos are taken from literature and from industrial projects with our partners; most of the operations are explained and referenced on the literature review of Benavides et al. <ref type="bibr" target="#b0">[1]</ref>. A small description of each analysis operation implemented in VariaMos and how they have been implemented are presented as follows:</p><p>1. Calculating the number of valid products represented by the PLM. This operation may be useful for determining the richness of a PLM. VariaMos implements this operation with GNU Prolog in the following way: g_assign(cpt,0), pl(_), g_inc(cpt), fail;g_read(cpt,N), where pl is the fact that represents the product line model. With this operationalization we avoid the overload of the RAM with each solution generated and counted by the solver because each time a solution is found, we release the pile of solutions before the generation of a new one. 2. Obtaining the list of all valid products represented by the PLM, if any exist. This operation may be useful to compare two product line models. The list of valid product is obtained one by one from the solver by means of the backtracking technique.</p><p>As the screenshot shows it in Figure <ref type="figure" target="#fig_0">1</ref>(d), VariaMos provides users with the possibility to navigate in the list of products using the Next and Previous buttons. 3. Calculating product line commonality. This is the ratio between the number of products in which the set of variables of the PLM is present and the number of products represented in the PLM. This operation calculates the number of solutions in which all the variables of the PL are present and divides this number with the result obtained with operation 1. 4. Calculating Homogeneity: A more homogeneous PLM would be one with few unique variables in one product (i.e. a unique variable appears only in one product) while a less homogeneous one would be one with a lot of unique variables. By definition Homogeneity = 1 -(#unicVariables / #products). This operation computes the number of variables that appear in only one product by means of a request to the solver and computes the number of products using the operation 1. 5. Calculating variability factor: This operation takes a PLM as input and returns the ratio between the number of products and 2 n where n is the number of variables considered. In particular, 2 n is the potential number of products represented by a PLM, assuming that there are not cross-tree constraints on the model and that all PLM's variables are Boolean. Variability factor = NProd / 2^ NVar. This function uses the solver to compute the number of variables and the number of products in the PLM. 6. Checking validity of a configuration. A configuration is a collection of variables and may be partial or total (e.g., the partial configuration presented in Figure <ref type="figure">2(d)</ref>). A valid partial configuration is a collection of variables respecting the constraints of the PLM but not necessary representing a valid product. A total configuration is a collection of variables respecting the constraints of a PLM and where no more variables need to be added to form a valid product. This operation may be useful to determine if there are or not contradictions in a collection of variables or to determine whether a given product is available in a product line. To operationalize this function, the configuration to check is considered as a collection of external constraints where each constraint corresponds to the assignation of a particular value to each one of the variables of the PLM. Then, the external constrains and the constraints of the PLM are executed together in the solver to verify if the whole of constraints is consistent (i.e., there is a valid solution satisfying all these constraints).</p><p>7. Executing dependency analysis or decision propagation. It looks for all the possible solutions after assigning some fix value to a collection of values and then asking the solver for almost one solution. This operation is very similar to the operation 6, however, with this operation we can check the satisfaction of constraints by means of reification, and not only the satisfaction of variables of the PL as in operation 5. 8. Specifying external requirements specifications for configurations using constraints.</p><p>This operation allows the specification of constraints that are not constraints of the domain, but configuration constraints. To operationalize this function, external constraints are defined in GNU Prolog and then added to the constraints of the PLM; once added, all the constraints are executed in the solver. See <ref type="bibr" target="#b9">[10]</ref> for more details and Figure <ref type="figure" target="#fig_0">1</ref>(e) for a snapshot of the implementation of this function in VariaMos. 9. Applying a filter. This operation takes a configuration (i.e., set of variables, each one with a particular value) and a collection of external requirements and returns the set of products which include the input configuration and respect the PLM's constraints and the external constraints. Figure <ref type="figure" target="#fig_0">1</ref>(e) presents a snapshot of the GUI of this function in VariaMos. 10. Calculating the number of products after applying a filter. This operation uses the technique presented in operation 1 to compute the number of products that can be configured from a PLM in presence of a filter. A filter is presented as a collection of external constraints and particular assignation of values to the variables of the PL.</p><p>To operationalize this function, the filter is added to the collection of the PLM's constraints and then executed in the solver. Figure <ref type="figure" target="#fig_0">1</ref>(d) presents a snapshot of the GUI of this function in VariaMos. 11. Find an optimal product with respect to a given attribute like cost (min goal) and benefit (max goal). Detection of "optimal" products is very important for decision makers as presented in <ref type="bibr" target="#b9">[10]</ref>. To operationalize this function we use the fd_maximize and the fd_minimize facts offered by the GNU Prolog solver.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Other Features</head><p>According to <ref type="bibr" target="#b7">[8]</ref>, a tool for automating reasoning on variability models should be efficient, scalable and with enough expressivity to represent different kinds of variability constraints. These characteristics are evaluated on VariaMos as follows:</p><p>Reasoning efficiency. The execution time of each reasoning operation can be calculated by the solver by means of a request for the current time (by means of the prolog function user_time(T1)) at the beginning and at the end (by means of the prolog function user_time(T2)) of each constraint program. The time spent by the solver to execute the operation at hand, is computed by means of the clause: T is T2 -T1. We have showed the reasoning efficiency of VariaMos in several works; for instance: <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b11">12,</ref><ref type="bibr" target="#b14">15]</ref> show the efficiency of VariaMos in verification of product line models and <ref type="bibr" target="#b10">[11]</ref> shows the efficiency of VariaMos in transforming PLMs.</p><p>Scalability. VariaMos scalability has been validated using a corpus of 54 models specified in several languages, representing several domains and with sizes from 9 to 10000 variables. In all these cases, VariaMos shows a promising scalability in the execution of the reasoning operation presented in this paper. The results have been reported in works like <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b11">12,</ref><ref type="bibr" target="#b14">15]</ref>.</p><p>Expressivity. In VariaMos, product line models can be loaded as XMI or text files and then, labeled with it particular notation. VariaMos offers several capabilities to represent and transform different types of product line models into constraint programs. In addition, models can be edited with XML and text editors furnished by Eclipse IDE. The power of expression of VariaMos is compared with the one of constraint programming to specify PLMs <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b14">15]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Related Works</head><p>The most of the tools for supporting product line engineering focus on one or two aspects but not in all of the aspects presented in this paper. For instance, from the point of view of modeling, there are tools like Feature Plugin<ref type="foot" target="#foot_2">3</ref> , XFeature<ref type="foot" target="#foot_3">4</ref> , AHEAD Tool Suite 5 , Pure::variants 6 and Requiline 7 . The most of these tools were built to graphically construct feature models and to derive products from these models, not to reason on these models.</p><p>From the point of view of analysis and verification, most of the tools found in literature are formalism-dependent and they only focus on feature models. In addition, most of them focus on verifying the consistency of a combination of features (a feature configuration) against the feature model. Tools like FAMA 8 and SPLOT 9 consider several analysis and verification operations over feature models; however, they have been targeted in the analysis and verification of models represented by a single view.</p><p>From the point of view of expressivity, modeling tools available in the literature are just starting to offer some model-to-model transformation capabilities, but these are still limited and often ad hoc. Some examples of these tools are: Andro-MDA 10 , openArchitectureWare 11 , Fujaba 12 (From UML to Java And Back Again), Jamda 13  (JAva Model Driven Architecture), JET 14 (Java Emitter Templates), MetaEdit+ 15 and Codagen Architect 16 . There are also approaches that do combine multiple variability models, e.g., KumbangTools 17 combining the feature and component-based models. However, none of them deals whit transformation of product line models, where the semantic of the model represents not only one but an undefined collection of product models.</p><p>From the point of view of configuration, there are several tools in literature that address this topic. For instance, FAMA, SPLOT and FdConfig <ref type="bibr" target="#b15">[16]</ref>; however these tools do not support as much reasoning operations over product line models as VariaMos do. In addition, they do not support reasoning operations over multiple PLMs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions and Future Works</head><p>In this paper we introduced the first release of VariaMos which is an Eclipse plug-in for edition, integration, verification, analysis and configuration of PLMs. We introduced the functionalities of the tool and we exposed some of the most relevant design and implementation details. Finally, we showed the differences between VariaMos and other tools found in literature and we concluded that VariaMos supports more variability modeling languages, automatically verifies more criteria than the other tools, and is the first tool to implement reasoning operations over multi-views PLMs. Although VariaMos is not a mature tool yet, its promising capabilities of extensibility, interoperability, scalability, expressivity and efficiency will allow the tool to become accepted and used by the academic and industrial community in the future. Several challenges remain for our future work. On the one hand, the implementation of more verification and analysis functions. For instance, verification against a meta model defined by users, incorporation of a guided process allowing correcting anomalies and support incorporation for incremental verification are envisaged for future releases. On the other hand, it is planned to incorporate, in our tool, a graphical representation of constraint programs, automation of PLM construction from a collection of products models, multi-stage configuration of products from complex requirements formulated as constraint programs and also connection with other kind of solvers; e.g., SAT (SATisfiability), BDDs (Binary Decision Diagrams) and SMTs (Satisfiability Modulo Theories) in order to improve the efficiency of certain reasoning operations.</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. GUI of VariaMos: (a) Definition/edition of Product Line Models, (b) Integration, (c) verification, (d) analysis and (e) configuration. Fig. 1 in high resolution is available at: https://sites.google.com/site/variabilitymodels/home/downloads/GUIofVariaMos.JPG</figDesc><graphic coords="3,354.75,370.52,114.67,141.64" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://sites.google.com/site/variabilitymodels/home/downloads/PresentationVariaMos2.js</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">http://www.splot-research.org</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">http://gp.uwaterloo.ca/fmp</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">http://www.pnp-software.com/XFeature/</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><p>Many thanks to Diego Quiroz, Sebastian Monsalve, and Jose Ignacio Lopez for their invaluable help with this tool.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Automated Analysis of Feature Models 20 Years Later: A Literature Review</title>
		<author>
			<persName><forename type="first">D</forename><surname>Benavides</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Segura</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ruiz-Cortés</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2010">2010</date>
			<publisher>Elsevier</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Formalizing cardinality-based feature models and their specialization</title>
		<author>
			<persName><forename type="first">K</forename><surname>Czarnecki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Helsen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Eisenecker</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software Process Improvement and Practice</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="7" to="29" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Design and Implementation of the GNU Prolog System</title>
		<author>
			<persName><forename type="first">D</forename><surname>Diaz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Codognet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Functional and Logic Programming (JFLP)</title>
		<imprint>
			<biblScope unit="volume">2001</biblScope>
			<biblScope unit="issue">6</biblScope>
			<date type="published" when="2001-10">October 2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Towards an Automatic PL Requirements Configuration through Constraints Reasoning</title>
		<author>
			<persName><forename type="first">O</forename><surname>Djebbi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Salinesi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Int. Workshop on Variability Modelling of Software-intensive Systems (VaMoS)</title>
				<meeting><address><addrLine>Essen, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008-01">January 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">The DOPLER Meta-Tool for Decision-Oriented Variability Modeling: A Multiple Case Study</title>
		<author>
			<persName><forename type="first">D</forename><surname>Dhungana</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Grünbacher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Rabiser</surname></persName>
		</author>
		<idno type="DOI">10.1007/s10515-010-0076-6</idno>
	</analytic>
	<monogr>
		<title level="j">Automated Software Engineering</title>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
	<note>in press</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Using Goal-Models to Analyze Variability</title>
		<author>
			<persName><forename type="first">B</forename><surname>González-Baixauli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Laguna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Sampaio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">First International Workshop VaMoS</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Integrating Feature Modeling with RSEB</title>
		<author>
			<persName><forename type="first">M</forename><surname>Griss</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Favaro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Allesandro</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 5th International Conference on Software Reuse</title>
				<meeting>the 5th International Conference on Software Reuse<address><addrLine>Vancouver, Canada</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Verifying feature models using OWL</title>
		<author>
			<persName><forename type="first">Hai</forename><forename type="middle">H</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Fang</forename><surname>Yuan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jing</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Hongyu</forename><surname>Sun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jeff</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><surname>Pan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Web-Semantics</title>
		<imprint>
			<biblScope unit="page" from="117" to="129" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Feature-Oriented Domain Analysis (FODA) Feasibility Study</title>
		<author>
			<persName><forename type="first">K</forename><surname>Kang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Cohen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hess</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Novak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Peterson</surname></persName>
		</author>
		<idno>CMU/SEI-90-TR-21</idno>
		<imprint>
			<date type="published" when="1990-11">November 1990</date>
		</imprint>
		<respStmt>
			<orgName>Software Engineering Institute, Carnegie Mellon University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Constraints: the Heart of Domain and Application Engineering in the Product Lines Engineering Strategy</title>
		<author>
			<persName><forename type="first">R</forename><surname>Mazo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Salinesi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Djebbi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Diaz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Lora-Michiels</surname></persName>
		</author>
		<idno>eISSN 1947-819</idno>
	</analytic>
	<monogr>
		<title level="j">International Journal of Information System Modeling and Design IJISMD</title>
		<idno type="ISSN">1947-8186</idno>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="issue">2</biblScope>
			<date type="published" when="2012-06">April-June 2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Transforming Attribute and Clone-Enabled Feature Models Into Constraint Programs Over Finite Domains</title>
		<author>
			<persName><forename type="first">R</forename><surname>Mazo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Salinesi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Diaz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Lora-Michiels</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">6th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE)</title>
				<meeting><address><addrLine>Beijing-China</addrLine></address></meeting>
		<imprint>
			<publisher>Springer Press</publisher>
			<date type="published" when="2011-06">June 2011</date>
			<biblScope unit="page" from="8" to="11" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Conformance Checking with Constraint Logic Programming: The Case of Feature Models</title>
		<author>
			<persName><forename type="first">R</forename><surname>Mazo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lopez-Herrejon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Salinesi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Diaz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Egyed</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">35th Annual International Computer Software and Applications Conference (COMPSAC)</title>
				<meeting><address><addrLine>Munich-Germany</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Press</publisher>
			<date type="published" when="2011-07">July 2011</date>
			<biblScope unit="page" from="18" to="22" />
		</imprint>
	</monogr>
	<note>Best Paper Award</note>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Software Product Line Engineering: Foundations, Principles and Techniques</title>
		<author>
			<persName><forename type="first">K</forename><surname>Pohl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Böckle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Van Der Linden</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2005">2005</date>
			<publisher>Springer-Verlag New York, Inc</publisher>
			<pubPlace>Secaucus, NJ</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Defects in Product Line Models and how to Identify them</title>
		<author>
			<persName><forename type="first">C</forename><surname>Salinesi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Mazo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Software Product Line -Advanced Topic</title>
				<editor>
			<persName><forename type="first">Abdelrahman</forename><surname>Elfaki</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2012-04">April 2012</date>
		</imprint>
	</monogr>
	<note>InTech editions</note>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Solving Integer Constraint in Reuse Based Requirements Engineering</title>
		<author>
			<persName><forename type="first">C</forename><surname>Salinesi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Mazo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Diaz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Djebbi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">18th IEEE International Conference on Requirements Engineering (RE&apos;10)</title>
				<meeting><address><addrLine>Sydney -Australia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010-10">September-October 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">FdConfig: A constraint-based interactive product configurator</title>
		<author>
			<persName><forename type="first">D</forename><surname>Schneeweiss</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hofstedt</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Applications of Declarative Programming and Knowledge Management (INAP)</title>
				<meeting><address><addrLine>Vienna, Austria</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">September 28-30, 2011</date>
		</imprint>
	</monogr>
</biblStruct>

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