=Paper=
{{Paper
|id=None
|storemode=property
|title=Variability Representation in Product Lines using Concept Lattices:
Feasibility Study with Descriptions from Wikipedia's Product Comparison Matrices
|pdfUrl=https://ceur-ws.org/Vol-1434/paper7.pdf
|volume=Vol-1434
|dblpUrl=https://dblp.org/rec/conf/icfca/CarbonnelHG15
}}
==Variability Representation in Product Lines using Concept Lattices:
Feasibility Study with Descriptions from Wikipedia's Product Comparison Matrices==
Variability representation in product lines using concept lattices: feasibility study with descriptions from Wikipedia’s product comparison matrices Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez LIRMM, CNRS & Université de Montpellier, France jessiecarbonnel@gmail.com surname.lastname@lirmm.fr Abstract. 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 Analy- sis. Then, we propose an approach to represent the case where a product family is described by other product families with interconnected lat- tices 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. Keywords: Product lines, Formal Concept Analysis, Variability Rep- resentation. 1 Introduction In product line engineering [5], several formalisms can be used to depict vari- ability. 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. Among existing formalisms, the most common is Product Comparison Matri- ces (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 auto- matic and efficient processing or analysis on them [4, 17]. 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 prod- ucts from a same family [6, 9, 11, 12]. They depict variability in a more formal c 2015 for the individual papers by the papers’ authors. Copying permitted for private and academic purposes. This volume is published and copyrighted by its editors. Local Proceedings also appeared in ISBN 978-84-606-7410-8, Universidad de Málaga (Dept. Matemática Aplicada), Spain. 94 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez 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. Formal Concept Analysis (FCA) and concept lattices have already been stud- ied to express variability [13]. 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 Anal- ysis (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. 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. 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? The remainder of this paper is organised as follows. In Section 2, we will re- view 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. Variability representation in product lines using concept lattices 95 2 Formal Concept Analysis and product comparison matrices This section proposes an approach to represent with a concept lattice the vari- ability originally expressed in a PCM. 2.1 Concept lattices and AOC-posets Formal Concept Analysis [8] 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. 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. We represent intent and extent of a concept in an optimised way by making el- ements 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 nec- essary, 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 match- ing the concept lattice from Figure 7. In our case, interesting properties of con- cept lattices with regard to variability are preserved in AOC-posets: this smaller structure can be used as an alternative to concept lattices. 2.2 Product Comparison Matrix 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. 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 ’&’ or ’and’). 96 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez Language Standardized Paradigm Java Yes Functional, Imperative, OO Perl No Functional & Procedural & Imperative Php No Functional, Procedural, Imperative and Object-Oriented C# Yes 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) 2.3 Processing PCMs to get formal context 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 [17], 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. 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 de- tected, 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. Since automatic process is difficult on original PCMs, we clean them manu- ally. When we clean the PCM in Figure 1, we obtain the PCM in Figure 2. 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). Scaling technique [8] 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 Variability representation in product lines using concept lattices 97 Language Standardized Paradigm Java Yes Functional, Imperative, Object-Oriented Perl No Functional, Procedural, Imperative Php No Functional, Procedural, Imperative, Object-Oriented C# Yes Functional, Procedural, Imperative, Object-Oriented Fig. 2. PCM in Figure 1 cleaned manually 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. Standardized:Yes Object -Oriented Standardized:No Procedural Imperative Functional Language Java x x x x Perl x x x x Php x x x x x C# x x x x x Fig. 3. Formal context obtained after scaling the cleaned PCM in Figure 2 The structure of concept lattices and AOC-posets permits to highlight inter- esting 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 ob- jects 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. 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 98 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez 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. Fig. 4. AOC-poset from the formal context of Figure 3 3 Relational Concept Analysis and interconnected product lattices 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 Modeling interconnected families of products with RCA We illustrate the modeling of interconnected families of products with an exten- sion of our example. We can find on Wikipedia a PCM on Wikisoftwares that refers to Programming Languages: we want to structure wikisoftwares accord- ing to programming languages in which they are written. We assume a PCM about wikisoftwares that owns a boolean feature Open Source and a constrained Variability representation in product lines using concept lattices 99 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. Wikisoftware OS:Yes OS:No SP:Yes SP:No SP:Captcha SP:Blacklist TeamPage x x x Socialtext x MindTouch x x DokuWiki x x x EditMe x x x Fig. 5. Objects-attributes context of Wikisoftwares Relational Concept Analysis (RCA) [10] 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. 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. isWritten Java Perl Php C# TeamPage x Socialtext x MindTouch x x DokuWiki x EditMe x Fig. 6. Objects-objects context expressing the relation between objects of Wikisoft- wares and Programming languages 3.2 Processing interconnected families of products 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 100 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez Fig. 7. Concept lattice of Programming languages, step 0 (built with RCAExplore: http://dolques.free.fr/rcaexplore.php) 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. 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. As shown on the example, data are represented in a Relational Context Fam- ily (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 Variability representation in product lines using concept lattices 101 Fig. 8. Concept lattice of Wikisoftwares, step 0 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 con- texts) 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 con- text 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. 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. K 0 = K. In step e + 1, RCA computes complete relational extension of the K e contexts. The obtained extended contexts (K e+1 ) possess relational attributes which refer to concepts of lattices obtained in the previous step. In our example, the RCF is composed of Wikisoftware, Programming Lan- guage and of the objects-objects context isWritten. When we compute the com- plete relational extension of this RCF, we extend the objects-attributes context of Wikisoftware with relational attributes which refer to each concept of Pro- gramming language. Figure 7 and Figure 8 represent lattices of Wikisoftware and Programming language at step 0. Figure 9 presents the concept lattice from the 102 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez extended objects-attributes context of Wikisoftwares, at step 1. In this example, we cannot go further than step 1. Fig. 9. Concept lattice of Wikisoftwares, step 1 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 Variability representation in product lines using concept lattices 103 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 Assessing scalability of the approach 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. 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. 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 Scalability for non-connected PCMs (FCA) Firstly, we analysed 40 PCMs from Wikipedia without taking into account rela- tions 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. 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 Scalability for connected PCMs (RCA) 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, 104 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez Lattices (F) Lattices (R) AOC-posets (F) AOC-posets (R) Mean 427.375 131.35 50.3 41.025 Median 174 62.5 50 34 Minimum 21 8 16 8 Maximum 4551 1336 161 148 First Quartile 49 28.25 29.25 20.5 Third Quartile 282.5 127.75 61.25 53.75 Fig. 10. Box plots on the number of concepts obtained with concept lattices (top) and AOC-poset (bottom), from full formal contexts (green) and reduced formal contexts (blue) 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. Results are presented in Figure 11. Concept lattices are huge (some can reach 14000 concepts) whereas AOC-poset remain relatively affordable (about 200 concepts). 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 Lin- uxDistribution (77 objects, 25 features) and FileSystem (103 objects, 60 fea- tures). With a lattice, we obtain 1174 concepts (full context) and 1054 con- cepts (reduced context). With an AOC-poset, we obtain 188 then 179 con- cepts. 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 AOC- poset, we obtain 87 and then 86 concepts. All the datasets (extracted from Variability representation in product lines using concept lattices 105 Lattices (F) Lattices (R) AOC-posets (F) AOC-posets (R) Mean 2263.5 878.2 89.95 72.55 Median 793 194 82 61.5 Minimum 61 24 33 16 Maximum 14083 7478 201 189 First Quartile 359.25 108.25 67.5 47.25 Third Quartile 2719.5 597.75 101.25 87.25 Fig. 11. Box plots on the number of concepts obtained with formal contexts extended with RCA wikipedia and generated) are available for reproducibility purpose at: http: //www.lirmm.fr/recherche/equipes/marel/datasets/fca-and-pcm. 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 lat- tices. 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 Related work 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 [13]. 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 106 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez between features and propose restructurations of these features (merge, removal or identification of alternatives feature groups). In [14], authors study, in an aspect-oriented requirements engineering context, a concept lattice which clas- sifies 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 obser- vations about product informations contained in the lattice (or the AOC-poset), and on the manner that some work implicitly use FCA, without mentioning it [1]. 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. In the domain of product lines, another category of works is interested in identification of features in source code using FCA [19, 3]. 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 [16]. In [7], 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. Finally, a last category of works study feature organisation in FM with FCA. Some approaches [20, 15] use conceptual structures (concept lattice or AOC- poset) to recognise contraints, but also to suggest sub-features typed relations linked to the domain. In the article [15], authors study in detail the extraction of implication rules in the lattice and cover relationships, to determine for in- stance if a set of features covers all the products. Recent works [2, 18] focus on emphasise logical relationships between features in a FM and on the identifica- tion of transverse constraints. These logical relationships are more specifically used in [18] 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 Conclusion 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 de- scribed by another product family with Relational Concept Analysis. We obtain Variability representation in product lines using concept lattices 107 interconnected lattices that bring a new dimension to research and classification of products when they are in relation with other product families. 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 AOC- posets 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. In the future, we will use the work of [4] 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 con- cept lattices to be able to select one depending on the kind of operation we want to apply. References 1. Al-Msie ’deen, R., Seriai, A.D., Huchard, M., Urtado, C., Vauttier, S., Al-Khlifat, A.: Concept lattices: A representation space to structure software variability. In: ICICS 2014: The fifth International Conference on Information and Communica- tion Systems. pp. 1 – 6. Irbid, Jordan (Apr 2014), http://hal-lirmm.ccsd.cnrs. fr/lirmm-01075533 2. Al-Msie’deen, R., Huchard, M., Seriai, A., Urtado, C., Vauttier, S.: Reverse engi- neering feature models from software configurations using formal concept analysis. In: Proceedings of the Eleventh International Conference on Concept Lattices and Their Applications, Košice, Slovakia, October 7-10, 2014. pp. 95–106 (2014) 3. Al-Msie’deen, R., Seriai, A., Huchard, M., Urtado, C., Vauttier, S., Salman, H.E.: Mining features from the object-oriented source code of a collection of software variants using formal concept analysis and latent semantic indexing. In: Proc. of The 25th SEKE. pp. 244–249 (2013) 4. Bécan, G., Sannier, N., Acher, M., Barais, O., Blouin, A., Baudry, B.: Automating the formalization of product comparison matrices. In: Proc. of the 29th ACM/IEEE ASE ’14. pp. 433–444 (2014) 5. Clements, P.C., Northrop, L.M.: Software product lines: practices and patterns. Addison-Wesley (2001) 6. Czarnecki, K., Eisenecker, U.W.: Generative programming: methods, tools, and applications. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA (2000) 7. Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Trans. Softw. Eng. 29(3), 210–224 (2003) 108 Jessie Carbonnel, Marianne Huchard, and Alain Gutierrez 8. Ganter, B., Wille, R.: Formal concept analysis - mathematical foundations. Springer (1999) 9. Griss, M.L., Favaro, J., Alessandro, M.d.: Integrating Feature Modeling with the RSEB. In: Proceedings of the 5th International Conference on Software Reuse. pp. 76–. ICSR ’98, IEEE Computer Society, Washington, DC, USA (1998), http: //dl.acm.org/citation.cfm?id=551789.853486 10. Hacène, M.R., Huchard, M., Napoli, A., Valtchev, P.: Relational concept analysis: mining concept lattices from multi-relational data. Ann. Math. Artif. Intell. 67(1), 81–108 (2013) 11. Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (foda) feasibility study (November 1990) 12. Kang, K.C., Kim, S., Lee, J., Kim, K., Shin, E., Huh, M.: Form: A feature-oriented reuse method with domain-specific reference architectures. Ann. Software Eng. 5, 143–168 (1998) 13. Loesch, F., Ploedereder, E.: Restructuring variability in software product lines us- ing concept analysis of product configurations. In: Proc. of the 11th IEEE ECSMR. pp. 159–170 (2007) 14. Niu, N., Easterbrook, S.M.: Concept analysis for product line requirements. In: Proc. of the 8th AOSD 2009. pp. 137–148 (2009) 15. Ryssel, U., Ploennigs, J., Kabitzsch, K.: Extraction of feature models from formal contexts. In: Proc. of ACM SPLC ’11. pp. 4:1–4:8 (2011) 16. Salman, H.E., Seriai, A., Dony, C.: Feature-to-code traceability in a collection of software variants: Combining formal concept analysis and information retrieval. In: Proc. of the14th IEEE IRI. pp. 209–216 (2013) 17. Sannier, N., Acher, M., Baudry, B.: From comparison matrix to variability model: The wikipedia case study. In: Proc. of the 28th IEEE/ACM ASE 2013. pp. 580–585 (2013) 18. Shatnawi, A., Seriai, A.D., Sahraoui, H.: Recovering architectural variability of a family of product variants. In: To appear in Proc. of the 14th ICSR (2015) 19. Xue, Y., Xing, Z., Jarzabek, S.: Feature location in a collection of product variants. In: Proc. of the 19th IEEE WCRE. pp. 145–154 (2012) 20. Yang, Y., Peng, X., Zhao, W.: Domain feature model recovery from multiple ap- plications using data access semantics and formal concept analysis. In: Proc. of the 16th IEEE WCRE. pp. 215–224 (2009)