@jil

Strukturbasierte Quellcodesuche mit Hilfe von Ähnlichkeitsmaßen auf Graphen

. University of Kassel, bachelor thesis, (April 2014)

Abstract

Diese Arbeit thematisiert den Aufbau einer strukturbasierten Suche auf Java-Programm- code. Vorgestellt wird eine Suchfunktion auf Basis einer intuitiven Anfragesyntax. Hierzu erfolgt eine Erweiterung der Syntax der Programmiersprache Java, um Suchanfragen mit einer durch Template-Variablen repr ̈asentierten Unsicherheit auf einem Korpus aus Java-Dateien zu erlauben. Zur strukturbasierten Repr ̈asentation der Anfragen wird das Konzept des abstrakten Syntaxbaums auf einen Syntaxgraphen erweitert. Die Berechnung von relevanten Dokumenten zu einer gegebenen Anfrage findet un- ter Ausnutzung der spezifischen Graphstruktur statt. Diese erlaubt eine Zerlegung der ̈ Graphen, wodurch die Ahnlichkeit als Kombination von Similarit ̈aten auf geordneten B ̈aumen und einer erg ̈ anzenden Graph ̈ ahnlichkeit f ̈ ur spezielle Knoten berechnet werden kann. Die Vorstellung der Algorithmen zur Berechnung der Baum ̈ahnlichkeiten ist Teil dieser Arbeit. Da die beschriebene Suchaufgabe dem Information Retrieval auf einem Korpus von unstrukturiertem Text a ̈ hnelt, wird des Weiteren das Vektorraum-Retrieval der graph- ̈ basierten Suche gegen ̈ ubergestellt. Um die Effizienz der Ahnlichkeitsberechnungen zu verbessern erfolgt eine Kombination beider Verfahren. Hierzu wird die Extraktion von Informationen zur Dokumentenrepr ̈ asentation um die abstrakte Tokenization erweitert. Das Vektorraum-Retrieval wird zum Filtern des Suchkorpus’ verwendet, um eine Vor- auswahl an relevanten Dokumenten zu tre↵en, deren Ordnung mit Hilfe der graphba- sierten Maße neu berechnet wird. Der Einfluss der Filtergr ̈oße auf die Ergebnisqualit ̈at wird abschließend f ̈ ur verschiedene Suchanfragen evaluiert. Ein Vergleich der graphba- ̈ sierten Ahnlichkeitsmaße gibt zus ̈ atzlich Aufschluss u ̈ ber ihre E↵ektivit ̈at im Rahmen der vorgestellten Suchaufgabe. Das Filtern des Korpus’ auf Basis des Vektorraum-Retrieval zeigte f ̈ ur spezielle An- fragetypen eine Einschr ̈ ankung der Ergebnisqualit ̈at bei zu niedrigen Filtergr ̈oßen. Von den graphbasierten Verfahren wiesen vor allem der im Rahmen der Arbeit vorgestellte naive Ansatz sowie eine Berechnung mit Hilfe der Editierdistanz zuverl ̈assige Ergebnisse auf. Zur Evaluation und Demonstration wurde ein in Java implementierter Prototyp ver- wendet, dessen Aufbau und Funktionalit ̈ at im Laufe der Arbeit vorgestellt wird.

Links and resources

Tags