Abschlussarbeit

Design und Implementierung eines Eclipse-Plugins zur Anzeige von möglichen Typgeneralisierungen im Quelltext

Verfasser:
Markus Bach
Betreuer/in:
Prof. Dr. Friedrich Steimann
Status:
abgeschlossen
Jahr:
2007
Download:
PDF

Um eine möglichst geringe Kopplung zwischen den Klassen eines Programms zu erzielen, kann man in Java Interfaces als Typen von Variablen einsetzen. Solche Interfaces sind entweder bereits vorhanden und können dann mittels spezieller Refactorings automatisch eingesetzt werden, oder müssen erst noch angelegt werden. Für den zweiten Fall wurde am Lehrgebiet ein Refactoring namens Infer Type entwickelt, das für eine Variable automatisch ein minimales Interface (also eines, das so wenig Elemente wie möglich besitzt) berechnet (http://www.fernuni-hagen.de/ps/prjs/InferType/).

Die Eclipse Java Development Tools bieten die Möglichkeit, per Erweiterung zusätzliche Warnungen und Fehler zu definieren, die gemeinsam mit den bereits existierenden in den von Eclipse zur Verfügung gestellten Ansichten angezeigt werden. Außerdem können diese Fehlermeldungen und Warnungen mit sog. Quickfixes versehen werden, die eine Behebung des Problems vorschlagen und ggf. auch durchführen.

Ziel der Arbeit war es, ein Plug-In für Eclipse zu entwickeln, das jedesmal dann eine Warnung ausgibt, wenn eine Variable mit einem passenderen Interface deklariert werden könnte. Um zu entscheiden, ob das der Fall ist, soll zunächst wahlweise der Algorithmus von Generalize Declared Type oder der von Infer Type angewendet werden. Weiterhin soll ein Erweiterungspunkt definiert werden, der es erlaubt, bei Bedarf weitere Algorithmen einzusetzen. Zuletzt sollen Quickfixes vorgesehen werden, die es erlauben, das nach dem jeweiligen Algorithmus berechnete, besser passende Interface einzusetzen. Die Überprüfung der Variablendeklarationen soll im Rahmen des normalen Compiliervorgangs von Eclipse erfolgen.

12.05.2022