Theses

Entwicklung eines modularen Refactoring-Tools in SCA

Bachelorarbeit in der Abteilung Softwaretechnik



Motivation

Softwareentwicklung mit einer Intergrierte Entwicklungsumgebung bietet viele Vorteile gegenüber einem Texteditor ohne Hilfsmittel. Ein Compiler, ein Linker und ein Debugger sind bereits in die IDE integriert und erleichtern somit die Fehlersuche. Tippfehler werden durch die Autovervollständigung wesentlich reduziert. Außerdem werden Schlüsselwörter vorgeschlagen und durch farbliche Markierung im Quelltext hervorgehoben.
Eines der wichtigsten Features ist das Refactoring. Es ermöglicht eine effiziente Veränderung der Codestruktur, wodurch der Quelltext beispielsweise zu Gunsten der Lesbarkeit, der Performanz oder der Erweiterbarkeit optimiert werden kann. Neu entwickelte IDE können nicht auf Tools von bereits existierenden IDE zugreifen, da diese in sich geschlossen und nicht modular sind. Somit müssen bereits etablierte Tools wiederholt neu geschrieben werden. Da dies sehr zeit- und kostenintensiv ist, soll eine Alternative entwickelt werden. Diese soll den Einbau erleichtern und die Wiederverwendung der Refactoring Komponenten ermöglichen.


Aufgabenstellung

Im Rahmen der Arbeit soll ein modulares Refactoring-Tool entwickelt werden. Für die Realisierung wird die Service Component Architecture verwendet. Johannes Meier zeigte bereits in seiner Bachelorarbeit mit dem Titel “Eine Fallstudie zur Interoperabilität von Software-Evolutions-Werkzeugen in SCA”, dass SCA eine leichte Anbindung bietet und sich damit auch umfassendere Projekte realisieren lassen. Durch den modularen Aufbau und die festgeschriebenen Schnittstellen lassen sich die einzelnen Komponenten leicht ersetzen und gut wiederverwenden.
Die Erstellung einer für das Refactoring geeigneten Architektur und die Erprobung dieser an einem Prototypen bilden den Schwerpunkt dieser Arbeit. Die Architektur muss einfach erweiterbar sein, damit weitere Refactorings ohne großen Aufwand hinzugefügt werden können. Intern soll sie aus mehreren kleineren Komponenten bestehen. Diese sollen möglichst wenig Redundanz aufweisen, um leicht wiederverwendbar zu sein. Desweiteren wird eine Fallunterscheidung zwischen der automatischen Erkennung von problematischen Stellen im Code und der Benutzeninteraktion stattfinden, um sich der richtigen Balance und der daraus resultierenden Benutzerfreundlichekeit anzunähern. Darüber hinaus soll die Refactoring Komponente anhand mehrerer praktischer Beispiele veranschaulicht werden. Daran wird gezeigt, dass die gewählte Architektur sowohl für die Realisierung von kleinen als auch großen Refactorings geeignet ist und dass die Art der Interaktion eine zweckmäßige Balance aufweist.


Betreuer
Prof. Dr. Andreas Winter ()
M.Sc. Jan Jelschen ()

Related Projects
Logo Software Evolution
Software evolution research is a major focus of the software engineering group, and has been exercised through participation in software migration and software quality projects like SOAMIG and Q-MIG. Tools and techniques of software evolution have also been applied towards achieving energy efficiency in software. Modernizing legacy systems is, due to their size and complexity, only feasible with a high degree of automation. Thus, a major challenge of the field is the provision of integrated tool support. This is addressed by research on software evolution services, and the toolchain-building framework SENSEI.
 
Logo Software Evolution Services – The SENSEI Approach
Software evolution research is a major focus of the software engineering group, and has been exercised through participation in software migration and software quality projects like SOAMIG and Q-MIG. Tools and techniques of software evolution have also been applied towards achieving energy efficiency in software. Modernizing legacy systems is, due to their size and complexity, only feasible with a high degree of automation. Thus, a major challenge of the field is the provision of integrated tool support. This is addressed by research on software evolution services, and the toolchain-building framework SENSEI.
 


(Changed: 19 Jan 2024)  | 
Zum Seitananfang scrollen Scroll to the top of the page