diff options
author | yvesf <yvesf-git@xapek.org> | 2011-05-19 15:58:20 +0200 |
---|---|---|
committer | yvesf <yvesf-git@xapek.org> | 2011-05-21 10:32:48 +0200 |
commit | 3bb8df9501b570338d2a01f00976a83858bd4cbc (patch) | |
tree | 9a8dfc8a0697ff739e730a75267deae468fe9ca9 /document.tex | |
parent | 4a0ce7d1b5b087ef3bec0188048cd0111e861b2f (diff) | |
download | studienarbeit-2011-3bb8df9501b570338d2a01f00976a83858bd4cbc.tar.gz studienarbeit-2011-3bb8df9501b570338d2a01f00976a83858bd4cbc.zip |
Abgabeversion Druck
Diffstat (limited to 'document.tex')
-rw-r--r-- | document.tex | 176 |
1 files changed, 90 insertions, 86 deletions
diff --git a/document.tex b/document.tex index 35a7589..8aa76a0 100644 --- a/document.tex +++ b/document.tex @@ -1,7 +1,7 @@ % !TEX TS-program = pdflatex -shell-escape % !TEX encoding = UTF-8 Unicode \documentclass[%draft, -12pt,titlepage,abstracton,DIV=10]{scrreprt} +12pt,titlepage,abstracton,DIV=10,BCOR=0.5cm]{scrreprt} \usepackage[T1]{fontenc} \usepackage{ucs} \usepackage[utf8x]{inputenc} @@ -221,10 +221,10 @@ auszuliefern. aus der Eclipse Plattform kann auf aufwendige, fehleranfällige Eigenentwicklungen verzichtet werden. -\textbf{Bessere GUI\ } Für Benutzer von Eclipse wird das Arbeiten mit -Workspaces und Projekten in der Eclipse~Art bereits vertraut sein. Alle anderen -werden mit einem intuitiven Standard- --- weniger individuell-kreativen --- -Oberfläche konfrontiert. +\textbf{Bessere GUI\ } Für Benutzer von Eclipse wird das Arbeiten mit Workspaces +und Projekten beim Umgang mit KSM bereits vertraut sein. Alle anderen werden mit +einer intuitiven, Standard- --- weniger individuell-kreativen --- Oberfläche +konfrontiert. \textbf{Lizenzmanagement\ } KSM soll in naher Zukunft öffentlich verfügbar sein, QKSM nicht. Wäre QKSM ein Zusatzmodul (Bundle, Plugin) für KSM, dann @@ -267,7 +267,7 @@ In der Studienarbeit 1 wurde mit einem vereinfachten Datenmodell gearbeitet. Da zukünftig sowohl KSM/Swing als auch /RCP die gleichen Daten verarbeiten können sollten, liegt es nahe, dass das Format in dem die Daten persistent im -Dateisystem abgelegt sind vereinheitlicht werden sollte. +Dateisystem abgelegt sind, vereinheitlicht werden sollte. Im folgenden wird ausgeführt warum das aktuelle Datenformat in KSM/Swing nicht geeignet ist und wie ein neues entwickelt wurde. @@ -276,7 +276,7 @@ geeignet ist und wie ein neues entwickelt wurde. \begingroup \leftskip=1.5cm % ggf. verstellen \noindent In Anhang \ref{chapter:doku-datamodel} ist die vollständige Dokumentation des -neuen Datenformat zu finden dessen Entwicklung in diesem Kapitel beschrieben +neuen Datenformat zu finden, dessen Entwicklung in diesem Kapitel beschrieben wird. \par \endgroup @@ -306,7 +306,7 @@ Model-Objekte einfach mittels leicht annotierten JAXB serialisiert wurden <id>e36a0368-d8f6-40a2-bd29-375352045da8</id> <location> <x>531</x> - <y>104</y> + <y>104</y> </location> <nodeProperties/> </nodes> @@ -333,7 +333,7 @@ Speicherung erzeugte XML wieder. caption={Datenformat aus KSM/Swing Applikation Stand 22.02.2011}]{files/ksm-example.xml}\label{ksmswingdata} -Für das KSM/Swing Datenform existiert ein XML-Schema in der Ausarbeitung der +Für das KSM/Swing Datenformat existiert ein XML-Schema in der Ausarbeitung der Studienarbeit von Friedhelm Wolf \cite{wolf05} in Anhang 4. Es wurde aber in den folgenden Studienarbeiten nicht mehr weiter gepflegt und ist daher vermutlich nicht mehr gültig. @@ -346,19 +346,19 @@ Weiterhin scheinen die Konventionen beim Entwurf dieses Formates (oder ,,Schema'') eher beliebig gewesen zu sein. Dies fällt als erstes auf bei der Benennung der der Eigenschaftsnamen (Tags), wo \texttt{CamelCase} (,,Microsoft Stil''), \texttt{javaStilArt} und -underline\_stil wild gemischt werden. Die Benamung verwendet teils einen -Typ-Prefix (\texttt{sIconPath}), teils auch nicht. +\texttt{underline\_stil} wild gemischt werden. Die Benamung verwendet teils +einen Typ-Prefix (\texttt{sIconPath}), teils auch nicht. Die Ein- und Ausgabe erfolgt in KSM/Swing mithilfe der Java-Bibliothek -\textit{com.machinedialog}. Von Seiten der Projektbetreuung wurde geäußert, dass -es gewünscht ist diese alte Bibliothek nicht mehr weiter zu verwenden. Zu den +\textit{com.\-machine\-dialog}. Von Seiten der Projektbetreuung wurde geäußert, +dass es gewünscht ist diese alte Bibliothek nicht mehr weiter zu verwenden. Zu den genauen Gründen sei auf die Studienarbeit\,\oldstylenums{1} von Tobias Dreher verwiesen \cite[S. 24]{dreher10}. Die fehlende Dokumentation und der anscheinend unstrukturierte Entwurf sprachen ebenfalls gegen die Weiterverwendung dieses Datenformates. In Sicht zur Zukunft ist das Format ungeignet, weil es nicht erlaubt, dass -zusätzliche Eigenschaften rückwärtskompatibel abzubilden. +zusätzliche Eigenschaften rückwärtskompatibel abgebildet werden. Weiterhin ist es ist nicht (mehr) durch ein XML-Schema gestützt und es wurde im Laufe der Entwicklung mehrmals beliebig verändert. Es ist nicht dokumentiert und @@ -370,7 +370,7 @@ Wie an diesen beiden Beispielen zu sehen ist, bietet das XML-Format aus der Studienarbeit~1 nicht das Ausdrucksvermögen des KSM/Swing Format. Letzteres ist jedoch ungeeignet zur Nutzung in einer neuen KSM RCP-Applikation. -Daher lag es nahe ein Format zu entwerfen welche sowohl von KSM/Swing mithilfe +Daher lag es nahe ein Format zu entwerfen, welches sowohl von KSM/Swing mithilfe einer sauberen neuen Import/Export Infrastruktur als auch in der RCP-Anwendung genutzt werden kann. Es wurde hierbei ein Ansatz gewählt der sowohl Knoten, Gruppen von Knoten (auch bekannt als ,,Hirarchien'') als auch gerichtete @@ -378,18 +378,18 @@ Verbindungen zu einem anderen Knoten abbilden kann. Alle drei Objekte können durch Eigenschaften dynamisch, nicht schema-gebunden mit Informationen angereichert werden. -\par -\begingroup -\leftskip=1.5cm % ggf. verstellen -\noindent Die Implementierung des neuen Datenformat in \textbf{KSM/Swing} wurde -von Tobias Dreher vorgenommen. Siehe dazu seine Studienarbeit \cite{dreher11}. -\par -\endgroup +\par \begingroup \leftskip=1.5cm % ggf. verstellen +\noindent +Die Implementierung des Exports in das neue Datenformat in \textbf{KSM/Swing} +wurde von Tobias Dreher vorgenommen. Siehe dazu seine Studienarbeit +\cite{dreher11}. \par -Zu festen Standardisierung wurde ein XML-Schema erstellt woraus wiederum mittels -des XML-Schema-Compiler (xjc) von JAXB Java-Klassen erzeugt werden die mit -weiteren, handgeschrieben Klassen eine Bibliothek zur Abbildung von +\endgroup + +Zu festen Standardisierung wurde ein XML-Schema erstellt, woraus wiederum +mittels des XML-Schema-Compiler (xjc) von JAXB Java-Klassen erzeugt werden, die +mit weiteren, handgeschrieben Klassen eine Bibliothek zur Abbildung von KSM-Diagrammen im Speicher sowie Funktionen zum Laden und Speichern bietet (Abb. \ref{fig:class-diagram-xmlschema}). Diese kann sowohl von KSM/RCP als auch beliebigen Java-Anwendungen verwendet werden. @@ -402,9 +402,9 @@ Model-Klasse} \label{fig:class-diagram-xmlschema} \end{figure} -Die Datenmodell Bibliothek (Name \texttt{de.\-dhbw.\-horb.\-ksm.\-xmlschema}) -ist als Eclipse-Project angelegt kann jedoch auch nur mit Apache-Ant verwaltet -werden (ist somit Netbeans kompatibel). Das Projektverzeichnis enthält weiterhin +Die Datenmodell Bibliothek (Projektname: +\texttt{ksm-model}) ist als Eclipse-Project angelegt, kann jedoch auch nur mit +Apache-Ant verwaltet werden (ist somit Netbeans kompatibel). Das Projektverzeichnis enthält weiterhin umfassende Unit-Tests, teils im Beaviour-Driven Stil mithilfe der Bibliothek \textit{mockito}. @@ -458,20 +458,21 @@ Das \texttt{\ldots qksm}-Projekt ist als Eclipse-Projekt vom Typ ,,Plugin-Fragment'' abgelegt. Das bedeutet, es hängt direkt vom KSM-Core Plugin als Host-Plugin ab und ist kein eigenständiges (OSGi-)Bundle. Es wird wird beim Start mit dem Host-Plugin vereinigt. Diese vorgehensweise eignet sich um ein -Plugin ohne es zu verändern nachträglich um Features wie z.B. -Internationalisierung oder plattformabhängigen Code zu erweitern. +Plugin ohne es zu verändern nachträglich um Features, wie z.B. +Internationalisierung oder plattformabhängigen Code, zu erweitern. Ein Fragment Projekt unterscheidet sich von einem Plugin Projekt in weiteren -Punkten. Da es kein eigenständiges Bundle ist, besitzt keine Activator-Klasse. -Die Datei zur Beschreibung der Extensions heißt \texttt{fragment.xml} anstatt -\texttt{plugin.xml}. In \texttt{META-INF/MANIFEST.MF} wird daher kein Activator -deklariert - jedoch mit \texttt{Frag\-ment-Host} das zu erweiternde Plugin. +Punkten. Da es kein eigenständiges Bundle ist, besitzt es keine +Activator-Klasse. Die Datei zur Beschreibung der Extensions heißt +\texttt{fragment.xml} anstatt \texttt{plugin.xml}. In +\texttt{META-INF/MANIFEST.MF} wird daher kein Activator deklariert - jedoch mit +\texttt{Frag\-ment-Host} das zu erweiternde Plugin. Das \texttt{\ldots model} Projekt wurde durch den Eclipse Assistenten ,,Plug-In from existing JAR'' erstellt. Es enthält die \texttt{.class} Dateien aus dem JAR das im Projekt \texttt{ksm-model} durch ant erzeugt wird. Die zukünftige -aktualisierung kann einfach dadurch erfolgen, dass die Class-Files von Hand in -das \texttt{\ldots model} Projekt kopiert werden. Dadurch dass man auf diesen +Aktualisierung kann einfach dadurch erfolgen, dass die Class-Files von Hand in +das \texttt{\ldots model} Projekt kopiert werden. Dadurch dass man auf diesem Weg das \texttt{ksm-model} Projekt als OSGi Bundle zur Verfügung hat können KSM/RCP-erweiternde Plugin dieses einbinden. Alternativ wäre es möglich gewesen die \texttt{.jar}-Datei aus \texttt{ksm-model} in das \texttt{\ldots @@ -493,7 +494,7 @@ Einstiegspunkt in die Ausführung. Diese implementiert das Interface das grundlegende Aussehen mithilfe von Perspektiven und anhand einem \texttt{Work\-bench\-Window\-Advisor} steuert \cite{vogelrcp}. -In KSM/RCP ist im Kern-RCP Plugin die gesamte KSM-Editierfunktionalität +Im \texttt{\ldots ksm.core} Plugin ist die gesamte KSM-Editierfunktionalität enthalten. Dazu gehört der GEF-basierte Editor, das Outline und die Projektansicht. @@ -510,14 +511,15 @@ Projektansicht. Der mit dem Graphical Editing Framework (GEF) umgesetzte Editor ist teil des \texttt{\ldots ksm.\-core} Plugin-Projekt. GEF geht von einem existierenden Datenmodell aus welches hier durch das Plugin-Project \texttt{\ldots ksm.model} -anstelle von \texttt{ksm-model} zur Verfügung gestellt wird \cite{gef1}. +anstelle von \texttt{ksm-model} zur Verfügung gestellt wird. Bei der ,,Initialisierung'' eines GEF-Editors wird dem Editor eine Factory zugewiesen die für die Objekte/verschiedenen Typen des Datenmodells GEF-EditParts erzeugen kann -(\texttt{Diagram\-Editor\-\#configureGraphicalViewer} (Abb. \ref{fig:model}). +(\texttt{Diagram\-Editor\-\#configureGraphicalViewer}, Abb. \ref{fig:model}) +\cite{gef1}. -Anschliessend wird des Datenmodell zugewiesen +Anschliessend wird das Datenmodell zugewiesen (\texttt{DiagramEditor\-\#initialize\-Graph\-ical\-Viewer}). Der GEF-Editor ruft nun mit dem ,,Parent''-Objekt des Datenmodells die \texttt{Part\-Factory} auf und erhält das entsprechende EditPart. Der weitere Abstieg in der Hirarchie des @@ -556,8 +558,8 @@ Alle Manipulationen des Datenmodells werden durch sogenannte \texttt{Commands} beschrieben. Abbildung \ref{fig:commands} zeigt die Basisklasse und abgeleitete Klassen die Manipulationen des \texttt{Node}-Typ beschreiben. -Commands implentieren jeweils die Durchführung der Manipulation als auch das -Rückgängig machen. Durch GEF werden die Commands bei Anwendung auf einem Stack +Commands implementieren jeweils die Durchführung der Manipulation als auch das +rückgängig Machen. Durch GEF werden die Commands bei Anwendung auf einem Stack abgelegt wodurch das klassische Undo/Redo ermöglicht wird. Dieses Pattern verhindert weiterhin, dass das Datenmodell an beliebigen @@ -583,8 +585,9 @@ Das ,,Simulation'' Project \texttt{\ldots ksm.simulator} zeigt als Prototyp wie es möglich ist, Daten die im Editor bearbeitet werden live mit einem Chart auszuwerten. -Der Chart ist als View implementiert. Diese View besitzt für mehrere Zustände -für alle KSM-Editoren die geöffnet sind und wird entsprechend aktualisiert. +Der Chart ist als View implementiert. Die View besitzt mehrere +Zustände/Ansichten für alle KSM-Editoren die geöffnet sind und es wird immer die +zum aktuell fokussierten Editor passende dargestellt. Für den Linechart wird die Bibliothek SWT-Chart verwendet die dem Projekt beigelegt ist. Sie wird im OSGi-Manifest angegeben: @@ -609,11 +612,12 @@ des KSM-Nodes auf die Y-Achse auf und die KSM-Node-Beschriftung auf die X-Achse. \section{Property Editor} Damit ein Model für die Standard Eclipse-Properties-View nötigen Informationen bereitstellt muss eine \texttt{Prop\-erty\-Source} bereitgestellt werden. Dies geschieht im -einfachen Fall indem die Model-Klasse \texttt{IProp\-erty\-Source\-Provider} implementiert. +einfachen Fall indem die Model-Klasse \texttt{IProp\-erty\-Source\-Provider} +implementiert wird. Ist dies nicht der Fall fragt die Properties-View das \texttt{EditPart} über -\texttt{getAdapter\-(IProp\-erty\-Source\-Provider.class)} nach einem Objekt das -die Properties des Model beschreibt. Dieser Ansatz wurde gewählt, da die +\texttt{getAdapter\-(IProp\-erty\-Source\-Provider.class)} nach einem Objekt, +das die Properties des Model beschreibt. Dieser Ansatz wurde gewählt, da die Klassen des Models nicht angepasst werden konnten. Dies ist in einer Designschwäche der Model-Bibliothek begründet. Es ist noch nicht möglich eigene, abgeleitete Klassen für das Model zu verwenden. @@ -625,7 +629,7 @@ Klassen zur Verwaltung der Properties. \begin{figure}[mt] \centering -\includegraphics[width=0.7\textwidth]{images/ext-property-descriptors.PNG} +\includegraphics[width=0.5\textwidth]{images/ext-property-descriptors.PNG} \caption{Klassen des Extension Point für Property Deskriptoren} \label{fig:ext-property-descriptors} \end{figure} @@ -653,15 +657,15 @@ Extensions registriert wurden. Extensions sehen so aus, dass eine von \texttt{Abstract\-Property\-Descriptor\-Advisor} abgeleitete Klasse (im -Beispiel sind schon BaseNode[Group]PropertyAdvisor dargestellt die die +Beispiel sind schon BaseNode[Group]PropertyAdvisor dargestellt, die die Manipulation der grundlegenden Eigenschaften Farbe und Beschriftung erlauben) angegeben wird die Descriptoren für Eigenschaften des Model-Objekt erstellt. Abbildung \ref{fig:property-declaration-extensionpoint} zeigt wie der Extension Point deklariert wurde. Das gezeigte GUI ist eine Maske für eine XML-Datei die -im Prinzip ein XML-Schema für das XML ist mit dem der Extension-Point -genutzt werden kann. In diesem Fall können auf den Extension-Point beliebig -viele ,,advisor'' Elemente angelegt werden die auf eine von +im Prinzip ein XML-Schema für das XML ist mit dem der Extension-Point von +Client-Plugins konfiguriert wird. Auf diesen Extension-Point können beliebig +viele ,,advisor'' Elemente angelegt werden, die auf eine von \texttt{Abstract\-Property\-Descriptor\-Advisor} abgeleitete Klasse zeigen und ein Attribut \texttt{type} haben (Abb. \ref{fig:eclipse-property-usage-extensionpoint}). @@ -673,9 +677,8 @@ Funktionalitäten: [Editoren für] ,Edge Values' – Kanteneigenschaften [..] ,Node Values' – Knoteneigenschaften'' (Studienarbeit Christian Riess \cite[S. 24]{riess03}). -Im Rahmen dieser Studienarbeit wurde ein Table-Editor prototypisch entworfen -welcher Knoteneigenschaften manipulieren kann. Abbildung \ref{fig:table-editor} -zeigt die dabei eingeführten Neuigkeiten. +Abbildung \ref{fig:table-editor} zeigt den Table-Editor der im Rahmen dieser +Studienarbeit prototypisch entworfen wurde. \begin{figure}[ht] \centering @@ -685,18 +688,17 @@ zeigt die dabei eingeführten Neuigkeiten. \end{figure} Rot markiert ist die neue View des ,,Table-Editor''. Sie wird durch den Aufruf -der Table-Editor Perspektive aktiviert (Button ebenfalls rot markiert). +der Table-Editor Perspektive aktiviert (Button ist ebenfalls rot markiert). Bei der View handelt es sich \texttt{PageBookView}. Sie instanziert für jeden offenen Editor einen Table-Editor. Es wird jeweils der zu dem fokussierten Diagramm-Editor passende Table-Editor angezeigt. Die Implentierung folgt dabei dem Eclipse-Standard wie er auch in Outline verwendet wird. -Änderungen am Diagramm übernimmt der Table-Editor einfacherweise indem er auf -alle Node/NodeGroup Objekte listener registriert sondern er beobachtet den -Command-Stack des Editors. Dies funktioniert nur solange wie keine weiteren -Änderungen am Modell vorgenommen werden die kein Command im Diagramm-Editor -Command-Stack erzeugen. +Änderungen am Diagramm übernimmt der Table-Editor einfacherweise nicht indem er +auf alle Node/NodeGroup Objekte Listener registriert, sondern er beobachtet den +Command-Stack des Editors. Dies funktioniert nur solange alle weiteren +Änderungen am Modell Command-Objekte im Diagramm-Editor Command-Stack erzeugen. Der Table-Editor nutzt im Prototyp noch keine Undo-/Redo-Funktionalität sondern arbeitet ,,dreckig'' direkt am Datenmodell. @@ -713,7 +715,7 @@ werden. Weiterhin werden Vorschläge zur stärken Integration von Eclipse-Tools in das Studium aus der Sicht eines Studenten vorgestellt. -Es bei dieser Studienarbeit mit dem Eclipse \oldstylenums{3}.6 / Helios Package +Es bei dieser Studienarbeit mit dem Eclipse \oldstylenums{3}.6/Helios Package ,,for RCP and RAP Developers'' gearbeitet. \section{Hilfsmittel} @@ -740,10 +742,10 @@ Klassen ist meist sehr hilfreich. Zum Einstieg ist das RCP Tutorial von Lars Vogel empfehlenswert \cite{vogelrcp}. Zu den Grundlagen von GEF sind die Folien eines EclipseCon Tutorials interessant \cite{gefslides}. Tiefergehende jedoch teils veraltete Informationen bietet -das IBM Redbook zu diesem Thema \cite{gefredbook}. +das IBM RedBook zu GEF \cite{gefredbook}. Einen allgemeinen Überblick und guten Enstieg in die Eclipse Plugin Entwicklung -(weniger RCP) findet sich in der Seminararbeit im Kurs Software-Engineering +findet sich in der Seminararbeit im Kurs Software-Engineering 2011/\textsc{TIT2008} von Felix Kienzle \cite{kienzle11}. Da Eclipse~RCP kein monolithisches Produkt ist sondern sich aus einzelnen @@ -840,22 +842,24 @@ it2008 Jahrgang nicht mehr zugänglich. Die Veröffentlichung - bzw. eine sauber strukturierte Ablage - ist ein Baustein im Prozess der Zustand ändert. -In Hinblick auf eine Open-Source Entwicklung wird das private und sich als -unzuverlässig herausgestellte Subversion-Repository gegen ein Git-Repository -getauscht. Die Wahl für Git begründet sich durch die starke Präsenz im -Open-Source Bereich, besonders auch in Eclipse nahen Projekten und dadurch, dass -bereits im Kurs Software-Engineering mit Git gearbeitet wurde. Es wird die -ebenfalls im Studium bereits verwendete Plattform \texttt{github.com} verwendet. -Dort stehen weitere, integrierte Funktionen wie Messaging, Issue-Tracker und -Wiki zur Verfügung. Diese wurden jedoch im Rahmen dieses Projektes noch nicht -eingesetzt. +In Hinblick auf eine Open-Source Entwicklung wird SVN Repository an der +Hochschule, welches sich zeitweise als unzuverlässig herausstellte, gegen ein +Git-Repository getauscht. + +Die Wahl für Git begründet sich, neben der Abkehr von SVN aus allgemeinen +Gründen, gegenüber konkurrenzfähigen Versionskontrollsystemen durch die +starke Präsenz im Open-Source Bereich, besonders auch in Eclipse nahen Projekten +und dadurch, dass bereits im Kurs Software-Engineering mit Git gearbeitet wurde. +Es wird die ebenfalls im Studium bereits verwendete Plattform +\texttt{github.com} verwendet. Dort stehen weitere, integrierte Funktionen wie +Messaging, Issue-Tracker und Wiki zur Verfügung. Diese wurden jedoch im Rahmen +dieses Projektes noch nicht eingesetzt. Die Quellen des Eclipse basierten KSM/RCP werden unter dem Github Organization-Account \textit{dhbw-horb} -({\small\url{https://dhbw-horb.github.com}}) veröffentlicht bzw. hinterlegt -werden. Ebenso wird ein Verweis auf die KSM-Website hinterlegt. Zukünftige -Entwickler erhalten Zugriff, indem sie Mitglied dieses Organization-Account -werden. +({\small\url{https://dhbw-horb.github.com}}) veröffentlicht bzw. hinterlegt. +Ebenso wird ein Verweis auf die KSM-Website hinterlegt. Zukünftige Entwickler +erhalten Zugriff, indem sie Mitglied dieses Organization-Account werden. Zwar wird der Quellcode möglicherweise veröffentlicht - von Open-Source im Sinne der allgemeinen Bedeutung ist allerdings nicht zu sprechen, da keine Open-Source @@ -882,19 +886,19 @@ Prozessgrößen (QKSM) zu verwenden ohne die ,,Hauptapplikation'' verändern zu müssen was im schlimmstenfall wieder zu einer Zerspaltung der Projekte führen könnte. -Die grafische Darstellung von Hirarchien in KSM/RCP unterscheidet sich von der -Darstellung im Swing-basierten KSM. Meiner Ansicht erfordert das Thema +Die grafische Darstellung von Hirarchien in KSM/RCP unterscheidet sich optisch +von der Darstellung im Swing-basierten KSM. Meiner Ansicht erfordert das Thema \textit{Hirarchien} eine radikale Lösung z.B. durch die Ersetzung von Hirarchien durch ,,Tags'' mit denen Knoten gruppiert werden können. Probleme wie ,,Phantom -Knoten''\cite[S. 49]{pustelnik10} gibt es jedoch in KSM/RCP da die -Daten im Modell auch echt hirarchisch abgelegt sind. +Knoten''\cite[S. 49]{pustelnik10} gibt es jedoch in KSM/RCP da die Daten im +Modell auch echt hirarchisch abgelegt sind. Im Bereich des grafischen Editors könnte möglicherweise bald unter Verwendung -des Eclipse Graphiti Project welches auf GEF aufbaut einiges vereinfacht werden. -Weiterhin entfällt bei Beendung der KSM/Swing Entwicklung der Grund, das +des Eclipse Graphiti Project, welches auf GEF aufbaut, um einiges vereinfacht +werden. Weiterhin entfällt bei beendung der KSM/Swing Entwicklung der Grund, das Datenmodell unabhängig von Eclipse-Bibliotheken zu halten und das Datenmodell -könnte möglicherweise besser mit den Eclipse Modeling Werkzeugen erstellt -werden. +könnte einfacher und professioneller mit den Eclipse Modeling Werkzeugen +erstellt werden. %% Table-Editor Mit dem \emph{Table-Editor} Entwurf wurde gezeigt, dass die aus KSM/Swing @@ -913,7 +917,7 @@ des Simulierens ist nicht implementiert. In der \emph{Datenmodell} Library \texttt{ksm-model} sollte es möglich sein, Vererbung zu Nutzen um die Model-Klassen für den Einsatzbereich zu erweitern. Hierzu -müsste zur Instantierung neuer Model-Objekte jedoch ein Factory-Pattern +müsste zur Instanzierung neuer Model-Objekte ein Factory-Pattern eingesetzt werden was nicht der Fall ist. Auch in der Datenmodell Library wurde der Ansatz gewählt, dass sich auf alle |