The architecture of VisCad is depicted in the following figure. VisCad takes as input the clone detection results and the code-base of the subject system. The core is the central module that manages the interaction and sets up the various components for clone analysis. If you have result from the listed clone detectors or have clone data in RCF format, VisCad can load them with the help of built-in parsers. Otherwise, you need to convert the result file in VisCad input file format that can be load by VisCad. In response to the user's interaction, VisCad populates a number of graphical views and interfaces through which users can further interact and investigate code clones at different levels of abstraction.

VisCad Architecture

The features available in VisCad are listed in the following table. Details about these features will be available soon.

Features Currently Supported
Clone Detection Tools CCFinder, Simian, SimScan, Nicad, iClones
Granularity of Clones Function, Block(Aritrary + Structural)
Clone Relation Clone Pair, Clone Class
Adaptability to Tools Easily adaptable to tools that report clones with source and line locations
Visualizations Scatter plot, Treemap and Hierarchical Dependency Graph
Source Code Viewer Display fragment or file, support syntax and difference highlighting
Data Filtering Manual, metric based, textual similarity based, overlapping clone filtering
Scalability Small. medium and large systems(e.g., Linux Kernel

We are thankful to the members of the Software Research Lab at USASK for their valuable comments. In particular, Minhaz Fahim Zibran and Ripon Kumar Saha provide important feedback on early development of VisCad.
It would not have been possible without the support of the open source community. We want to point to the followings: