...collaborate on
The Attack On The Clones project is about the creation of a software clone detection portal.

Phase 1 (Opção 3, sep 2003 -- feb 2004)

The first edition of the Attack On The Clones project was a project carried out in the context of Opção 3 of LESI.

Status: finished

Project description

Create a Clone Detection Portal. Clones are duplicate pieces of software that generally result from copy-paste techniques in programming. Clones can differ slightly, for instance in the names of variables or in the exact order of statements and declarations. A pragmatic technique for detecting clones is to compute metrics over the code, and compare the metrics. If the metrics for two pieces are (almost) identical, they are clones. In this project you will create a web site where one can (i) upload Java source code to be subjected to metric-based clone detection, and (ii) inspect the detection results.

Team

  • Bruno Silva (30174)
  • RuiAbreu? (30257)

Supervision

Phase 2 (continuation)

Status: finished

Objectives

  • Support for more projects
  • "Project to itself" comparison
  • Improve the user interface

Project description

The project is based on the detection of similar source code in Java source code files. One of the major reasons why clones occur is code reuse by copying a pre-existing program fragment. Code clones are one of the factors that degrade the structure of the software and lower the software quality. If one changes a code clone, he/she must also update all other copies and that can raise the maintenance cost. It is also useful to know wich parts of different source codes are clones to each other. The result of the project is the next step of the 1. edition of the clone detection portal. Because the 1. edition was designed for testing only two Java projects in one "detection", this was changed and now the portal supports the submition of more projects. Therefore the way of metrics extraction had to be changed; metrics are extracted from each project directly after the submition. The time needed to calculate metrics remains the same as in the previous version-can increase drastically when computing large projects source code. Because it is very useful to know which parts of a project are similar to other ones-contain similar source code, the option of comparing the project to itself was added also. The problem of finding out if duplicated source code is spread out over a single project shouldn't be one anymore. After the metrics have been computed, the detection of clones can be initialised either by comparing projects metrics (overlap of projects metrics and overlap of class comparison between two projects) and/or by a line-by-line comparison with the later also supporting a graphical representation of the cloned lines. When detecting clones, both ways should be taken in account. For validation purposes different editions of the JJTraveler tool and some students projects were used.

Team

Supervision

r9 - 16 Feb 2007 - 17:48:53 - JoostVisser
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Syndicate this site RSSATOM