Smalldude

SmallDude is a duplication detector.

It was originally implemented by Mihai Balint and Violeta Voinescu as part of their Master’s thesis work, and it is currently maintained by Tudor Girba.

Description

The algorithm used is a string based one that depends on 3 parameters:

DetectionEx

  • Minimum clone length - defines the minimum amount of lines present in a clone. In our experiments we used 7.
  • Maximum line bias - defines the maximum amount of lines in between two exact chunks. In our experiments we used 2.
  • Minimum chunk size - defines the minimum amount of lines of an exact chunk. In our experiments we used 3.

Clone Evolution View

CvannotateEx

In addition to simple clone detection, SmallDude also provides the correlation with author information, by taking using the results of cvs annotate that returns for each line the author that last changed it and the date at which the changed was performed.

Using this information, SmallDude offers the Clone Evolution View to provide an overview of how different authors contribute to cloning:

CloneEvolutionEx

Publications

  1. Mihai Balint, Tudor Gîrba, and Radu Marinescu. How Developers Copy. In Proceedings of International Conference on Program Comprehension (ICPC 2006), p. 56—65, 2006. DOI PDF 

Download

SmallDude is a Moose plugin and it is available at the following Store coordinates:

  Bundle: SmallDudeDevelopment   
  interface: PostgresSQLEXDIConnection
  environment: db.iam.unibe.ch_scgStore
  user name: storeguest
  password: storeguest
  table owner: BERN

Licsense: BSD