Genetic Improvement for Software Product Lines: An Overview and a Roadmap

Software Product Lines (SPLs) are families of related software systems that provide different combinations of features. Extensive research and application attest to the significant economical and technological benefits of employing SPL practices. However, there are still several challenges that remain open. Salient among them is reverse engineering SPLs from existing variants of software systems and their subsequent evolution. In this paper, we aim at sketching connections between research on these open SPL challenges and ongoing work on Genetic Improvement. Our hope is that by drawing such connections we can spark the interest of both research communities on the exciting synergies at the intersection of these subject areas.

[1]  Mark Harman,et al.  Genetic programming for Reverse Engineering , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[2]  Danny Weyns,et al.  Variability in Software Systems—A Systematic Literature Review , 2014, IEEE Transactions on Software Engineering.

[3]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[4]  Witold Pedrycz,et al.  Computational Intelligence and Quantitative Software Engineering , 2016, Studies in Computational Intelligence.

[5]  Maninder Singh,et al.  Software clone detection: A systematic review , 2013, Inf. Softw. Technol..

[6]  Alexander Egyed,et al.  A systematic mapping study of search-based software engineering for software product lines , 2015, Inf. Softw. Technol..

[7]  Giuliano Antoniol,et al.  Comparison and Evaluation of Clone Detection Tools , 2007, IEEE Transactions on Software Engineering.

[8]  Yuriy Brun,et al.  The plastic surgery hypothesis , 2014, SIGSOFT FSE.

[9]  Alexander Egyed,et al.  Using Traceability for Incremental Construction and Evolution of Software Product Portfolios , 2015, 2015 IEEE/ACM 8th International Symposium on Software and Systems Traceability.

[10]  Sven Apel,et al.  Scalable Prediction of Non-functional Properties in Software Product Lines , 2011, 2011 15th International Software Product Line Conference.

[11]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

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

[13]  Krzysztof Czarnecki,et al.  An Exploratory Study of Cloning in Industrial Software Product Lines , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[14]  Matias Martinez,et al.  ASTOR: Evolutionary Automatic Software Repair for Java , 2014, ArXiv.

[15]  Claire Le Goues,et al.  GenProg: A Generic Method for Automatic Software Repair , 2012, IEEE Transactions on Software Engineering.

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

[17]  Riccardo Poli,et al.  A Field Guide to Genetic Programming , 2008 .

[18]  John A. Clark,et al.  The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper) , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

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

[20]  Mark Harman,et al.  Babel Pidgin: SBSE Can Grow and Graft Entirely New Functionality into a Real World System , 2014, SSBSE.

[21]  Ebrahim Bagheri,et al.  Non-functional Properties in Software Product Lines: A Taxonomy for Classification , 2012, SEKE.

[22]  Tim Menzies,et al.  On the value of user preferences in search-based software engineering: A case study in software product lines , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[23]  Wesley Klewerton Guez Assunção,et al.  Search-Based Migration of Model Variants to Software Product Line Architectures , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[24]  Alexander Egyed,et al.  Reverse Engineering Feature Models with Evolutionary Algorithms: An Exploratory Study , 2012, SSBSE.

[25]  Jacques Klein,et al.  Feature Relations Graphs: A Visualisation Paradigm for Feature Constraints in Software Product Lines , 2014, 2014 Second IEEE Working Conference on Software Visualization.

[26]  Yuanyuan Zhang,et al.  Search based software engineering for software product line engineering: a survey and directions for future work , 2014, SPLC.

[27]  Alexander Egyed,et al.  The ECCO Tool: Extraction and Composition for Clone-and-Own , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[28]  Alexander Egyed,et al.  Recovering traceability between features and code in product variants , 2013, SPLC '13.

[29]  John D. McGregor,et al.  On strategies for testing software product lines: A systematic literature review , 2014, Inf. Softw. Technol..

[30]  Alexander Egyed,et al.  Extracting Variability-Safe Feature Models from Source Code Dependencies in System Variants , 2015, GECCO.

[31]  John D. McGregor,et al.  A systematic mapping study of software product lines testing , 2011, Inf. Softw. Technol..

[32]  Miguel A. Laguna,et al.  A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring , 2013, Sci. Comput. Program..

[33]  Janusz Kacprzyk,et al.  Computational intelligence and quantitative software engineering , 2016 .

[34]  Alexander Egyed,et al.  Applying multiobjective evolutionary algorithms to dynamic software product lines for reconfiguring mobile applications , 2015, J. Syst. Softw..

[35]  Alexander Egyed,et al.  A first systematic mapping study on combinatorial interaction testing for software product lines , 2015, 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[36]  Don S. Batory,et al.  On the modularity of feature interactions , 2008, GPCE '08.

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

[38]  Alexander Egyed,et al.  Detecting Inconsistencies in Multi-View Models with Variability , 2010, ECMFA.

[39]  Wesley Klewerton Guez Assunção,et al.  Feature location for software product line migration: a mapping study , 2014, SPLC '14.

[40]  Claire Le Goues,et al.  Current challenges in automatic software repair , 2013, Software Quality Journal.

[41]  Jan Bosch,et al.  The Evolution in Software Product Lines , 1999 .

[42]  Matthew O. Ward,et al.  Interactive Data Visualization - Foundations, Techniques, and Applications , 2010 .

[43]  Alexander Egyed,et al.  Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[44]  Alexander Egyed,et al.  Towards interactive visualization support for pairwise testing software product lines , 2013, 2013 First IEEE Working Conference on Software Visualization (VISSOFT).

[45]  Alexander Egyed,et al.  Evolutionary Computation for Software Product Line Testing: An Overview and Open Challenges , 2016, Computational Intelligence and Quantitative Software Engineering.

[46]  Mark Harman,et al.  Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class , 2014, EuroGP.

[47]  Alexander Egyed,et al.  Recovering Feature-to-Code Mappings in Mixed-Variability Software Systems , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[48]  Per Runeson,et al.  Software product line testing - A systematic mapping study , 2011, Inf. Softw. Technol..

[49]  Mark Harman,et al.  Ieee Transactions on Evolutionary Computation 1 , 2022 .