Code clones (i.e., duplicate fragments of code) have been studied for long, and there is strong evidence that they are a major
source of software faults. Anecdotal evidence suggests that this phenomenon occurs similarly in models, suggesting that model
clones are as detrimental to model quality as they are to code quality. However, programming language code and visual models
have significant differences that make it difficult to directly transfer notions and algorithms developed in the code clone
arena to model clones. In this article, we develop and propose a definition of the notion of “model clone” based on the thorough
analysis of practical scenarios. We propose a formal definition of model clones, specify a clone detection algorithm for UML
domain models, and implement it prototypically. We investigate different similarity heuristics to be used in the algorithm,
and report the performance of our approach. While we believe that our approach advances the state of the art significantly,
it is restricted to UML models, its results leave room for improvements, and there is no validation by field studies.
Keywords Model clones – Model management – Model evolution – Model maintenance – Model similarity
Communicated by Dr. Muhammad Ali Babar, Flavio Oquendo, and Ian Gorton.