ZHANG Fanlong, KHOO Siau-Cheng, SU Xiaohong. Machine-Learning Aided Analysis of Clone Evolution[J]. Chinese Journal of Electronics, 2017, 26(6): 1132-1138. doi: 10.1049/cje.2017.08.012
Citation: ZHANG Fanlong, KHOO Siau-Cheng, SU Xiaohong. Machine-Learning Aided Analysis of Clone Evolution[J]. Chinese Journal of Electronics, 2017, 26(6): 1132-1138. doi: 10.1049/cje.2017.08.012

Machine-Learning Aided Analysis of Clone Evolution

doi: 10.1049/cje.2017.08.012
Funds:  This work is supported by the National Natural Science Foundation of China (No.61173021).
More Information
  • Corresponding author: SU Xiaohong (corresponding author) was born in 1966. She is a professor at Harbin Institute of Technology. Her research interests include software fault localization, clone detection and analysis, program analysis. (Email:sxh@hit.edu.cn)
  • Received Date: 2016-01-21
  • Rev Recd Date: 2016-07-05
  • Publish Date: 2017-11-10
  • Code clones are similar code fragments appearing in software. As software evolves, code clones may be subjected to changes as well; we term this clone evolution. There have not been many investigations into clone evolution characteristics. Therefore, we tackle this by exploring useful information associated with changes of clones during evolution. We focus on three perspectives of clone evolution, ranging from individual clone changes to characterization of clone genealogies. With the help Xmeans clustering, we establish associations between clone changes and life of clones. Our experimental results on two softwares show that clones are mostly stable throughout software evolution. For the relatively smaller group of "unstable" clones, changes usually happen after several versions, and consistent changes appear more frequently than inconsistent ones. We suggest that developers should pay more attention to relatively longer genealogies, and should consider applying changes consistently to clone group when a constituent clone fragment has undergone change.
  • loading
  • C.K. Roy and J.R. Cordy, "A survey on software clone detection research". Queens School of Computing TR, Vol.541, No.115, pp.64-68, 2007.
    M. Kim, V. Sazawal, D. Notkin, et al., "An empirical study of code clone genealogies", ACM SIGSOFT Software Engineering Notes. ACM, Vol.30, No.5, pp.187-196, 2005.
    C. Kapser and M.W. Godfrey, "Cloning considered harmful considered harmful", 200613th Working Conference on Reverse Engineering. IEEE, pp.19-28, 2006.
    K. Inoue, Y. Higo, N. Yoshida, et al., "Experience of finding inconsistently-changed bugs in code clones of mobile software", Proceedings of the 6th International Workshop on Software Clones. IEEE Press, pp.94-95, 2012.
    J. Krinke, "Is cloned code more stable than non-cloned code?", Source Code Analysis and Manipulation, 20088th IEEE International Working Conference, pp.57-66, 2008.
    D. Pelleg and A.W. Moore, "X-means:Extending K-means with efficient estimation of the number of clusters", ICML, pp.727-734, 2000.
    H. Mark, F. Eibe, Peter Reutemann, et al., "The WEKA data mining software:An update", SIGKDD Explorations, Vol.11, No.1, pp.10-18, 2009.
    C.K. Roy and J.R. Cordy, "NICAD:Accurate detection of nearmiss intentional clones using flexible pretty-printing and code normalization", Program Comprehension, 2008. ICPC 2008. The 16th IEEE International Conference on. IEEE, pp.172-181, 2008.
    D. Rattan, R. Bhatia and M. Singh, "Software clone detection:A systematic review", Information and Software Technology, Vol.55, No.7, pp.1165-1199, 2013.
    H.A. Nguyen, T.T. Nguyen, N.H. Pham, et al., "Clone management for evolving software", Software Engineering, IEEE Transactions on, Vol.38, No.5, pp.1008-1026, 2012.
    E. Duala-Ekoko and M.P. Robillard, "Clone region descriptors:Representing and tracking duplication in source code", ACM Transactions on Software Engineering and Methodology (TOSEM), Vol.20, No.1, pp.3, 2010.
    J. Yang, K. Hotta, Y. Higo, et al., "Classification model for code clones based on machine learning", Empirical Software Engineering, pp.1-31, 2014.
    W. Qu, Y. Jia and M. Jiang, "Pattern mining of cloned codes in software systems", Information Sciences, Vol.259, pp.544-554, 2014.
    T. Bakota, R. Ferenc and T. Gyimothy, "Clone smells in software evolution", Software Maintenance, 2007. ICSM 2007. IEEE International Conference on. IEEE, pp.24-33, 2007.
    J. Harder and N. Göde, "Cloned code:stable code", Journal of Software:Evolution and Process, Vol.25, No.10, pp.1063-1088, 2013.
    F. Rahman, C. Bird and P. Devanbu, "Clones:What is that smell?", Empirical Software Engineering, Vol.17, No.4-5, pp.503-530, 2012.
    X. Wang, Y. Dang, L. Zhang, et al., "Can I clone this piece of code here?", Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. ACM, pp.170-179, 2012.
  • 加载中


    通讯作者: 陈斌, bchen63@163.com
    • 1. 

      沈阳化工大学材料科学与工程学院 沈阳 110142

    1. 本站搜索
    2. 百度学术搜索
    3. 万方数据库搜索
    4. CNKI搜索

    Article Metrics

    Article views (160) PDF downloads(266) Cited by()
    Proportional views


    DownLoad:  Full-Size Img  PowerPoint