Benutzer:Strittm/RefactoringHiwi/ReviewSystemEditor

Aus SDQ-Wiki

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

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)

Connection Pattern UML Diagram

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