Code clones - that is, duplicate fragments of code - have been studied for a long time. There is strong evidence that code clones are a major source of software faults. Anecdotal evidence suggests that this phenomenon is not restricted to code, but occurs in models in a very similar way. So it is likely that model clones are as detrimental to model quality as they are to code quality. However, programming language code and visual models also have significant differences so that notions and algorithms developed in the code clone arena cannot be transferred directly to model clones. In this article, we discuss how model clones arise by analyzing several practical scenarios. We propose a formal definition of models and clones, that allows us to specify a generic clone detection algorithm. Through a thorough analysis of the detail structure of sample UML domain models, recommendations for clone detection algorithms are derived. We investigate different algorithms and heuristics to detect clones, some of which we have implemented in the MQ_lone tool (pronounced "m clone").
|Title of host publication||Proc. 4th European Conference on Software Architecture (ECSA'10) : Proc. 8th Nordic Workshop on Model Driven Engineering (NW-MODE’10)|
|Publication status||Published - 2010|
|Event||8th Nordic Workshop on Model Driven Software Engineering - Copenhagen, Denmark|
Duration: 23 Aug 2010 → 26 Aug 2010
Conference number: 10
|Workshop||8th Nordic Workshop on Model Driven Software Engineering|
|Period||23/08/2010 → 26/08/2010|