Reverse Engineering Feature Models with Evolutionary Algorithms: An Exploratory Study

Successful software evolves, more and more commonly, from a single system to a set of system variants tailored to meet the similiar and yet different functionality required by the distinct clients and users. Software Product Line Engineering (SPLE) is a software development paradigm that has proven effective for coping with this scenario. At the core of SPLE is variability modeling which employs Feature Models (FMs) as the de facto standard to represent the combinations of features that distinguish the systems variants. Reverse engineering FMs consist in constructing a feature model from a set of products descriptions. This research area is becoming increasingly active within the SPLE community, where the problem has been addressed with different perspectives and approaches ranging from analysis of configuration scripts, use of propositional logic or natural language techniques, to ad hoc algorithms. In this paper, we explore the feasibility of using Evolutionary Algorithms (EAs) to synthesize FMs from the feature sets that describe the system variants. We analyzed 59 representative case studies of different characteristics and complexity. Our exploratory study found that FMs that denote proper supersets of the desired feature sets can be obtained with a small number of generations. However, reducing the differences between these two sets with an effective and scalable fitness function remains an open question. We believe that this work is a first step towards leveraging the extensive wealth of Search-Based Software Engineering techniques to address this and other variability management challenges.

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

[2]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[3]  Charles W. Krueger,et al.  Easing the Transition to Software Mass Customization , 2001, PFE.

[4]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[5]  A. E. Eiben,et al.  Introduction to Evolutionary Computing , 2003, Natural Computing Series.

[6]  Frank J. van der Linden Software Product-Family Engineering , 2003, Lecture Notes in Computer Science.

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

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

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

[10]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[11]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[12]  Ruzanna Chitchyan,et al.  A framework for constructing semantically composable feature models from natural language requirements , 2009, SPLC.

[13]  Dragan Gasevic,et al.  Assessing the maintainability of software product line feature models using structural metrics , 2011, Software Quality Journal.

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

[15]  Sergio Segura,et al.  Automated metamorphic testing on the analyses of feature models , 2011, Inf. Softw. Technol..

[16]  Mathieu Acher,et al.  Reverse Engineering Architectural Feature Models , 2011, ECSA.

[17]  Krzysztof Czarnecki,et al.  Reverse engineering feature models , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[19]  Alexander Egyed,et al.  Searching the Variability Space to Fix Model Inconsistencies : A Preliminary Assessment , 2011 .

[20]  Sergio Segura,et al.  BeTTy: benchmarking and testing on the automated analysis of feature models , 2012, VaMoS.

[21]  Sixth International Workshop on Variability Modelling of Software-Intensive Systems, Leipzig, Germany, January 25-27, 2012. Proceedings , 2012, VaMoS.

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

[23]  Alexander Egyed,et al.  Towards fixing inconsistencies in models with variability , 2012, VaMoS '12.

[24]  Antonio Ruiz-Cortés,et al.  ETHOM: An Evolutionary Algorithm for Optimized Feature Models Generation , 2013 .

[25]  Sergio Segura,et al.  Automated generation of computationally hard feature models using evolutionary algorithms , 2014, Expert Syst. Appl..