Für mein Promotionsvorhaben forsche ich auf dem Gebiet Refactoring-Unterstützung im Versionsmanagement. Ich bin externer Doktorand von Professor Wilhelm Hasselbring in der Abteilung Software Engineering des Department für Informatik an der Universität Oldenburg.

Zusammenfassung

Beim Refactoring wird Programmcode umstrukturiert, ohne das beobachtbare Verhalten zu ändern. Ziel des Refactoring ist die Verbesserung des Entwurfs der Software. Die Änderungen setzen sich aus Refactoring-Operationen zusammen. Beispiele für Refactoring-Operationen sind das Umbenennen von Methoden und die Änderung von Methodensignaturen.

Die meisten Versionsmanagementsysteme versionieren Programme als Text. Refactoring ist ein Problem mit diesen Systemen, da sich oft Konflikte beim Merging von Änderungen ergeben. Ebenso problematisch ist Refactoring bei der Entwicklung einer wiederverwendbaren Programmbibliothek, da auf ihr aufbauende Programme nach den Änderungen nicht mehr übersetzbar sind und bisher manuell angepasst werden müssen.

Ziel dieser Dissertation ist die Entwicklung eines Ansatzes, mit dem Refactoring-Operationen mit vertretbarem Aufwand auf Programmbibliotheken und darauf aufbauenden Programmen sowie bei der Entwicklung im Team eingesetzt werden können.

Der hier verfolgte Lösungsansatz ist ein Versionsmanagement, das die Entwicklung eines Programms operationsbasiert versioniert: Die Weiterentwicklung wird als eine Folge von Operationen beschrieben, wobei Refactoring-Operationen und Edit-Operationen betrachtet werden. Anhand der Operationen kann eine große Anzahl von Konflikten beim Merging durch Berücksichtigung der Bedeutung der Refactoring-Operationen automatisch aufgelöst werden. Änderungen innerhalb einer Programmbibliothek lassen sich als Operationsfolge automatisiert auf abhängigem Code durchführen. Über geeignete Folgen von Edit- und Refactoring-Operationen lassen sich auch einige Verhaltensänderungen von Methoden realisieren.

Ein Prototyp für die Programmiersprache Java (http://java.sun.com), die integrierte Entwicklungsumgebung Eclipse (http://www.eclipse.org) und das Versionsmanagementsystem Subversion (http://subversion.tigris.org/) ist derzeit in Entwicklung.

Hinweis: Diese Zusammenfassung ist 2005 aus einer Konzentration meiner ursprünglichen Forschungsziele hervorgegangen.