Clone Notifier: Developing and Improving the System to Notify Changes of Code Clones

A code clone is a code fragment that is identical or similar to it in the source code. It has been identified as one of the main problems in software maintenance. When a developer fixes a defect, they need to find the code clones corresponding to the code fragments. In this paper, we present Clone Notifier, a system that alerts on creations and changes of code clones to software developers. First, Clone Notifier identifies creations and changes of code clones. Subsequently, it groups them into four categories (new, deleted, changed, stable) and assigns labels (e.g., consistent, inconsistent) to them. Finally, it notifies on creations and changes of code clones along with the corresponding categories and labels. Clone Notifier and its video are available at: https://github.com/s-tokui/CloneNotifier.

[1]  Zhendong Su,et al.  Context-based detection of clone-related bugs , 2007, ESEC-FSE '07.

[2]  Elmar Jürgens,et al.  Do code clones matter? , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[3]  Martin P. Robillard,et al.  Clonetracker: tool support for code clone management , 2008, ICSE '08.

[4]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[5]  Miryung Kim,et al.  An empirical study of code clone genealogies , 2005, ESEC/FSE-13.

[6]  Shinji Kusumoto,et al.  Experience of finding inconsistently-changed bugs in code clones of mobile software , 2012, 2012 6th International Workshop on Software Clones (IWSC).

[7]  Artur Andrzejak,et al.  Learning-Based Recursive Aggregation of Abstract Syntax Trees for Code Clone Detection , 2019, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[8]  Martin P. Robillard,et al.  Clone region descriptors: Representing and tracking duplication in source code , 2010, TSEM.

[9]  Manishankar Mondal,et al.  Micro-clones in evolving software , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[10]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[11]  Cristina V. Lopes,et al.  On Precision of Code Clone Detection Tools , 2019, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[12]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[13]  Manishankar Mondal,et al.  A Comparative Study of Software Bugs in Micro-clones and Regular Code Clones , 2019, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[14]  Zhenchang Xing,et al.  Towards contextual and on-demand code clone management by continuous monitoring , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[15]  Katsuro Inoue,et al.  CCEvovis: A Clone Evolution Visualization System for Software Maintenance , 2019, 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC).

[16]  R CordyJames,et al.  Comparison and evaluation of code clone detection techniques and tools , 2009 .

[17]  Chanchal Kumar Roy,et al.  Benchmarks for software clone detection: A ten-year retrospective , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[18]  Katsuro Inoue,et al.  Investigating Vector-Based Detection of Code Clones Using BigCloneBench , 2018, 2018 25th Asia-Pacific Software Engineering Conference (APSEC).

[19]  Chanchal Kumar Roy,et al.  gCad: A Near-Miss Clone Genealogy Extractor to Support Clone Evolution Analysis , 2013, 2013 IEEE International Conference on Software Maintenance.

[20]  Cristina V. Lopes,et al.  SourcererCC: Scaling Code Clone Detection to Big-Code , 2015, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[21]  Katsuro Inoue,et al.  Applying clone change notification system into an industrial development process , 2013, 2013 21st International Conference on Program Comprehension (ICPC).