ThesisSarosUIBridge

Ausgangssituation

Saros ist ein PlugIn für Eclipse, welches Entwickler bei der Umsetzung von Paarprogrammierung unterstützt. Es ermöglicht den Austausch sowie die gleichzeitige Bearbeitung von Programmcode und Änderungen können verfolgt oder selbst vorgenommen werden. Um diese Änderungen allen beteiligten Entwicklern bereitzustellen, werden die Dateien regelmäßig synchronisiert. Für eine bessere Kommunikation bietet Saros eine Chatfunktion sowie ein Whiteboard. Saros war ursprünglich für Eclipse entwickelt worden und besteht aus mehreren Modulen unter anderem dem Saros-Core und der Saros-UI. Im Core sind alle Funktionen zusammengefasst, die unabhängig der IDE benötigt werden, wie zum Beispiel das Monitoring der Dateien oder die Verbindung zwischen den Teilnehmern. Um den Einsatz von Saros außerhalb von Eclipse in andere Entwicklungsumgebungen zu ermöglichen, musste eine Anpassung der GUI erfolgen, andernfalls hätte diese für Eclipse und IntelliJ separat implementiert werden müssen, da unterschiedliche Technologien für die GUI verwenden. Um dies zu verhindern, hat Christian Cikryt 2015 in seiner Masterthesis den Einsatz eines Browser als GUI evaluiert und mit Hilfe von HTML, CSS und JavaScript implementiert. Bastian Sieker optimierte mit seiner Masterthesis diese Schnittstelle.

Problem

Durch den kombinierten Einsatz von Java und JavaScript ist der Programmcode schwieriger statisch zu überprüfen und die Einarbeitung in den Quellcode wird ebenfalls erschwert. Des Weiteren müssen einige Klassen und Funktionen in Java und JavaScript implementiert werden, was den Quellcode ohne weiteren Nutzen vergrößert.

Ziel

Das Ziel der Bachelorarbeit ist die Schnittstelle zwischen Saros-GUI und Saros-Core mit einer Technologie zu überbrücken, die es ermöglicht Java oder JVM-Bytecode und JavaScript auszugeben. Dies soll die Einarbeitung in den Quellcode erleichtern, welche aktuell durch die unklare Struktur zwischen Java und JavaScript erschwert wird. Des Weiteren soll die Größe des Quellcodes damit verringert und die statische Überprüfung erleichtert werden.

Umsetzung

Um dieses Ziel erfolgreich umzusetzen, erfolgt zuerst eine Einarbeitung in die aktuelle Saros-UI. Darauf folgt die Untersuchung, welche Technologien in Frage kommen und welche am besten dafür geeignet ist. Anschließend die Einarbeitung in die geeignete Technologie und abschlieÿend die Implementierung des Programmcodes und der Tests.

Status

24.09.2018

Aktivitäten

  • Anmeldung der Bachelorthesis
  • Einarbeitung in das Thema
  • notwendige Master-Thesen gelesen

Ergebnisse

  • /

Nächste Schritte

  • Frameworks und Programmiersprachen suchen und auf Eignung prüfen
  • Thesis-Webseite einrichten

01.10.2018

Aktivitäten

  • Kotlin und Scala.js bieten sich für die Brücke an
  • In den bestehenden Quellcode eingearbeitet

Ergebnis

  • Kotlin und Scala.js bieten sich an
  • Kotlin für die Implementierung der Brücke besser geeignet
  • Problem: Website lies sich nicht einrichten

Nächste Schritte

  • HTML-GUI unter Eclipse starten
  • Einarbeitung in Kotlin
  • ersten Zugriff von Frontend auf Kotlin implementieren

08.10.2018

Aktivitäten

  • In Kotlin eingearbeitet
  • Thesis-Webseite eingerichtet
  • In den bestehenden Quellcode eingearbeitet

Ergebnis

  • den bestehenden Programmcode in Kotlin implementiert
  • Thesis-Webseite
  • Probleme mit der HTML-GUI unter Ubuntu 18.04

Nächste Schritte

  • HTML-GUI unter Eclipse starten
  • ersten Zugriff von Frontend auf Kotlin implementieren

15.10.2018

Aktivitäten

  • Problem HTML-GUI untersucht und gelöst
  • Zugriff vom Frontend auf Kotlin nicht gelungen

Ergebnis

  • HTML-GUI unter Ubuntu 18.04 nur mit Eclipse 4.4 möglich
  • Kotlin muss wie Java in JS durch invoking verwendet werden

Nächste Schritte

  • mehrfach Implementierung von z.B. Klassen und Funktionen dokumentieren und im UI-Package in Kotlin implementierieren
  • Kotlin durch JS aufrufen, durch invoking in einem simplen Beispiel

23.10.2018

Aktivitäten

  • Model-Klassen implementiert: Contact, State, ValidationResult
  • Schwierigkeiten beim Verwendung von Kotlin-Klassen im Pico-Container

Ergebnis

  • Ein Teil der Model-Klassen implementiert

Nächste Schritte

  • Problem Kotlin-Klassen im Pico-Container untersuchen

07.11.2018

Aktivitäten

  • Problem Kotlin-Klassen im Pico-Container untersucht
  • weitere Klassen implementiert

Ergebnis

  • Problem mit Pico-Container ist Bug des PlugIns -> durch Update des Kotlin-PlugIns in Eclipse gelöst
  • HTMLUIFactory, HTMLUIStrings, View sowie JavsScriptAPI in Kotlin implementiert

Nächste Schritte

  • Reimplementierung fortsetzen

21.11.2018

Aktivitäten

  • weitere Klassen in Kotlin implementiert
  • Inhaltstruktur der Bachelorarbeit erstellt

Ergebnis

Nächste Schritte

  • Rohfassung der Bachelorarbeit vorbereiten
  • Implementierung abschließen

28.11.2018

Aktivitäten

Ergebnis

  • Kotlin muss wie Java in JS durch invoking verwendet werden

Nächste Schritte

  • Thread-Problem sowie die neu Implementierung der TypeRefinery und TypedJSFunction abschließen
  • erste Version der ausformulierten Arbeit erstellen.
Topic revision: r4 - 01 Dec 2018, DanielPaulGattringer
 
  • Printable version of this topic (p) Printable version of this topic (p)