<!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>Variability representation in product lines using concept lattices: feasibility study with descriptions from Wikipedia's product comparison matrices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>LIRMM</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Universit´e de Montpellier</string-name>
        </contrib>
      </contrib-group>
      <fpage>93</fpage>
      <lpage>108</lpage>
      <abstract>
        <p>Several formalisms can be used to express variability in a product line. Product comparison matrix is a common and simple way to display variability of existing products from a same family, but they lack of formalisation. In this paper, we focus on concept lattices, another alternative already explored in several works to express variability. We first propose a method to translate a description from existing product comparison matrices into a concept lattice using Formal Concept Analysis. Then, we propose an approach to represent the case where a product family is described by other product families with interconnected lattices using Relational Concept Analysis. Because of the combinatorial aspect of these approaches, we evaluate the scalability of the produced structures. We show that a particular structure (AOC-poset) possesses interesting properties for the studies that we envision.</p>
      </abstract>
      <kwd-group>
        <kwd>Product lines</kwd>
        <kwd>Formal Concept Analysis</kwd>
        <kwd>Variability Representation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In product line engineering [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], several formalisms can be used to depict
variability. Variability representation usually requires to take into account a large
amount of data, and it is important to provide tools to help designers to represent
and exploit them.
      </p>
      <p>
        Among existing formalisms, the most common is Product Comparison
Matrices (PCMs). PCMs describe product properties in a tabular form. It is a simple
way to display features of products from a same family and to compare them.
However, there is no existing format or good practices to design these PCMs.
Therefore, cells in PCMs lack of formalisation and it is difficult to perform
automatic and efficient processing or analysis on them [
        <xref ref-type="bibr" rid="ref17 ref4">4, 17</xref>
        ]. Feature Models (FMs)
constitute an alternative to PCMs. FMs describe a set of existing features and
constraints between them, and thus represent all possible configurations of
products from a same family [
        <xref ref-type="bibr" rid="ref11 ref12 ref6 ref9">6, 9, 11, 12</xref>
        ]. They depict variability in a more formal
way than PCMs, but, in their stardard form, FMs focus exclusively on features
and do not specify if an existing product is associated with a configuration.
      </p>
      <p>
        Formal Concept Analysis (FCA) and concept lattices have already been
studied to express variability [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. From a set of objects described by attributes, FCA
computes subsets of objects that have common attributes and structures these
subsets in a hierarchical way in concept lattices. Concept lattices can represent
in a more formal way than PCMs informations related to variability. Through
their structure, concept lattices highlight constraints between attributes like
FMs, while keeping the relation between existing products of the family and
the possible configurations. Besides, contrarily to FMs, which can have many
various forms depending design choices, concept lattices represent variability in
a canonical form. Moreover, FCA can be extended by Relational Concept
Analysis (RCA) which permits to take into account relationships between objects of
separate lattices and provide a set of interconnected lattices. This is useful to
classify sets of products from different categories.
      </p>
      <p>Concept lattices formal and structural aspects make them good candidates
to apply automatic or manual processing including product comparison, research
by attributes, partial visualisation around points of interest, or decision support.
But the exponential growth of the size of concept lattices can make them difficult
to exploit. In this paper, we will study the dimensions of these structures and
try to find out if depicting product line variability with concept lattices provides
structures that can be exploited from a perspective of size. For this, we will build
in a first phase concept lattices from existing descriptions. Because there are
abundant and focus on both products and features, we will extract descriptions
from PCMs. Besides, we can find PCMs that possess a feature whose value
domain corresponds to a set of products described by another PCM. It is a
special case where a product family is described by another product family.
In a second phase, we will model this case by interconnecting concept lattices
obtained from the descriptions of these two PCMs using Relational Concept
Analysis.</p>
      <p>In this paper, we want to answer these questions: How can we represent the
variability expressed by a PCM with a concept lattice? To what extent can we
model the case where a product family is described by another product family
with RCA? Can we efficiently exploit structures obtained with FCA and RCA
with regard to their size?</p>
      <p>The remainder of this paper is organised as follows. In Section 2, we will
review Formal Concept Analysis and propose a way to build a concept lattice from
a PCM’s description. In Section 3, we will study how to represent the case where
a product family is described by another product family with Relational Concept
Analysis. Then, in Section 4, we will apply these two methods on Wikipedia’s
PCMs to get an order of magnitude of the obtained structure size. Section 5
discusses related work. Section 6 presents conclusion and future work.</p>
    </sec>
    <sec id="sec-2">
      <title>Formal Concept Analysis and product comparison matrices</title>
      <p>This section proposes an approach to represent with a concept lattice the
variability originally expressed in a PCM.
2.1</p>
      <sec id="sec-2-1">
        <title>Concept lattices and AOC-posets</title>
        <p>
          Formal Concept Analysis [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is a mathematical framework which structures a set
of objects described by attributes and highlights the differences and similarities
between these objects. FCA extracts from a formal context a set of concepts
that forms a partial order provided with a lattice structure: the concept lattice.
        </p>
        <p>A formal context is a 3-tuple (O, A, R) where O and A are two sets and
R ⊆ O × A a binary relation. Elements from O are called objects and elements
from A are called attributes. A pair from R states that the object o possesses
the attribute a. Given a formal context K = (O, A, R), a concept is a tuple
(E, I) such that E ⊆ O and I ⊆ A. It depicts a maximal set of objects that
share a maximal set of common attributes. E = {o ∈ O|∀a ∈ I, (o, a) ∈ R}
is the concept’s extent and I = {a ∈ A|∀o ∈ E, (o, a) ∈ R} is the concept’s
intent. Given a formal context K = (O, A, R) and two concepts C1 = (E1, I1)
and C2 = (E2, I2) from K, C1 ≤ C2 if and only if E1 ⊆ E2 and I2 ⊆ I1. C1 is
a subconcept of C2 and C2 is a superconcept of C1. When we provide all the
concepts from K with the specialisation order ≤, we obtain a lattice structure
called a concept lattice.</p>
        <p>We represent intent and extent of a concept in an optimised way by making
elements appear only in the concept where they are introduced. Figure 7 represents
a concept lattice having simplified intent and extent. We call object-concept and
attribute-concept the concepts which introduce respectively at least an object or
an attribute. In Figure 7, Concept 7 and Concept 2 introduce neither attributes
nor objects: their simplified intent and extent are empty. If they are not
necessary, we can choose to ignore these concepts. Attribute-Object-Concept poset
(AOC-poset) from a formal context K is the sub-order of (CK ,≤) restricted to
object-concepts and attribute-concepts. Figure 4 presents the AOC-poset
matching the concept lattice from Figure 7. In our case, interesting properties of
concept lattices with regard to variability are preserved in AOC-posets: this smaller
structure can be used as an alternative to concept lattices.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Product Comparison Matrix</title>
        <p>A PCM describes a set of products from a same family with variable features in
a tabular way. Figure 1 presents a PCM which describes four products against
two features, taken from Wikipedia.</p>
        <p>We notice that the cells of this PCM lack of formalisation: in this, different
values have the same meaning (Object-Oriented and OO ) and it seems that there
are no rules on the use of value separator (’,’ or ’&amp;’ or ’and’).</p>
        <sec id="sec-2-2-1">
          <title>Language Standardized</title>
        </sec>
        <sec id="sec-2-2-2">
          <title>Java Yes</title>
        </sec>
        <sec id="sec-2-2-3">
          <title>Perl No Php No C# Yes</title>
        </sec>
        <sec id="sec-2-2-4">
          <title>Paradigm</title>
        </sec>
        <sec id="sec-2-2-5">
          <title>Functional, Imperative, OO</title>
        </sec>
        <sec id="sec-2-2-6">
          <title>Functional &amp; Procedural &amp; Imperative</title>
        </sec>
        <sec id="sec-2-2-7">
          <title>Functional, Procedural, Imperative and Object-Oriented functional, procedural, imperative, Object Oriented Fig. 1. Excerpt of a Product Comparison Matrix on programming languages (http://en.wikipedia.org/wiki/Comparison of programming languages, July 2014)</title>
          <p>
            If we want to automatically build concept lattices from this kind of descriptions,
we need to make the cell values respect a format in order to extract and process
them. In [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ], authors identify height different types of cell values:
– yes/no values that indicate if the criterion is satisfied or not,
– constrained yes/no values when the criterion is satisfied under conditions,
– single-value when the criterion is satisfied using this value,
– multi-values when several values can satisfy the criterion,
– unknown value when we do not know if the criterion is satisfied,
– empty cell,
– inconsistent value when the value is not related to the criterion,
– extra information when the cell value offers additional informations.
          </p>
          <p>We clean each type of cells as follows. Empty cells are not a problem, even
though they indicate a lack of information. Inconsistent values should be
detected, then clarified or erased. Unknown values and extra informations will be
simply erased. Other types of cells could have either one single value or a list
of values. We will always use a coma as value separator. Values with the same
meanings will be written in the same way. Once we have applied these rules on
a PCM, we consider that this PCM is cleaned. A cleaned PCM can own three
types of features:
– simple boolean,
– constrained boolean,
– non-boolean.</p>
          <p>Since automatic process is difficult on original PCMs, we clean them
manually. When we clean the PCM in Figure 1, we obtain the PCM in Figure 2.</p>
          <p>We can now automatically extract values from cleaned PCMs to generate
formal contexts. Given a set of objects and a set of binary attributes, a formal
context is a binary relation that states which attributes are possessed by each
object. In summary, we want to convert a set of multivalued features (PCM)
into a set of binary attributes (formal context).</p>
          <p>
            Scaling technique [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ] consists in creating a binary attribute for each value
(or group of values) of a multivalued feature. Boolean features can produce
a single attribute to indicate if either or not the object owns this feature. Yet
          </p>
        </sec>
        <sec id="sec-2-2-8">
          <title>Language Standardized</title>
        </sec>
        <sec id="sec-2-2-9">
          <title>Java Yes</title>
        </sec>
        <sec id="sec-2-2-10">
          <title>Perl No Php No C# Yes</title>
        </sec>
        <sec id="sec-2-2-11">
          <title>Paradigm</title>
        </sec>
        <sec id="sec-2-2-12">
          <title>Functional, Imperative, Object-Oriented</title>
        </sec>
        <sec id="sec-2-2-13">
          <title>Functional, Procedural, Imperative</title>
        </sec>
        <sec id="sec-2-2-14">
          <title>Functional, Procedural, Imperative, Object-Oriented</title>
        </sec>
        <sec id="sec-2-2-15">
          <title>Functional, Procedural, Imperative, Object-Oriented Fig. 2. PCM in Figure 1 cleaned manually</title>
          <p>because of empty cells, the fact that an object does not possess an attribute could
also mean that the cell from the PCM was left blank. To be more precise, we
can choose to generate two attributes: one to indicate that the object possesses
the feature, and one to indicate that the object does not possess the feature.
Constrained boolean features can be processed in the same way than simple
boolean features by producing one or two attributes, with the difference that we
can keep constraints in the form of attributes. Non-boolean features will simply
produce an attribute per value or group of values. We applied scaling technique
on the cleaned PCM of Figure 2 and got the formal context in Figure 3.
e
g
a
u
g
n
a</p>
          <p>L</p>
        </sec>
        <sec id="sec-2-2-16">
          <title>Java x</title>
        </sec>
        <sec id="sec-2-2-17">
          <title>Perl</title>
          <p>Php
C# x
:sedY :odN teedn
irzead irzead iloan lrau itev i-rO
tandS tandS tcnuF rceodP Ireapm jtcebO</p>
          <p>x x x
x x x x
x x x x x</p>
          <p>x x x x
The structure of concept lattices and AOC-posets permits to highlight
interesting properties from variability point of view: they classify objects depending
on their attributes and emphasise relations between these attributes (e.g. require,
exclude). For instance: attributes introduced in the top concept are owned by
all objects; attributes which are introduced in the same concept always appear
together; if an object o1 is introduced in a sub-concept of a concept introducing
an object o2, o1 possesses all the attributes of o2 and other attributes; two
objects introduced in the same concept possess the same attributes. Feature models
show part of this information, mainly reduced to relations between attributes,
as they do not include the products in the representation.</p>
          <p>Figure 7 represents the concept lattice from the formal context of Figure 3.
Figure 4 represents the AOC-poset from the formal context of Figure 3. In these
two structures, we can see that: all languages permit to write programs according
to functional and imperative paradigms; the product Php has all the attributes
of Perl in addition to the attribute Object Oriented ; all standardised languages
are object-oriented.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Relational Concept Analysis and interconnected product lattices</title>
      <p>This section proposes an approach to model the case where a PCM possesses
a feature whose value domain corresponds to a set of products described by
another PCM.
3.1</p>
      <sec id="sec-3-1">
        <title>Modeling interconnected families of products with RCA</title>
        <p>We illustrate the modeling of interconnected families of products with an
extension of our example. We can find on Wikipedia a PCM on Wikisoftwares that
refers to Programming Languages: we want to structure wikisoftwares
according to programming languages in which they are written. We assume a PCM
about wikisoftwares that owns a boolean feature Open Source and a constrained
boolean feature Spam Prevention. We applied Section 2 approach and obtained
the formal (objects-attributes) context in Figure 5. Figure 8 presents the concept
lattice associated with the context in Figure 5.</p>
        <sec id="sec-3-1-1">
          <title>Wikisoftware OS:Yes OS:No SP:Yes SP:No SP:Captcha SP:Blacklist</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>TeamPage x x x</title>
        </sec>
        <sec id="sec-3-1-3">
          <title>Socialtext x</title>
        </sec>
        <sec id="sec-3-1-4">
          <title>MindTouch x x</title>
        </sec>
        <sec id="sec-3-1-5">
          <title>DokuWiki x x x</title>
        </sec>
        <sec id="sec-3-1-6">
          <title>EditMe x x x Fig. 5. Objects-attributes context of Wikisoftwares</title>
          <p>
            Relational Concept Analysis (RCA) [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ] extends FCA to take into account
relations between several sets of objects. Each set of objects is defined by its
own attributes (in an objects-attributes context) and can be linked with other
sets of objects. A relation between two sets of objects is stated by a relational
context (objects-objects context). A relational context is a 3-tuple (O1, O2, I)
where O1 (source) and O2 (target) are two sets of objects such that there are
two formal contexts (O1, A1, R1) and (O2, A2, R2), and where I ⊆ O1 × O2 is a
binary relation.
          </p>
          <p>We want to express the relation isWritten between objects of Wikisoftwares
and objects of Programming languages. TeamPage and EditMe are written in
Java, SocialText in Perl, DokuWiki in Php and Mindtouch in both Php and
C#. We link each wikisoftware with corresponding programming languages in
an objects-objects context, and we present it in Figure 6.</p>
          <p>isWritten Java Perl Php C#</p>
        </sec>
        <sec id="sec-3-1-7">
          <title>TeamPage x</title>
        </sec>
        <sec id="sec-3-1-8">
          <title>Socialtext x</title>
        </sec>
        <sec id="sec-3-1-9">
          <title>MindTouch x x</title>
        </sec>
        <sec id="sec-3-1-10">
          <title>DokuWiki x</title>
        </sec>
        <sec id="sec-3-1-11">
          <title>EditMe x Fig. 6. Objects-objects context expressing the relation between objects of Wikisoftwares and Programming languages</title>
          <p>Given an objects-objects context Rj = (Ok, Ol, Ij ), there are different ways for
an object from Ok domain to be in relation with a concept from Ol. For instance:
an object is linked (by Ij ) to at least one object of a concept’s extent (existential
scaling); an object is linked (by Ij ) only to objects of a concept’s extent (universal
scaling). For each relation of R, we specify which scaling operator is used.</p>
          <p>In RCA, objects-attributes contexts are extended according to objects-objects
contexts to take into account relations between objects of different sets. For each
objects-objects context Rj = (Ok, Ol, Ij ), RCA extends the objects-attributes
context of the set of objects Ok by adding relational attributes according to
concepts of the lattice associated with the objects-attributes Ol. Each concept
c from Ol gives a relational attribute q r :c where q is a scaling operator and
r is the relation between Ok and Ol. A relational attribute appears in a lattice
just as the other attributes, with the difference that it can be considered like a
reference to a concept from another lattice.</p>
          <p>As shown on the example, data are represented in a Relational Context
Family (RCF), which is a tuple (K, R) such that K is a set of objects-attributes
contexts Ki = (Oi, Ai, Ii), 1 ≤ i ≤ n and R is a set of objects-objects contexts
Rj = (Ok, Ol, Ij), 1 ≤ j ≤ m, with Ij ⊆ Ok × Ol. Given an objects-attributes
context K = (O, A, I), we define rel(K) the set of relations (objects-objects
contexts) of R which have O for domain, and ρ a function which associates a scaling
operator to each objects-objects context of R. For each step, we extend the
context K by adding relational attributes from each context of rel(K): we obtain the
complete relational extension of K. When we compute the complete relational
extension of each context of K, we obtain the complete relational extension of
the RCF.</p>
          <p>RCA generates a succession of contexts and lattices associated with the RCF
(K, R) and ρ. In step 0, RCA generates lattices associated with contexts of K.
K0 = K. In step e + 1, RCA computes complete relational extension of the Ke
contexts. The obtained extended contexts (Ke+1) possess relational attributes
which refer to concepts of lattices obtained in the previous step.</p>
          <p>In our example, the RCF is composed of Wikisoftware, Programming
Language and of the objects-objects context isWritten. When we compute the
complete relational extension of this RCF, we extend the objects-attributes context
of Wikisoftware with relational attributes which refer to each concept of
Programming language. Figure 7 and Figure 8 represent lattices of Wikisoftware and
Programming language at step 0. Figure 9 presents the concept lattice from the
extended objects-attributes context of Wikisoftwares, at step 1. In this example,
we cannot go further than step 1.</p>
          <p>In Figure 9, relational attributes are read like references to concepts in the
lattice of Programming languages at step 0 (Figure 7). An extended concept
lattice gives us the same kind of informations that are emphasised in a basic
concept lattice, but it takes into account attributes from other product families.
This brings a new dimension to research and classification of products from a
same family. In our example, it permits us to select a wikisoftware depending on
the paradigm of its programming language. In Figure 9, we can read for instance:
– DokuWiki (concept 1) is written in a programming language characterised
by concepts 6, 7, 8, 3, 5 and 0 of Programming languages, corresponding
to attributes Standardized:No, Procedural, Functional, Object Oriented and
Imperative;
– Team Page and EditMe are equivalent products because they are introduced
in the same concept (same attributes and same relational attributes);
– a wikisoftware not Open Source is written in a standardised language;
– an Open Source wikisoftware is written in an unstandardised language.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Assessing scalability of the approach</title>
      <p>Until now, we proposed a first method to obtain a concept lattice from a PCM’s
description and a second method to depict the case where features possess their
own PCM with interconnected lattices. In this section, we evaluate these two
methods on existing PCMs from Wikipedia to get an order of magnitude of the
obtained structures size.</p>
      <p>The number of generated concepts from a formal context depends on the
number of objects, the number of attributes and the form of the context: this
number can reach 2min(|O|,|A|) with a lattice, and |O| + |A| for an AOC-poset.</p>
      <p>In the following tests, we generate both concept lattices and AOC-posets to
emphasise the impact of deleting concepts which introduce neither attributes nor
objects on the size of the structure. Each test was made twice, a first time with
full formal contexts (scaling technique giving two attributes for each boolean
feature, and keeping constraints in the form of attributes for constrained boolean
features) and a second time with reduced fomal contexts (scaling technique giving
one attribute for each boolean feature).
4.1</p>
      <sec id="sec-4-1">
        <title>Scalability for non-connected PCMs (FCA)</title>
        <p>Firstly, we analysed 40 PCMs from Wikipedia without taking into account
relations between products. These 40 PCMs were converted into formal contexts with
the method of Section 2. Results are presented in Figure 10. We have analysed
1438 products, generated 4639 binary attributes and 26002 formal concepts.</p>
        <p>Most of the concept lattices possess between 50 and 300 concepts, but some
of them can reach about 5000 concepts: this number is very high, and it would be
difficult to quickly process these data. Reduced contexts (blue plots) give smaller
structures, but some of them remain considerable. Thus, results of AOC-posets
are encouraging: the highest number of concepts obtained is 161. Most of them
possess between 30 and 60 concepts.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Scalability for connected PCMs (RCA)</title>
        <p>Secondly, we made the same type of tests on structures which have been extended
with a relation, using method of Section 3. We wanted to realise these tests on
a quite important number of relationships. Yet, it is simple to find PCMs on
Wikipedia but it is more difficult to automatically find relationships between
these PCMs. To simulate relations between PCMs we used in the first test,</p>
        <sec id="sec-4-2-1">
          <title>Mean</title>
        </sec>
        <sec id="sec-4-2-2">
          <title>Median</title>
        </sec>
        <sec id="sec-4-2-3">
          <title>Minimum</title>
        </sec>
        <sec id="sec-4-2-4">
          <title>Maximum</title>
        </sec>
        <sec id="sec-4-2-5">
          <title>First Quartile</title>
        </sec>
        <sec id="sec-4-2-6">
          <title>Third Quartile</title>
          <p>we choose to automatically generate random objects-objects contexts based on
two existing relations we found on Wikipedia. We analysed these relations and
found out that about 75% of objects are linked to at least another object and
that 95% of linked objects are linked to a single other object. We formed 20
pairs of objects-attributes contexts and generated object-objects contexts for
each pair according to our analysis.</p>
          <p>Results are presented in Figure 11. Concept lattices are huge (some can
reach 14000 concepts) whereas AOC-poset remain relatively affordable (about
200 concepts).</p>
          <p>These results match with the products used in a very simplified form for
illustrating the approach. In real data, the first existing relation is between
LinuxDistribution (77 objects, 25 features) and FileSystem (103 objects, 60
features). With a lattice, we obtain 1174 concepts (full context) and 1054
concepts (reduced context). With an AOC-poset, we obtain 188 then 179
concepts. The second relation is between Wikisoftware (43 objects, 12 features)
and Programming Language (90 objects, 5 features). With a lattice, we obtain
282 concepts (full context) and 273 concepts (reduced context). With an
AOCposet, we obtain 87 and then 86 concepts. All the datasets (extracted from</p>
        </sec>
        <sec id="sec-4-2-7">
          <title>Mean</title>
        </sec>
        <sec id="sec-4-2-8">
          <title>Median</title>
        </sec>
        <sec id="sec-4-2-9">
          <title>Minimum</title>
        </sec>
        <sec id="sec-4-2-10">
          <title>Maximum</title>
        </sec>
        <sec id="sec-4-2-11">
          <title>First Quartile</title>
        </sec>
        <sec id="sec-4-2-12">
          <title>Third Quartile</title>
          <p>Lattices (F) Lattices (R) AOC-posets (F) AOC-posets (R)
2263.5 878.2 89.95 72.55
793 194 82 61.5
61 24 33 16
14083 7478 201 189
359.25 108.25 67.5 47.25
2719.5 597.75 101.25 87.25
wikipedia and generated) are available for reproducibility purpose at: http:
//www.lirmm.fr/recherche/equipes/marel/datasets/fca-and-pcm.</p>
          <p>According to these results, we can deduce that the concept lattices obtained
possess a majority of empty concepts (which introduce neither attributes nor
objects): AOC-poset appears like a good alternative to generate less complex
structures, and keeps variability informations in the same way that concept
lattices. These results on product description datasets, that are either real datasets,
or datasets generated with respect to existing real one profile, allow us to think
that is is realistic to envision using FCA and RCA for variability representation
within a canonical form integrating features and products.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Related work</title>
      <p>
        To our knowledge, the first research work using Formal Concept Analysis to
analyse relationships between product configurations and variable features to
assist construction of a product line has been realised in Loesh and Ploederer
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. In this approach, the concept lattice is analysed to extract informations
about groups of features always present, never present, always present together
or never present together. Authors use these informations to describe constraints
between features and propose restructurations of these features (merge, removal
or identification of alternatives feature groups). In [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], authors study, in an
aspect-oriented requirements engineering context, a concept lattice which
classifies scenarios by functional requirements. They analyse on the one hand the
relation between concepts and quality requirements (usability, maintenance),
and on the other hand interferences between quality requirements. Also, they
analyse the impact of modifications. This analysis has been extended by
observations about product informations contained in the lattice (or the AOC-poset),
and on the manner that some work implicitly use FCA, without mentioning it
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In the present work, we show how to extend the original approach, which
analyses products described by features, to a more general case where there are
features that are products themselves. Moreover, we evaluate the scale up of
FCA and RCA on product families described by PCMs from Wikipedia and
linked by relationships randomly generated.
      </p>
      <p>
        In the domain of product lines, another category of works is interested in
identification of features in source code using FCA [
        <xref ref-type="bibr" rid="ref19 ref3">19, 3</xref>
        ]. In this case, described
entities are variants of software systems which are described by source code and
authors try to produce groups of source code elements that can be candidates to
be features. Some works search for traceability links between features and the
code [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], authors cross-reference source code parts and scenarios which
execute them and use features. The goal is to identify parts of the code which
correspond to feature implementation. In our case, we do not work on source
code, nor with scenarios, but with existing product descriptions.
      </p>
      <p>
        Finally, a last category of works study feature organisation in FM with FCA.
Some approaches [
        <xref ref-type="bibr" rid="ref15 ref20">20, 15</xref>
        ] use conceptual structures (concept lattice or
AOCposet) to recognise contraints, but also to suggest sub-features typed relations
linked to the domain. In the article [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], authors study in detail the extraction
of implication rules in the lattice and cover relationships, to determine for
instance if a set of features covers all the products. Recent works [
        <xref ref-type="bibr" rid="ref18 ref2">2, 18</xref>
        ] focus on
emphasise logical relationships between features in a FM and on the
identification of transverse constraints. These logical relationships are more specifically
used in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to analyse the variability of a set of architectural configurations. In
the present work, we generate a structure or several interconnected structures.
These structures are created to analyse variability, but we do not consider issues
about FM construction.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In this paper, we analyse the feasibility of using Formal Concept Analysis and
Concept Lattices as a complement to Product Comparison Matrices to represent
variability in product lines. We propose a method to convert a description from
a product comparison matrix to a concept lattice using the scaling technique.
We also propose a way to model the special case where a product family is
described by another product family with Relational Concept Analysis. We obtain
interconnected lattices that bring a new dimension to research and classification
of products when they are in relation with other product families.</p>
      <p>Subsequently, we realise series of tests to determine an order of magnitude of
the number of concepts composing the structures obtained firstly with FCA by
converting PCMs into formal contexts, and secondly with RCA by introducing
relations between these contexts. In these tests, we compare two structures:
concept lattices which establish a sub-order among all the concepts and
AOCposets which establish a sub-order among the concepts which introduce at least
an attribute or an object. It seems that most of the concepts do not introduce
any information and AOC-poset appears like a more advantageous alternative, in
particular for presenting information to an end-user. Concept lattices are useful
too, when they are medium-size, and for automatic data manipulations. We also
show the effect of two different encoding of boolean values.</p>
      <p>
        In the future, we will use the work of [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to automatise as much as possible
the conversion of PCMs. Moreover, researches on the classification process (using
different scaling operators) and its applications on variability will be performed
to complete this analysis. Also, a detailed study of the possibilities offered by
RCA to model other cases is considered. Finally, it could be interesting to study
transitions between different structures like FMs, PCMs, AOC-posets and
concept lattices to be able to select one depending on the kind of operation we want
to apply.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Al-Msie 'deen, R.,
          <string-name>
            <surname>Seriai</surname>
            ,
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urtado</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vauttier</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Al-Khlifat</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Concept lattices: A representation space to structure software variability</article-title>
          .
          <source>In: ICICS 2014: The fifth International Conference on Information and Communication Systems</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . Irbid,
          <string-name>
            <surname>Jordan</surname>
          </string-name>
          (Apr
          <year>2014</year>
          ), http://hal-lirmm.ccsd.cnrs. fr/lirmm-01075533
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Al-Msie'deen</surname>
          </string-name>
          , R.,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seriai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urtado</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vauttier</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Reverse engineering feature models from software configurations using formal concept analysis</article-title>
          .
          <source>In: Proceedings of the Eleventh International Conference on Concept Lattices and Their Applications</source>
          , Koˇsice, Slovakia, October 7-
          <issue>10</issue>
          ,
          <year>2014</year>
          . pp.
          <fpage>95</fpage>
          -
          <lpage>106</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Al-Msie'deen</surname>
          </string-name>
          , R.,
          <string-name>
            <surname>Seriai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urtado</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vauttier</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salman</surname>
            ,
            <given-names>H.E.</given-names>
          </string-name>
          :
          <article-title>Mining features from the object-oriented source code of a collection of software variants using formal concept analysis and latent semantic indexing</article-title>
          .
          <source>In: Proc. of The 25th SEKE</source>
          . pp.
          <fpage>244</fpage>
          -
          <lpage>249</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. B´ecan, G.,
          <string-name>
            <surname>Sannier</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Acher</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barais</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blouin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Automating the formalization of product comparison matrices</article-title>
          .
          <source>In: Proc. of the 29th ACM/IEEE ASE '14</source>
          . pp.
          <fpage>433</fpage>
          -
          <lpage>444</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Clements</surname>
            ,
            <given-names>P.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Northrop</surname>
            ,
            <given-names>L.M.:</given-names>
          </string-name>
          <article-title>Software product lines: practices and patterns</article-title>
          . Addison-Wesley (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eisenecker</surname>
          </string-name>
          , U.W.:
          <article-title>Generative programming: methods, tools, and applications</article-title>
          . ACM Press/Addison-Wesley Publishing Co., New York, NY, USA (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Eisenbarth</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koschke</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simon</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Locating features in source code</article-title>
          .
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>29</volume>
          (
          <issue>3</issue>
          ),
          <fpage>210</fpage>
          -
          <lpage>224</lpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ganter</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wille</surname>
          </string-name>
          , R.:
          <source>Formal concept analysis - mathematical foundations</source>
          . Springer (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Griss</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Favaro</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alessandro</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>d</year>
          .:
          <article-title>Integrating Feature Modeling with the RSEB</article-title>
          .
          <source>In: Proceedings of the 5th International Conference on Software Reuse</source>
          . pp.
          <fpage>76</fpage>
          -.
          <source>ICSR '98</source>
          , IEEE Computer Society, Washington, DC, USA (
          <year>1998</year>
          ), http: //dl.acm.org/citation.cfm?id=
          <volume>551789</volume>
          .
          <fpage>853486</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. Hac`ene,
          <string-name>
            <given-names>M.R.</given-names>
            ,
            <surname>Huchard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Napoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Valtchev</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.</surname>
          </string-name>
          :
          <article-title>Relational concept analysis: mining concept lattices from multi-relational data</article-title>
          .
          <source>Ann. Math. Artif. Intell</source>
          .
          <volume>67</volume>
          (
          <issue>1</issue>
          ),
          <fpage>81</fpage>
          -
          <lpage>108</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Kang</surname>
            ,
            <given-names>K.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>S.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hess</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Novak</surname>
            ,
            <given-names>W.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peterson</surname>
            ,
            <given-names>A.S.</given-names>
          </string-name>
          :
          <article-title>Feature-oriented domain analysis (foda) feasibility study</article-title>
          (
          <year>November 1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kang</surname>
            ,
            <given-names>K.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huh</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Form: A feature-oriented reuse method with domain-specific reference architectures</article-title>
          .
          <source>Ann. Software Eng</source>
          .
          <volume>5</volume>
          ,
          <fpage>143</fpage>
          -
          <lpage>168</lpage>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Loesch</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ploedereder</surname>
          </string-name>
          , E.:
          <article-title>Restructuring variability in software product lines using concept analysis of product configurations</article-title>
          .
          <source>In: Proc. of the 11th IEEE ECSMR</source>
          . pp.
          <fpage>159</fpage>
          -
          <lpage>170</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Niu</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Easterbrook</surname>
            ,
            <given-names>S.M.</given-names>
          </string-name>
          :
          <article-title>Concept analysis for product line requirements</article-title>
          .
          <source>In: Proc. of the 8th AOSD 2009</source>
          . pp.
          <fpage>137</fpage>
          -
          <lpage>148</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ryssel</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ploennigs</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kabitzsch</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Extraction of feature models from formal contexts</article-title>
          .
          <source>In: Proc. of ACM SPLC '11</source>
          . pp.
          <volume>4</volume>
          :
          <fpage>1</fpage>
          -
          <issue>4</issue>
          :
          <issue>8</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Salman</surname>
            ,
            <given-names>H.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seriai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dony</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Feature-to-code traceability in a collection of software variants: Combining formal concept analysis and information retrieval</article-title>
          .
          <source>In: Proc. of the14th IEEE IRI</source>
          . pp.
          <fpage>209</fpage>
          -
          <lpage>216</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Sannier</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Acher</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>From comparison matrix to variability model: The wikipedia case study</article-title>
          .
          <source>In: Proc. of the 28th IEEE/ACM ASE</source>
          <year>2013</year>
          . pp.
          <fpage>580</fpage>
          -
          <lpage>585</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Shatnawi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seriai</surname>
            ,
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sahraoui</surname>
          </string-name>
          , H.:
          <article-title>Recovering architectural variability of a family of product variants</article-title>
          . In: To appear
          <source>in Proc. of the 14th ICSR</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Xue</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xing</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jarzabek</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Feature location in a collection of product variants</article-title>
          .
          <source>In: Proc. of the 19th IEEE WCRE</source>
          . pp.
          <fpage>145</fpage>
          -
          <lpage>154</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peng</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Domain feature model recovery from multiple applications using data access semantics and formal concept analysis</article-title>
          .
          <source>In: Proc. of the 16th IEEE WCRE</source>
          . pp.
          <fpage>215</fpage>
          -
          <lpage>224</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>