Clone Detection for Graph-Based Model Transformation Languages

Cloning is a convenient mechanism to enable reuse acrossi¾źand within software artifacts. On the downside, it is also a practice relatedi¾źto significant long-term maintainability impediments, thus generating a need to identify clones in affected artifacts. A large variety of clone detection techniques has been proposed for programming and modeling languages; yet no specific ones have emerged for model transformation languages. In this paper, we explore clone detection for graph-based model transformation languages. We introduce potential use cases for such techniques in the context of constructive and analytical quality assurance. From these use cases, we derive a set of key requirements. We describe our customization of existing model clone detection techniques allowing us to address these requirements. Finally, we provide an experimental evaluation, indicating that our customization of ConQAT, one of the existing techniques, is well-suited to satisfy all identified requirements.

[1]  Harald Störrle,et al.  On the Impact of Layout Quality to Understanding UML Diagrams: Size Matters , 2014, MoDELS.

[2]  Gerti Kappel,et al.  Surveying Rule Inheritance in Model-to-Model Transformation Languages , 2012, J. Object Technol..

[3]  Annegret Habel,et al.  From Core OCL Invariants to Nested Graph Constraints , 2014, ICGT.

[4]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[5]  Miryung Kim,et al.  An empirical study of code clone genealogies , 2005, ESEC/FSE-13.

[6]  Jordi Cabot,et al.  A Catalogue of Refactorings for Model-to-Model Transformations , 2012, J. Object Technol..

[7]  Udo Kelter,et al.  Reasoning about product-line evolution using complex feature model differences , 2016, Automated Software Engineering.

[8]  Harald Störrle Effective and Efficient Model Clone Detection , 2015, Software, Services, and Systems.

[9]  Reiko Heckel,et al.  Confluence of Typed Attributed Graph Transformation Systems , 2002, ICGT.

[10]  Harald Störrle Towards clone detection in UML domain models , 2010, ECSA '10.

[11]  Kevin Lano,et al.  Model-Transformation Design Patterns , 2014, IEEE Transactions on Software Engineering.

[12]  Gabriele Taentzer,et al.  Henshin: advanced concepts and tools for in-place EMF model transformations , 2010, MODELS'10.

[13]  Bernhard Schätz,et al.  Model clone detection in practice , 2010, IWSC '10.

[14]  Hoan Anh Nguyen,et al.  Complete and accurate clone detection in graph-based models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[15]  Hoan Anh Nguyen,et al.  Clone Management for Evolving Software , 2012, IEEE Transactions on Software Engineering.

[16]  Steffen Becker,et al.  Evaluating Maintainability with Code Metrics for Model-to-Model Transformations , 2010, QoSA.

[17]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[18]  Andy Schürr,et al.  Modularizing Triple Graph Grammars Using Rule Refinement , 2014, FASE.

[19]  Jean-Philippe Diguet,et al.  Synchronization of Models of Rich Languages with Triple Graph Grammars: An Experience Report , 2014, ICMT.

[20]  Jiawei Han,et al.  gSpan: graph-based substructure pattern mining , 2002, 2002 IEEE International Conference on Data Mining, 2002. Proceedings..

[21]  Arend Rensink,et al.  A Modal-Logic Based Graph Abstraction , 2008, ICGT.

[22]  James R. Cordy,et al.  Models are code too: Near-miss clone detection for Simulink models , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[23]  Marlon Dumas,et al.  Approximate Clone Detection in Repositories of Business Process Models , 2012, BPM.

[24]  Marsha Chechik,et al.  RuleMerger: Automatic Construction of Variability-Based Model Transformation Rules , 2016, FASE.

[25]  Marsha Chechik,et al.  A Variability-Based Approach to Reusable and Efficient Model Transformations , 2015, FASE.

[26]  Gerti Kappel,et al.  Reuse in model-to-model transformation languages: are we there yet? , 2013, Software & Systems Modeling.

[27]  Robert L. Glass,et al.  Loyal Opposition - Frequently Forgotten Fundamental Facts about Software Engineering , 2001, IEEE Softw..

[28]  Andy Zaidman,et al.  The Last Line Effect , 2015, 2015 IEEE 23rd International Conference on Program Comprehension.

[29]  Juan de Lara,et al.  Generic Model Transformations: Write Once, Reuse Everywhere , 2011, ICMT@TOOLS.

[30]  Mark van den Brand,et al.  Model Transformation Analysis: Staying Ahead of the Maintenance Nightmare , 2011, ICMT@TOOLS.

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

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

[33]  Jianyong Chen,et al.  A Novel Optimized Path-Based Algorithm for Model Clone Detection , 2014, J. Softw..

[34]  Daniel Strüber Model-Driven Engineering in the Large: Refactoring Techniques for Models and Model Transformation Systems , 2016 .

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

[36]  Stefan Schulz,et al.  A Tool Environment for Managing Families of Model Transformation Rules , 2016, ICGT.

[37]  Alexander Serebrenik,et al.  Assessing and improving quality of QVTo model transformations , 2015, Software Quality Journal.

[38]  Matthias Tichy,et al.  Detecting Performance Bad Smells for Henshin Model Transformations , 2013, AMT@MoDELS.

[39]  Krishna Narasimhan,et al.  Copy and Paste Redeemed (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).