Verbesserung und Erweiterung der Core-Bestandteile von Saros
bearbeitet von
David Sungaila
Überblick
In dieser Bachelorarbeit wird die vorangehende Arbeit
Refaktorisierung des Eclipse Plugins Saros für die Portierung auf andere IDEs von
Arndt Lasarzik fortgeführt. Die Refaktorisierung der Eclipse- und IntelliJ-Plugins wurde nicht vollständig abgeschlossen, was an der Größe und Komplexität des Saros-Projektes lag.
Diese Aufgabe wird fortgesetzt, um den Entwicklungsprozess (z.B. von zukünftigen neuen IDE-Plugins) und die Wartung bisheriger Plugins zu vereinfachen.
Anforderungen
- Verschiebung von Codeduplikaten, welche offensichtlich in den Core gehören
- Abstraktion von Code, welcher editorspezifische Logik enthält
- Ggf. Nachimplementierung von Funktionen in Saros/I, die durch Refaktorisierung einhergehen
- Implementierung von Core-Facaden für die HTMLUI
Verwandte Arbeiten
Aktueller Status (Stand 21.07.2016)
Die Bachelorarbeit wurde am
15.04.2016 eingereicht.
Der Abschlussvortrag fand am
14.07.2016 im Rahmen vom
Seminar "Beiträge zum Software Engineering" statt.
Meilensteine und Planung
Past |
|
CW |
Goals |
accomplished |
|
2015‑11‑26 |
48 |
CoreContextFactory refaktorisieren, SarosLifecycle implementieren, Watchdog package weiter refaktorisieren |
Nein, zeitlich nicht geschafft |
|
2015‑12‑03 |
49 |
CoreContextFactory refaktorisieren, Rundmail zu SarosLifecycle verschicken, SarosLifecycle implementieren, Watchdog package weiter refaktorisieren |
Ja, fast alles geschafft |
|
2016‑01‑21 |
3 |
SarosLifecycle fehlerbereinigen, WatchdogHandler Review-Feedback umgesetzen, Bachelorarbeit als LaTeX-Dokument angelegen |
Ja |
|
2015‑12‑10 |
50 |
SarosLifecycle hochladen, WatchdogClient überarbeiten |
Ja |
|
2016‑02‑18 |
7 |
SarosLifecycle Review anstoßen |
Ja |
|
2016‑02‑04 |
5 |
SarosLifecycle verbessern, über HTML UI sprechen |
Ja |
|
2015‑12‑17 |
51 |
SarosLifecycle vervollständigen, WatchdogHandler refaktorisieren |
Ja |
|
2016‑01‑14 |
2 |
SarosLifecycle weiter entwickeln, WatchdogHandler weiter refaktorisieren, Bachelorarbeit als LaTeX-Dokument angelegen |
Ja |
|
2016‑02‑11 |
6 |
SarosLifecycle weiter nachbessern, Facaden für HTML UI überprüfen |
Ja |
|
2016‑03‑24 |
12 |
… |
|
|
2016‑01‑28 |
4 |
Context factories für watchdogs anpassen, Entwicklungsumgebung für HTML UI aufsetzen |
Ja |
|
2015‑10‑29 |
44 |
Erster Gerrit Patch (kleine Refaktorisierung) |
Ja, aber abgelehnt worden |
|
2016‑03‑03 |
9 |
Neues Reviewfeedback für SarosLifecycle bearbeiten |
Ja |
|
2015‑11‑05 |
45 |
Suche nach Code-Duplikaten, Überblick über Abhängigkeiten, Suche nach Abhängigkeits-Blättern, Vorläufiger Name für Bachelorarbeit, diese Wikiseite erstellen |
Ja |
|
2015‑11‑20 |
47 |
Watchdog package nach Core verschieben |
Nein, nicht fertig |
|
2015‑11‑12 |
46 |
Zwei Klassen nach Core verschieben |
Ja |
Wöchentlicher Status
Woche 18 (KW 9; 03.03.2016)
Aktivitäten
Ergebnisse
Probleme
- einwöchige Erkrankung verschob Meeting von 25.02. auf 03.03.
Nächste Schritte
Woche 16 (KW 7; 18.02.2016)
Aktivitäten
- SarosLifecycle Reviews anstoßen und bearbeiten
Ergebnisse
- HTML Facaden weiter entwickelt
Probleme
Nächste Schritte
- SarosLifecycle weiter anpassen nach neuem Review
Woche 15 (KW 6; 11.02.2016)
Aktivitäten
- SarosLifecycle weiter entwickeln
- HTML: Facaden für Invitation überprüfen
Ergebnisse
- SarosLifecycle weiter angepasst
- HTML: Accept und Cancel Invitation begonnen
Probleme
- Weiterhin Defekt bei SarosContext
Nächste Schritte
- Neue SarosLifecycle Reviews anstoßen
Woche 14 (KW 5; 04.02.2016)
Aktivitäten
- SarosLifecycle überarbeiten
- Über HTML UI sprechen
Ergebnisse
- SarosLifecycle angepasst
- watchdog package vollständig verschoben
Probleme
- SarosContext durch fremdverschulden defekt → erschwert Entwicklungsprozess
Nächste Schritte
- HTML Facaden für Starten und Fortschritt von Sitzungseinladung überprüfen
- SarosLifecycle reparieren und gefundene Testfälle prüfen
Woche 13 (KW 4; 28.01.2016)
Aktivitäten
- WatchdogHandler und context factories anpassen
- HTML UI aufsetzen
Ergebnisse
- WatchdogHandler ist verschoben und damit gesamtes watchdog-package (endlich!)
- HTML UI aufgesetzt
Probleme
- HTML UI wird auf Arbeitsrechner nicht angezeigt (bekanntes Problem mit Windows 10)
Nächste Schritte
- Neustes Feedback zu SarosLifecycle bearbeiten
- Über Aufgaben zur HTML UI sprechen
Woche 12 (KW 3; 21.01.2016)
Aktivitäten
- SarosLifecycle weiter entwickeln
- kleinere Probleme mit WatchdogHandler package-info beheben
- Bachelorarbeit anmelden
Ergebnisse
- WatchdogHandler muss noch ein letztes Mal reviewed werden
- SarosLifecycle wieder verbessert
- Bachelorarbeit offiziell angemeldet
Probleme
Nächste Schritte
- Context Factories anpassen, nachdem alle watchdogs verschoben
- HTML UI aufsetzen und testen
Woche 11 (KW 2; 14.01.2016)
Aktivitäten
- SarosLifecycle weiter entwickeln
- WatchdogHandler weiter refaktorisieren
- Dokument der Bachelorarbeit anlegen
Ergebnisse
- WatchdogHandler noch nicht gut genug
- Es sind noch Fehler im SarosLifecycle vorhanden
- LaTeX-Dokument der Bachelorarbeit angelegt
Probleme
- Feedback zu WatchdogHandler unklar; Problematik nicht verstanden
Nächste Schritte
- WatchdogHandler nach Kritik reparieren
- Fehler in SarosLifecycle beheben
- Formular ausfüllen zur Anmeldung der Bachelorarbeit
Woche 7 (KW 51; 17.12.2015)
Aktivitäten
- SarosLifecycle vervollständigen
- WatchdogHandler refaktorisieren
Ergebnisse
- SarosLifecycle steht zum Review bereit (#2982, [[http://saros-build.imp.fu-berlin.de/gerrit/#/c/2983/][#29823] und #2984)
- WatchdogHandler refaktorisiert (#2980)
Probleme
- WatchdogHandler ist noch nicht reif genug
Nächste Schritte
- WatchdogHandler überarbeiten
- Bachelorarbeit anlegen (Textdokument)
- SarosLifecycle-Reviews bearbeiten
- Arbeitspakete festlegen (statt Meilensteine)
Woche 6 (KW 50; 10.12.2015 [ausgefallen])
Aktivitäten
- SarosLifecycle hochladen
- WatchdogClient überarbeiten
Ergebnisse
- SarosLifecycle als Entwurf hochgeladen (#2982)
- WatchdogClient mit Änderungen Dritter refaktorisiert (#2979)
Probleme
- Meeting aus Krankheitsgründen ausgefallen
Nächste Schritte
- SarosLifecycle vollenden
- WatchdogHandler verschieben
Woche 5 (KW 49; 03.12.2015)
Aktivitäten
- CoreContextFactory refaktorisieren
- Rundmail zu SarosLifecycle verschicken
- Lokale Implementierung von SarosLifecycle
Ergebnisse
- CoreContextFactory verschoben (#2971)
- Rundmail verschickt
- Lokal einen Entwurf für SarosLifecycle fertiggestellt
Probleme
- WatchdogClient noch nicht überarbeitet; im Review mehrere Probleme festgestellt; Änderungen von Mitarbeiter abwarten für Überarbeitung
Nächste Schritte
- WatchdogClient mit vorhergehenden Arbeit von Mitarbeiter überarbeiten
- CoreContextFactory Reviewprozess durchlaufen lassen
- Hochladen von SarosLifecycle
Woche 4 (KW 48; 26.11.2015)
Aktivitäten
- Fehlerbehebungen an TextSelection vorgenommen
- Verschieben von WatchdogClient nach Core
- Lokale Implementierung von SarosLifecycle
Ergebnisse
- TextSelection verbessert (#2947)
- WatchdogClient nach Core verschoben(#2979)
Probleme
- Im Reviewprozess wurden Fehler in TextSelection entdeckt; unerwartete Aktivität; Fehler in bestehendem Code entdeckt
- WatchdogClient ist noch nicht gut genug
- Rundmail zu SarosLifecycle noch nicht verschickt; CoreContextFactory noch nicht überarbeitet
Nächste Schritte
- Weiter an Watchdog package arbeiten
- CoreContextFactory refaktorisieren und Rundmail verschicken
Woche 3 (KW 47; 20.11.2015)
Aktivitäten
- Versuch möglichst viel vom watchdog package in den Core zu verschieben
Ergebnisse
- AwarenessInformationCollector verschoben (#2958)
Probleme
- ConsistencyWatchdogClient und ConsistencyWatchdogHandler nicht ohne weiteres verschiebar
- Alle bisherigen Patches abgelehnt, kritisiert oder nicht übernommen → schleichende Frustration und Demotivation
Nächste Schritte
- CoreContextFactory refaktorisieren
- Pläne zur Refaktorisierung von Saros-Context-Factory-Initialisierung über Mailinglist verteilen
- Weiter an Watchdog package arbeiten
Woche 2 (KW 46; 12.11.2015)
Aktivitäten
- Klassen in den Core verschieben
- Diese Wikiseite erweitern
Ergebnisse
Probleme
- Wusste nicht, wie neue Patch Sets angelegt werden können
Nächste Schritte
- Eine komplexere Klasse zum refaktorisieren finden
Woche 1 (KW 45; 05.11.2015)
Aktivitäten
- Übersicht über Codeduplikate geschafft
- Eine Wikiseite für ThesesHome erstellen
Ergebnisse
- Dokumente zur Übersicht über Codeduplikate erstellt
- Diese Wikiseite erstellt
Probleme
- Wege kreuzen sich mit anderer Arbeit, welche auch Refaktorisierung betreibt
Nächste Schritte
- Klassenduplikate finden und in den Core verschieben
Woche 0 (KW 44; 29.10.2015)
Aktivitäten
- Erstellung des ersten Gerrit-Patches
- Erster Versuch einer Refaktorisierung
Ergebnisse
- Gerrit-Patch erstellt (#2924)
Probleme
- Die Refaktorisierung war nicht zielführend und wurde abgelehnt
Nächste Schritte
- Überblick verschaffen: Codeduplikate und deren Abhängigkeiten
- Diese Wiki-Seite erstellen
Ergebnisse (Gerrit-Patches)
Siehe alternativ
das Suchergebnis aller Gerrit-Patches von mir.