FCA for Software Product Lines Representation: Mixing Product and Characteristic Relationships in a Unique Canonical Representation

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.

[1]  Mathieu Acher,et al.  FAMILIAR: A domain-specific language for large scale management of feature models , 2013, Sci. Comput. Program..

[2]  Houari A. Sahraoui,et al.  Recovering Architectural Variability of a Family of Product Variants , 2015, ICSR.

[3]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[4]  C. Urtado,et al.  Concept lattices: A representation space to structure software variability , 2014, 2014 5th International Conference on Information and Communication Systems (ICICS).

[5]  Klaus Kabitzsch,et al.  Extraction of feature models from formal contexts , 2011, SPLC '11.

[6]  Abdelhak-Djamel Seriai,et al.  Mining Features from the Object-Oriented Source Code of a Collection of Software Variants Using Formal Concept Analysis and Latent Semantic Indexing , 2013, SEKE.

[7]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[8]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[9]  Abdelhak-Djamel Seriai,et al.  Feature-to-code traceability in a collection of software variants: Combining formal concept analysis and information retrieval , 2013, 2013 IEEE 14th International Conference on Information Reuse & Integration (IRI).

[10]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[11]  F. Loesch,et al.  Restructuring Variability in Software Product Lines using Concept Analysis of Product Configurations , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[12]  Zhenchang Xing,et al.  Feature Location in a Collection of Product Variants , 2012, 2012 19th Working Conference on Reverse Engineering.

[13]  Abdelhak-Djamel Seriai,et al.  Reverse Engineering Feature Models from Software Configurations using Formal Concept Analysis , 2014, CLA.

[14]  Marianne Huchard,et al.  Variability Representation in Product Lines using Concept Lattices: Feasibility Study with Descriptions from Wikipedia's Product Comparison Matrices , 2015, FCA&A@ICFCA.

[15]  Patrick Donohoe,et al.  Feature-Oriented Project Line Engineering , 2002, IEEE Softw..

[16]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[17]  Nan Niu,et al.  Concept analysis for product line requirements , 2009, AOSD '09.

[18]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007 .

[19]  Krzysztof Czarnecki,et al.  Efficient synthesis of feature models , 2014, Inf. Softw. Technol..

[20]  Sofia Cassel,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 2012 .

[21]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..