unilogo width=2.5cm

Diplomarbeit

Vergleich von Techniken zur Erkennung duplizierten Quellcodes

Hintergrund

Copy & Paste ist noch immer das vorherrschende Programmierparadigma,wenn es um Wiederverwendung von Code geht. Dabei kopiert der Programmierer ein Stück Code an eine andere Stelle (und modifiziert die Kopie möglicherweise leicht), um dort eine ähnliche Funktionalität zu erreichen. Durch häufiges Copy & Paste leidet jedoch die Wartbarkeit des Systems. Ein Fehler muss eventuell an vielen Stellen korrigiert und eine Änderung an vielen Stellen vorgenommen werden. Allerdings ist in den seltensten Fällen dokumentiert, wohin ein Stück Code kopiert wurde.

In der Literatur wurde eine Reihe von Techniken zur Entdeckung so genannter Klone (also Code-Stücke, die sich aus Copy & Paste ergaben) vorgeschlagen. Jedoch ist bis dato unklar, welche der Techniken unter welchen Umständen die bessere ist. Die wichtigsten Wissenschaftler auf diesem Gebiet haben sich nun zusammengetan, um die verschiedenen Techniken quantitativ und qualitativ zu vergleichen.

Aufgabenstellung

Das Ziel dieser Diplomarbeit ist der qualitative und quantitative Vergleich der verschiedenen Ansätze zur Erkennung von Klonen, namentlich mindestens die Techniken von:
  • Baker et al.
  • Baxter et al.
  • Kontogiannis et al.
  • Krinke
  • Merlo et al.
  • Kamiya et al.
  • Rieger et al.
Die genannten Wissenschaftler werden sich an dem Vergleich beteiligen. Die Aufgaben des Bearbeiters sind wie folgt (alle Aktivitäten sollen in enger Zusammenarbeit mit dem Betreuer und den beteiligten Wissenschaftlern erfolgen):
  • Erarbeitung des Vorgehens eines quantitativen Vergleiches der Ergebnisse verschiedener Techniken zur Erkennung von Klonen
  • Auswahl von Java- und C-Systemen, auf die die Techniken angewandt werden sollen; eventuell deren Preparierung, um Tests zur Konfidenz über den Recall einzubauen
  • Spezifikation des Formats der Resultate
  • Versenden der ausgewählten Systeme sowie die Entgegennahme der Ergebnisse
  • Quantitative und qualitative Analyse der Ergebnisse; insbesondere sollen anhand der Ergebnisse die speziellen Stärken und Schwächen einzelner Techniken sowie deren Komplementarität herausgearbeitet werden
  • Konzeption und Implementierung von Werkzeugen zur Unterstützung der Messung und Evaluation, sofern erforderlich
Es ist nicht Aufgabe des Bearbeiters, die Techniken selbst auf die selektierten Systeme anzuwenden. Diesen Teil werden die beteiligten Wissenschaftler erledigen. Sollten die Wissenschaftler die Ergebnisse nicht in angemessener Zeit liefern, werden deren Techniken vom Vergleich ausgenommen.

In einem Vorexperiment anhand kleinerer Systeme sollen das Messverfahren und das Format zur Abgabe der Resultate evaluiert und gegebenfalls verbessert werden. Im eigentlichen Hauptexperiment sollen dann umfangreichere Systeme untersucht werden.

In einem Zwischen- bzw. Abschlussbericht in Form einer Präsentation soll über die Zwischen- bzw. Endergebnisse berichtet werden.

Die Beschreibung des Messverfahrens sowie die Dokumentation zur Durchführung der Experimente muss wegen der internationalen Beteiligung in Englisch verfasst sein.

Betreuer

Dr. Rainer Koschke (Zi. 2.160)


Valid HTML 3.2! Last modified: Mon Jan 21 09:36:20 MET 2002
admin@droste.informatik.uni-stuttgart.de