Solid Software Duplication Detector (SolidSDD)
SolidSDD (Software Duplication Detector) is a standalone application for detecting and
managing source code cloning (i.e., code duplication) that often occurs in software projects
when developers are in a hurry to add new functionality. It can be used to analyze
large projects and detect code that has been cloned (e.g., through
copy-and-paste operations) during development.
In addition to identifying duplicated code fragments, SolidSDD
offers an intuitive graphical interface for assessing the code cloning
characteristics and the location of the duplicated fragments in the
code base. This interface enables developers, architects, and software
managers to better manage the process of refactoring by assessing the
required effort and establishing refactoring priorities.
SolidSDD is able to intelligently cope with variations in the duplicated code. Not only are exact
matches identified, but also cloned fragments that have been
modified by renaming variables or by inserting or removing code.
See what's new in Version 1.5
Download the fact sheet
Read about the new Small Business License
Download a 30-day free trial
Get information about SolidSDD licensing options
More than a differencing tool
SolidSDD is not another "diff" tool. To do what SolidSDD does with a
standard differencing tool would take far more time and manual effort,
yet still fail to yield the same results with the same level of
sophistication and thoroughness.
SolidSDD is:
- Fast and scalable: SolidSDD can analyze thousands of files in a matter of minutes. It uses
caches for preprocessed information, so the second time it runs even
faster. In many scenarios, it can be executed on the fly, enabling quick
and timely assessment of code duplication (e.g., before committing code
to a versioning repository).
- Tolerant to variations: SolidSDD does not look only for exactly duplicated code fragments. Most
of the times, when code is duplicated, developers have performed
modifications such as renaming variables, or inserting or deleting some
code. SolidSDD is able to deal with such modifications, while still
recognizing the modified piece of code as a duplicate. Additionally,
SolidSDD pinpoints the actual differences in the code, so developers
can easily assess the required modification effort.
- Informative: SolidSDD
can be used by developers, architects, and project
managers. The detailed code views enable developers to precisely locate
duplicated code fragments; the visual overview enable architects to
assess the architectural implications of duplications in order to
initiate and prioritize refactoring; and the aggregated duplication
metrics enable managers to make informed decisions regarding maintenance and
initiate the appropriate activities.
- Configurable: The clone detection engine of SolidSDD can be configured for various
detection strategies and accuracy levels, in order to suit specific analysis
contexts and needs.
- Easy to integrate: SolidSDD can be integrated within the build environment via a command line
interface. In this way, the clone detection operation can be executed in
batch mode; for example, as part of nightly system builds.
See for yourself what SolidSDD can do to enhance and polish your development efforts by downloading the free trial.
"Number one in the stink parade is duplicated code. If you see the
same code structure in more than one place, you can be sure that your
program will be better if you find a way to unify them." - Martin
Fowler, Refactoring, 1999, p. 76.
"Where there is duplicated code, there is always an opportunity for one of the
duplicates to get fixed and the other one to be forgotten. Remove this opportunity."
- Ron Jeffries, Ann Anderson, Chet Hendrickson, Extreme Programming Installed, 2001, p. 84.
SolidSDD (click on image to enlarge) actually provides the
capabilities to do what people only dream about doing with simple
differencing tools. Try it, and what was used in the past will become a distant memory.