A Comparative Analysis of Software Clone Management Techniques


(*) Corresponding author


Authors' affiliations


DOI's assignment:
the author of the article can submit here a request for assignment of a DOI number to this resource!
Cost of the service: euros 10,00 (for a DOI)

Abstract


Software clone research has proved that there are redundancies in software. This redundancy increased the maintenance effort. For nearly past two decades a number of software clone detection techniques and clone management techniques have been proposed in the software clone research.  In literature some researchers has also proposed clone management techniques such as clone removal, clone modification, analyses  the effect of clones during maintainability, investigating their evolution, and assessing the root causes of clones. There have been a number of researches which also focused on the evaluation of clone detection approaches. This paper is the analysis of different clone detection and management techniques. First, we analyze and evaluate all the currently available clone detection techniques and tools. Second, we study and discuss the different clone management techniques and tools which are currently available.
Copyright © 2013 Praise Worthy Prize - All rights reserved.

Keywords


Software Clones; Clone Detection; Refactoring; Clone Management; Software Maintenance

Full Text:

PDF


References


R. Falke, R. Koschke and P. Frenzel, Empirical Evaluation of Clone Detection Using Syntax Suffix Trees, Empirical Software Engineering, Vol. 13: 601-643, 2008.

H. Nguyen, T. Nguyen, N. Pham, J. Al-Kofahi, and T. Nguyen, Clone management for evolving software, IEEE Transaction on Software Engineering, 1(1):1–19, 2011.

C.K. Roy and J.R. Cordy, NICAD: Accurate Detection of Near-Miss Intentional Clones Using Flexible Pretty-Printing and Code Normalization,16th IEEE International Conference on Program Comprehension, ICPC 2008, pp. 172-181, 2008.

Stefan Bellon, Rainer Koschke, Giuliano Antoniol, Jens Krinke, and Ettore Merlo, Comparison and Evaluation of Clone Detection Tools, IEEE Transactions on Software Engineering, Volume 33, Number 9, pages 577 – 591, September 2007.

A. Lozano and M. Wermelinger. Tracking clones' imprint, International Workshop on Software Clones, pp. 65-72, 2010.

K. Hotta, Y. Sano, Y. Higo, S. Kusumoto, Duplicate Code More Frequently Modified than Non-duplicate Code in Software Evolution?, An Empirical Study on Open Source Software, International Workshop on Principles of Software Evolution , pp. 73-82, 2010.

M. Fowler, Refactoring: improving the design of existing code, Addison Wesley, 1999.

R. Koschke, Survey of Research on Software Clones, Dagstuhl Seminar 06301- Duplication, Redundancy, and Similarity in Software, 24 pp., 2006.

E. Burd and J. Bailey, Evaluating Clone Detection Tools for Use during Preventative Maintenance, IEEE International Workshop on Source Code Analysis and Manipulation, pp. 36-43, 2002.

M. Asaduzzaman, C. Roy, and K. Schneider, VisCad: flexible code clone analysis support for NiCad. International Workshop on Software Clones, pages 77–78. ACM, 2011.

Cory Kapser and MichaelW. Godfrey,Cloning considered harmful: Patterns of cloning in software, Empirical Software Engineering, 13(6):645–692,2008.

Brenda S. Baker, On Finding Duplication in Strings and Software, Journal of Algorithms, 1993.

David Gitchell and Nicholas Tran, Sim: a utility for detecting similarity in computer programs, ACM SIGCSE Bulletin, 31(1): 266-270, March 1999.

C. Liu, C. Chen, J. Han and P. Yu, GPLAG: Detection of Software Plagiarism by Program Dependence Graph Analysis, 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD 2006, pp. 872-881 (2006).

J. Krinke, Identifying Similar Code with Program Dependence Graphs, 8th Working Conference on Reverse Engineering, WCRE 2001, pp. 301-309 (2001).

R. Komondoor and S. Horwitz, Using Slicing to Identify Duplication in Source Code, 8th International Symposium on Static Analysis, SAS 2001, pp. 40-56 (2001).

Cory Kapser, Paul Anderson, Michael Godfrey, Rainer Koschke, Matthias Rieger, Filip van Rysselberghe, and Peter Weisgerber. Subjectivity in clone judgment: Can we ever agree? In Duplication, Redundancy, and Similarity in Software, Dagstuhl Seminar Proceedings. International Conference and Research Center for computer science (EBFI),Schloss Dagstuhl, Germany, 2007.

J. Mayrand, C. Leblanc and E. Merlo. Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics, 12th International Conference on Software Maintenance, ICSM 1996, pp. 244-253 (1996).

N. Davey, P. Barson, S. Field and R. Frank, The Development of a Software Clone Detector, International Journal of Applied Software Technology, 1(3/4):219-236 (1995).

G. Di Lucca, M. Penta and A. Fasolino, An Approach to Identify Duplicated Web Pages, 26th International Computer Software and Applications Conference, COMPSAC 2002, pp. 481-486 (2002).

K. Kontogiannis, R. DeMori, E. Merlo, M. Galler, and M. Bernstein, Pattern Matching for Clone and Concept Detection, Journal of Automated Software Engineering, 3(1-2):77-108 (1996).

M. Gabel, L. Jiang and Z. Su, Scalable Detection of Semantic Clones, 30th International Conference on Software Engineering, ICSE 2008, pp. 321-330 (2008).

F. Calefato, F. Lanubile and T. Mallardo, Function Clone Detection in Web Applications: A Semiautomated Approach, Journal of Web Engineering, 3(1):3-21 (2004).

R. Koschke, Survey of research on software clones, Dagstuhl seminar 06301. ISSN 1682–4405 - Duplication, Redundancy, and Similarity in Software, 2006.

C. K. Roy and J. R. Cordy, A survey on software clone detection research, Queen’s University, Kingston, Canada, Report. 2007-541, 2007.

Z. Li, S. Lu, S. Myagmar, and Y. Zhou, CP-Miner: Finding copy-paste and related bugs in large-scale software code, IEEE Transaction Software Engineering, vol. 32, no. 3, pp. 176–192, 2006.

C. K. Roy and J. R. Cordy, NICAD: Accurate detection of near-miss intentional clones using flexible pretty-printing and code normalization, The 16th IEEE International Conference on Program Comprehension ’08, 2008.

E. Juergens, F. Deissenboeck, and B. Hummel, Clonedetective – a workbench for clone detection research, International Conference on Software Engineering ’09, 2009.

H. Basit, D. Rajapakse, and S. Jarzabek, An empirical study on limits of clone unification using generics, International Conference on Software Engineering and Knowledge Engineering , pages 109–114, 2005.

L. Jiang, G. Misherghi, Z. Su, and S. Glondu, DECKARD: Scalable and accurate tree-based detection of code clones, International Conference on Software Engineering ’07, 2007.

T. Kamiya, S. Kusumoto, and K. Inoue, CCFinder: a multilinguistic token-based code clone detection system for large scale source code, IEEE Transaction on Software Engineering, vol. 28, no. 7, pp. 654–670, 2002.

Stefan Bellon, Detection of software clones — tool comparison experiment, http://www.bauhaus-stuttgart.de/clones, 2009.

M. de Wit, Managing Clones Using Dynamic Change Tracking and Resolution, M.Sc. thesis, Delft University of Technology, 2008.

R. Fanta and V. Rajlich, Removing clones from the code, Journal of Software Maintenance: Research and Practice, 11(4):223–243, 1999.

P. Bulychev and M. Minea, An evaluation of duplicate code detection using anti-unification, International Workshop on Software Clones, 2009.

R. K. Saha, M. Asaduzzaman, M. F. Zibran, C. K. Roy, and K. A. Schneider, Evaluating code clone genealogies at release level: An empirical study, IEEE International Working Conference on Source Code Analysis and Manipulation, pp. 87-96, 2010.

N. Gode and R. Koschke, Incremental clone detection, 13th European Conference on Software Maintenance and Reengineering ’09, 2009.

C. Roy, J. Cordy, and R. Koschke, Comparison and evaluation of code clone detection techniques and tools: A qualitative approach, Science of Computer Programming, vol. 74, no. 7, pp. 470–495, 2009.

Ira Baxter, Andrew Yahin, Leonardo Moura, Marcelo Sant Anna, Clone Detection Using Abstract Syntax Trees, 14th International Conference on Software Maintenance (ICSM'98), pp. 368-377, Bethesda, Maryland, November 1998.

F. Rysselberghe and S. Demeyer, Evaluating Clone Detection Techniques, International workshop on Evolution of Large-scale Industrial Software Applications, 12pp., 2003.

F. Rysselberghe and S. Demeyer, Evaluating Clone Detection Techniques from a Refactoring Perspective, The International Conference on Automated Software Engineering, pp. 336-339, 2004.

Toshihiro Kamiya, Shinji Kusumoto, Katsuro Inoue, CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code, Transactions on Software Engineering, Vol. 28(7): 654- 670, July 2002.

Lutz Prechelt, Guido Malpohl, and Michael Philippsen. Finding plagiarisms among a set of programs with JPlag, Journal of Universal Computer Science, 8(11):10161038, November 2002.

S. Schleimer, D. S. Wilkerson, and A. Aiken, Winnowing: local algorithms for document fingerprinting, 2003 ACM SIGMOD International Conference on Management of Data (SIGMOD'03), pp. 7685, San Diego, California, June 2003.

G.A. Di Lucca, M. Di Penta, and A.R. Fasolino, An approach to identify duplicated web pages, 26th International Computer Software and Applications Conference (COMPSAC'02), pp. 481486, Oxford, England, August 2002.

M. Fowler, K. Beck, J.Brant, W. Opdyke, and D. Roberts, Refactoring: Improving the Design of Existing Code. Addison Wesley Professional, 1999.

N. Gode, Incremental clone detection, Diploma thesis, University of Bremen, 2008.

N. Gode and R. Koschke, Incremental clone detection, European Conference on Software Maintenance and Reengineering, pages 219–228, 2009.

W-K. Chen, B. Li, and R. Gupta, Code Compaction of Matching Single-Entry Multiple-Exit Regions, 10th Annual International Static Analysis Symposium ( SAS'03 ), pp. 401-417, San Diego, CA, USA, June 2003.

A. Leitao, Detection of Redundant Code Using R2D2, Software Quality Journal, 12(4):361-382 (2004).

N. Gode and R. Koschke, Frequency and risks of changes to clones, International Conference on Software Engineering, pages 311–320, ACM, 2011.

Rainer Koschke, Raimar Falke and Pierre Frenzel, Clone Detection Using Abstract Syntax Suffix Trees. 13th Working Conference on Reverse Engineering (WCRE'06), pp. 253-262, Benevento, Italy, October 2006.

Robert Tairas, Jeff Gray, Phoenix-Based Clone Detection Using Suffix Trees, 44th annual Southeast regional conference (ACM-SE'06), pp. 679- 684, Melbourne, Florida, USA, March 2006.

Kevin Greenan, Method-Level Code Clone Detection on Transformed Abstract Syntax Trees using Sequence Matching Algorithms, Student Report, University of California ,Santa Cruz, Winter 2005.

Magdalena Balazinska, Ettore Merlo, Michel Dagenais, Bruno Lague, Kostas Kontogiannis, Measuring Clone Based Reengineering Opportunities, 6th International Software Metrics Symposium (METRICS'99), pp. 292-303, Boca Raton, Florida, USA, November 1999.

James Cordy, Thomas Dean, Nikita Synytskyy, Practical Language-Independent Detection of Near-Miss, 14th IBM Centre for Advanced Studies Conference (CASCON'04), pp. 1 - 12, Toronto, Ontario, Canada, October 2004.

S. Lee and I. Jeong, SDD: High performance Code Clone Detection System for Large Scale Source Code, 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPLA Companion 2005, pp. 140–141 (2005).

A. Marcus and J. Maletic, Identification of High-level Concept Clones in Source Code, 16th IEEE International Conference on Automated Software Engineering, ASE 2001, pp. 107-114 (2001).

S. Nasehi, G. Sotudeh and M. Gomrokchi, Source Code Enhancement Using Reduction of duplicated Code, 25th conference on IASTED International Multi-Conference: Software Engineering, IASTED SE 2007, pp. 192-197 (2007).

H. Basit, S. Pugliesi, W. Smyth, A. Turpin and S.Jarzabek, Efficient Token Based Clone Detection with Flexible Tokenization, 6th European Software Engineering Conference and Foundations of Software Engineering, ESEC/FSE 2007, pp. 513-515 (2007).

Z. Li, S. Lu, S. Myagmar, and Y. Zhou, CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code, IEEE Transactions on Software Engineering, 32(3):176-192 (2006).

Y. Ueda, T. Kamiya, S. Kusumoto, and K. Inoue, On Detection of Gapped Code Clones Using Gap Locations, 9th Asia-Pacific Software Engineering Conference, APSEC 2002, pp. 327–336 (2002).

Stephane Ducasse, Oscar Nierstrasz, and Matthias Rieger, Lightweight detection of duplicated code a language-independent approach, Technical report, University of Bern, Institute of Computer Science and Applied Mathematics, Bern, Switzerland, February 2004.

Project Bauhaus. URL http://www.iste.uni-stuttgart.de/en/ps/project-bauhaus.html, Last accessed Feb 2013.

L. Jiang, G. Misherghi, Z. Su and S. Glondu, DECKARD: Scalable and Accurate Tree-based Detection of Code Clones, 29th International Conference on Software Engineering, ICSE 2007, pp. 96-105 (2007).

W. Evans, C. Fraser and M. Fei, Clone Detection via Structural Abstraction, 14thWorking Conference on Reverse Engineering, WCRE 2007, pp. 150-159 (2007).

R. Tairas and J. Gray, Phoenix-Based Clone Detection Using Suffix Trees, 44th Annual Southeast Regional Conference, ACM-SE 2006, pp. 679-684 (2006).

V. Wahler, D. Seipel, J. Gudenberg and G. Fischer, Clone Detection in Source Code by Frequent Itemset Techniques, 4th IEEE International Workshop Source Code Analysis and Manipulation, SCAM 2004, pp. 128-135 (2004).

S. Giesecke, Generic modelling of code clones, 06301 - Duplication, Redundancy, and Similarity in Software, pages 1–23, 2007.

B. Lague, D. Proulx, J. Mayrand, E. Merlo, and J. Hudepohl, Assessing the benefits of incorporating function clone detection in a development process, International Conference on Software Maintenance, pages 314–321, 1997.

A. Chiu and D. Hirtle, Beyond clone detection, Project Report, University of Waterloo, 2007.

R. Koschke, R. Falke and P. Frenzel, Clone Detection Using Abstract Syntax Suffix Trees, 13th Working Conference on Reverse Engineering, WCRE 2006, pp. 253-262 (2006).

J. Harder and N. Gode, Modeling clone evolution, International Workshop on Software Clones, pages 17–21, 2009.

S. Jarzabek and S. Li, Unifying clones with a generative programming technique: a case study, Journal of Software Maintenance and Evolution: Research and Practice, 18(4):267–292, 2006.

H. Li and S. Thompson, Similar code detection and elimination for Erlang programs, Practical Aspects of Declarative Languages, 5937:104–118, 2010.

H. Li and S. Thompson, Incremental clone detection and elimination for erlang programs, Fundamental Approaches to Software Engineering - Joint European Conferences on Theory and Practice of Software, pages 356–370, Springer-Verlag, 2011.

E. Murphy-Hill, P. Quitslund, and A. Black, Removing duplication from java.io: a case study using traits, Object-Oriented Programming, Systems, Languages, and Applications, pages 282–291, ACM, 2005.

T. Nguyen, H. Nguyen, J. Al-Kofahi, N. Pham, and T. Nguyen, Scalable and incremental clone detection for evolving software, International Conference on Software Maintenance, pages 491 –494, 2009.

S. Schulze, M. Kuhlemann, and M. Rosenmuller, Towards a refactoring guideline using code clone classification, Workshop on Refactoring Tools, pages 6:1–6:4. ACM, 2008.

Y. Ueda, Y. Higo, T. Kamiya, S. Kusumoto, and K. Inoue, Gemini: Code clone analysis tool, International Symposium on Empirical Software Engineering, volume 2, pages 31–32, 2002.

Y. Higo, U. Yasushi, M. Nishino and S. Kusumoto, Incremental code clone detection: A PDG-based approach, World Congress on Software Engineering, pages 3 –12, 2011.

Y. Ueda, T. Kamiya, S. Kusumoto, and K. Inoue, Gemini: Maintenance support environment based on code clone analysis, IEEE International Software Metrics Symposium METRICS, pages 67–76, IEEE Computer Society Press, 2002.

D. Hou, P. Jablonski, and F. Jacob, CnP: Towards an environment for the proactive management of copy-and-paste programming, International Conference on Program Comprehension, pages 238–242, 2009.

D. Hou, F. Jacob and P. Jablonski, Exploring the design space of proactive tool support for copy-and-paste programming, Conference of the Centre for Advanced Studies on Collaborative Research, pages 188–202. ACM, 2009.

B. Hummel, E. Juergens, L. Heinemann and M. Conradt, Index-based code clone detection: incremental, distributed, scalable, International Conference on Software Maintenance, pages 1 –9, 2010.

V. Weckerle, CPC: an eclipse framework for automated clone life cycle tracking and update anomaly detection, Master’s thesis, University of Berlin, Germany, 2008.

M. Zibran and C. Roy, A constraint programming approach to conflict-aware optimal scheduling of prioritized code clone refactoring, IEEE International Working Conference on Source Code Analysis and Manipulation, pages 105–114, 2011.

R. Torres, Source code mining for code duplication refactorings with formal concept analysis, M.Sc. thesis, Vrije Universiteit Brussel, Belgium, 2004.

J. Harder and N. G¨ode, Quo vadis, clone management? International Workshop on Software Clones, pages 85–86, ACM, 2010.

E. Kodhai and S. Kanmani, Method Level Code Clone Modification using Refactoring Techniques for Clone Maintenance, Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2,Pages 7-26, March 2013.

E. Kodhai, S. Kanmani, A.Perumal , Clone Detection using textual and Metric Analysis to figure out all types of Clones, International Journal of Computer Communication and Information Systems – Vol2. No1. ISSN: 0976–1349, Pages-99-103, July – Dec 2010.

Robert Tairas, Representation, Analysis, and Refactoring Techniques to Support Code Clone Maintenance, Ph.D. Thesis – 2010.

ARIES: Refactoring Support Tool for Code Clone, Yoshiki Higo, Toshihiro Kamiya, Shinji Kusumoto, Katsuro Inoue, Proceeding 3-WoSQ Proceedings of the third workshop on Software quality, ACM New York, NY, USA.2005.

Danny Dig, Can Comertoglu, Darko Marinov, Ralph Johnson: "Automated Detection of Refactorings in Evolving Components", European Conference on Object-Oriented Programming (ECOOP'06), pp 404-428, Nantes, France, 2006.

Y. Higo, T. Kamiya, S. Kusumoto, and K. Inoue, Aries: Refactoring support environment based on code clone analysis, International Conference on Software Engineering and Applications, pages 222–229, Nov 2004.

E. D. Ekoko and M. P. Robillard, “Tracking code clones in evolving software,” 29th international conference on Software Engineering. Washington, DC, USA: IEEE Computer Society, 2007, pp. 158–167.

M. Toomim, A. Begel, and S. L. Graham, “Managing duplicated code with linked editing,” 2004 IEEE Symposium on Visual Languages - Human Centric Computing. Washington, DC, USA: IEEE Computer Society, 2004, pp. 173–180.

Yoshiki Higo , Yasushi Ueda , Shinji Kusumoto , Katsuro Inoue, Simultaneous Modification Support based on Code Clone Analysis, 14th Asia-Pacific Software Engineering Conference, p.262-269, December 04-07, 2007.

Norihiro Yoshida, Takeshi Hattori, Katsuro Inoue, Finding Similar Defects Using Synonymous Identifier Retrieval, International Workshop on Software Clones ’10, Cape Town, South Africa, May 8, 2010.

M. Asaduzzaman, Visualization and analysis of software clones, M.Sc. thesis, University of Saskatchewan, Canada, 2011.

M. Asaduzzaman, C. Roy, and K. Schneider, VisCad: flexible code clone analysis support for NiCad, International Workshop on Software Clones , pages 77–78, ACM, 2011.

J. Cordy, Live scatterplots, International Workshop on Software Clones, pages 79–80, ACM, 2011.

Y. Fukushima, R. Kula, S. Kawaguchi, K. Fushida, M. Nagura, and H. Iida, Code clone graph metrics for detecting diffused code clones, Asia-Pacific Software Engineering Conference , pages 373 –380, 2009.

J. Harder and N. Gode, Efficiently handling clone data: Rcf and cyclone, International Workshop on Software Clones, pages 81–82, ACM, 2011.

J. Helfman, Dotplot patterns: a literal look at pattern languages. Theory and Practice of Object Systems, 2:31–41, 1996.

Z. Jiang, A. Hassan, and R. Holt. Visualizing clone cohesion and coupling. Asia-Pacific Software Engineering Conference, pages 467 –476, 2006.

S. Livieri, Y. Higo, M. Matushita, and K. Inoue, Very-large scale code clone analysis and visualization of open source programs using distributed ccfinder: D-ccfinder, International Conference on Software Engineering, pages 106–115, 2007.

C. Kapser and M. Godfrey, Improved tool support for the investigation of duplication in software. International Conference on Software Maintenance, pages 305–314. IEEE Computer Society, 2005.

M. Rieger, S. Ducasse, and M. Lanza, Insights into system-wide code duplication, Working Conference on Reverse Engineering, pages 100–109, 2004.

R. Tairas, J. Gray, and I. Baxter, Visualization of clone detection results, Eclipse Technology eXchange (ETX) Workshop at ACM SIGPLAN International conference on object-oriented programming, systems, languages, and Applications, pages 50–54. ACM, 2006.

R. Tairas, J. Gray, and I. Baxter, Visualizing clone detection results, IEEE/ACM International Conference on Automated Software Engineering, pages 549–550, ACM, 2007.

Y. Ueda, T. Kamiya, S. Kusumoto, and K. Inoue, Gemini: Maintenance support environment based on code clone analysis, IEEE International Software Metrics Symposium, pages 67–76. IEEE Computer Society Press, 2002.

Y. Zhang, H. Basit, S. Jarzabek, D Anh, and M. Low, Query-based filtering and graphical view generation for clone analysis, International Conference on Software Maintenance, pages 376 –385, 2008.

Cory J. Kapser and MichaelW. Godfrey, Supporting the analysis of clones in software systems: A case study, Journal of Software Maintenance and Evolution, 18:61–82, 2006.

A. Abdi, S. A. Asghari, S. Pourmozaffari, H. Taheri, H. Pedram, An Optimum Instruction Level Method for Soft Error Detection, (2012) International Review on Computers and Software (IRECOS), 7 (2), pp. 637-641.

Abubakar Diwani Bakar, Abu Bakar Md. Sultan, Hazura Zulzalil, Jamilah Din, Review on ‘Maintainability’ Metrics in Open Source Software, (2012) International Review on Computers and Software (IRECOS), 7 (3), pp. 903-908.


Refbacks

  • There are currently no refbacks.



Please send any question about this web site to info@praiseworthyprize.com
Copyright © 2005-2024 Praise Worthy Prize