[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Code Clones: : Detection and Management

Published: 27 February 2024 Publication History

Abstract

In a software system, similar or identical fragments of code are known as code clones. Instead of implementing a new code from scratch, most of the developers prefer copy–paste programming in which they use existing code fragments. So, the primary reason behind code cloning isboth developers and programming languages used by them. Reusing existing software for increasing software productivity is a key element of object oriented programming which makes clone detection and management a primary concern for current industry. As a software system grows, it becomes more complex which leads to difficulty in maintaining it. The main reason behind difficulty in software maintenance is code clones which do not lead to conclusion that code clones are only harmful for software development. Code clones can be both advantageous and disastrous for software development. Therefore, clones should be analysed before refactoring or removing them. For analysing the clones properly, there is a need to study all the clone detection techniques, various types of clones and techniques to manage them.The main purpose of this paper is to gain insight in to the research available in the area of clone detection and management and identify the research gaps to work upon. It will help the researchers to get started easily with clones as they can study the basic concepts, techniques, general steps for code clone detection and management and research gaps together at one place. Also, it will help in the selection of appropriate techniques for detecting and managing clones as comparative analysis of different techniques on the basis of various parameters is also given in the paper.

References

[1]
Fowler, Martin, and Kent Beck (1999), “Refactoring: improving the design of existing code, Addison-Wesley Professional.
[2]
KumarRoy Chanchal, JamesR. Cordy, "A survey on software clone detection research", Queen’s School of Computing TR 541 (115) (2007) 64–68.
[3]
Koschke, Rainer. "Survey of research on software clones(2007), " Dagstuhl Seminar Proceedings. Schloss Dagstuhl-Leibniz-Zentrum für Informatik.
[4]
S.Brenda Baker, "On finding duplication and near-duplication in large software systems, ", Reverse Engineering, Proceedings of Working Conference IEEE 2 (1995) 86–95.
[5]
Dhavleesh Rattan, Bhatia Rajesh, Singh Maninder, "Software clone detection: A systematic review", Information and Software Technology 55 (7) (2013) 1165–1199.
[6]
Ekwa Duala-Ekoko, P Martin, Robillard, "Clone region descriptors: Representing and tracking duplication in source code.", ACM Transactions on Software Engineering and Methodology (TOSEM) 20 (1) (2013) 3.
[7]
Zhang, Gang, et al(2012), "Cloning practices: Why developers clone and what can be changed." Software Maintenance (ICSM), 2012 28th IEEE International Conference:285-294.
[8]
Debarshi Chatterji, C Jeffrey, NicholasA. Kraft, "Cloning: The need to understand developer intent", in: Proceedings of the 7th International Workshop on Software Clones, IEEE Press, 2013, pp. 14–15.
[9]
Raghavan Komondoor, Horwitz Susan, "Using slicing to identify duplication in source code", in: International Static Analysis Symposium, Springer, Berlin, Heidelberg, 2001, pp. 40–56.
[10]
Ira D.Baxter, Andrew Yahin, Leonardo Moura, Marcelo Sant’Anna, and Lorraine Bier. (1998), "Clone detection using abstract syntax trees" Software Maintenance, Proceedings., International Conference on. IEEE:368-377.
[11]
Bellon, Stefan, et al(2007), "Comparison and evaluation of clone detection tools." IEEE Transactions on software engineering33(9).
[12]
Stefan Wagner, ”Software product quality control, Springer, Berlin, 2013.
[13]
CoryJ. Kapser, MichaelW. Godfrey, "Supporting the analysis of clones in software systems.", Journal of Software: Evolution and Process 18 (2) (2006) 61–82.
[14]
CoryJ. Kapser, MichaelW. Godfrey, “Cloning considered harmful” considered harmful: patterns of cloning in software.", Empirical Software Engineering 13 (6) (2008) 645.
[15]
Rainer Koschke, Falke Raimar, Frenzel Pierre, "Clone detection using abstract syntax suffix trees.", WCRE’06. Working Conference on reverse engineering IEEE 13 (2006) 253–262.
[16]
Akito Monden, Nakae Daikai, Kamiya Toshihiro, Sato Shin-ichi, Matsumoto Ken-ichi, "Software quality analysis by code clones in industrial legacy software." In, Software Metrics, 2002. Proceedings. IEEE Symposium 8 (2002) 87–94.
[17]
Stefan Bellon, Koschke Rainer, Antoniol Giulio, Krinke Jens, Merlo Ettore, "Comparison and evaluation of clone detection tools.", IEEE Transactions on software engineering 33 (9) (2007).
[18]
M. Mondal, C. K. Roy, and K. A. Schneider (2015), “A comparative study on the bug-proneness of different types of code clones,” in Proc. InternationalConference on Software Maintenance and Evolution (ICSME)IEEE: 91–100.
[19]
Debarshi Chatterji, JeffreyC. Carver, NicholasA. Kraft, Harder Jan, "Effects of cloned code on software maintainability: A replicated developer study.", Working Conference on Reverse Engineering (WCRE) 20 (2013) 112–121.
[20]
Mayrand Jean, Leblanc Claude, Merlo Ettore, "Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics.", icsm 96 (1996) 244.
[21]
ChanchalK. Roy, JamesR. Cordy, Koschke Rainer, ” Comparison and evaluation of code clone detection techniques and tools: A qualitative approach”, Science of computer programming 74 (7) (2009) 470–495.
[22]
Yoshiki Higo, Yasushi Ueda, Nishino Minoru, Kusumoto Shinji, “Incremental code clone detection: A pdg-based approach”, Reverse Engineering (WCRE) Working Conference on Reverse Engineering, IEEE 18 (2011) 3–12.
[23]
Gupta Girija, Singh Indu, “A Novel Approach Towards Code Clone Detection and Redesigning”, International Journal of Advanced Research in Computer Science and Software Engineering 3 (9) (2013) 331–338.
[24]
Kanika Raheja, RajKumar Tekchandani, “An Efficient Code Clone Detection model on java byte code using hybrid approach”, IET (2013) 1–04.
[25]
Xiao Cheng, Zhong Hao, Yuting Chen, Zhenjiang Hu, Jianjun Zhao, "Rule-directed code clone synchronization”, Program Comprehension (ICPC), IEEE International Conference 24 (2016) 1–10.

Cited By

View all
  • (2023)C³: Code Clone-Based Identification of Duplicated ComponentsProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3613883(1832-1843)Online publication date: 30-Nov-2023
  • (2023)A Machine Learning Approach for Source Code Similarity via Graph-Focused FeaturesMachine Learning, Optimization, and Data Science10.1007/978-3-031-53969-5_5(53-67)Online publication date: 22-Sep-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Procedia Computer Science
Procedia Computer Science  Volume 132, Issue C
2018
1876 pages
ISSN:1877-0509
EISSN:1877-0509
Issue’s Table of Contents

Publisher

Elsevier Science Publishers B. V.

Netherlands

Publication History

Published: 27 February 2024

Author Tags

  1. Clone Lifecycle
  2. Clone Detection
  3. Clone Management
  4. Software Maintenance
  5. Clone Refactoring
  6. Bug Detection
  7. Bad Smell

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)C³: Code Clone-Based Identification of Duplicated ComponentsProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3613883(1832-1843)Online publication date: 30-Nov-2023
  • (2023)A Machine Learning Approach for Source Code Similarity via Graph-Focused FeaturesMachine Learning, Optimization, and Data Science10.1007/978-3-031-53969-5_5(53-67)Online publication date: 22-Sep-2023

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media