Einführung
Mit dem Graphical Graph Designer ist es möglich, effektiv und schnell einen Graphen visuell zu erstellen.
Dieser kann gespeichert oder exportiert werden, um ihn z.B. in BlueJ zusammen mit den NRW-Abiturklassen
Graph, Vertex und Edge zu nutzen. Auch ist es möglich, direkt im Graphical Graph Designer Tiefen- und
Breitensuchen zu simulieren und sogar mit dem erstellten Graphen zu programmieren.
Design
Im Design-Modus können Graphen erstellt, geladen, gespeichert und exportiert werden.
Graphen erstellen, öffnen und speichern
Graphen können im XML-Format neu erstellt (ctrl-n), gespeichert (ctrl-s) und wieder
geöffnet werden (ctrl-o).
Zudem ist es auch möglich, den Quelltext zu exportieren, mit dem der visuell erstellte Graph
in Java textuell generiert werden würde (ctrl-g). Dies geht auch als Export einer Java
Klasse, die es erlaubt, den Graphen
direkt in Java aus der generierten Klasse zu importieren (ctrl-e). Kopiert man die exportierte
Java-Klasse z.B. in ein BlueJ-Projekt, so kann der Graph mit Graph g = ExportedGraph.importGraph();
direkt importiert werden.
Das erspart sehr viel
Schreibarbeit und war die Hauptmotivation für die Entwicklung der Software.
Erstellen und Bearbeiten
Neue Vertices können mit der Taste n an zufälliger Stelle oder mit der rechten Maustaste am
gewünschten Ort hinzugefügt werden. Neue Edges können durch Auswählen eines Vertex und
Drücken der Taste e oder durch Auswählen eines Vertex und Klicken der rechten Maustaste
und Auswahl des entsprechenden Menüpunktes hinzugefügt werden. Vertices und Edges können
durch Auswahl und Drücken der Taste r gelöscht werden oder durch den entsprechenden
Menüpunkt im Kontextmenü nach Drücken der rechten Maustaste. Ein Doppelklick auf einen
Vertex oder eine Edge setzt eine Markierung oder hebt diese wieder auf. Im Tabelleneditor
auf der rechten Seite ist dies ebenso möglich durch Setzen eines Hakens. Weiterhin ist
es möglich, die ID eines Vertex oder das Gewicht einer Edge über das Kontextmenü mittels
rechter Maustaste bzw. über den Tabelleneditor zu ändern. Dargestellter Graph und
Tabelleneditor sind dabei immer synchronisiert. Die angezeigten Nummern im Tabelleneditor
sind nur zur Information und geben die Reihenfolge der Elemente in den jeweiligen Listen
wieder.
Simulate
Im Simulations-Modus können voreingestellte Tiefen- und Breitensuchen visualisiert werden.
Tiefen- und Breitensuche
Dieser Modus bietet die Möglichkeit, zwei komplette Traversierungen des aktuell geladenen
Graphen zu animieren, einmal mit einer Tiefensuche (DFS) und einmal mit einer Breitensuche (BFS).
Zudem kann im Graphen auch von einem Startpunkt bis zu einem Ziel-Vertex gesucht werden, ebenso
mittels animierter Tiefen- oder Breitensuche. Dazu kann die Geschwindigkeit der Animation
über den Regler eingestellt werden. Durch Klicken auf den Button 'Unmark all' werden alle
Markierungen wieder rückgängig gemacht.
Code
Im Code-Modus kann direkt mit dem visualisierten Graphen programmiert werden.
Voraussetzungen
Das Programmieren mit dem aktuell geladenenen Graphen wurde mit Java JRE und JDK unter
Windows, Linux und MacOS getestet. Auf allen Systemem lief dieses Feature ab Java 1.8
entweder durch Start der Software per Doppelklick oder durch Start der Software über
die Kommandozeile (java -jar GGD.jar). Keine Probleme wurden bisher unter OpenJDK 11
gefunden.
Programmieren
Im Code-Editor wird eine Klasse zur Verfügung gestellt, in der der Graph als Instanz mit
Namen g automatisch zur Verfügung steht. Die Methode run() wird beim Klick auf RUN
automatisch ausgeführt. Es können eigene Methoden hinzugefügt und die NRW-Klassen
Graph, Vertex, Edge, List und Queue verwendet werden. Im Menü 'Help' können einige
Demo-Codes geladen werden, die die Möglichkeiten mit dem Code-Editor andeuten. Der
Editor ersetzt keine IDE wie BlueJ, kann aber zum Antesten einiger Algorithmen durchaus
dienen.
SLXS.de - Dr. Daniel Janssen. Gymnasium Dionysianum Rheine.