What do we need to know about clones? deriving information needs from user goals

Clone detection can be used to achieve diverse objectives such as refactoring, program understanding, bug localization, and plagiarism detection, etc. Each goal takes a different perspective on clone information needs. Different clone detection tools report different information about clones. To gauge the suitability of a given clone detector for a particular user objective, we need to determine which information needs implied by the objective a clone detector addresses. In this paper, we make a first step toward gathering clone information needs from the description of user goals. The results of our analysis are useful for various stakeholders such as programmers, managers, tool developers, and researchers.

[1]  Giuliano Antoniol,et al.  Modeling clones evolution through time series , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[2]  Douglas H. Martin,et al.  Analyzing web service similarity using contextual clones , 2011, IWSC '11.

[3]  Rainer Koschke,et al.  Supporting the Grow-and-Prune Model in Software Product Lines Evolution Using Clone Detection , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[4]  Elmar Jürgens,et al.  Static Bug Detection Through Analysis of Inconsistent Clones , 2008, Software Engineering.

[5]  Krzysztof Czarnecki,et al.  An Exploratory Study of Cloning in Industrial Software Product Lines , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[6]  Bjorn De Sutter,et al.  Compiler techniques for code compaction , 2000, TOPL.

[7]  Qiang Tu,et al.  Tracking structural evolution using origin analysis , 2002, IWPSE '02.

[8]  Rainer Koschke,et al.  Survey of Research on Software Clones , 2006, Duplication, Redundancy, and Similarity in Software.

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

[10]  Ettore Merlo,et al.  Assessing the benefits of incorporating function clone detection in a development process , 1997, 1997 Proceedings International Conference on Software Maintenance.

[11]  Amal Zouaq,et al.  Light-weight ontology alignment using best-match clone detection , 2013, 2013 7th International Workshop on Software Clones (IWSC).

[12]  Ettore Merlo,et al.  Detection of Plagiarism in University Projects Using Metrics-based Spectral Similarity , 2006, Duplication, Redundancy, and Similarity in Software.

[13]  YangJunfeng,et al.  An empirical study of operating systems errors , 2001 .

[14]  Bernhard Schätz,et al.  Can clone detection support quality assessments of requirements specifications? , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[15]  Stan Jarzabek,et al.  A Data Mining Approach for Detecting Higher-Level Clones in Software , 2009, IEEE Transactions on Software Engineering.

[16]  Michael W. Godfrey,et al.  Software bertillonage: finding the provenance of an entity , 2011, MSR '11.

[17]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

[18]  Simon Giesecke,et al.  Generic modelling of code clones , 2006, Duplication, Redundancy, and Similarity in Software.

[19]  Andrew Begel,et al.  Managing Duplicated Code with Linked Editing , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[20]  Rainer Koschke,et al.  Approximate Code Search in Program Histories , 2011, 2011 18th Working Conference on Reverse Engineering.

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

[22]  Chanchal Kumar Roy,et al.  The vision of software clone management: Past, present, and future (Keynote paper) , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[23]  Chris Verhoef,et al.  Software product line migration and deployment , 2003, Softw. Pract. Exp..

[24]  Michael D. Ernst,et al.  CBCD: Cloned buggy code detector , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[25]  Rainer Koschke,et al.  Extending the reflexion method for consolidating software variants into product lines , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[26]  Shinji Kusumoto,et al.  Inter-Project Functional Clone Detection Toward Building Libraries - An Empirical Study on 13,000 Projects , 2012, 2012 19th Working Conference on Reverse Engineering.

[27]  Jens Krinke,et al.  A Study of Consistent and Inconsistent Changes to Code Clones , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[28]  Duk-Kyun Woo,et al.  Applying a Code Clone Detection Method to Domain Analysis of Device Drivers , 2007, 14th Asia-Pacific Software Engineering Conference (APSEC'07).

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

[30]  Maninder Singh,et al.  Software clone detection: A systematic review , 2013, Inf. Softw. Technol..

[31]  Yuanyuan Zhou,et al.  CP-Miner: finding copy-paste and related bugs in large-scale software code , 2006, IEEE Transactions on Software Engineering.

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

[33]  Michael W. Godfrey,et al.  Determining the provenance of software artifacts , 2011, IWSC '11.

[34]  Walter F. Tichy,et al.  Extensible language-aware merging , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[35]  Xiangyu Zhang,et al.  Matching execution histories of program versions , 2005, ESEC/FSE-13.

[36]  David Brumley,et al.  ReDeBug: Finding Unpatched Code Clones in Entire OS Distributions , 2012, 2012 IEEE Symposium on Security and Privacy.

[37]  License Creative Commons BY-NC-ND 3.0 Unported license , 2022 .

[38]  Foutse Khomh,et al.  Inferring Repository File Structure Modifications Using Nearest-Neighbor Clone Detection , 2012, 2012 19th Working Conference on Reverse Engineering.

[39]  J. Howard Johnson,et al.  Identifying redundancy in source code using fingerprints , 1993, CASCON.

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

[41]  Mattia Monga,et al.  Using Code Normalization for Fighting Self-Mutating Malware , 2006, ISSSE.

[42]  Giuliano Antoniol,et al.  Analyzing cloning evolution in the Linux kernel , 2002, Inf. Softw. Technol..

[43]  R. Koschke,et al.  Frontiers of software clone management , 2008, 2008 Frontiers of Software Maintenance.

[44]  Rainer Koschke,et al.  Software Clone Management Towards Industrial Application (Dagstuhl Seminar 12071) , 2012, Dagstuhl Reports.

[45]  Michael W. Godfrey,et al.  Using origin analysis to detect merging and splitting of source code entities , 2005, IEEE Transactions on Software Engineering.

[46]  Nicholas A. Kraft,et al.  Clone evolution: a systematic review , 2011, J. Softw. Evol. Process..

[47]  Yann-Gaël Guéhéneuc,et al.  Code Siblings: Phenotype Evolution , 2009 .

[48]  Andrew Walenstein,et al.  The Software Similarity Problem in Malware Analysis , 2006, Duplication, Redundancy, and Similarity in Software.

[49]  Rainer Koschke,et al.  An evaluation of code similarity identification for the grow-and-prune model , 2009, CSMR 2009.

[50]  Rajiv Gupta,et al.  Code Compaction of Matching Single-Entry Multiple-Exit Regions , 2003, SAS.