VisCad
 


Latest News

(May 12)

- An user guide is available now.

Previous News

(May 8)

  1. -A new video is now available.

  2. - A number of bugs have been fixed

(April 28, 2011)

- A beta version of VisCad is available now.

Major Features

  1. -Clone visualization

  2. -Supports a large set of clone detectors

  3. -Source code browser

  4. -Data filtering operations

  5. -Large set of metrics


Implementation

  1. -Implemented in Java


System Requirement

-Runs on systems with Java Runtime Environment (JRE) 6

 

Detection and analysis of similar code fragments (“code clones”) becomes an integral part of software maintenance. In response, over the last decade a great many clone detection techniques and tools have been proposed. However, identifying useful cloning information from the large volume of textual data produced by these detectors is challenging. VisCad is a clone analysis support environment using which a user can visualize and analyze large volumes of raw cloning data in an interactive fashion. Users can analyze and identify distinctive code clones through a set of visualization techniques, metrics and data filtering operations.

 

About VisCad

The loosely coupled architecture of VisCad allows users to work with the clones of any clone detection tool that reports source co-ordinates the found clones. This yields the opportunity to work with the clone detectors of choice, which is important for clone analysis since clone detectors have their own strengths and weaknesses.

Architecture

Figure 1: VisCad Architecture

The architecture of VisCad is depicted in Figure 1. 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.

Acknowledgement

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:


  1. Piccolo (A Structured 2D Graphics Framework)

  2. Jung (Java Universal Network/Graph Framework)

  3. RSyntaxTextArea (A syntax highlighting text component for Java Swing)

  4. InfoNode

Features

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

Publication

An early version of VisCad has been accepted as a tool demo in IWSC’ 2011.

M. Asaduzzaman, C. K. Roy, K. Schneider. VisCad: Flexible Code Clone Analysis Support For NiCad. In IWSC’11, 2011.

 

Preview

The following video is an early preview of VisCad. We also want to hear from you. If you have any comments or suggestions, you can mail us at viscad.usask@gmail.com.

Download

You can access the beta version of source code from here. Complete documentation of the code will be available shortly.

VisCad_Source.zip


We are currently doing major changes on our code base to improve performance. The following is a beta version of VisCad you can try with.

VisCadBeta.zip



Instructions about running and importing results from a number of clone detectors can be found in VisCad_User_Guide.html. A pdf version of the guide (VisCad User Guide.pdf) is also available to download. We have used JHotDraw (version 7.6) as a subject system in describing importing result files in VisCad. The source code of the subject system is also available as a zip file (jhotdraw-7.6.nested.zip). If you find any bug in the program, or feel that something is missing or need more clarification in the user guide, please mail us at viscad.usask@gmail.com.

User Guide