<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>VariaMos: a Tool for Product Line Driven Systems Engineering with a Constraint Based Approach</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Raúl Mazo</string-name>
          <email>raulmazo@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Camille Salinesi</string-name>
          <email>camille.salinesi@univ-</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Diaz</string-name>
          <email>daniel.diaz@univ-</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CRI, Université Paris 1 - Sorbonne</institution>
          ,
          <addr-line>90, rue de Tolbiac, 75013 Paris</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ingeniería de Sistemas, Universidad de Antioquia</institution>
          ,
          <addr-line>Medellín</addr-line>
          ,
          <country country="CO">Colombia</country>
        </aff>
      </contrib-group>
      <abstract>
        <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>
      </abstract>
      <kwd-group>
        <kwd>Product line engineering</kwd>
        <kwd>variability</kwd>
        <kwd>product line models</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <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) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], Orthogonal Variability
Models (OVM) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], UML classes [26], DOPLER [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Goals [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. 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>
    </sec>
    <sec id="sec-2">
      <title>VariaMos Architecture</title>
      <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 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] by means of a socket. The VariaMos tool, its
documentation and a video training are available online1.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Functionalities</title>
      <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 [
        <xref ref-type="bibr" rid="ref1 ref14">1, 14</xref>
        ], analysis [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and configuration [
        <xref ref-type="bibr" rid="ref10 ref16">10, 16</xref>
        ]. In additiVn,
MariaMos allows creating/editing Product Line Models (PLMs) that have been
imported as SPLOT XMI2 or constraint program text files (cf. Figure 1(a)) and
exporting/importing PLMs using a XMI or a constraint program file. This functionality
allows communicating models from and to other applications.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Integration of Variability Models by means of Constraint Programs</title>
        <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
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. 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. [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] 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 1 (b).
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Verification of Variability Models</title>
        <p>
          VariaMos implements the typology of verification criteria presented in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Using
this classification we can detect if the model is void [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], if the model is not a false
PLM [
          <xref ref-type="bibr" rid="ref1 ref14">1, 14</xref>
          ], if the model does not have errors (like dead variables [
          <xref ref-type="bibr" rid="ref1 ref14 ref9">1, 9, 14</xref>
          ] or
variables with wrong domains [
          <xref ref-type="bibr" rid="ref1 ref14">1, 14</xref>
          ], inconsistencies (like full-mandatory features [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
requiring optional features [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]) and redundancies (like full-mandatory variables
in1 https://sites.google.com/site/variabilitymodels/home/downloads/PresentationVariaMos2.js
2 http://www.splot-research.org
cluded by another variable [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] or inclusion of a relative father [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]). A snapshot of
the graphical user interface of VariaMos to implement these verification operations is
presented in Figure 1 (c).
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
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Execution of Analysis Operations</title>
        <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. [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. A small description of each
analysis operation implemented in VariaMos and how they have been implemented
are presented as follows:
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.
As the screenshot shows it in Figure 1(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 2n where n is the number of variables
considered. In particular, 2n 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 2(d)). 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).
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 [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] for more details
and Figure 1(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 1(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.
To operationalize this function, the filter is added to the collection of the PLM’s
constraints and then executed in the solver. Figure 1(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 [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. To operationalize this function we use the fd_maximize
and the fd_minimize facts offered by the GNU Prolog solver.
3.4
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Other Features</title>
        <p>
          According to [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], 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: [
          <xref ref-type="bibr" rid="ref10 ref12 ref15">10, 12, 15</xref>
          ] show the efficiency of VariaMos in verification of product
line models and [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] 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 [
          <xref ref-type="bibr" rid="ref10 ref12 ref15">10, 12, 15</xref>
          ].
        </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 [
          <xref ref-type="bibr" rid="ref10 ref15">10, 15</xref>
          ].
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Works</title>
      <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.</p>
      <p>For instance, from the point of view of modeling, there are tools like Feature
Plugin3, XFeature4, AHEAD Tool Suite5, Pure::variants6 and Requiline7. 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 FAMA8 and SPLOT9
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-MDA10,
openArchitectureWare11, Fujaba12 (From UML to Java And Back Again), Jamda13
(JAva Model Driven Architecture), JET14 (Java Emitter Templates), MetaEdit+15 and
Codagen Architect16. There are also approaches that do combine multiple variability
3 http://gp.uwaterloo.ca/fmp
4 http://www.pnp-software.com/XFeature/
5 http://www.cs.utexas.edu/~schwartz/ATS/fopdocs/
6 http://www.software-acumen.com/purevariants/feature-models
7 http://www-lufgi3.informatik.rwth-aachen.de/TOOLS/requiline
8 http://www.isa.us.es/fama
9 http://www.splot-research.org
10 http://www.andromda.org.
11 http://www.openarchitectureware.org/
12 http://www.fujaba.de
13 http://sourceforge.net/projects/jamda
14 http://www.eclipse.org/articles/Article-ET/jet_tutorial1.html
15 http://www.metacase.com/
16 http://www.codagen.com/products/architect/default.htm
models, e.g., KumbangTools17 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 [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]; 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.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and Future Works</title>
      <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.</p>
      <p>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>
      <sec id="sec-5-1">
        <title>Acknowledgments</title>
        <p>Many thanks to Diego Quiroz, Sebastian Monsalve, and Jose Ignacio Lopez for their
invaluable help with this tool.
17 http://www.soberit.hut.fi/KumbangTools/</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Benavides</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Segura</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruiz-Cortés</surname>
            <given-names>A</given-names>
          </string-name>
          . “
          <source>Automated Analysis of Feature Models 20 Years Later: A Literature Review”. Information Systems. Elsevier</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helsen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eisenecker</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          “
          <article-title>Formalizing cardinality-based feature models and their specialization”</article-title>
          .
          <source>Software Process Improvement and Practice</source>
          ,
          <volume>10</volume>
          (
          <issue>1</issue>
          ):
          <fpage>7</fpage>
          -
          <lpage>29</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Diaz</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Codognet</surname>
            <given-names>P.</given-names>
          </string-name>
          “
          <article-title>Design and Implementation of the GNU Prolog System”</article-title>
          .
          <source>Journal of Functional and Logic Programming (JFLP)</source>
          , Vol.
          <year>2001</year>
          , No. 6,
          <string-name>
            <surname>October</surname>
            <given-names>2001</given-names>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Djebbi</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salinesi</surname>
            <given-names>C.</given-names>
          </string-name>
          “
          <article-title>Towards an Automatic PL Requirements Configuration through Constraints Reasoning”</article-title>
          .
          <source>Int. Workshop on Variability Modelling of Software-intensive Systems (VaMoS)</source>
          , Essen, Germany,
          <year>January 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Dhungana</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grünbacher</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rabiser</surname>
            <given-names>R</given-names>
          </string-name>
          .
          <article-title>"The DOPLER Meta-Tool for Decision-Oriented Variability Modeling: A Multiple Case Study,"</article-title>
          <source>Automated Software Engineering</source>
          ,
          <year>2010</year>
          (in press; doi: 10.1007/s10515-010-0076-6).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>González-Baixauli</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laguna</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sampaio</surname>
            <given-names>J</given-names>
          </string-name>
          . “
          <article-title>Using Goal-Models to Analyze Variability”</article-title>
          .
          <source>First International Workshop VaMoS</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Griss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Favaro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allesandro</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          “
          <article-title>Integrating Feature Modeling with RSEB”</article-title>
          .
          <source>Proceedings of the 5th International Conference on Software Reuse</source>
          , Vancouver, Canada,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hai</surname>
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
            , Yuan Fang Li,
            <given-names>Jing</given-names>
          </string-name>
          <string-name>
            <surname>Sun</surname>
          </string-name>
          , Hongyu Zhang, Jeff Pan. “
          <article-title>Verifying feature models using OWL”</article-title>
          .
          <source>Journal of Web-Semantics</source>
          (
          <year>2007</year>
          )
          <fpage>117</fpage>
          -
          <lpage>129</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kang</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cohen</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hess</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Novak</surname>
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peterson</surname>
            <given-names>S.</given-names>
          </string-name>
          “
          <string-name>
            <surname>Feature-Oriented Domain Analysis (FODA) Feasibility</surname>
          </string-name>
          <article-title>Study”</article-title>
          .
          <source>Technical Report CMU/SEI-90-TR-21</source>
          , Software Engineering Institute, Carnegie Mellon University,
          <year>November 1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Mazo</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salinesi</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djebbi</surname>
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diaz</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lora-Michiels</surname>
            <given-names>A</given-names>
          </string-name>
          . “
          <article-title>Constraints: the Heart of Domain and Application Engineering in the Product Lines Engineering Strategy”</article-title>
          .
          <source>International Journal of Information System Modeling and Design IJISMD. ISSN</source>
          <year>1947</year>
          -
          <volume>8186</volume>
          ,
          <year>eISSN 1947</year>
          -
          <fpage>819</fpage>
          . April-June 2012, Vol.
          <volume>3</volume>
          , No.
          <volume>2</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Mazo</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salinesi</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diaz</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lora-Michiels</surname>
            <given-names>A</given-names>
          </string-name>
          . “
          <article-title>Transforming Attribute and CloneEnabled Feature Models Into Constraint Programs Over Finite Domains”</article-title>
          .
          <source>6th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE)</source>
          , Springer Press, Beijing-China,
          <fpage>8</fpage>
          -
          <issue>11</issue>
          <year>June 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Mazo</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lopez-Herrejon</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salinesi</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diaz</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egyed</surname>
            <given-names>A.</given-names>
          </string-name>
          “
          <article-title>Conformance Checking with Constraint Logic Programming: The Case of Feature Models”</article-title>
          .
          <source>In 35th Annual International Computer Software and Applications Conference (COMPSAC)</source>
          , IEEE Press, Munich-Germany,
          <fpage>18</fpage>
          -
          <issue>22</issue>
          <year>July 2011</year>
          . Best Paper Award.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Pohl</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Böckle</surname>
            <given-names>G</given-names>
          </string-name>
          ., van der Linden F. “
          <article-title>Software Product Line Engineering: Foundations, Principles and Techniques”</article-title>
          . In: Springer-Verlag New York, Inc., Secaucus, NJ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Salinesi</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mazo</surname>
            <given-names>R. “</given-names>
          </string-name>
          <article-title>Defects in Product Line Models and how to Identify them”</article-title>
          .
          <source>Software Product Line - Advanced Topic</source>
          , edited by Abdelrahman Elfaki,
          <article-title>InTech editions</article-title>
          ,
          <source>ISBN 978-953-51-0436-0</source>
          ,
          <year>April 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Salinesi</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mazo</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diaz</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djebbi</surname>
            <given-names>O.</given-names>
          </string-name>
          “
          <article-title>Solving Integer Constraint in Reuse Based Requirements Engineering”</article-title>
          .
          <source>18th IEEE International Conference on Requirements Engineering (RE'10)</source>
          . Sydney - Australia. September-October
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Schneeweiss</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hofstedt</surname>
            <given-names>P. “</given-names>
          </string-name>
          <article-title>FdConfig: A constraint-based interactive product configurator”</article-title>
          .
          <source>International Conference on Applications of Declarative Programming and Knowledge Management (INAP) Vienna, Austria. September 28-30</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>