<!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>Debian Packages Repositories as Software Product Line Models. Towards Automated Analysis</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Jose ́ A. Galindo, David Benavides and Sergio Segura Department of Computer Languages and Systems</institution>
          <addr-line>Av Reina Mercedes S/N, 41012 Seville</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2010</year>
      </pub-date>
      <fpage>29</fpage>
      <lpage>34</lpage>
      <abstract>
        <p>-The automated analysis of variability models in general and feature models in particular is a thriving research topic. There have been numerous contributions along the last twenty years in this area including both, research papers and tools. However, the lack of realistic variability models to evaluate those techniques and tools is recognized as a major problem by the community. To address this issue, we looked for largescale variability models in the open source community. We found that the Debian package dependency language can be interpreted as software product line variability model. Moreover, we found that those models can be automatically analysed in a software product line variability model-like style. In this paper, we take a first step towards the automated analysis of Debian package dependency language. We provide a mapping from these models to propositional formulas. We also show how this could allow us to perform analysis operations on the repositories like the detection of anomalies (e.g. packages that cannot be installed).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>realistic models are highly desirable in order to assess the
scalability of analysis tools.</p>
      <p>
        In order to look for realistic and large–scale variability
models, we decided to look into the open source community. We
found that Debian based linux distributions have a language
to describe dependencies in software packages repositories.
They are used in Debian individual installations in order to
add, remove or update packages and manage their possible
conflicts and dependencies [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. We found that this language
can be interpreted as a variability language similar to those of
feature models, OVMs or decision models. Thus, a Debian–
based linux distribution could be interpreted as a product line
and the individual installations could be therefore considered
the products of the product line. In this context, a product is a
set of installed packages, i.e. a Debian installation. Similarly,
we assume that a set of repositories define an SPL of
Debianbased distributions. We may remark that this could also be
applied to other dependency languages such as RPM [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
(previusly called Red-Hat Package Manager) but for simplicity
they are out of scope of this paper.
      </p>
    </sec>
    <sec id="sec-2">
      <title>II. DEBIAN PACKAGE DEPENDENCY LANGUAGE</title>
      <p>This section describes the main elements of the Debian
package dependency language. A Debian–based installation
is associated with a set of package repositories. A package
is a unit of software that can be installed and configured.
Each package repository is associated with a configuration file
written in the Debian package dependency language including
information about the software packages and their
relationships/dependencies.</p>
      <p>Figure 1 shows a fragment of a repository configuration
file. For each package in the file, a set of properties are
presented. A property is composed of a name and one or
more values associated with it. Properties may be divided
into those providing basic information about the package (e.g.
name, version) and those describing the relationships with
other packages. These relationships can be divided into:
Depends. Package A depends on package B if B must be
installed for A to work properly. Sometimes, A depends
not only on B, but on a specific version of it. For instance,
in Figure 1, line 6, describes that package
openoffice.orggnome depends on package libc6 with version greater
or equal to 2.1.3. If the relationship requires package B
to be properly configured for the installation of A, the
relationship is referred to as Pre-Depends. Note that a
installed package could not be properly configured.
Suggests. Package A suggests package B if B contains
files that are related to (and usually enhance) the
functionality of A. In Figure 1, line 8, package
openoffice.orggnome suggests package openoffice.org-evolution. When
the suggestion of the package is strong and it is intended
to be accepted by most of the users this relationship is
usually referred to as Recommends. Note that is a human
who determines if a the relation should be suggests or
recommends.</p>
      <p>Conflicts. Package A conflicts with package B when
A will not operate if B is installed on the system. In
most cases, conflicts are cases where A contains files
which are an improvement of those in B. For example, in
Figure 1, line 9, package openoffice.org-gnome conflicts
with package openoffice.org2-gnome in versions prior to
1:2.4.0-3ubuntu6.</p>
      <p>Replaces. Package A replaces package B when files
installed by B are removed and in some cases over-written
by files in A. In Figure 1, line 4, package
openoffice.orggnome replaces package openoffice.org-common in
versions prior to 2.0.4 rc1-0. When this relationship affects
only a part of the functionality of the package it is named
Provides.</p>
    </sec>
    <sec id="sec-3">
      <title>III. A GRAPHICAL NOTATION FOR DEBIAN</title>
      <p>DEPENDENCIES</p>
      <p>
        In order to improve the understandability and readability
of the paper we propose a simplified graphical notation [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
for the Debian package dependency language described in the
previous section. We will refer to this notation as Debian
1 Package: openoffice.org-gnome
2 Essential: No
3 Version: 1:2.4.0-3ubuntu6
4 Replaces: openoffice.org-common (&lt;&lt; 2.0.4˜
rc1-0),
5 Provides: openoffice.org-gtk-gnome,
openoffice.org2-gnome
6 Depends: gconf2, libc6 (&gt;= 2.1.3)
7 Pre-Depends: dpkg (&gt;= 1.14.12ubuntu3)
8 Suggests: openoffice.org-evolution
9 Conflicts: openoffice.org2-gnome (&lt;&lt;
1:2.4.0-3ubuntu6)
10 Task: ubuntu-desktop, edubuntu-desktop,
gobuntu-desktop
Variability Modelling Language (DebianVML). In this reduced
notation we used the a concatenation of the name and version
of the packages as the name of the nodes. We omit in this
reduced visual notation the relationships of versions. In Figure
2, we present the graphical symbols used to represent each
relationship among packages: depends, pre-depends, conflicts,
suggests, recommends, replaces and provides. Notice that
some of these relationships are represented with the same
notation since they have similar meaning as described in
previous Section.
      </p>
      <p>Figure 3 shows an example using this notation. As
illustrated, the repository is represented as a graph in which
nodes represent packages and edges the relationships among
packages. Each package is represented as a rectangle labelled
with the name and version of the package. In this particular
example, we also include a capital letter to simplify later
references to the packages in the paper.</p>
    </sec>
    <sec id="sec-4">
      <title>IV. A MOTIVATING EXAMPLE Consider the example in Figure 3, it represents a valid DebianVML instance composed by four packages and with three different types of relationships: Depends, Conflicts, Replaces.</title>
      <p>The model in Figure 3 represents the following products :
1) f g
2) fDg.
3) fCg.
4) fB, Cg.
5) fB, Dg
6) fA, B, Dg</p>
      <p>Notice that the empty product is allowed in this variability
model as it represents a Linux distribution without installed
packages. Although this could be controversial, a distribution
completely void, even without the Linux Kernel, could be
considered valid as even the kernel can be installed or uninstalled.</p>
      <p>There are also other potential products, that are invalid, for
example the product fAg is not valid because the depends
relationship with B package is not satisfied.</p>
      <p>
        An example of how the automated analysis could help in
this circumstance is shown if we apply the valid product
operation [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. This analysis operation takes a feature model
and a product as inputs and determines whether the product
is valid for the model. Applying the same idea to Debian
configurations, we could determine that fA, B, Cg (Figure 4)
is not a valid instantiation, because the inconsistency marked
by the conflicts relationship between packages A and C. In
contrast, the product fA, B, Dg (Figure 5) is a valid product
since it does not violate any constraint.
      </p>
      <p>Another analysis operation of feature models that can be
used in the Debian community is the so–called dead features.
A feature is dead when the feature does not appear in any
valid configuration. In the context of Debian, we can define a
dead package as the one that is present in a repository but can
never be installed because of the violation of dependencies.</p>
      <p>
        In our preliminary tests using Ubuntu 8.04 [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] we detected
some of these kind of repository inconsistencies. Note that
Ubuntu distribution uses the Debian packaging system Figure
7 shows a real example of how a package, wysihtml-le, that
is in the universe repository can never be installed. Dead
Packages can be detected using similar techniques as we do
with other kinds of variability models so the knowledge can
be reused. The complexity of these variability models are
usually bigger than others used in the software product line
community having up to 24780 packages and 159812 packages
dependencies in Ubuntu 8.04 with main, multiverse, restricted
and universe repositories enabled.
      </p>
      <p>V. MAPPING DEBIANVML TO PROPOSITIONAL FORMULA</p>
      <p>
        To enable the automated analysis of DebianVML we must
define the mapping from DebianVML to constraints into an
specific off–the–shelf solver such as Sat4j [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], Choco [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] or
JaCoP [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Note that these solvers are widely used for the
automated analysis of feature models [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>In this Section we do not refer to all the relationships as
some of them have a very similar meaning and are treated in
the same way as the relationships we describe here. Also there
are some relationships that do no affect to the variability in
the model and does not need to be added to the solver as
constraints more exactly suggests and recommends relationships.</p>
      <p>The algorithm we followed to translate DebianVML to
constraints has the following general form: Each package
name make up the set of variables then, each relationship is
processed to make up the set of constraints (or propositional
clauses) of the problem.</p>
      <p>The first relationship to be processed is Replaces. This
is a special case of relationship as it is needed to generate
a set of tuples containing the replaced packages and their
replacements to be ready to process the depends relationships.
This is needed because, after performing a general mapping
from Debian dependencies to propositional clauses, we have to
change the output clauses according to the replacements that
are stored in the tuples. For instance, in the example of Figure
3, we have the tuple (C,D) meaning that D is a replacement of
C. Of course, in a real big example, we can have more than
a tuple referring to the same package (e.g. (C,X1), (C,X2),...
,(C,Xn) means that C is replaced by X1, X2, ..., Xn).</p>
      <p>After processing the Replaces relationship we can process
the other relationships following the general rules presented</p>
      <p>Propositional formula</p>
      <p>A ) (B)
A ) (B_
C _ D _ :::)</p>
      <p>A ) (:B)
Used to generate</p>
      <p>the tuples</p>
      <p>Table I
DEBIAN RELATIONS TO PROPOSITIONAL FORMULA</p>
    </sec>
    <sec id="sec-5">
      <title>VI. RELATED WORK</title>
      <p>
        There are other contributions interested in solving the
existing lack of realistic variability models in the SPL context.
Czarnecki et al.[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] present how to extract feature models from
the Linux kernel using the LKC (Linux Kernel Configurator)
language that describes the relationships in a very similar way
as feature models do obtaining feature models with about 6319
features. Our approach focuses on other variability dependency
language existing in open source community increasing even
more the availability of realistic variability models up to 20000
packages to the SPL community. Although our first attempts
tried to map DebianVML to feature models, we finally realised
that DebianVML can be considered a variability language by
it self.
Recently, Di Cosmo et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] presented a way to describe
feature models using Debian packages dependencies and they
propose using Debian dependencies management tools to
analyse feature models. Our contribution here is the other
way around: we propose to use feature model analysis tools
and operations to analyse Debian packages repositories. We
think that Di Cosmo et al. contribution and ours are good
complements to investigate in this direction.
      </p>
      <p>
        A similar contribution to the problem of the analysis of
Debian repositories is presented by some of the results of
the EDOS project [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Our contribution can benefit
their results and we have to study in depth at what extend
they have performed analysis operations. We think that we
can complement their results providing our know–how in the
analysis of feature models and software product lines [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>VII. CONCLUSIONS, FUTURE WORK AND DISCUSSIONS
In this paper, we propose using Debian repositories as a
good source of realistic and complex variability models. These
can be used as motivations inputs problems for those tools
dealing with the automation of variability models. At the same
time, we consider the Debian community could benefit of
this automation to perform several analysis operations like
the detection of inconsistencies in repositories, a work that
is currently done by hand (e.g. When an error is detected, it
is correctly manually).</p>
      <p>In our ongoing research, we are working to enable the
analysis of DebianVML in FaMa, making FaMa, our tool to
analyse feature model, capable to perform this analysis and
helping the community of Debian based distributions, applying
the knowledge about feature models under Debian VM.</p>
      <p>
        FaMa [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a framework to build variability model
analysis tools, that was designed with extensibility in mind.
It offers a platform to implement other kind of variability
models. It has already been used to analyse feature models
[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and also OVMs [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Because the analysis of variability
models can be very expensive in terms of memory and time,
FaMa also offers a set of tools for benchmarking [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] over
models. These features, coupled to our familiarity with the
tool as members of the FaMa project, made FaMa as a good
candidate to be extended in order to support the analysis of
Debian variability models. This is part of our future work.
      </p>
      <p>These are the main directions of our future work:
Address new operations. Using our experience on feature
models (e.g. Development of analysis tools,
benchmarking, detection of errors ...) we need to be able to detect
anomalies in Debian models such as conditionally dead
packages or redundancies, probably the operations with
more than one variability model can be very useful to
Debian community improving the usability of packaging
systems. Also the explanations of the errors to help
Debian community on its daily work could help to improve
the end user experience.</p>
      <p>Benchmarking and optimization. In our preliminary tests
we have detected that the Debian based models automated
analysis are computationally very expensive, more than
6 hours in a laptop machine with main, multiverse,
restricted and universe repositories of Ubuntu 8.04 enabled
(24780 packages). We will work on the of the codding
to improve those results.</p>
      <p>We consider that this work could foster discussion about
the following topics:</p>
      <p>
        Can open source models be considered as SPL models?
Can the OS community benefit from the knowledge
acquired by the SPL analysis community in the last 20
years [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]?
How advanced are Open Source configuration languages
to abstract end–users from technical details?
      </p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDMENTS</title>
      <p>We would like to thank the friends and co-worker’s that
encouraged us in this research and the anonymous reviewers
for their helpful comments.</p>
      <p>This work has been partially supported by the European
Commission (FEDER) and Spanish Government under CICYT
projects SETI (TIN2009-07366) and by the Andalusian
Government under ISABEL project (TIC-2533).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Batory</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ruiz-Corte´s. Automated analysis of feature models: Challenges ahead</article-title>
          .
          <source>Communications of the ACM</source>
          , December:
          <fpage>45</fpage>
          -
          <lpage>47</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Don</given-names>
            <surname>Batory</surname>
          </string-name>
          .
          <article-title>Feature-oriented programming and the ahead tool suite</article-title>
          .
          <source>In ICSE '04: Proceedings of the 26th International Conference on Software Engineering</source>
          , pages
          <fpage>702</fpage>
          -
          <lpage>703</lpage>
          , Washington, DC, USA,
          <year>2004</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Segura</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ruiz-Corte´s. Automated analysis of feature models 20 years later: A literature review</article-title>
          .
          <source>Information Systems</source>
          ,
          <volume>35</volume>
          (
          <issue>6</issue>
          ),
          <year>2010</year>
          . (In press).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trinidad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Segura</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ruiz-Corte´s. Fama framework</article-title>
          . http://www.isa.us.es/fama/. accessed May
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D. Le</given-names>
            <surname>Berre</surname>
          </string-name>
          . Sat4j. http://www.sat4j.org/. accessed May
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>[6] CHOCO solver</article-title>
          , http://choco.emn.fr/.
          <source>accessed January</source>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Roberto</given-names>
            <surname>Di</surname>
          </string-name>
          Cosmo and
          <string-name>
            <given-names>Stefano</given-names>
            <surname>Zacchiroli</surname>
          </string-name>
          .
          <article-title>Feature diagrams as package dependencies</article-title>
          .
          <source>In 14th International Software Product Line Conference (SPLC'10)</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Deepak</given-names>
            <surname>Dhungana</surname>
          </string-name>
          , Paul Gru¨nbacher, and Rick Rabiser.
          <article-title>Decisionking: A flexible and extensible tool for integrated variability modeling</article-title>
          .
          <source>In 1st International Workshop on Variability Modelling of Software-intensive Systems</source>
          , pages
          <fpage>119</fpage>
          -
          <lpage>128</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Deepak</given-names>
            <surname>Dhungana</surname>
          </string-name>
          , Rick Rabiser, and
          <string-name>
            <given-names>Paul</given-names>
            <surname>Grunbacher</surname>
          </string-name>
          .
          <article-title>Decisionoriented modeling of product line architectures</article-title>
          .
          <source>Software Architecture</source>
          ,
          <string-name>
            <surname>Working</surname>
            <given-names>IEEE</given-names>
          </string-name>
          /IFIP Conference on,
          <volume>0</volume>
          :
          <fpage>22</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>[10] FOSDEM'08. http://en.opensuse.org/Package management/Sat solver.</mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Arnaud</surname>
            <given-names>Hubaux</given-names>
          </string-name>
          , Andreas Classen,
          <article-title>Marc´ılio Mendonc¸a, and Patrick Heymans. A preliminary review on the application of feature diagrams in practice</article-title>
          .
          <source>In VaMoS</source>
          , pages
          <fpage>53</fpage>
          -
          <lpage>59</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>K.</given-names>
            <surname>Kuchcinski</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Szymanek</surname>
          </string-name>
          . Jacop. http://jacop.osolpro.com/. accessed May
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Rafael</surname>
            <given-names>Lotufo</given-names>
          </string-name>
          , Steven She, Thorsten Berger, Krzysztof Czarnecki, and
          <string-name>
            <given-names>Andrzej</given-names>
            <surname>Wasowski</surname>
          </string-name>
          .
          <article-title>Evolution of the linux kernel variability model</article-title>
          .
          <source>In 14th International Software Product Line Conference (SPLC'10)</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>RPM</given-names>
            <surname>Package</surname>
          </string-name>
          <article-title>Manager</article-title>
          . http://www.rpm.org.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Fabio</surname>
            <given-names>Mancinelli</given-names>
          </string-name>
          , Jaap Boender, Roberto di Cosmo, Jerome Vouillon, Berke Durak, Xavier Leroy, and
          <string-name>
            <given-names>Ralf</given-names>
            <surname>Treinen</surname>
          </string-name>
          .
          <article-title>Managing the complexity of large free and open source package-based software distributions</article-title>
          .
          <source>In ASE '06: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering</source>
          , pages
          <fpage>199</fpage>
          -
          <lpage>208</lpage>
          , Washington, DC, USA,
          <year>2006</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Debian</given-names>
            <surname>Policy</surname>
          </string-name>
          <article-title>Manual</article-title>
          . http://www.debian.org/doc/debian-policy/ ch-relationships.html.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Marcilio</surname>
            <given-names>Mendonca</given-names>
          </string-name>
          , Moises Branco, and
          <string-name>
            <given-names>Donald</given-names>
            <surname>Cowan</surname>
          </string-name>
          . S.p.l.o.t.:
          <article-title>software product lines online tools</article-title>
          .
          <source>OOPSLA '09: Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications</source>
          , pages
          <fpage>761</fpage>
          -
          <lpage>762</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D.</given-names>
            <surname>Moody</surname>
          </string-name>
          .
          <article-title>The physics of notations: Toward a scientific basis for constructing visual notations in software engineering</article-title>
          .
          <source>Software Engineering</source>
          , IEEE Transactions on,
          <volume>35</volume>
          (
          <issue>6</issue>
          ):
          <fpage>756</fpage>
          -
          <lpage>779</lpage>
          , nov.-dec.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <article-title>EDOS project</article-title>
          . http://www.edos-project.
          <source>org.</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <article-title>Pure-systems</article-title>
          . pure::variants. http://www.pure-systems.com/. accessed May
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>Fabricia</given-names>
            <surname>Roos-Frantz</surname>
          </string-name>
          .
          <article-title>A preliminary comparison of formal properties on orthogonal variability model and feature models</article-title>
          .
          <source>In VaMoS</source>
          , pages
          <fpage>121</fpage>
          -
          <lpage>126</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>Fabricia</given-names>
            <surname>Roos-Frantz</surname>
          </string-name>
          and
          <string-name>
            <given-names>Sergio</given-names>
            <surname>Segura</surname>
          </string-name>
          .
          <article-title>Automated analysis of orthogonal variability models. a first step</article-title>
          .
          <source>In Steffen Thiel and Klaus Pohl</source>
          , editors,
          <source>First Workshop on Analyses of Software Product Lines (ASPL</source>
          <year>2008</year>
          ).
          <source>SPLC'08</source>
          , pages
          <fpage>243</fpage>
          -
          <lpage>248</lpage>
          , Limerick, Ireland,
          <year>September 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Segura</surname>
          </string-name>
          and
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ruiz-Corte´s. Benchmarking on the automated analyses of feature models: A preliminary roadmap</article-title>
          .
          <source>In Third International Workshop on Variability Modelling of Software-intensive Systems</source>
          , pages
          <fpage>137</fpage>
          -
          <lpage>143</lpage>
          , Seville, Spain,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Steven</surname>
            <given-names>She</given-names>
          </string-name>
          , Rafael Lotufo, Thorsten Berger, Andrzej Wasowski, and
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          .
          <article-title>The variability model of the linux kernel</article-title>
          .
          <source>In Fourth International Workshop on Variability Modelling of Softwareintensive Systems (VAMOS'10)</source>
          , Linz, Austria,
          <year>January 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>VarMod-PRIME</surname>
          </string-name>
          Tool-Environment. http://www.sse.uni-essen.de/wms/ en/index.php.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>P.</given-names>
            <surname>Trinidad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Ruiz-Corte´s, S. Segura, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Jimenez</surname>
          </string-name>
          .
          <article-title>Fama framework</article-title>
          .
          <source>In 12th Software Product Lines Conference (SPLC)</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Ubuntu</surname>
          </string-name>
          . http://www.ubuntu.com.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>J.</given-names>
            <surname>White</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Doughtery</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          .
          <article-title>Automated reasoning for multi-step software product-line configuration problems</article-title>
          .
          <source>In Proceedings of the Sofware Product Line Conference</source>
          , pages
          <fpage>11</fpage>
          -
          <lpage>20</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>