Next: Anwendungen mit beliebigen Graphen
Up: Modellierung von Graphklassen
Previous: Beispiel:
Der beschriebene Ansatz zur Modellierung von Graphklassen spiegelt
sich auch bei der Implementierung von Applikationen mit dem
Graphenlabor wider. Da mit einzelnen Programmen spezielle Probleme
bearbeitet werden, werden die Graphen, auf die ein Programm
zurückgreift, meistens eine ähnliche Struktur haben. Diese Programme
bearbeitet Graphinstanzen einer bestimmten Graphklasse.
Wenn Graphen zwischen verschiedenen Programmen ausgetauscht werden,
dann kann man die Schnittstelle der Programme durch die Graphklasse
definieren. Die einzelnen Programme können unabhängig voneinander
entwickelt werden. Es muß nur die Spezifikation aus der Graphklasse
eingehalten werden.
Im Graphenlabor werden die Graphklassen durch die
Typsysteme realisiert. Sie bestehen aus
- ein oder mehreren Typen, die für Knoten oder Kanten benutzt
werden können,
- je einem Attributierungsschema für jeden Typ und
- einer Subtyp-Relation, in der die Typhierarchie festgelegt wird.
Damit sind viele Informationen aus den EER-Diagrammen der Graphklassen
auf die Typsysteme übertragbar und werden im Graphenlabor zur
Konsistenzsicherung benutzt.
Für die Implementation von solchen Programmen ergibt sich folgendes
Vorgehen:
- 1.
- Bei der Analyse des Problemes wird eine Graphklasse definiert,
die zum Problem paßt.
- 2.
- Aus dieser Graphklasse muß ein Teilprogramm abgeleitet werden,
welches das erforderliche Typsystem erzeugt.
- 3.
- Bei der Implementation der Algorithmen werden die Graphinstanzen
mit dem erzeugten Typsystem verbunden. Dadurch können Knoten und
Kanten mit den erforderlichen Typen angelegt werden. Dabei ist
sichergestellt, daß alle Graphen der definierten Graphklasse
entsprechen. Andererseits darf man bei der Manipulation von Graphen
keine Graphstrukturen erzeugen, die nicht zur Graphklasse passen.
Wenn mehrere Programme dieselben Graphen benutzen, dann wird nur eine
gemeinsame Graphklasse definiert. In diesem Fall kann für ein
einzelnes Programm Schritt 1 und evtl. auch 2 entfallen, da sie schon
für ein anderes Programm erarbeitet wurden.
Next: Anwendungen mit beliebigen Graphen
Up: Modellierung von Graphklassen
Previous: Beispiel:
Friedbert Widmann
7/20/2003