Effective and Efficient Model Clone Detection

Code clones are a major source of software defects. Thus, it is likely that model clones (i.e., duplicate fragments of models) have a significant negative impact on model quality, and thus, on any software created based on those models, irrespective of whether the software is generated fully automatically (“MDD-style”) or hand-crafted following the blueprint defined by the model (“MBSD-style”). Unfortunately, however, model clones are much less well studied than code clones. In this paper, we present a clone detection algorithm for UML domain models. Our approach covers a much greater variety of model types than existing approaches while providing high clone detection rates at high speed.

[1]  Harald Störrle,et al.  Hypersonic - Model Analysis as a Service , 2014, PSRC@MoDELS.

[2]  Udo Kelter,et al.  A Generic Difference Algorithm for UML Models , 2005, Software Engineering.

[3]  Mehrdad Sabetzadeh,et al.  Matching and Merging of Statecharts Specifications , 2007, 29th International Conference on Software Engineering (ICSE'07).

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

[5]  Erhard Rahm,et al.  Similarity flooding: a versatile graph matching algorithm and its application to schema matching , 2002, Proceedings 18th International Conference on Data Engineering.

[6]  Bernhard Schätz,et al.  Clone detection in automotive model-based development , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[7]  Ivan Porres,et al.  Difference and Union of Models , 2003, UML.

[8]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[9]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

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

[11]  Kim Mens,et al.  Academic Software Development Tools and Techniques , 2008, ECOOP Workshops.

[12]  Andy Schürr,et al.  Introduction to PROGRESS, an Attribute Graph Grammar Based Specification Language , 1990, WG.

[13]  Rainer Koschke,et al.  An Assessment of Type-3 Clones as Detected by State-of-the-Art Tools , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[14]  Erhard Rahm,et al.  A survey of approaches to automatic schema matching , 2001, The VLDB Journal.

[15]  Michael W. Godfrey,et al.  Subjectivity in Clone Judgment: Can We Ever Agree? , 2006, Duplication, Redundancy, and Similarity in Software.

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

[17]  Harald Störrle,et al.  Towards clone detection in UML domain models , 2010, Software & Systems Modeling.

[18]  Dimitri Konstantas,et al.  Object-Oriented Information Systems , 2002, Lecture Notes in Computer Science.

[19]  Richard F. Paige,et al.  Merging models with the epsilon merging language (EML) , 2006, MoDELS'06.

[20]  Philip A. Bernstein,et al.  Adapting a generic match algorithm to align ontologies of human anatomy , 2004, Proceedings. 20th International Conference on Data Engineering.

[21]  Zhiyi Ma,et al.  Detecting Duplications in Sequence Diagrams Based on Suffix Trees , 2006, 2006 13th Asia Pacific Software Engineering Conference (APSEC'06).

[22]  Manfred Nagl,et al.  A Specification Environment for Graph Grammars , 1990, Graph-Grammars and Their Application to Computer Science.

[23]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1986, Lecture Notes in Computer Science.

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

[25]  Shengbing Ren,et al.  Refactoring the Scenario Specification: A Message Sequence Chart Approach , 2003, OOIS.