Graph drawing by force-directed placement
Software—Practice & Experience
The use of domain knowledge in program understanding
Annals of Software Engineering
Partial Domain Comprehension in Software Evolution and Maintenance
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
Science of Computer Programming
A Mutation/Injection-Based Automatic Framework for Evaluating Code Clone Detection Tools
ICSTW '09 Proceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Change Propagation Analysis Using Domain Information
ASWEC '09 Proceedings of the 2009 Australian Software Engineering Conference
Near-miss function clones in open source software: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Working Conference on Reverse Engineering (WCRE 2008)
Domain-based change propagation analysis: An enterprise system case study
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Can We Predict Dependencies Using Domain information?
WCRE '11 Proceedings of the 2011 18th Working Conference on Reverse Engineering
Comparative stability of cloned and non-cloned code: an empirical study
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Knowledge of similar code fragments, also known as code clones, is important to many software maintenance activities including bug fixing, refactoring, impact analysis and program comprehension. While a great deal of research has been conducted for finding techniques and implementing tools to identify code clones, little research has been done to analyze the relationships between code clones and other aspects of software. In this paper, we attempt to uncover the relationships between code clones and coupling among domain-level components. We report on a case study of a large-scale open source enterprise system, where we demonstrate that the probability of finding code clones among components with domain-based coupling is more than 90%. While such a probabilistic view does not replace a clone detection tool per se, it certainly has the potential to complement the existing tools by providing the probability of having code clones between software components. For example, it can both reduce the clone search space and provide a flexible and language independent way of focusing only on a specific part of the system. It can also provide a higher level of abstraction to look at the cloning relationships among software components.