Visualization of Code Clone Detection Results and the Implementation with Structured Data
Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 33122
Visualization of Code Clone Detection Results and the Implementation with Structured Data

Authors: Kazuaki Maeda

Abstract:

This paper describes a code clone visualization method, called FC graph, and the implementation issues. Code clone detection tools usually show the results in a textual representation. If the results are large, it makes a problem to software maintainers with understanding them. One of the approaches to overcome the situation is visualization of code clone detection results. A scatter plot is a popular approach to the visualization. However, it represents only one-to-one correspondence and it is difficult to find correspondence of code clones over multiple files. FC graph represents correspondence among files, code clones and packages in Java. All nodes in FC graph are positioned using force-directed graph layout, which is dynami- cally calculated to adjust the distances of nodes until stabilizing them. We applied FC graph to some open source programs and visualized the results. In the author’s experience, FC graph is helpful to grasp correspondence of code clones over multiple files and also code clones with in a file.

Keywords: code clone detection, program comprehension, software maintenance, visualization

Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1059609

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1516

References:


[1] Brenda .S. Baker, "On Finding Duplication and Near-Duplication in Large Software Systems," Working Conference on Reverse Engineering, pp.86— 95, 1995.
[2] Ira D. Baxter, Andrew Yahin, et al., "Clone Detection Using Abstract Syn-tax Trees," International Conference on Software Maintenance, pp.368- 377, 1998.
[3] Stephane Ducasse, Matthias Rieger, and Serge Demeyer, "A Language Independent Approach for Detecting Duplicated Code," 15th IEEE Inter-national Conference on Software Maintenance, pp.109-118, 1999.
[4] Toshihiro Kamiya, Shinji Kusumoto, and Katsuro Inoue, "CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code," IEEE Transactions on Software Engineering, vol.28, no.7, pp.654-6'70, 2002.
[5] Jens Krinke, "Identifying Similar Code with Program Dependence Graphs," Working Conference on Reverse Engineering, pp.301-309, 2001.
[6] PMD: Finding copied and pasted code, available from http://pmd.sourceforge.net/cpd.html.
[7] Mozilla — Firefox web browser & Thunderbird email client, available from http://www.firefox.com/.
[8] Google Chrome - Get a fast new browser. For PC, Mac, and Linux, available from http://www.google.com/chrome/.
[9] jEdit Syntax Package - Open Source syntax highlighting JavaBean, available from http://syntax.jedit.org/.
[10] Kazuaki Maeda, "Executable Representation for Structured Data Using Ruby and Scala," 10th International Symposium on Communications and Information Technologies, pp.127-132, 2010.
[11] CCFinder Official Site, available from http://www.ccfinder.net/ccfinderx.html.
[12] Atomiq : Code Similarity Finder, available from http://www.getatomiq.com/.
[13] Yoshihiko Fukushima, Raula Kula, Shinji Kawaguchi, et al., "Code Clone Graph Metrics for Detecting Diffused Code Clones," 16th Asia-Pacific Software Engineering Conference, pp.373-380, 2009.
[14] Andreas Noack, "Energy Models for Graph Clustering," Journal of Graph Algorithms and Applications, vol.11, no.2, pp.453-480, 2007.
[15] Gephi, an open source graph visualization and manipulation software, available from http://gephi.org/.
[16] Mathieu Bastian, Sebastien Heymann and Mathieu Jacomy, "Gephi: An Open Source Software for Exploring and Manipulating Networks," International AAAI Conference on Weblogs and Social Media, pp.361— 362, 2009.
[17] Cytocape: An Open Source Platform for Complex-Network Analysis and Visualization, available from http://www.cytoscape.org/.
[18] Protovis, available from http://vis.stanford.edu/protovis/.
[19] Michael Bostock and Jeffrey Heer, "Protovis: A Graphical Toolkit for Visualization," IEEE Transactions on Visualization and Computer Graphics, vol.15, no.6, pp.1121-1128, 2009.
[20] JUNG - Java Universal Network/Graph Framework, available from http://jung.sourceforge.net/.
[21] prefuse — interactive information visualization toolkit, available from http://prefuse.org/.
[22] Jeffrey Heer, Stuart K. Card and James A. Landay, "prefuse: a toolkit for interactive information visualization," The SIGCHI Conference on Human Factors in Computing Systems, pp.421-430, 2005.