Extractive Multi Product-Line Engineering

Cloning is a general approach to create new functionality within variants as well as new system variants. It is a fast, flexible, intuitive, and economical approach to evolve systems in the short run. However, in the long run, the maintenance effort increases. A common solution to this problem is the extraction of a product line from a set of cloned variants. This process requires a detailed analysis of variants to extract variability information. However, clones within a variant are usually not considered in the process, but are also a cause for unsustainable software. This thesis proposes an extractive multi product-line engineering approach to re-establish the sustainable development of software variants. We propose an approach to re-engineer intra-system and inter-system clones into reusable, configurable components stored in an integrated platform and synthesize a matching multi-layer feature model.

[1]  Birgit Vogel-Heuser,et al.  Researching Evolution in Industrial Plant Automation: Scenarios and Documentation of the Pick and Place Unit , 2014 .

[2]  Chanchal Kumar Roy,et al.  NICAD: Accurate Detection of Near-Miss Intentional Clones Using Flexible Pretty-Printing and Code Normalization , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[3]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[4]  Marsha Chechik,et al.  N-way model merging , 2013, ESEC/FSE 2013.

[5]  Lerina Aversano,et al.  How Clones are Maintained: An Empirical Study , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

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

[7]  Rainer Koschke,et al.  Survey of Research on Software Clones , 2006, Duplication, Redundancy, and Similarity in Software.

[8]  Rainer Koschke,et al.  Incremental Clone Detection , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[9]  Daniel Lucrédio,et al.  A survey on software reuse processes , 2005, IRI -2005 IEEE International Conference on Information Reuse and Integration, Conf, 2005..

[10]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[11]  Tewfik Ziadi,et al.  ESPLA: A Catalog of Extractive SPL Adoption Case Studies , 2017, SPLC.

[12]  Marsha Chechik,et al.  Managing forked product variants , 2012, SPLC '12.

[13]  Ettore Merlo,et al.  Experiment on the automatic detection of function clones in a software system using metrics , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[14]  Martin Verlage,et al.  The Economic Impact of Product Line Adoption and Evolution , 2002, IEEE Softw..

[15]  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.

[16]  Shinji Kusumoto,et al.  Is duplicate code more frequently modified than non-duplicate code in software evolution?: an empirical study on open source software , 2010, IWPSE-EVOL '10.

[17]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[18]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[19]  Jens Krinke,et al.  A Study of Consistent and Inconsistent Changes to Code Clones , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[20]  Sandro Schulze,et al.  Extractive software product line engineering using model-based delta module generation , 2017, VaMoS.

[21]  Nils Göde,et al.  Clone Stability , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[22]  Chanchal Kumar Roy,et al.  Evaluating clone detection tools with BigCloneBench , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[23]  David Wille Managing lots of models: the FaMine approach , 2014, FSE 2014.

[24]  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.

[25]  Stéphane Ducasse,et al.  A language independent approach for detecting duplicated code , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[26]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[27]  Michael W. Godfrey,et al.  “Cloning considered harmful” considered harmful: patterns of cloning in software , 2008, Empirical Software Engineering.

[28]  Marsha Chechik,et al.  Managing cloned variants: a framework and experience , 2013, SPLC '13.

[29]  Elmar Jürgens,et al.  Do code clones matter? , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[30]  Jacob Krüger,et al.  Promote-pl: a round-trip engineering process model for adopting and evolving product lines , 2020, SPLC.

[31]  Jacques Klein,et al.  Bottom-Up Technologies for Reuse: Automated Extractive Adoption of Software Product Lines , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[32]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

[33]  Christoph Seidl,et al.  Incremental feature model synthesis for clone-and-own software systems in MATLAB/Simulink , 2020, SPLC.

[34]  C. Krueger,et al.  Eliminating the adoption barrier , 2002, IEEE Software.

[35]  Carlos Cetina,et al.  Towards clone-and-own support: locating relevant methods in legacy products , 2016, SPLC.

[36]  Ralf Lämmel,et al.  Flexible product line engineering with a virtual platform , 2014, ICSE Companion.

[37]  Dipl.-Inform. Karl-Heinz John,et al.  IEC 61131-3: Programming Industrial Automation Systems , 2001, Springer Berlin Heidelberg.

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

[39]  William F. Smyth,et al.  Efficient token based clone detection with flexible tokenization , 2007, ESEC-FSE companion '07.

[40]  Zhendong Su,et al.  DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones , 2007, 29th International Conference on Software Engineering (ICSE'07).

[41]  Sandro Schulze,et al.  Custom-Tailored Variability Mining for Block-Based Languages , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[42]  Rainer Koschke Large-Scale Inter-System Clone Detection Using Suffix Trees , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[43]  Rainer Koschke,et al.  Clone Detection Using Abstract Syntax Suffix Trees , 2006, 2006 13th Working Conference on Reverse Engineering.

[44]  Chanchal Kumar Roy,et al.  A Mutation/Injection-Based Automatic Framework for Evaluating Code Clone Detection Tools , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.