Abstract
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.
Original language | English |
---|---|
Journal | Software and Systems Modeling |
Volume | 12 |
Issue number | 2 |
Pages (from-to) | 307-329 |
ISSN | 1619-1366 |
DOIs | |
Publication status | Published - 2013 |
Bibliographical note
The original publication is available at www.springerlink.comKeywords
- Model maintenance
- Model clones
- Model similarity
- Model evolution
- Model management