Benutzer:Strittm/RefactoringHiwi/ReviewSystemEditor
Review System Editor
Einleitung
Dieser Artikel untersucht den System Editor der Uni Paderborn auf Architektur, internen Aufbau und weiteres.
Aufbau des Editors
Architektur
- Standardaufbau eines Graphiti Editors mit
- DiagramTypeProvider
- ToolBehaviorProvider
- FeatureProvider
- Verwendung des Pattern-Konzept von Graphiti
- Ableitung und Verwendung der PCM Komponenten mithilfe von PCM Installation
- aber keine eigene Projektstruktur des Editors
Design
Projektaufbau
- Das Gesamtprojekt wurde in folgende Pakete unterteilt:
- composite
- enthält allgemeine Dinge wie Utility-Klassen, Rendering-Sytles oder Farbdefinitionen
- diagram: enthält den Haupteditor
- DiagramTypeProvider
- FeatureProvider
- ToolBehaviorProvider
- features: enthält spezifische Features, welche nicht durch Pattern abgedeckt werden können
- handlers: enthält Handler, um spezifisches Diagram erzeugen zu können
- pattern: entählt alle Pattern, welche in der Palette angezeigt werden sollen
- AssemblyContextPattern
- property: enthält die Implementierung für die Properties-Sheets der grafischen Objekte
- composite
Aufbau der Pattern
- Unterteilung der Pattern in zwei Komponenten
- Connection Pattern
- normales Pattern für Elemente
- Implementierung von allgemeinem abstrakten Pattern sowie spezifischen Ableitungen (siehe Abbildung: exemplarisch für Connection Pattern)
Wartbarkeit
- Pro
- klarer Aufbau und Gliederung des Projektes
- Kommentierte Codestellen
- Vererbung und Utility-Klassen
- Contra
- keine Java-Docs
- kein Dokumentation (evtl. an Uni Paderborn)
- Namensgebung teilweise inkonsistent
Wiederverwendbarkeit
- Wiederverwendbarkeit gegeben durch
- klare Umsetzung des Pattern Konzeptes
- Standardaufbau des Editors
- keine spezifischen Zusatzimplementierungen wie Überschreiben des Editor-Verhaltens
- strukturiertes Aufteilen der einzelnen Klassen
Bugs
- Im laufenden Betrieb NullPointerException bei Erzeugen von AssemblyContext
- Name in Textfeld wird nicht angepasst
- Property Contributor kann nicht erzeugt werden: evtl. falscher Diagram Type in plugin.xml definiert.
- Somit auch keine Properties
- Objekte werden in Palette nicht richtig angezeigt.
- Connectoren können keine Elemente miteinander verbinden (Evtl falsche Elemente bei Test verwendet)
Fazit
- klarer Aufbau des Editors, an welchem man ansetzen könnte
- Verwendung des Pattern Konzeptes, wie auch in Palladio vorgesehen
- dennoch Bugs, evtl noch nicht komplett fertig implementiert
- somit nicht für sofortigen Einsatz als Ersatz für GMF System Editor zu verwenden
- mit etwas Graphiti Erfahrung sollte man sich im Projekt schnell zurecht finden