On the Nature of Code Cloning in Open-Source Java']Java Projects

被引:0
|
作者
Golubev, Yaroslav [1 ]
Bryksin, Timofey [1 ,2 ]
机构
[1] JetBrains Res, St Petersburg, Russia
[2] St Petersburg State Univ, St Petersburg, Russia
关键词
CLONES;
D O I
10.1109/IWSC53727.2021.00010
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code cloning plays a very important role in open-source software engineering. The presence of clones within a project may indicate a need for refactoring, and clones between projects are even more interesting, since code migration lakes place and violations are possible. But how is code being copied? How prevalent is the process and on what level does it happen? In this general study, we attempt to shed some light on these questions by searching for clones in a large dataset of over 23 thousand Java projects on the level of both files and methods, and by studying the code fragments themselves and their clone pairs. We study the size and the age of code fragments, the prevalence of their clones, relationships between exact and non-exact clones, as well as between method-level and tile-level clones. We also discover and describe various anomalies in the code clones that were detected in the dataset. Our research shows that the copying occurs all through the years of the Java code existence and that method-level copying is much more prevalent than file-level copying, with only 35.4% of methods having no clones at all. Additionally, some of the discovered anomalies can be useful for future large-scale cloning research as they can be used for removing auto-generated code.
引用
收藏
页码:22 / 28
页数:7
相关论文
共 50 条
  • [1] Analyzing Conflict Predictors in Open-Source Java']Java Projects
    Accioly, Paola
    Borba, Paulo
    Silva, Leuson
    Cavalcanti, Guilherme
    [J]. 2018 IEEE/ACM 15TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR), 2018, : 576 - 586
  • [2] Classifying code comments in Java']Java open-source software systems
    Pascarella, Luca
    Bacchelli, Alberto
    [J]. 2017 IEEE/ACM 14TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2017), 2017, : 227 - 237
  • [3] FOUNTAIN: A JAVA']JAVA open-source package to assist large sequencing projects
    Buerstedde, Jean-Marie
    Prill, Florian
    [J]. BMC BIOINFORMATICS, 2001, 2 (1)
  • [4] Security Analysis of Web Open-Source Projects Based on Java']Java and PHP
    Yin, Zhen
    Lee, Scott Uk-Jin
    [J]. ELECTRONICS, 2023, 12 (12)
  • [5] Automatic Categorization with Deep Neural Network for Open-Source Java']Java Projects
    Anh Tuan Nguyen
    Nguyen, Tien N.
    [J]. PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 164 - 166
  • [6] Code Reuse in Stack Overflow and Popular Open Source Java']Java Projects
    Lotter, Adriaan
    Licorish, Sherlock A.
    Savarimuthu, Bastin Tony Roy
    Meldrum, Sarah
    [J]. 2018 25TH AUSTRALASIAN SOFTWARE ENGINEERING CONFERENCE (ASWEC), 2018, : 141 - 150
  • [7] Source Code Features and their Dependencies: An Aggregative Statistical Analysis on Open-Source Java']Java Software Systems
    Toosi, Farshad Ghassemi
    [J]. APPLIED COMPUTER SYSTEMS, 2023, 28 (02) : 221 - 231
  • [8] Understanding semi-structured merge conflict characteristics in open-source Java']Java projects
    Accioly, Paola
    Borba, Paulo
    Cavalcanti, Guilherme
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2018, 23 (04) : 2051 - 2085
  • [9] DR-Tools: a suite of lightweight open-source tools to measure and visualize Java']Java source code
    Lacerda, Guilherme
    Petrillo, Fabio
    Pimenta, Marcelo S.
    [J]. 2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2020), 2020, : 802 - 805
  • [10] Are unit and integration test definitions still valid for modern Java']Java projects? An empirical study on open-source projects
    Trautsch, Fabian
    Herbold, Steffen
    Grabowski, Jens
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2020, 159