Verteidigung Masterarbeit - Freie Universität Berlin

Verteidigung Masterarbeit
Evaluating the Use of a Web Browser to Unify GUI Development for
IDE Plug-ins
Christian Cikryt
Freie Universität Berlin
13.08.2015
Überblick
Motivation und Ziele
Evaluation des Browser-basierten Ansatzes
Auswertung der Prototyp-Implementierung
Zusammenfassung und Ausblick
,
Verteidigung Masterarbeit, BSE2015
2
Portierung von Saros nach IntelliJ
SWT
Swing
,
Verteidigung Masterarbeit, BSE2015
3
Motivation einer HTML-basierten GUI
É
Vermeidung von doppeltem GUI-Code
É
Vereinheitlichung der Oberfläche
É
Erfahrung mit SWT Browser in Eclipse
É
modernere Anzeigetechnologie
É
möglicherweise Performanzvorteile
,
Verteidigung Masterarbeit, BSE2015
4
Ziele dieser Arbeit
Bewertung des HTML-basierten Ansatzes:
É
Gegenüberstellung mit getrennter SWT-Swing-Entwicklung
É
Realisierbarkeit durch Prototyp beantworten
É
alle grundlegenden Mechanismen auf technischer Ebene
É
Probleme aufdecken (Stabilität und Kompatibilität)
É
Gerüst für spätere Implementierung vorgeben
É
Testbarkeit der GUI untersuchen
,
Verteidigung Masterarbeit, BSE2015
5
Evaluation
,
Verteidigung Masterarbeit, BSE2015
6
Überblick über anstehende
Evaluationsentscheidungen
1. Browser vs.
getrennte Swing und SWT Entwicklung
2. Auswahl der Browserkomponente
,
Verteidigung Masterarbeit, BSE2015
7
Vergleich Browser mit
konventionellem Ansatz
Kriterium
Browser
SWT und Swing
Aufwand (initial)
–
0
Evolvierbarkeit
++
–
Codeduplikation
++
–
Kompatibilität
–
++
GUI-Tests
+
–
Entscheidung für Browser-basierten Ansatz:
⇒ Aufwand vertretbar und interessantes Wissen
⇒ Wartbarkeit und Vermeidung von Duplikation
⇒ Kompatibilität als Herausforderung für den Prototypen
,
Verteidigung Masterarbeit, BSE2015
8
Mögliche Java-Browser
É
Zwei Java-GUI-Technologien: Swing und SWT
É
Browser muss in beide eingebettet werden
É
Auswahl an Java-Browsern begrenzt:
É
SWT Browser
É
JxBrowser (Swing)
É
JavaFX Webview
É
Native Swing (SWT in Swing)
,
Verteidigung Masterarbeit, BSE2015
9
Björn Kahlerts Erweiterung des SWT
Browsers
Motivation: SWT Browser erkennt vollständiges Laden einer
Webseite nicht zuverlässig
⇒ z. B. kritisch bei Benutzung von Javascript-Bibliotheken
SWT-Browser-Erweiterung:
⇒ Erkennung und Verzögerung von Funktionsaufrufen bis
definierter Zustand erreicht ist
⇒ Zusätzlich: verbesserte Log- und Debuggingausgabe,
nützliche Methoden (z. B. Look-and-Feel) ...
,
Verteidigung Masterarbeit, BSE2015
10
SWT Browser
É
verbreitetster Java-Browser
É
Erfahrung durch Björn Kahlerts Widgets
É
in Swing einbettbar
⇒ identischer Browser-Code für beide IDEs
É
Zugriff auf installierten Browser
⇒ abhängig vom Betriebssystem
⇒ Cross-Browser-Probleme
,
Verteidigung Masterarbeit, BSE2015
11
JxBrowser
É
nativer Swing-Browser
É
basiert auf Googles Chrome
É
keine Cross-Browser Probleme
É
proprietär, aber kostenlos für Saros
É
200 MB Footprint
É
Browser-Erweiterung wahrscheinlich nötig
,
Verteidigung Masterarbeit, BSE2015
12
JavaFX Browser
É
Teil von Oracles Java Plattform
É
in SWT und Swing einbettbar
É
keine Cross-Browser Probleme
É
ab Java 7 auf allen Plattformen
É
Nicht-Lauffähigkeit unter Java 6 bestätigt
,
Verteidigung Masterarbeit, BSE2015
13
Native Swing
É
Bibliothek rund um die SWT-AWT-Verbindung
É
Browser nicht isoliert
É
Björn Kahlerts Erweiterung nicht verfügbar
⇒ nicht als separate Alternative betrachtet
⇒ gegebenenfalls eine Sammlung von Wissen
,
Verteidigung Masterarbeit, BSE2015
14
Vergleich
Kriterium
Aufwand
SWT browser
machbar
Codeduplikation
Stabilität
gleicher Code
Best-Effort, evtl.
ausreichend
identischer
Aufwand
ca. 20 MB
Open-Source
Cross-browser
Größe
Lizenz
JxBrowser (nur IntelliJ)
Einbindung minimal,
Erweiterung nötig
Duplikation
stabil
identischer Aufwand
ca. 200 MB
proprietär, kostenlos
Entscheidung für SWT-Browser:
⇒ SWT-Browser naheliegendste Option in IntelliJ
⇒ JxBrowser als Fallback
⇒ eventuell auch nur für ein Betriebssystem
,
Verteidigung Masterarbeit, BSE2015
15
Entscheidung über Benutzung der
SWT-Erweiterung
Ausgangslage:
É
Nicht 1-zu-1 benutzbar (Mac OS spezifisch)
É
beachtliche Menge an diversen Funktionen
É
Code erfordert Einarbeitung
1. Frage: Neuentwicklung oder Erweiterung?
É
Wie viel Code müsste neugeschrieben werden?
⇒ Skizze einer Neuimplementierung
⇒ grundlegende Komplexität ähnlich
2. Frage: Änderungen zurück ins ursprüngliche Projekt?
É
nicht alle Anpassungen übernehmbar (Eclipse-spezifisch)
É
Entscheidung zusammen mit Björn Kahlert
⇒ Eigenständiges Projekt außerhalb von Saros
⇒ Vision: generische Bibliothek
,
Verteidigung Masterarbeit, BSE2015
16
Auswertung der
Prototyp-Implementierung
Identifizierte Risiken & Probleme
,
Verteidigung Masterarbeit, BSE2015
17
Zusammenspiel der Technologien
,
Verteidigung Masterarbeit, BSE2015
18
Identifizierte Einschränkungen des
SWT Browsers
É
É
É
Mac OS
É
SWT Browser in IntelliJ verlangt Java 6
É
IntelliJ unterstützt Java 7 und 8 nur experimentell
GNU/Linux
É
Browser funktioniert nicht in Eclipse 3.7 / 3.8
É
in Ubuntu 14.10 ein Paket nachinstallieren
Zukunftssicherheit
É
SWT_AWT Brücke wenig benutzt
É
z. B. ungefixter Bug für Java 7,8 unter Mac OS
É
JavaFX als Nachfolger von Swing
⇒ SWT wird weiterverfolgt / aktuell ist keines der Probleme
gravierend
⇒ JavaFX im Auge behalten
Verteidigung Masterarbeit, BSE2015
,
19
Zusammenfassung und Ausblick
É
Browseransatz erfolgsversprechend
É
Entscheidung für SWT Browser (vorläufig?)
É
lauffähiger Prototyp für Eclipse und IntelliJ
É
Erweiterung des SWT Browsers vorangetrieben
É
Grundentwurf für GUI-Tests
É
Weiterentwicklung in laufenden Arbeiten von Sieker und
Bohnstedt
É
Entwurf der HTML-GUI
É
Benutzbarkeit
,
Verteidigung Masterarbeit, BSE2015
20
Ende
Fragen?
,
Verteidigung Masterarbeit, BSE2015
21