The development of a software clone detector
Cloning, the copying and modifying of blocks of code, is the most basic means of software reuse. Code cloning has been very extensively used within the software development design community. Unofficial surveys carried out within large, long term software development projects suggest that 25-30% of the modules in this kind of system may have been cloned. A system to detect clones of procedures in large software systems is described. The system uses a self organising neural net, a SOM, to cluster feature vectors associated with the procedures. We report how a prototype system was developed and subsequently enhanced into a full product quality tool. The limitations of the SOM-based tool are the long training times and the fixed number of clone classes that are created. A second neural net model, the Dynamic Competitive Learning (DCL) net, which overcomes both these limitations is also discussed as a possible component: the results of our initial trials with the SOM-based tool and the DCL-based prototype are given.