City of Clones

Rainer Koschke, Marcel Steinbeck · 2022

Code Cities are used to visualize various aspects of software in 3D including clone information. Software entities such as methods or classes are often depicted by simple regular shapes, for instance, rectangular cuboids or cylinders, where different code metrics can be used to determine their height, width, and depth. Clone information is often represented by coloring or by edges connecting similar code entities. Because Code Cities may be used for purposes other than showing clone relations, the metrics for height, width, depth, and color of a shape may already be used for information not related to cloning and if so, cannot simply be re-assigned differently because that would lead to drastic changes in the visualization causing disorientation of human beholders.As an alternative, we propose to use the shape of the code entities to express their similarity. In this paper, we will discuss four ways to generate similar shapes for similar code entities and investigate whether dissimilar code entities have dissimilar shapes, too, to prevent false visual impressions. These approaches might even enable visual clone detection where clones are immediately recognizable by a human beholder not requiring a clone detector.

Read the paper · More papers on PaperTik