<!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>FCA for Software Product Lines Representation: Mixing Configuration and Feature Relationships in a Unique Canonical Representation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jessie Carbonnel</string-name>
          <email>jcarbonnel@lirmm.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Karell Bertet</string-name>
          <email>bertet@univ-lr.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marianne Huchard</string-name>
          <email>huchard@lirmm.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Clémentine Nebut</string-name>
          <email>nebut@lirmm.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>L3i, Université de La Rochelle</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>LIRMM, CNRS and Université de Montpellier</institution>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Software Product Line Engineering (SPLE) is a software engineering domain in which families of similar softwares (called products) are built reusing common artifacts. This requires to analyze commonalities and variabilities, for example to detect which parts are common to several products and which parts differ from one product to another. Such software characteristics that may be present or not in a product are called features. Several approaches in the literature exist to organize features and product configurations in terms of features. In this paper we review those approaches and show that concept lattices are a relevant structure to organize features and product configurations. We also address scaling issues related to formal context computation in the domain of SPLE.</p>
      </abstract>
      <kwd-group>
        <kwd>Software Product Lines</kwd>
        <kwd>Feature Model</kwd>
        <kwd>Formal Concept Analysis</kwd>
        <kwd>Concept Lattice</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Software Product Line Engineering (SPLE) focuses on the reuse of common
software pieces to reduce the building and maintenance cost of similar software
systems (called products). An important step of this methodology consists in
analyzing and modeling variability, i.e. mainly extracting "features", a feature
being a discriminating characteristic common to several products or specific to
a product. A product configuration is then a set of these features. Different
formalisms are used in SPLE to organize features and product configurations. Some
of these formalisms focus on features, while others represent product
configurations. Some are canonical, while others are not, and depend on the designer point
of view.</p>
      <p>In this paper, we review the main used formalisms and we show that concept
lattices might be a relevant (canonical) structure for representing variability,
while highlighting information on relationships between product configurations,
and between product configurations and features, that other formalisms hardly
represent. Besides explaining what is the contribution of concept lattices to
variability representation, we propose a solution to address some scaling issues of
concept lattices in this domain. Actually, scaling issues can occur at two levels
when computing: (1) the formal context, and (2) the concept lattice. Here, we
focus on scaling issues related to formal context computation; we investigate
implicative systems on attributes as closure operators to build a feature closed sets
lattice without building the formal context. We show that implicative systems
are another representation of the variability that can be useful for designers.</p>
      <p>The remaining of the paper is organized as follows. Section 2 presents the
various formalisms found in the literature to capture the variability of a software
product line. Section 3 shows that concept lattices are an interesting formalism
to analyse variability, and presents related work concerning the use of formal
concept analysis for product lines. Section 4 explains how using implicative systems
allows to face scaling issues related to formal context computation for variability
management.
2</p>
      <p>
        Existing Formalisms for variability representation
To capture and describe the variability of a software product line, almost all
approaches in the literature use feature-oriented representations [
        <xref ref-type="bibr" rid="ref11 ref12 ref20">11, 12, 20</xref>
        ].
Features describe and discriminate the products. As an example, features for an
e-commerce website may include displaying a catalog, proposing to fill a basket
of products, or offering a payment_method. In our context, we consider a feature
set F . A product configuration (or simply a configuration) is a subset of F .
      </p>
      <p>Feature models (FMs) are graphical representations that include a decorated
feature tree and a set of textual cross-tree constraints which complements
information given in the tree. The vertices of the tree are the features (from F ),
while the edges (in F F ) correspond to refinement or sub-feature (part of)
relationships in the domain. Edges can be decorated by a symbol meaning that
if the parent feature is selected, the child feature can be selected or not
(optional ). Another symbol indicates that if the parent feature is selected, the child
feature is necessarily selected (mandatory ). Groups of edges rooted in a feature
represent: xor-groups (if the parent feature is selected, exactly one feature has
to be selected in the group), and or-groups (if the parent feature is selected, at
least one feature has to be selected in the group). Fig. 1 shows a simple FM for
e-commerce websites.</p>
      <p>Such a software necessarily includes a catalog for proposing products, and this
catalog is displayed using a grid or (exclusive) using a list. Optionnally, a basket
functionality is proposed. A payment_method may also be optionally proposed.
Two payment methods are proposed: credit_card or (inclusive) check. A
crosstree constraint, written below the tree, indicates that if a basket is proposed, a
payment method is also proposed (and reciprocally).</p>
      <p>A variability representation conveys ontological information (ontological
semantics): the edges of the feature tree and the groups correspond to domain
knowledge, e.g. the group grid, list indicates a semantic refinement of catalog;
the edge (e_commerce, catalog) indicates that catalog is a subpart of the website.</p>
      <p>Xor</p>
      <p>Or
Optional</p>
      <p>Mandatory
Double include
catalog
payment_method</p>
      <p>basket
grid
list
credit_card</p>
      <p>check
payment_method $ basket</p>
      <p>
        A variability representation also has a logical semantics: for example an
alternative representation of the FM is an equivalent propositional formula with
jF j variables and constraints defined using propositional connectives (^; _; !; $
and :) [
        <xref ref-type="bibr" rid="ref5 ref8">5, 8</xref>
        ]. Automated analysis can then be performed using SAT-solvers,
generally on the Conjunctive or Disjunctive Normal Forms (CNF or DNF). Fig. 2
shows the propositional formula equivalent to the FM of Fig. 1. The down side of
the propositional formula is that ontological semantics is lost, e.g. an implication
in the formula may represent a subpart relationship or a cross-tree constraint.
hierarchy :
xor-groups :
or-groups :
mandatory :
cross-tree :
(Ca ! Ec) ^ (G ! Ca) ^ (L ! Ca) ^
(P m ! Ec) ^ (Cc ! P m) ^ (Ch ! P m) ^ (B ! Ec) ^
(Ca ! (G L)) ^
(P m ! (Cc _ Ch)) ^
(Ec ! Ca) ^
(P m $ B)
The third semantics is the configuration-semantics that associates to any
variability representation the set of its valid configurations. The set of the 8
valid configurations for the FM of Fig. 1 is given in Table 1. For the sake of
space, it is shown using the Formal Context representation, which is equivalent.
      </p>
      <p>An important property of a formalism is canonicity. Given a set of
configurations that are to be represented, and considering a chosen formalism, there are
often different ways of writing a representation of a given set of configurations
following this formalism. For example different feature models can have the same
configuration-semantics. Concision is also an interesting property: a variability
representation can be extensional if it enumerates all the possible configurations,
or intensional if it represents these configurations in a more compact way. For
example, the formal context of Table 1 is an extensional representation of the</p>
      <p>In this section, we study graph-like representations which have been used
in the literature to express software product line variability of a feature model
starting from a propositional formula. For each representation, we give a
definition and discuss its canonicity, concision, configuration semantics and ontological
semantics.</p>
      <p>
        A binary decision tree (BDT) is a tree-like graph used to represent the
truth table of a boolean function equivalent to a propositional formula: it is an
extensional representation. This representation has redundancies which can be
avoided by node sharing, which results in a graph called binary decision
diagram [
        <xref ref-type="bibr" rid="ref6 ref8">8, 6</xref>
        ] (BDD): this representation is more concise than the BDT. BDD
usually refers to ROBDD (for reduced ordered binary decision diagram), which
is unique for a given propositional formula. A BDD depicts the same set of
configurations as the original feature model, but the ontological semantics is
lost in the transformation. A propositional formula can also be represented as
an implication hypergraph [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. As the implication set for a given formula
is not necessarily unique (except if it is a canonical basis), neither is the
obtained hypergraph. The hypergraph depicts exactly the same configuration set.
It also keeps a part of the ontological semantics, as feature groups patterns can
be extracted from the hyperedges. Another similar representation is the
implication graph [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which only depicts binary implications, and thus does not
express feature groups. For a given propositional formula, several implication
graphs can be constructed, but two induced structures are unique: the transitive
closure and the transitive reduction of the graph. Its configuration semantics is
not always the same as the original feature model, because an implication graph
can eventually depict more configurations, as it expresses less constraints than
the original feature model or propositional formula. Finally, a feature graph
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] is a diagram-like representation which seeks to describe all feature models
which depict a same set of configurations. Because configuration semantics do
not formulate mandatory relationships between features, they are not expressed
in feature graphs either. As for FMs, a feature graph is not necessarily unique
for a given set of configurations, but the transitive reduction and the
transitive closure of the feature graph are canonical. All these representations express
variability in a compact way.
Domain Representation
SPLE Set of configurations
SPLE Feature model
SPLE Propositional formula
SPLE Binary decision tree
SPLE Binary decision diagram
SPLE Implication hypergraph
SPLE Implication graph (IG)
SPLE IG ! Transitive reduction x
SPLE IG ! Transitive closure x
SPLE Feature graph (FG) x x x
SPLE FG ! Transitive reduction x x x x
SPLE FG ! Transitive closure x x x x
FCA Formal Context x x x
FCA Concept lattice x x x
FCA Labelled feature closed set lattice x x x x
      </p>
      <p>The upper part of Table 2 compares the different formalisms used in SPLE
domain with respect to canonicity and their ability to encompass or highlight the
different semantics. Besides, it shows which kinds of relationships can be read
in the formalism: between features only, between configurations and features, or
between configurations. Then it indicates if this is a textual or a graphical
formalism, and if this is an intensional or an extensional representation. In SPLE
domain, all representations (except the set of configurations and the BDT)
consider an intensional point of view with only feature organization. FM is the
only representation which clearly expresses all ontological information, but it is
not canonical, since many relevant FMs can be built from domain information.
Implication hypergraph and feature graph preserve the notion of groups, but
refinement and mandatory information of features are lost.</p>
      <p>To sum up, these formalisms concentrate on feature organization (except the
set of configurations and the BDT), are more or less respectful of initial semantics
of the FM they represent and none of them considers a mixed representation of
features and configurations. In the next section, we show the benefits of having
such a mixed representation and in general, the contributions that a concept
lattice based representation may bring to the SPLE domain as a complement to
the existing representations.</p>
      <p>
        Contribution of concept lattices to variability
representation and related work
Formal Concept Analysis [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] provides an alternative framework for variability
representation, based on a configuration list, given in the form of a formal context
(as in Table 1). Formal objects are the configurations, while formal attributes
are the features. Fig. 3 presents the corresponding concept lattice. A concept
groups a maximal set of configurations sharing a maximal set of features. In the
representation, configurations appear in the lower part of the concepts and are
inherited from bottom to top. Features appear in the upper part of the concepts
and are inherited from top to bottom. This representation includes the FM, in
the sense that if there is an edge indicating F2 sub-feature of F1 in the tree,
these features are respectively introduced in two comparable concepts C2 C1,
furthermore, the cross-tree constraints are verified by the logic formula that
describes the concept lattice.
      </p>
      <p>Concept_EC_13
grid
1</p>
      <p>Concept_EC_15
e_commerce</p>
      <p>catalog
Concept_EC_14
payment_method</p>
      <p>basket
Concept_EC_9</p>
      <p>Concept_EC_11
check</p>
      <p>Concept_EC_12
credit_card</p>
      <p>Concept_EC_10
list
5
Concept_EC_8
Concept_EC_6</p>
      <p>Concept_EC_7</p>
      <p>Concept_EC_5</p>
      <p>Concept_EC_3</p>
      <p>Concept_EC_4
3
2
7</p>
      <p>6
Concept_EC_2</p>
      <p>Concept_EC_1
4</p>
      <p>8</p>
      <p>Concept_EC_0
Fig. 3: Concept lattice for the formal context of Table 1, built with RCAExplore3</p>
    </sec>
    <sec id="sec-2">
      <title>3 http://dolques.free.fr/rcaexplore.php</title>
      <p>A concept lattice organizes configurations and features in a single structure,
which has a canonical form (only one concept lattice can be associated with a
formal context). If the configurations in the formal context are the valid
configurations of a feature model, the configuration semantics of the concept lattice is
the same and the configurations can be read from the lattice. The logical
semantics is the same too. However, the ontological semantics is incomplete as in the
structure, we cannot distinguish ontological relationships: for example, when a
feature F2 is in a sub-concept of a concept that introduces another feature F1,
we cannot know whether F2 implies F1 (having a basket implies having a
payment_method) or F2 refines F1 (pay by check is a kind of payment_method).</p>
      <p>The concept lattice has many qualities regarding the variability
representation and relationships between configurations, features, as well as between
configurations and features, including highlighting:
– bottom features that are present in all configurations (e.g. catalog,
e_commerce)
– mutually exclusive features (in concepts whose supremum is the top)
– feature co-occurrence (introduced in the same concept, e.g. basket and
payment_method)
– feature implication (one is introduced in a sub-concept of another one, e.g.</p>
      <p>credit_card implies basket)
– how a configuration is closed to or specializes another one, or a merge of
other configurations. E.g. 8 is a specialization of 5,6,7.</p>
      <p>– features that are specific to a configuration, or shared by many.
The concept lattice is also an interesting structure to navigate between these
features and configurations, and is a theoretical support for association rule
extraction, a domain that has not been explored yet in SPLE, as far as we know.</p>
      <p>Besides, lattice theory defines irreducible elements, useful for identifying
irreducible features and configurations (in a polynomial time), that are used for
defining canonical representations of a context or a rule basis. In lattice theory, an
element is called join-irreducible if it cannot be represented as the supremum of
strictly lower elements. They are easily identifiable in a lattice because they have
only one predecessor in lattice transitive reduction. All join-irreducible elements
are present in the formal context, so they all correspond to valid configurations.</p>
      <p>
        Research work done in the framework of reverse engineering exploits some of
the relevant properties of the concept lattice. Formal Concept Analysis has been
used to organize products, features, scenarios, or to synthesize information on the
product line. In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the authors classify the usage of variable features in existing
products of a product line through FCA. The analysis of the concept lattice
reveals information on features that are present in all the products, none of the
products, on groups of features that are always present together, and so on. Such
information can be used to drive modifications on the variability management.
In the same range of idea, the authors of [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] explore concept lattices as a way
to represent variability in products, and revisit existing approaches to handle
variability through making explicit hidden FCA aspects existing in them. The
authors of [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] go a step further in the analysis of the usage of FCA, by studying
Relational Concept Analysis (RCA) as a way to analyze variability in product
lines in which a feature can be a product of another product family.
      </p>
      <p>
        Different artifacts are classified in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]: the authors organize scenarios of a
product line by functional requirements, and by quality attributes. They identify
groups of functional requirements that contribute to a quality attribute, detect
interferences between requirements and quality attributes, and analyze the
impact of a change in the product line w.r.t functional requirement fulfillment.
      </p>
      <p>
        Several proposals investigate with FCA the relationships between features
and source code of existing products. References [
        <xref ref-type="bibr" rid="ref21 ref4">4, 21</xref>
        ] aim at locating features
in source code: existing products described by source code are classified though
FCA, and an analysis of the resulting concepts can detect groups of source code
elements that may be candidates to reveal a feature. In the same idea, traceability
links from source code to features are mined in reference [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In reference [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
the authors mine source code in order to identify pieces of code corresponding to
a feature implementation through an FCA analysis with pieces of source code,
scenarios executing those pieces of source code, and features.
      </p>
      <p>
        FCA is also used in several approaches to study the feature organization
in feature models. Concept structures (lattices or AOC-poset) are used to
detect constraints in feature models, and propose a decomposition of features into
sub-features. The authors of [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] extract implication rules among features, and
covering properties (e.g. sets of features covering all the products). References
[
        <xref ref-type="bibr" rid="ref18 ref3">3, 18</xref>
        ] produce logical relationships between the features of a FM, as well as
cross-tree constraints.
      </p>
      <p>
        Concept lattice could also be a tool in the framework of forward engineering,
using a transformation chain starting from a FM, building with the existing
tools, as FAMILIAR [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], the configuration set (which is equivalent to having a
formal context), then building the corresponding lattice. But applying in practice
this approach to the FMs repository SPLOT4 [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], we noticed that tools hardly
compute more than 1000 configurations, thus we faced a scaling problem.
4
4.1
      </p>
      <sec id="sec-2-1">
        <title>Addressing scaling issues</title>
        <p>From feature models dependencies to implicative systems
The set of all valid attribute implications of a formal context represent a closure
operator, which produces attribute closed sets corresponding to concept intents
of the context. The associated attribute closed set lattice is thus isomorphic to
the concept lattice of the formal context. It is noteworthy that (1) FMs represent
features interaction by graphically depicting a set of features and dependencies
between them, and that (2) the set of all valid implications also describes
dependencies between attributes (i.e. features). Thus, an analogy can be done between
implicative systems and FMs dependencies.</p>
        <p>
          We have previously mentioned a method to build a concept lattice from a FM,
which consists in enumerating all the FM configurations (i.e. all combinations of
4 http://www.splot-research.org/
features w.r.t its dependencies) in a formal context. However, FMs are intensional
representations which can potentially depict a large number of configurations,
making difficult their enumeration and the context computation. In order to
avoid this enumeration, we propose a way to express FMs dependencies as sets
of implications P(F ) F , without building the formal context. We made an
experiment in which we generated several FMs of small size (&lt; 10 features) and
built their equivalent formal contexts, from which we extracted a complete set of
valid implications with the tool Concept Explorer5 [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. When comparing these
FMs to their corresponding set of implications, we noticed that each type of FM
dependency generates the same kind of implications, as presented in Table 3.
        </p>
        <p>The root feature traditionally represents the name of the modeled software
system, and thus is present in all configurations. This peculiarity is translated
by ; ! root, requiring the presence of root in all closed sets. Hierarchy
constraints (subpart relationships) require that a child feature can be selected only
if its parent feature is already selected, and thus produce a child ! parent
implication. Optional relationships actually express the absence of dependencies
between a feature and its child, and do not generate any implication. Mandatory
relationships imply that a child feature is necessarily selected with its parent and
produce a parent ! child implication. Or-groups behave as optional
relationships with an obligation to select at least one feature: this kind of constraints
do not produce any implication. Finally, xor-groups require that two of their
features cannot appear together in any configuration: each pair of features thus
implies the set of all features.</p>
        <p>We can also determine implications for cross-tree constraints, i.e. include and
exclude constraints. Let F be the set of all features and f1; f2 2 F two features.
f1 includes f2 can naturally be translated by f1 ! f2, and f1 excludes f2 can
be translated by f1 f2 ! F , as in xor-groups.</p>
        <p>Table 3 thus permits to translate FM dependencies in implicative systems
without building a formal context. The fact that the obtained implicative system
is exactly the system corresponding to the original FM can be proved by
construction. When adding a new feature (resp. feature group) to a FM, this adds</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>5 http://conexp.sourceforge.net/</title>
      <p>new dependencies which only involve the added feature (resp. feature group)
and its parent. It does not change the previous dependencies expressed in the
FM, but only adds new ones. In our approach, we first identify the implications
corresponding to each type of feature groups and optional/mandatory
relationships. Then, if we construct the FM step by step, we can create the implications
corresponding to each added feature (resp. feature group), and thus no
implication is missing, nor needs to be changed afterward. We applied our method on
the FM of Fig. 1 and obtained the implicative system presented in Fig. 4.
root :
hierarchy :
mandatory :
xor-group :
cross-tree :
? ! Ec
Ca ! Ec ; G ! Ca ; L ! Ca ;
P m ! Ec ; Cc ! P m ; Ch ! P m ; B ! Ec
Ec ! Ca
G; L ! Ec; Ca; G; L; P m; Cc; Ch; B</p>
      <p>P m ! B ; B ! P m
These implications can be extracted by performing a graph search on the
FM, and their number can be predicted by analysing its dependencies (# stands
for "number of"):
1 + #child-parent relationships + #mandatory relationships
+#pairs of f eatures in each xor-group + #cross-tree constraints</p>
      <p>For example, a representative FM of SPLOT (e-commerce) with 19 features
and 768 configurations is equivalent (with the configuration-semantics) to an
implicative system with 27 implications.
4.2 Identification of the set of possible configurations
In a concept lattice representing a FM, an object introduced in a concept
extent represents a valid configuration, which corresponds to the feature set of the
concept intent. Because each configuration in a FM is unique, a concept can
introduce at most one object. Thus, for SPLE, a concept intent represents either a
valid configuration or an invalid one. In the isomorphic feature closed set lattice,
each closed set corresponds to a concept intent from the context: therefore, each
valid configuration of the FM matches a feature closed set. However, the feature
closed set lattice does not display objects and thus we cannot identify which
closed set corresponds to a valid configuration. To be able to retrieve knowledge
about configurations as in concept lattices, their identification in feature closed
set lattice is necessary.</p>
      <p>As previously said, all join-irreducibles correspond to valid configurations.
But there can exist valid configurations which do not correspond to
join-irreducibles, and thus they cannot be discerned from invalid ones in feature closed set
lattices. A solution is to add a unique attribute for each configuration, as an
identifier. Thus, we change the lattice structure to make each configuration
correspond to a join-irreducible element, which can be detected. However, the
obtained lattice is not isomorphic to the original concept lattice, and its size is
larger. A way to keep the isomorphism is to add "reducible" attributes, which
do not modify the lattice structure and which can label the lattice’s elements.</p>
      <p>In what follows, we investigate a way to label feature closed sets to help the
identification of valid configurations. We seek to produce a labelled implicative
system that generates a labelled feature closed set lattice, isomorphic to the
concept lattice associated with the formal context. We recall that a valid
configuration is a combination of features w.r.t. all the FM dependencies: thus, we seek
to retrieve valid configurations by detecting which feature closed sets respect all
these dependencies.</p>
      <p>Features linked by mandatory relationships always appear together in closed
sets: this type of dependencies is respected. Optional relationships express the
absence of dependencies and do not create difficulties. Or-groups and xor-groups,
however, are more problematic. Let us consider the or-group in Table 3,
composed of B and C, which are two sub-features of A. fA; Bg and fA; Cg are
two valid combinations of features of this group. Because our feature closed set
family is closed under intersection/join, fA; Bg \ fA; Cg = fAg is also a feature
closed set of the family, but it does not respect the dependencies induced by the
or-group (i.e. contains at least B or C). The same reasoning can be applied to
xor-groups. To identify if a feature closed set respects the dependencies induced
by or-groups and xor-groups, we choose to make constraints related to feature
groups appear directly in feature closed sets, as labels.</p>
      <p>Let ff1; : : : ; fng be a subset of features involved in a feature group. If they
form an or-group, each feature closed set containing the parent feature of this
group will be labeled (f1; : : : ; fn), defining the constraint: "this feature closed set
must have at least one feature from ff1; : : : ; fng to correspond to a valid
configuration". If they form a xor-group, each feature closed set containing the parent
feature of the group will be labeled [f1; : : : ; fn], defining the constraint: "this
feature closed set must have exactly one feature from ff1; : : : ; fng to correspond
to a valid configuration". As example, the FM of Fig. 1 produces two different
labels: one for the xor-group of the feature catalog (Ca), and another for the
or-group of the feature payment_method (P m). Each feature closed set
possessing catalog has to be labeled [grid; list], and each feature closed set possessing
payment_method has to be labeled (check; credit_card).</p>
      <p>We choose to represent these labels in the labelled implicative system as
attributes. A label is attached to a feature by adding to the original implicative
system a double implication between the feature and the corresponding
labelattribute. Fig. 5 presents the implications added to the implicative system of Fig.
4 in order to take into account labels [grid; list] ([G; L]) and (check; credit_card)
((Ch; Cc)).</p>
      <p>A feature closed set with a (check; credit_card) label is a valid configuration
if it contains at least features credit_card or check. A feature closed set with a
labels :</p>
      <p>P m ! (Ch; Cc) ; (Ch; Cc) ! P m ;</p>
      <p>Ca ! [G; L] ; [G; L] ! Ca
[grid; list] label is a valid configuration if it contains grid or list, but not both. A
feature closed set respecting the constraints expressed by all its labels represents
a valid configuration. A label is associated with the parent feature of the group,
and thus does not change the original lattice structure.</p>
      <p>Closed_set_15
e_commerce, catalog</p>
      <p>[grid, list]</p>
      <p>Closed_set_14
payment_method, basket</p>
      <p>(check, credit_card)
Closed_set_13</p>
      <p>grid
Closed_set_9</p>
      <p>Closed_set_11
check</p>
      <p>Closed_set_12
credit_card</p>
      <p>Closed_set_10</p>
      <p>list
Closed_set_8
Closed_set_6</p>
      <p>Closed_set_7</p>
      <p>Closed_set_5</p>
      <p>Closed_set_3</p>
      <p>Closed_set_4
Closed_set_2</p>
      <p>Closed_set_1</p>
      <p>Closed_set_0</p>
      <p>Fig. 6 represents the feature closed set lattice associated with the labeled
implicative system of Fig. 4 plus Fig. 5: feature closed sets which respect all
the constraints defined by their labels are colored, and correspond to the 8
configurations of the formal context of Table 1. In the lattice, "label features"
are inherited from top to bottom, as usual features. For example, Closed_set_3
possesses features fe_commerce; catalog; list; basket; payment_method; checkg
and the two labels [grid; list] and (check; credit_card). This feature closed set
possesses feature list and not feature grid, and thus respects the constraint of
label [grid; list]. Moreover, it possesses feature check, and thus also respects the
constraint of label (check; credit_card). The constraints corresponding to all its
labels are respected: Closed_set_3 is thus a valid configuration of the software
product line. Note that in this particular case, the valid configurations are all
irreducible.</p>
      <p>To conclude, the labelled implicative system permits to construct a lattice
from a FM without enumerating all its configurations: the obtained feature closed
set lattice is a canonical representation, isomorphic to the concept lattice of a
formal context, in which one can retrieve exactly the same information about
features and configurations.
5</p>
      <sec id="sec-3-1">
        <title>Conclusion</title>
        <p>In this paper, we compare the various formalisms used in the literature to
represent and manage the variability of a software product line. Especially, we study
their different semantics, their canonicity and the type of information they can
highlight. We investigate formal concept analysis and concept lattices to
represent a software product line originally described by a feature model. Contrary
to FMs, concept lattices represent commonalities and variabilities in a canonical
form. Moreover, they permit to extract relationships between features, between
features and configurations and between configurations.</p>
        <p>Constructing a concept lattice from a FM requires to enumerate all its
configurations in a formal context, but this method can be difficult to realize when
their number is too high. We propose a method to extract feature implications
directly from feature models dependencies. The obtained implicative system
produces a feature closed set lattice isomorphic to the concept lattice which can be
built from the context. We also propose a method to label these implicative
systems in order to identify the set of valid configurations, and thus retrieve the
same informations as in concept lattices.</p>
        <p>In the future, we will make experiment on the existing FMs repositories in
order to assess the size of FMs, implicative systems, and closed set lattices and
how frequent are the FMs that have reducible configurations. We will also expand
our study to multiple software product lines. We will study relational concept
analysis to connect several software product lines represented by concept lattices,
and analyze their properties and the issues they permit to answer.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Acher</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Collet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lahire</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , France, R.B.:
          <article-title>FAMILIAR: A domain-specific language for large scale management of feature models</article-title>
          .
          <source>Sci. Comput</source>
          . Program.
          <volume>78</volume>
          (
          <issue>6</issue>
          ),
          <fpage>657</fpage>
          -
          <lpage>681</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. 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: 5th Int. Conf. on Inf. and Comm. Systems (ICICS)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>6</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>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: 11th Int. Conf. on Concept Lattices and Their Applications (ICFCA)</source>
          . pp.
          <fpage>95</fpage>
          -
          <lpage>106</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <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: 25th Conf. on Soft. Eng. and Know. Eng. (SEKE)</source>
          . pp.
          <fpage>244</fpage>
          -
          <lpage>249</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Batory</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          : Feature Models, Grammars, and
          <string-name>
            <given-names>Propositional</given-names>
            <surname>Formulas</surname>
          </string-name>
          .
          <source>In: 9th Int. Conf. on Soft. Product Lines (SPLC)</source>
          . pp.
          <fpage>7</fpage>
          -
          <lpage>20</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bryant</surname>
          </string-name>
          , R.E.:
          <article-title>Graph-Based Algorithms for Boolean Function Manipulation</article-title>
          .
          <source>IEEE Trans. Computers</source>
          <volume>35</volume>
          (
          <issue>8</issue>
          ),
          <fpage>677</fpage>
          -
          <lpage>691</lpage>
          (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Carbonnel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutierrez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Variability representation in product lines using concept lattices: Feasibility study with descriptions from wikipedia's product comparison matrices</article-title>
          .
          <source>In: Int. Works. on Formal Concept Analysis and Applications</source>
          ,
          <source>FCA&amp;A</source>
          <year>2015</year>
          , co-located
          <source>with ICFCA</source>
          <year>2015</year>
          ). pp.
          <fpage>93</fpage>
          -
          <lpage>108</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wasowski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Feature Diagrams and Logics: There and Back Again</article-title>
          .
          <source>In: 11th Int. Conf. on Soft. Product Lines (SPLC)</source>
          . pp.
          <fpage>23</fpage>
          -
          <lpage>34</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <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="ref10">
        <mixed-citation>
          10.
          <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="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>
          <string-name>
            <surname>: FeatureOriented Domain Analysis (FODA): Feasibility Study</surname>
          </string-name>
          (
          <year>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>Lee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Donohoe</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Feature-oriented product line engineering</article-title>
          .
          <source>IEEE software 19(4)</source>
          ,
          <fpage>58</fpage>
          -
          <lpage>65</lpage>
          (
          <year>2002</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: 11th Eur. Conf. on Soft. Maintenance and Reengineering (CSMR)</source>
          . pp.
          <fpage>159</fpage>
          -
          <lpage>170</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Mendonça</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Branco</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cowan</surname>
            , D.D.:
            <given-names>S.P.L.O.T.</given-names>
          </string-name>
          :
          <article-title>software product lines online tools</article-title>
          .
          <source>In: Companion to the 24th Annual ACM SIGPLAN Conference on ObjectOriented Programming, Systems, Languages, and Applications</source>
          ,
          <source>OOPSLA 2009, October 25-29</source>
          ,
          <year>2009</year>
          , Orlando, Florida, USA. pp.
          <fpage>761</fpage>
          -
          <lpage>762</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <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: 8th Int. Conf. on Aspect-Oriented Software Development (AOSD)</source>
          . pp.
          <fpage>137</fpage>
          -
          <lpage>148</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <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: 15th Int. Conf. on Soft. Product Lines (SPLC) Workshop Proceedings</source>
          (Vol.
          <volume>2</volume>
          ). p.
          <volume>4</volume>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <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: 14th Conf. on Inf. Reuse and Integration (IRI)</source>
          . pp.
          <fpage>209</fpage>
          -
          <lpage>216</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>
          .
          <source>In: 14th Int. Conf. on Soft. Reuse (ICSR)</source>
          . pp.
          <fpage>17</fpage>
          -
          <lpage>33</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>She</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ryssel</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andersen</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wasowski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Efficient synthesis of feature models</article-title>
          .
          <source>Information &amp; Software Technology</source>
          <volume>56</volume>
          (
          <issue>9</issue>
          ),
          <fpage>1122</fpage>
          -
          <lpage>1143</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Van Gurp</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bosch</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Svahnberg</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>On the notion of variability in software product lines</article-title>
          .
          <source>In: Work. IEEE/IFIP Conf. on Soft. Arch. (WICSA)</source>
          . pp.
          <fpage>45</fpage>
          -
          <lpage>54</lpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <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: 19th Working Conf. on Reverse Engineering (WCRE)</source>
          . pp.
          <fpage>145</fpage>
          -
          <lpage>154</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Yevtushenko</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          :
          <article-title>System of data analysis "Concept Explorer"</article-title>
          .
          <source>In: 7th national conference on Artificial Intelligence KII-2000</source>
          . pp.
          <fpage>127</fpage>
          -
          <lpage>134</lpage>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>