Entwicklung einer benutzerfreundlichen Lösung für den Datei- und Projektbasierten Quellcodevergleich in Entwicklungsumgebungen

Hintergrund

Es gibt viele Programmieranwendungen bei denen man unterschiedliche Quellcodeversionen miteinander vergleichen oder sie gleichzeitig bearbeiten möchte. Beispielhafte Anwendungsfälle sind das gegenüberstellende Lernen von Programmiersprachen, Programmierparadigmen, Codestyles oder der Vergleich von Lösungsansätzen mit der eigenen Implementierung. Aber auch die gleichzeitige Bearbeitung von mehreren Zweigen (Branches) in einem Versionskontrollsystem. Dabei ist es meist notwendig die Quellcodeversionen einzeln in mehreren Fenstern zu öffnen und bei einem Wechsel zwischen vergleichbaren Dateien muss dieser in jedem Fenster einzeln durchgeführt werden. Eine Entwicklungsumgebung (IDE) in der man intern zwischen unterschiedlichen Quellcodeversionen wechseln kann und die es erlaubt die Quellcodes innerhalb des Fensters gegenüberzustellen könnte den Vergleich und die gleichzeitige Bearbeitung von Dateien vereinfachen. Insbesondere für Programmieranfänger die noch wenig Kenntnisse von Programmierung, IDE-Bedienung oder Versionskontrolle haben könnte das eine hilfreiche Funktionalität sein. Im Rahmen dieser Arbeit gilt es ein Plugin zu entwickeln, welches diese Funktionalität in eine IDE integriert und zu untersuchen, ob es die Anforderungen an ein solches Artefakt erfüllt.

Zielsetzung der Arbeit

Ziel der Arbeit ist die Entwicklung einer benutzerfreundlichen Lösung für den Datei- und Projektbasierten Quellcodevergleich in Entwicklungsumgebungen. Auf Basis von verwandten Arbeiten werden die Möglichkeiten und Anforderungen der Entwicklung eines IDE-Plugins zum Wechsel zwischen und der Gegenüberstellung von Quellcodeversionen ermittelt. Dabei werden die Bedürfnisse von Programmieranfängern die wenig oder keine Kenntnisse von Programmierung, IDE-Bedienung oder Versionskontrolle haben in der Anforderungserhebung berücksichtigt. Der Nutzer soll keine Berührung mit dem unterliegenden System haben und durch das einfache anklicken von Buttons zwischen den verschiedenen Quellcodeversionen wechseln und sie gegenüberstellen können. Auf Basis der ermittelten Anforderungen und Constraints wird ein Prototyp designt und implementiert. Dazu wird für die Evaluation des Prototyps eine beispielhafte Anwendung zum Wechsel zwischen und der Gegenüberstellung von den Programmiersprachen Java und Kotlin entwickelt. Anschließend wird der Prototyp in einer Laborstudie mit Teilnehmern aus der Zielgruppe (Programmieranfänger)evaluiert um festzustellen, ob die Anforderungen vom Artefakt erfüllt werden.

Konkrete Aufgaben

Anforderungserhebung durch Recherche von verwandten Arbeiten und den Bedürfnissen von Programmieranfängern

Design und Implementierung eines prototypischen IDE-Plugins

Entwicklung einer beispielhaften Anwendung zur Evaluierung

Evaluation des Prototypen in einer Laborstudie mit Teilnehmern aus der Zielgruppe

Erwartete Vorkenntnisse

Kenntnisse im Bereich der Softwareentwicklung

Kenntnisse im Bereich der Versionskontrolle

Weiterführende Quellen

-