Towards the Extraction of Variability Information to Assist Variability Modelling of Complex Product Lines

Software product line engineering gathers a set of methods that rely on systematic reuse and mass customisation to reduce the development time and cost of a set of similar software systems. Boolean feature models are the de facto standard used to represent product line variability in terms of features, a feature being a distinguishable characteristic of one or several softwares. The extractive adoption of a product line from a set of individually developed softwares requires to extract variability information from a collection of software descriptions to model their variability. With the appearance of more and more complex software systems, software product line engineering faces new challenges including variability extraction and modelling. Extensions of boolean feature models, as multi-valued attributes or UML-like cardinalities have since been proposed to support variability modelling in complex product lines. In this paper, we propose research directions to address the issue of extracting more complex variability information, as a part of extended feature models synthesis from software descriptions. We consider the capabilities of Formal Concept Analysis, a mathematical framework for knowledge discovery, along with two of its extensions called Pattern Structures and Relational Concept Analysis, to answer this problematic. These frameworks bring theoretical foundations to complex variability extraction algorithms.

[1]  Paul Grünbacher,et al.  A systematic review and an expert survey on capabilities supporting multi product lines , 2012, Inf. Softw. Technol..

[2]  Amedeo Napoli,et al.  Characterizing functional dependencies in formal concept analysis with pattern structures , 2014, Annals of Mathematics and Artificial Intelligence.

[3]  Marko Rosenmüller,et al.  Modeling Dependent Software Product Lines , 2008 .

[4]  Mike Mannion Using First-Order Logic for Product Line Model Validation , 2002, SPLC.

[5]  Mathieu Acher,et al.  On extracting feature models from product descriptions , 2012, VaMoS.

[6]  Goetz Botterweck,et al.  Variability and Evolution in Systems of Systems , 2013, AiSoS.

[7]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[8]  Alexander Egyed,et al.  Reverse Engineering Feature Models from Programs' Feature Sets , 2011, 2011 18th Working Conference on Reverse Engineering.

[9]  Mehwish Alam,et al.  A Proposal for Classifying the Content of the Web of Data Based on FCA and Pattern Structures , 2017, ISMIS.

[10]  Chedy Raïssi,et al.  On mining complex sequential data by means of FCA and pattern structures , 2015, Int. J. Gen. Syst..

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

[12]  Alexander Egyed,et al.  On Extracting Feature Models from Sets of Valid Feature Combinations , 2013, FASE.

[13]  Clémentine Nebut,et al.  Generation of operational transformation rules from examples of model transformations , 2012, MODELS'12.

[14]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[15]  Víctor Codocedo,et al.  A Proposition for Combining Pattern Structures and Relational Concept Analysis , 2014, ICFCA.

[16]  Mathieu Acher,et al.  Feature model extraction from large collections of informal product descriptions , 2013, ESEC/FSE 2013.

[17]  Arnaud Gotlieb,et al.  Synthesis of attributed feature models from product descriptions , 2015, SPLC.

[18]  Mathieu Acher,et al.  Automated extraction of product comparison matrices from informal product descriptions , 2017, J. Syst. Softw..

[19]  Steffen Staab,et al.  Ontology-Driven Software Development , 2012, Springer Berlin Heidelberg.

[20]  Roger Nkambou,et al.  Supporting Ontology Design through Large-Scale FCA-Based Ontology Restructuring , 2011, ICCS.

[21]  Jonas Poelmans,et al.  Formal Concept Analysis in Knowledge Discovery: A Survey , 2010, ICCS.

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

[23]  Bernhard Ganter,et al.  Pattern Structures and Their Projections , 2001, ICCS.

[24]  Krzysztof Czarnecki,et al.  Generative Programming for Embedded Software: An Industrial Experience Report , 2002, GPCE.

[25]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007, 11th International Software Product Line Conference (SPLC 2007).

[26]  Yann-Gaël Guéhéneuc,et al.  Refactorings of Design Defects Using Relational Concept Analysis , 2008, ICFCA.

[27]  Clémentine Nebut,et al.  Analyzing Variability in Product Families through Canonical Feature Diagrams , 2017, SEKE.

[28]  Gregor Snelting Software reengineering based on concept lattices , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[29]  Lian Shi,et al.  Mining for Reengineering: An Application to Semantic Wikis Using Formal and Relational Concept Analysis , 2011, ESWC.

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

[31]  Sergio Segura,et al.  An assessment of search-based techniques for reverse engineering feature models , 2015, J. Syst. Softw..

[32]  Douglas C. Schmidt,et al.  The ultra challenge: software systems beyond big , 2006, OOPSLA '06.

[33]  Clémentine Nebut,et al.  Building abstractions in class models: formal concept analysis in a model-driven approach , 2006, MoDELS'06.

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

[35]  Amedeo Napoli,et al.  Relational concept analysis: mining concept lattices from multi-relational data , 2012, Annals of Mathematics and Artificial Intelligence.

[36]  Jan Bosch,et al.  From software product lines to software ecosystems , 2009, SPLC.

[37]  Alexander Egyed,et al.  Feature Model Synthesis with Genetic Programming , 2014, SSBSE.

[38]  Mathieu Acher,et al.  From comparison matrix to Variability Model: The Wikipedia case study , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[39]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

[40]  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).

[41]  Amedeo Napoli,et al.  From Meaningful Orderings in the Web of Data to Multi-level Pattern Structures , 2017, ISMIS.

[42]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

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