• Tools
  • NiCad3

    Clone Detection Tools: NiCad is a flexible TXL-based hybrid language-sensitive / text comparison software clone detection system developed by James R. Cordy and Chanchal K. Roy, originally based on Chanchal's PhD thesis work. NiCad4 is a significantly new implementation with many important improvements and optimizations. The NiCad Clone Detector is a scalable, flexible clone detection tool designed to implement the NiCad (Automated Detection of Near-Miss Intentional Clones) hybrid clone detection method in a convenient, easy-to-use command-line tool that can easily be embedded in IDEs and other environments. It takes as input a source directory or directories to be checked for clones and a configuration file specifying the normalization and filtering to be done, and provides output results in both XML form for easy analysis and HTML form for convenient browsing. NiCad handles a range of languages, including C, Java, Python, and C#, and provides a range of normalizations, filters and abstractions. It is designed to be easily extensible using a component-based plugin architecture. It is scalable to very large systems and has been used to analyze, for example, all 47 releases of FreeBSD (60 million lines) as a single system.


    A Near-Miss Clone Genealogy Extractor to Support Clone Evolution Analysis


    It features a standalone clone detection tool evolved from the research outlined here. This tool is based on simhash, a similarity preserving hashing technique proven effective in developing near-duplicate detection system for a multi-billion page repository. Simhash has been used successfully in different areas of research, such as text retrieval, web mining and so on. SimCad is the first attempt of using this hashing technique particularly in software code clone detection. It provides a command line interface, where it takes path to a source folder and corresponding language as two mandatory inputs. The result of the detection is written in xml file to a location specified by user or to a default location pre-configured in the tool. The detection configuration can be varied by choosing appropriate values to the number of other options, which are configured as optional along with default value for each of those as appropriate.

    Tool Download Link: SimCad-2.2.zip
    Setup Instruction: SimCad-2.2 Readme

    This is an Eclipse Plugin based on simLib to provide clone detection, visualization and management support in Eclipse IDEs.
    simEclipse feature sets:

    Clone Detection
    Clone Visualization
    Clone Marker
    Clone Tracking
    Source History
    Clone Genealogy
    Plugin Download Link: SimEclipse
    Setup Instruction: SimEclipse Readme
    User Manual: SimEclipse User Manual

    Clone Visualization Tools: VisCad is a support environment for code clone analysis developed as part of M. Sc. thesis work of Muhammad Asaduzzaman. The goal of the work is to provide a flexible environment that enables both developers and researchers to identify important insights about cloning at ease.


    A Language Independent Technique for Tracking Source Code Lines

    Tracking source code lines between two different versions of a file is a fundamental step for solving a number of important problems in software maintenance such as locating bug introducing changes, tracking code fragments or defects across versions, merging of file versions, and software evolution analysis. LHDiff is a language-independent technique for tracking source code lines across versions. It leverages SimHash technique to speed up the line mapping process. Our evaluation of LHDiff with three state-of- the-art techniques using test suites containing different degrees of changes and also with a mutation-based strategy shows a high potential return of our lightweight technique.


    Abstract: Despite various debugging supports of the existing IDEs for programming errors and exceptions, software developers often look at web for working solutions or any up-to-date information. Traditional web search does not consider thecontext of the problems that they search solutions for, and thus it often does not help much in problem solving. In this paper, we propose a context-aware meta search tool, SurfClipse, that analyzes an encountered exception andits context in the IDE, and recommends not only suitable search queries but also relevant web pages for the exception (and its context). The tool collects results from three popular search engines and a programming Q & A site against the exception in the IDE, refines the results for relevance against the context of the exception, and then ranks them before recommendation. It provides two working modes--interactive and proactive to meet the versatile needs of the developers, and one can browse the result pages using a customized embedded browser provided by the tool.