[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/3370272.3370298dlproceedingsArticle/Chapter ViewAbstractPublication PagescasconConference Proceedingsconference-collections
research-article

Ranking co-change candidates of micro-clones

Published: 04 November 2019 Publication History

Abstract

Identical or nearly similar code fragments in a software system's code-base are known as code clones. Code clones from the same clone class have a tendency of co-changing (changing together) consistently during evolution. Focusing on this co-change tendency, existing studies have investigated prediction and ranking co-change candidates of regular clones. However, a recent study shows that micro-clones which are smaller than the minimum size threshold of regular clones might also need to be co-changed consistently during evolution. Thus, identifying and ranking co-change candidates of micro-clones is also important. In this paper, we investigate factors that influenc the co-change tendency of the co-change candidates of a target micro-clone fragment.
We mine fil level evolutionary coupling from thousands of revisions of our subject systems through mining association rules and analyze this coupling for the purpose of ranking. According to our finding on six open-source subject systems written in Java and C, consistent co-change tendency of micro-clones is influenc d by fil proximity of the micro-clone fragments as well as evolutionary coupling of the file containing those micro-clone fragments. On the basis of our finding we propose a composite ranking mechanism by incorporating both fil proximity and file coupling for ranking co-change candidates for micro-clones and fin that our proposed mechanism performs significantl better than File Proximity Ranking mechanism. We believe that our proposed ranking mechanism has the potential to help programmers in updating micro-clones consistently with less effort

References

[1]
A. Alali, B. Bartman, C. D. Newman, J. I. Maletic, "A Preliminary Investigation of Using Age and Distance Measures in the Detection of Evolutionary Couplings", Proc. MSR, 2013, pp. 169 -- 172.
[2]
A. Lozano, M. Wermelinger, "Assessing the eff ct of clones on changeability", Proc. ICSM, 2008, pp. 227 -- 236.
[3]
C. K. Roy, "Detection and analysis of near-miss software clones", Proc. ICSM, 2009, pp. 447 -- 450.
[4]
C. K. Roy, J. R. Cordy, "A Mutation / Injection-based Automatic Framework for Evaluating Code Clone Detection Tools", Proc. Mutation, 2009, pp. 157 -- 166.
[5]
C. K. Roy, J. R. Cordy, "A Survey on Software Clone Detection Research", Technical Report No. 2007-541, 2007, School of Computing Queen's University, pp. 1 - 115.
[6]
C. K. Roy, J. R. Cordy, R. Koschke, "Comparison and Evaluation of Code Clone Detection Techniques and Tools: A Qualitative Approach", Science of Computer Programming, 2009, 74 (2009): 470 -- 495.
[7]
C. K. Roy, M. F. Zibran, R. Koschke, "The Vision of Software Clone Management: Past, Present, and Future (Keynote paper)", Proc. CSMR-WCRE, 2014, pp. 18 -- 33.
[8]
C. Kapser, M. W. Godfrey, ""Cloning considered harmful" considered harmful: patterns of cloning in software", Empirical Software Engineering, 2008, 13(6):645 -- 692.
[9]
D. Rattan, R. Bhatia, M. Singh, "Software Clone Detection: A Systematic Review", Information and Software Technology, 2013, 55(7): 1165 -- 1199.
[10]
E. Duala-Ekoko, M. P. Robillard, "CloneTracker: Tool Support for Code Clone Management", Proc. ICSE, 2008, pp. 843 -- 846.
[11]
E. Duala-Ekoko, M. P. Robillard, "Tracking Code Clones in Evolving Software", Proc. ICSE, 2007, pp. 158 -- 167.
[12]
E. Juergens, F. Deissenboeck, B. Hummel, S. Wagner, "Do Code Clones Matter?", Proc. ICSE, 2009, pp. 485 -- 495.
[13]
H. Gall, M. Jazayeri, J. Krajewski,"CVS Release History Data for Detecting Logical Couplings", Proc. IWPSE, 2003, pp. 13 -- 23.
[14]
H. Kagdi, M. Gethers, D. Poshyvanyk, M. L. Collard,"Blending Conceptual and Evolutionary Couplings to Support Change Impact Analysis in Source Code", Proc. WCRE, 2010, pp. 119 -- 128.
[15]
J. Krinke, "A study of consistent and inconsistent changes to code clones", Proc. WCRE, 2007, pp. 170 -- 178.
[16]
J. Krinke, "Is cloned code more stable than non-cloned code?", Proc. SCAM, 2008, pp. 57 -- 66.
[17]
J. Krinke, "Is Cloned Code older than Non-Cloned Code?", Proc. IWSC, 2011, pp. 28 -- 33.
[18]
J. Li, M. D. Ernst, "CBCD: Cloned Buggy Code Detector", Proc. ICSE, 2012, pp. 310 -- 320.
[19]
J. R. Cordy, C. K. Roy, "The NiCad Clone Detector", Proc. ICPC Tool Demo, 2011, pp. 219 -- 220.
[20]
J. Svajlenko, C. K. Roy, "Evaluating Modern Clone Detection Tools", Proc. ICSME, 2014, pp. 321 -- 330.
[21]
Judith F. Islam, Manishankar Mondal, Chanchal K. Roy, "A Comparative Study of Software Bugs in Micro-clones and Regular Code Clones", Proc. SANER, 2019, 11 pp.
[22]
K. Hotta, Y. Sano, Y. Higo, S. Kusumoto, "Is Duplicate Code More Frequently Modifi d than Non-duplicate Code in Software Evolution?: An Empirical Study on Open Source Software", Proc. EVOL/IWPSE, 2010, pp. 73 -- 82.
[23]
L. Aversano, L. Cerulo, and M. D. Penta, "How clones are maintained: An empirical study", Proc. CSMR, 2007, pp. 81 -- 90.
[24]
L. Barbour, F. Khomh, Y. Zou, "Late Propagation in Software Clones", Proc. ICSM, 2011, pp. 273 -- 282.
[25]
L. Jiang, Z. Su, E. Chiu, "Context-Based Detection of Clone-Related Bugs", Proc. ESEC-FSE, 2007, pp. 55 -- 64.
[26]
M. Beller, A. Zaidman, A. Karpov, "The Last Line Eff ct", Proc. ICPC, 2015, pp. 240 -- 243.
[27]
M. F. Zibran, C. K. Roy, "Conflict-awa e Optimal Scheduling of Code Clone Refactoring", IET Software, 2013, 7(3): 167 -- 186.
[28]
M. Kim, V. Sazawal, D. Notkin, G. C. Murphy, "An empirical study of code clone genealogies", Proc. ESEC-FSE, 2005, pp. 187 -- 196.
[29]
M. Mondal, C. K. Roy and K. A. Schneider, "Micro-clones in evolving software," Proc. SANER, 2018, pp. 50 -- 60.
[30]
M. Mondal, C. K. Roy, K. A. Schneider, "Automatic Identificatio of Important Clones for Refactoring and Tracking", Proc. SCAM, 2014, pp. 11 -- 20.
[31]
M. Mondal, C. K. Roy, K. A. Schneider, "Prediction and Ranking of Co-change Candidates for Clones", Proc. MSR, 2014, pp. 32 -- 41.
[32]
M. Mondal, C. K. Roy, M. S. Rahman, R. K. Saha, J. Krinke, K. A. Schneider, "Comparative Stability of Cloned and Non-cloned Code: An Empirical Study", Proc. SAC, 2012, pp. 1227 -- 1234.
[33]
M. Toomim, A. Begel, S. L. Graham. "Managing duplicated code with linked editing", Proc. IEEE Symposium on Visual Languages and Human Centric Computing, 2004, pp. 173 -- 180.
[34]
N. Bettenburg, W. Shang, W. M. Ibrahim, B. Adams, Y. Zou, A. E.Hassan, "An empirical study on inconsistent changes to code clones at the release level", Science of Computer Programming Journal, 2012, 77(6): 760 -- 776.
[35]
N. Göde, J. Harder, "Clone Stability", Proc. CSMR, 2011, pp. 65 -- 74.
[36]
N. Göde, Rainer Koschke, "Frequency and risks of changes to clones", Proc. ICSE, 2011, pp. 311 -- 320.
[37]
N. Tsantalis, D. Mazinanian, G. P. Krishnan, "Assessing the Refactorability of Software Clones", IEEE Transactions on Software Engineering, 41(11):1055-- 1090.
[38]
Online SVN repository: http://sourceforge.net/.
[39]
P. Jablonski, D. Hou, "CReN: A tool for tracking copy-and-paste code clones and renaming identifier consistently in the IDE", Proc. Eclipse Technology Exchange at OOPSLA, 2007.
[40]
R. C. Miller, B. A. Myers. "Interactive simultaneous editing of multiple text regions." Proc. USENIX 2001 Annual Technical Conference, 2001, pp. 161 -- 174.
[41]
R. K. Saha, C. K. Roy and K. A. Schneider, "An automatic framework for extracting and classifying near-miss clone genealogies," Proc. ICSM, 2011, pp. 293 -- 302.
[42]
R. van Tonder and C. Le Goues, "Defending against the attack of the micro-clones", Proc. ICPC, 2016, pp. 1 -- 4.
[43]
S. Thummalapenta, L. Cerulo, L. Aversano, M. D. Penta, "An empirical study on the maintenance of source code clones", Empirical Software Engineering, 2009, 15(1): 1 -- 34.
[44]
S. Xie, F. Khomh, Y. Zou, "An Empirical Study of the Fault-Proneness of Clone Mutation and Clone Migration", Proc. MSR, 2013, pp. 149 -- 158.
[45]
SPSS: https://en.wikipedia.org/wiki/SPSS.
[46]
T. Wang, M. Harman, Y. Jia, J. Krinke, "Searching for Better Configurations A Rigorous Approach to Clone Evaluation", Proc. ESEC/SIGSOFT FSE, 2013, pp. 455 -- 465.
[47]
T. Zimmermann, P. Weisgerber, S. Diehl, A. Zeller, "Mining version histories to guide software changes", Proc. ICSE, 2004, pp. 563--572.
[48]
Wilcoxon Signed Rank Test. https://en.wikipedia.org/wiki/Wilcoxon_signed-rank_test.
[49]
Wilcoxon Signed Rank Test. http://www.socscistatistics.com/tests/signedranks/Default2.aspx.
  1. Ranking co-change candidates of micro-clones

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image DL Hosted proceedings
    CASCON '19: Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering
    November 2019
    421 pages

    Publisher

    IBM Corp.

    United States

    Publication History

    Published: 04 November 2019

    Qualifiers

    • Research-article

    Acceptance Rates

    Overall Acceptance Rate 24 of 90 submissions, 27%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 40
      Total Downloads
    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 11 Dec 2024

    Other Metrics

    Citations

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media