INHALTSVERZEICHNIS
1
Inhaltsverzeichnis
1 Einleitung
2 Das AGG-System und sein Graphbegri
2.1 AGG-Graphen : : : : : : : : : : : : : : : : : : : : : : : :
2.2 Der AGG-Graph-Editor : : : : : : : : : : : : : : : : : : :
2.3 Graphtransformation mit dem AGG : : : : : : : : : : : :
2.3.1 Graphtransformation mit einfachen Graphen : : :
2.3.2 Graphtransformation mit hierarchischen Graphen :
Graphische Spezikation ausgewahlter Teile von AGG { einem
algebraischen Graphgrammatiksystem
Mirko Conrad, Magdalena Gajewsky, Rainer Holl-Biniasz, Michael Rudolf,
Jochen Demuth, Stephan Weber
Reiko Heckel, Jurgen Muller, Gabriele Taentzer, Annika Wagner
14. Marz 1995
3 Modellierung von AGG-Graphen
AGG-Modell : : : : : : : : : : : : : : : : : : : : : : : : :
Terminologien : : : : : : : : : : : : : : : : : : : : : : : : :
AGG-Modell-Grammatik : : : : : : : : : : : : : : : : : :
Korrektheit der AGG-Modell-Grammatik : : : : : : : : :
3.4.1 Konsistenz der AGG-Modell-Grammatik : : : : : :
3.4.2 Vollstandigkeit der AGG-Modell-Grammatik : : :
3.5 Unabhangigkeit der Regeln der AGG{Modell{Grammatik
3.5.1 Parallele Unabhangigkeit : : : : : : : : : : : : : :
3.5.2 Sequentielle Unabhangigkeit : : : : : : : : : : : : :
3.1
3.2
3.3
3.4
4 Spezikation im Rahmen des "logischen Graphmodells\
3
4
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
: 4
: 7
: 8
: 8
: 11
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
4.1 Das logische Graphmodell : : : : : : : : : : : : : : : : : : : : :
4.2 SPO-Graphtransformation ohne konzeptionelle Erweiterungen :
4.2.1 Spezikation "Knoten einfugen\ : : : : : : : : : : : : :
4.3 Negative Anwendungsbedingungen : : : : : : : : : : : : : : : :
4.3.1 Informelle Beschreibung : : : : : : : : : : : : : : : : : :
4.4 Transaktionen : : : : : : : : : : : : : : : : : : : : : : : : : : : :
4.4.1 Informelle Beschreibung : : : : : : : : : : : : : : : : : :
4.4.2 Spezikation "Knoten einfugen\ : : : : : : : : : : : : :
4.4.3 Spezikation "Objekt loschen\ : : : : : : : : : : : : : :
4.4.4 Konsistenznachweise fur Transaktionen : : : : : : : : :
4.5 Amalgamierung : : : : : : : : : : : : : : : : : : : : : : : : : : :
4.5.1 Informelle Beschreibung : : : : : : : : : : : : : : : : : :
4.5.2 Spezikation "Objekt selektieren\ : : : : : : : : : : : :
4.5.3 Spezikation "Window Open\ : : : : : : : : : : : : : : :
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
14
15
15
17
18
20
22
25
25
26
27
27
29
29
31
31
33
33
34
35
36
37
37
38
39
INHALTSVERZEICHNIS
2
4.5.4 Spezikation "Selection Complement\ : : : : : : : : : : : : : : : : : : 40
4.5.5 Spezikation "Copy Connect\ : : : : : : : : : : : : : : : : : : : : : : : 41
5 Spezikation im Rahmen des "Layout-Graphmodells\
5.1 Das Layout-Graphmodell : : : : : : : : : : :
5.2 Attributierte Graphtransformation : : : : : :
5.2.1 Informelle Beschreibung : : : : : : : :
5.2.2 Attributierung und Signaturen : : : :
5.2.3 Amalgamierungsregeln mit Attributen
5.2.4 Benutzerinteraktion : : : : : : : : : :
5.2.5 Modellierungsvarianten : : : : : : : :
5.2.6 Spezikation "Window Resize\ : : : :
5.2.7 Spezikation "Kante Einfugen\ : : : :
5.2.8 Vergleich der Modellierungsvarianten :
6 Spezikation eines erweiterten AGG-Systems
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
6.1 Petrinetze : : : : : : : : : : : : : : : : : : : : : : : : : : : :
6.1.1 Informelle Beschreibung : : : : : : : : : : : : : : : :
6.2 Das erweiterte System : : : : : : : : : : : : : : : : : : : : :
6.2.1 Informelle Beschreibung : : : : : : : : : : : : : : : :
6.2.2 Spezikation des Gesamtsystems : : : : : : : : : : :
6.2.3 Spezikation der Systemverwaltungskomponente : :
6.2.4 Spezikation der Graphtransformationskomponente :
6.2.5 Spezikation einer Analysekomponente : : : : : : : :
6.2.6 Spezikation der Editorkomponente : : : : : : : : :
6.3 Analyse von Petrinetzen : : : : : : : : : : : : : : : : : : : :
6.3.1 Analyse der Graphtransformationskomponente : : :
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
44
44
45
45
45
51
52
54
57
59
65
65
65
65
66
66
68
70
72
76
79
83
84
7 Bewertung und Ausblick
86
8 Konventionen
87
1 EINLEITUNG
3
1 Einleitung
Der vorliegende Bericht ist eine uberarbeitete Fassung eines unveroentlichten studentischen
Projektberichtes, der die Ergebnisse der Lehrveranstaltung "Spezizieren mit Graphgrammatiken und Petrinetzen\ im Wintersemester 1993/94 darstellte.
Thema dieses Projektes
war die graphische Spezikation komplexer Softwaresysteme am Beispiel des Algebraischen
Graphgrammatiksystems AGG (LB93], Bey92]). Anhand dieses Beispiels sollte gepruft werden, ob und wie sich algebraische Graphtransformationen und Petrinetze zur Spezikation
von Softwaresystemen eignen.
Um dieser Aufgabe gerecht werden zu konnen, wurde der zugrundegelegte Single-PushoutAnsatz fur Graphtransformationen (im folgenden kurz SPO-Ansatz genannt) (Low93])
schrittweise um weitere Ausdrucksmittel, wie negative Anwendungsbedingungen, Transaktionen, allquantizierte amalgamierte Ableitungen und Attribute erweitert. Die Erweiterungen werden informell eingefuhrt, eine formale Darstellung des verwendeten Kalkuls wird in
HMTW94] gegeben. Im Rahmen des Doppel-Pushout-Ansatzes (Ehr79]) wurde in TB94]
und Tae92] eine Spezikation einer kleineren Auswahl an Editoroperationen entwickelt, wobei sich beide Arbeiten auf die Amalgamierung als zusatzliches Ausdrucksmittel beschranken.
Die in diesen Arbeiten vorgestellten Ideen und Konzepte gingen wesentlich in die Konzeption
der vorliegenden Spezikation ein. Wahrend sowohl die Komplexitat des Problems als auch
die vorgeschlagenen Erweiterungen des Kalkuls im Rahmen der algebraischen Graphtransformationen relativ neu sind, gibt es z.B. in PROGRES (Sch91]), einer auf Graphersetzung
basierenden Programmiersprache, mehr oder weniger vergleichbare Konzepte und Fallstudien. Z.B. ist in Zun95] eine Entwicklungsumgebung fur PROGRES in PROGRES selbst
speziziert worden.
Der Bericht beginnt mit einer Einfuhrung in das AGG-System, das aus einem Grapheditor
und einer auf dem SPO-Ansatz basierenden Ableitungskomponente besteht.
Dann werden ausgewahlte Funktionen in mehreren Ausbaustufen speziziert. Dazu fuhren
wir zunachst das AGG-Modell als Reprasentation des dem AGG zugrundeliegenden Graphbegris (kurz AGG-Graphen) ein und geben eine Graphgrammatik an, die die grundlegenden
Editoroperationen modelliert und die im AGG-System verwendeten Graphen konstruktiv beschreibt. Exemplarisch wird gezeigt, da die Grammatik alle AGG-Graphen und nur AGGGraphen erzeugt.
Das AGG-Modell wird anschlieend zum logischen Graphmodell erweitert, das auer den
editierten Graphen auch die Benutzersicht, d.h. die geonten Fenster, die angezeigten Knoten und Kanten etc. beinhaltet. Wir erweitern die Operationen des AGG-Modells um diese
Aspekte und fugen neue hinzu, wie z.B. das O nen und Schlieen von Fenstern oder das Kopieren von Teilstrukturen innerhalb eines Graphen. Zur Steuerung dieser Operationen nden
negative Anwendungsbedingungen fur Regeln, Transaktionen und amalgamierte Ableitungen
Verwendung.
Um auch das Layout des Systems, d.h. die Groe von Fenstern, die Position von Knoten und
Kanten usw., reprasentieren zu konnen, wird das logische Graphmodell durch entsprechende
Attributierung zum Layout-Modell erweitert. Im Rahmen dieser Teilspezikation gehen wir
insbesondere der Frage nach, welche Teile des Systems vorzugsweise graphisch und welche
durch (meist textuelle) Attribute beschrieben werden sollten. Es werden Operationen, wie
das Einfugen einer Kante mit mehreren Knickpunkten und die Veranderung der Fenstergroe
bereitgestellt.
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
4
Schlielich werden wir eine mogliche Erweiterung des AGG-Systems skizzieren. Dazu verlassen wir das detaillierte Niveau der Spezikation mit algebraischen Graphtransformationen
und verwenden Petrinetze (Rei85a], Rei85b], Rei91]), um in abstrakter Weise Steuer- und
Datenu des erweiterten Systems zu beschreiben. Um beide Ebenen zu verbinden, interpretieren wir dann die Transitionen eines solchen Netzes als Graphregeln bzw. Transaktionen
im Sinne der vorigen Kapitel.
Abschlieend bewerten wir kurz den Einsatz von Graphtransformationen und Petrinetzen
zur Spezikation von Softwaresystemen.
2 Das AGG-System und sein Graphbegri
2.1 AGG-Graphen
Dem AGG-System liegt ein erweiterter Graphbegri zugrunde, bei dem sich Graphen uber
mehrere Ebenen erstrecken konnen, indem Verfeinerungen bzw. Abstraktionen von Knoten
und Kanten ermoglicht werden. Desweiteren kann mit Kanten hoherer Ordnung gearbeitet
werden, d.h. es kann auch Kanten zwischen Kanten geben.
Bevor wir diesen erweiterten Graphbegri genauer betrachten, wollen wir uns kurz vergegenwartigen, was wir unter einfachen Graphen1 verstehen, namlich getypte, gerichtete Graphen mit Mehrfachkanten. Ein solcher Graph besteht aus einer (getypten) Knotenmenge
und einer (getypten) Kantenmenge, wobei jeder Kante ein Quell- und ein Zielknoten zugeordnet wird. Insbesondere sind diese einfachen Graphen im Unterschied zu den Graphen des
AGG-Systems ach und erlauben Kanten nur zwischen Knoten.
Das dem AGG-System tatsachlich zugrundeliegende Graphmodell wird durch die nachfolgende Denition beschrieben. Es handelt sich dabei um eine Variante hierarchischer Graphen, die
auf den ALR-Graphen von Bey92] und Low93] basieren2 . Mit dem AGG-System konnen
aber auch Graphen realisiert werden, die keine ALR-Graphen sind. Deshalb soll zur Abgrenzung der Begriichkeiten der Terminus AGG-Graph fur diejenigen Graphen verwendet
werden, die mit AGG realisierbar sind.
Denition 2.1 (AGG-Graph) Ein AGG-Graph GAGG = (O ? P a s t : O ;! O
p : Onf?g ;! P ap : P ;! P f?g) besteht aus zwei disjunkten, endlichen, nichtleeren
Mengen O und P (fur "object set\ und "plane set\), einem ausgezeichneten Objekt ? 2 O,
das Bottom genannt wird, sowie funf totalen Abbildungen a s t p und ap (fur "abstraction\,
source\, "target\, "plane\ und "plane abstraction\), so da folgende Bedingungen erfullt
"sind:
1. (Eigenschaften des Bottom-Elements)
a(?) = s(?) = t(?) = ?
2. (Knoten oder Kante)
8o 2 O : s(o) = ? () t(o) = ?
3. (Knoten mit Knoten als Abstraktion)
8o 2 O : s(o) = ? a(o) 6= ? =) s(a(o)) = ?
1
2
Zur formalen Denition s. Def. 2.2 in KLTW93]
Bei ALR-Graphen wird nicht explizit zwischen Objekten und Ebenen unterschieden.
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
5
4. (Kante mit Knoten als Abstraktion)
8o 2 O : s(o) 6= ? a(o) 6= ? s(a(o)) = ? =) a(s(o)) = a(t(o)) = a(o)
5. (Kante mit Kante als Abstraktion)
8o 2 O : s(o) 6= ? s(a(o)) 6= ? =) a(s(o)) = s(a(o)) ^ a(t(o)) = t(a(o))
6. (Kante, Quelle und Ziel auf gleicher Ebene)
8o 2 O : s(o) 6= ? =) p(o) = p(s(o)) = p(t(o))
7. (lineare Ebenenstruktur)
8e1 e2 2 P : ap(e1) = ap(e2) =) e1 = e2
8. (Abstraktion nur in die nachsthohere Ebene)
8o 2 O : a(o) 6= ? =) p(a(o)) = ap(p(o))
9. (Zyklenfreiheit der Abbildungen a s t ap)
:9n 2 IN : 9(o0 o1 ::: on) 2 Onf?g : (o0 o1) (o1 o2) : : : (on;1 on) (on o0) 2 a s t
:9n 2 IN : 9(e0 e1 ::: en) 2 P : (e0 e1) (e1 e2) : : : (en;1 en) (en e0) 2 ap
2
In der Denition wird formal nicht zwischen Knoten und Kanten unterschieden es gibt
lediglich eine Menge O von Objekten. Ausgezeichnet ist das sogenannte Bottom-Objekt (?),
das zum Totalisieren der Abbildungen benutzt wird. Diejenigen Objekte (auer ? selbst),
die als Quelle und Ziel ? zugeordnet bekommen, entsprechen den Knoten in herkommlichen
Graphen. Den Kanten entsprechen Objekte, denen uber die source- und target-Abbildungen
Elemente ungleich ? zugeordnet werden. Kanten konnen dabei nicht nur zwischen Knoten,
sondern auch zwischen Kanten bzw. einem Knoten und einer Kante verlaufen.
Desweiteren gibt es eine mit Quell- und Zielfunktion vertragliche Abstraktionsfunktion, die
eine partielle Abstraktionsfunktion auf den von ? verschiedenen Objekten deniert. Dabei
ist es moglich, da bestimmte Objekte nicht explizit abstrahiert werden. Die entsprechenden
Objekte werden dann durch die Abstraktionsabbildung a auf ? abgebildet. Die Umkehrrelation von a lat sich dabei als Verfeinerung auassen. Laut Denition konnen Knoten zu
Teilgraphen und Kanten zu Kantenbuscheln verfeinert werden.
Jedem von ? verschiedenen Objekt eines AGG-Graphen wird uber die Abbildung p seine
Abstraktionsebene zugeordnet. Dabei mussen Quelle und Ziel einer Kante stets zur gleichen
Ebene gehoren wie die Kante selbst. Die Ebenen selbst bilden eine lineare Struktur. Eine
Abstraktion bzw. Verfeinerung ist nur zwischen Ebenen erlaubt, die bezuglich dieser Struktur benachbart sind.
Beispiele
Graphregel als AGG-Graph
Mit Hilfe des AGG-Graphkonzepts lassen sich auch Abbildungen zwischen (herkommlichen) Graphen als AGG-Graphen darstellen (Abb. 1). Die Regel mit linker
(L1 L2 L3 k1) und rechter (R1 R2 k2) Seite sowie dem Regelmorphismus (k3 k4 k5)
bildet die untere Abstraktionsebene. In der oberen Ebene sind linke und rechte Regelseite zu jeweils einem Knoten (L bzw. R) zusammengefat. Der Regelmorphismus wird
zu einer Kante (k6) abstrahiert.
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
6
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
7
- Liste von Listen von Baumen k6
L
R
a
a
a
...
a
...
...
k3
R1
L1
L2
k1
Abbildung 4: Modellierung einer Liste von Listen von Baumen mit AGG-Graphen
k2
k4
L3
k5
2.2 Der AGG-Graph-Editor
R2
Abbildung 1: Graphregel als AGG-Graph
Modellierung von Listen
Das Abstraktionskonzept der AGG-Graphen lat sich zur eleganten Modellierung modularer Strukturen benutzen.
* "klassische" Darstellung einfach verketteter Listen
T
A
X
F
* einfach verkettete Liste als Graph - unstrukturierte Knoten -
T
A
X
F
Abbildung 2: Einfache Liste und deren Modellierung durch einen Graphen
Die angegebene Modellierung fur einfach verkettete lineare Listen (siehe Abb. 2) gestattet es, durch die mogliche Verfeinerung der Listenelemente Listen uber verschiedenen Datenstrukturen zu reprasentieren. Als Beispiele sind eine Liste von Listen (siehe
Abb. 3) und eine Liste von Listen von Baumen (siehe Abb. 4) dargestellt. Dabei stellen
die mit a bezeichneten Kanten Abstraktionen dar.
- Liste von Listen E1
E2
E3
a
E11 E12 E21 E22 E23 E24
E31 E32 E33
Abbildung 3: Modellierung einer Liste von Listen mit AGG-Graphen
Da wir uns im Rahmen dieser Arbeit hauptsachlich mit Editor-Operationen des AGGSystems beschaftigen wollen, werden im folgenden grundlegende Merkmale dieses Editors
beschrieben.
Der AGG-Editor wurde als Werkzeug zum Editieren von Graphen und Diagrammen unterschiedlicher Groe konzipiert. Er erlaubt, die Anwendungsmoglichkeiten von algebraischen
Graphgrammatiken anhand nichttrivialer Beispiele auszuprobieren, und stellt eine Funktionalitat zur Verfugung, die uber die reine Simulation des Zeichnens auf dem Papier hinausgeht.
Vielmehr wurde bei der Realisierung des AGG-Editors besonderes Gewicht auf die dynamische Natur von Graphgrammatiken, d.h. auf die Anwendung von Graphregeln gelegt, die wir
spater naher betrachten werden (vgl. Bey91]). Zunachst gehen wir aber auf die graphische,
d.h. zeichnerische Komponente des AGG-Systems ein.
Der Editor ist sowohl ebenen- als auch fensterorientiert: es konnen mehrere Fenster geonet
werden, in jedem Fenster wird eine Abstraktionsebene dargestellt. Es kann aber jederzeit zur
daruber- oder darunterliegenden Ebene gesprungen werden.
Knoten und Kanten konnen in vielfaltigen Formen dargestellt werden, so da verschiedene
Knoten- und Kantentypen auch optisch unterschieden werden konnen.
Es gibt die allgemein in Editoren ublichen Editieroperationen zum Erzeugen, Verschieben,
Kopieren und Loschen von Objekten. Es konnen Objektgruppen durch Selektion mehrerer
Objekte bearbeitet werden. Zusatzlich gibt es die Moglichkeit, durch Selektion eines Objektes
die Menge der Verfeinerungen des Objektes zu selektieren. Eine Gruppe von Objekten kann
mit der Operation Copy Connect kopiert werden, wobei die Originale mit den Kopien jeweils
durch eine Kante verbunden werden.
Das AGG-System lat es zu, eine bestimmte Sicht auf einen Graphen zu denieren. Mit
den Operationen Hide und Show konnen spezielle Teile eines Graphen ausgeblendet werden,
damit der Betrachter sich besser auf Details konzentrieren kann. Die nicht anzuzeigenden
Teile werden bestimmt durch die Selektion ihrer Darstellungsform. Eine Besonderheit beim
Ausblenden von Knoten ist, da ebenfalls Kanten ausgeblendet werden, deren Quelle oder
Ziel die zu versteckenden Knoten sind, so da der Graph immer konsistent dargestellt wird,
also ohne "hangende\ Kanten.
Beim Skalieren eines Graphen bleiben die Koordinaten (des Mittelpunktes) eines jeden Objektes des Graphen erhalten, die Groe der Objekte hingegen wird halbiert, verdoppelt oder
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
8
selbstbestimmt.
Das System unterstutzt auch das Zoomen, d.h. die Vergroerung oder Verkleinerung bei
gleichbleibenden Groenverhaltnissen. Dabei konnen wir entweder den gesamten Graphen
oder selektierte Objekte "naher heranholen\. Wir haben die Moglichkeit, die zu vergroernde
Region anzugeben, die dann auf Fenstergroe gezoomt wird (Zoom In ), bzw. die Groe
anzugeben, auf der der gesamte Graph gezeigt werden soll (Zoom Out ).
2.3 Graphtransformation mit dem AGG
Dem im AGG-System implementierten Begri von Graphtransformation liegt die kategorielle Beschreibung einer direkten Ableitung durch ein einzelnes Pushout zugrunde (daher
der Name Single Pushout- oder kurz SPO-Ansatz s. Low93]). An dieser Stelle braucht uns
aber nur zu interessieren, da der SPO-Ansatz eine von vielen Moglichkeiten ist, formal zu
beschreiben, was man unter der Transformation eines Graphen anhand einer Graphtransformationsregel verstehen will insbesondere wird durch eine solche Formalisierung eindeutig
festgelegt, wann eine Regel auf einen Graphen anwendbar sein soll und wie das Ergebnis
einer solchen Regelanwendung aussieht.
Wie schon in Abschnitt 2.1 erwahnt, verwendet das AGG-System ein erweitertes Graphmodell. Bevor wir versuchen zu verstehen, wie das AGG-System innerhalb dieses erweiterten Modells Graphen transformiert, sollten wir uns vergegenwartigen, wie eine SPO-Transformation
auf einfachen Graphen (s. Abschnitt 2.1) funktioniert. Dazu wollen wir den Begri des
Graphmorphismus benutzen: Ein (partieller) Graphmorphismus ist eine (partielle) Abbildung zwischen Knoten bzw. Kanten von einfachen Graphen, die mit Quell- und Zielfunktion vertraglich ist sowie Knoten- und Kantentypen bewahrt. Zur formalen Denition siehe
KLTW93].
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
1. Verkleben und Hinzufugen
Hierzu betrachten wir zunachst nur den Denitionsbereich dom(r) des Regelmorphismus r das sind genau diejenigen Knoten und Kanten aus L, die tatsachlich uber r nach
R abgebildet werden. U ber den Ansatzmorphismus m hat nun jedes dieser Objekte eine
Entsprechung in G, und der Regelmorphismus r gibt uns an, in welcher Weise dieser
ausgezeichnete Teil von G durch die Regelanwendung modiziert werden soll. Indem
wir diese Transformierungen ausfuhren, erzeugen wir als Zwischenergebnis einen Graphen Z , in den alle Objekte aus G, die kein Urbild unter m in dom(r) haben, einfach
unverandert ubernommen werden. Bei diesem Schritt werden Objekte verklebt, wenn
der Regelmorphismus r sie verklebt. Hinzugefugt werden Objekte, die im rechten Teil
der Regel stehen, aber nicht von r erreicht werden.
2. Loschen
In der Transformationsregel sind die zu loschenden Objekte diejenigen, die uber r nicht
nach R abgebildet werden, die also nicht in dom(r) liegen. Alle diese Objekte haben
uber den Ansatz m eine Entsprechung in G. Da wir bei dem Zwischenschritt von G
nach Z nichts geloscht haben, konnen wir sie alle auch in Z wiedernden und { einfach
loschen. Dabei konnen "hangende Kanten\ entstehen, das sind Kanten, die keine Quelle
bzw. kein Ziel mehr haben solche Kanten werden mitgeloscht, sonst ware das Ergebnis
kein Graph mehr. Der so entstandene Graph G0 ist das Ergebnis der SPO-Ableitung.
Aus dieser Konstruktionsweise ergibt sich, da sog. Konikte einfach durch Loschen "gelost\
werden, was typisch fur den SPO-Ansatz ist. Ein Konikt entsteht, wenn zwei Objekte aus
einer linken Regelseite, von denen das eine durch die Regel erhalten, das andere geloscht wird,
durch einen nicht-injektiven, also verklebenden Ansatz auf dasselbe Objekt in G abgebildet
werden. Die formale Konstruktion der Graphtransformation mit einfachen Graphen ist in
KLTW93] zu nden.
2.3.1 Graphtransformation mit einfachen Graphen
Folgende Eigenschaften sind charakteristisch fur die SPO-Graphtransformation auf einfa-
r
chen Graphen:
L
Regeln sind partielle Graphmorphismen im oben beschriebenen Sinne. Dabei werden
gerade diejenigen Knoten und Kanten nicht abgebildet, die geloscht werden sollen.
Eine Regel r : L ;! R ist anwendbar auf einen Graphen G, wenn es einen totalen
Graphmorphismus m : L ;! G gibt. Ein solcher Graphmorphismus heit Ansatz der
Regel r im Graphen G.
Zu jeder Regel r : L ;! R mit Ansatz m in G gibt es genau einen Graphen G0,
der das Ergebnis der Regelanwendung reprasentiert (und charakterisiert ist als
sogenannter Pushoutgraph der Graphen L, R und G mit den Morphismen r und m).
Ist eine Regel r : L ;! R mit einem Ansatz m in einen Graphen G gegeben, so erfolgt
die Konstruktion des Ergebnisgraphen G0 bei der SPO-Graphtransformation in zwei
Schritten (Notation : G =)r G0 , siehe auch Abb. 5):
9
R
L1
R1
L2
L4
R2
L3
R3
m
G
Z
G1
G’
Z1
G2
G’1
Z2
G’2
G3
Z3
Z4
G4
G5
Z5
G’4
G’5
Abbildung 5: Beispiel einer SPO-Graphtransformation auf einfachen Graphen.
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
10
In den folgenden Absatzen wollen wir an einem einfachen Beispiel zeigen, wie die Berechnung eines Ergebnisgraphen mit dem AGG-System funktioniert. Gleichzeitig wird
uns dieser Teil als U berleitung von der Graphtransformation mit einfachen Graphen zur
Graphtransformation mit hierarchischen Graphen dienen.
Abbildung 5 zeigt beispielhaft die Konstruktion eines Graphen G0 aus G mit Hilfe der Regel
r : L ! R am Ansatz m. Die Regel r ist ein partieller Graphmorphismus, der nur die Knoten
L1 bis L3 abbildet, L4 wird geloscht. Auerdem werden drei Kanten eingefugt. G ist der
Graph, auf den die Regel angewendet werden soll. Der entsprechende Ansatz von L nach G
ist mit m bezeichnet. Es handelt sich dabei um einen nicht injektiven Ansatz, da die Knoten
L3 und L4 auf G3 abgebildet, d.h. verklebt werden.
Im ersten Schritt der Transformation wird der Zwischengraph Z gema Schritt 1 konstruiert: da r injektiv ist, braucht nicht verklebt zu werden. Es werden lediglich die drei Kanten,
die von der Regel eingefugt werden, hinzugefugt. Im zweiten Schritt loschen wir die Bilder
derjenigen Knoten und Kanten, die durch r geloscht werden, d.h. in diesem Fall das Bild des
m-Bildes von L4, sprich G3 = Z 3. G0 ensteht dann schlielich durch das Loschen der entstandenen hangenden Kanten. Der Konikt zwischen der Bewahrung des Bildes von L3 und
der Loschung des Bildes von L4, der durch die Nichtinjektivitat des Ansatzes m entsteht,
wird also durch Loschen gelost.
Wir wollen nun versuchen, die eben beschriebene Ableitung G =)r G0 unter dem Ansatz m
aus Abb. 5 mit dem AGG-System nachzuvollziehen, wobei das Programm die Konstruktion
des Ergebnisgraphen ubernehmen soll. Dazu benotigt es naturlich die Information, wie die
Regel, der abzuleitende Graph und der Ansatz aussehen sollen. Also mussen wir zunachst
die drei Graphen L, R und G graphisch eingeben und die einzelnen Objekte der Graphen
untereinander entsprechend den Morphismen r bzw. m verbinden. Im Fenster des AGG sieht
es nun in etwa so aus wie auf der linken Seite der Abb. 6.
Um dem System die logische Unterteilung in die drei Einzelgraphen und die Morphismen mitzuteilen, benutzt man das Mittel der Abstraktion: Die Graphen L, R und G werden jeweils
zu einem Knoten abstrahiert, die einzelnen Kanten der Morphismen zu jeweils einer Kante
zwischen diesen Knoten die rechte Seite der Abb. 6 zeigt die so erzeugte obere Abstraktionsebene, auf der man sich nun vom AGG das Ergebnis der Ableitung mit der Operation
Apply Rule berechnen lassen kann. Das System fordert dann dazu auf, die Kante anzugeben,
die den Ansatzmorphismus ("match\) reprasentiert. Daraufhin wird ein Knoten erzeugt, der
die Abstraktion unseres "einfachen\ Ergebnisgraphen darstellt. Er ist durch Kanten mit G
und R verbunden sie reprasentieren die Ableitungsmorphismen. Abb. 7 zeigt die Situation
auf beiden Abstraktionsebenen nach der Regelanwendung.
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
11
Abbildung 6: Die Ausgangssituation aus Abb. 5 (links) und ihre Abstraktion (rechts) im
AGG.
Abbildung 7: Das vom AGG erzeugte Ableitungsergebnis auf beiden Abstraktionsebenen.
2.3.2 Graphtransformation mit hierarchischen Graphen
Wie wir gesehen haben, kann man mit dem AGG das Ergebnis einer Regelanwendung auf
dem Modell der einfachen Graphen berechnen lassen. Die wesentlichen Erweiterungen des
Modells der AGG-Graphen aus Abschnitt 2.1 gegenuber diesem einfachen Modell bestehen
darin, da eine Hierarchie von Abstraktionsebenen eingefuhrt wird und da es Kanten nicht
mehr nur zwischen Knoten, sondern auch zwischen zwei Kanten oder zwischen Knoten und
Kante geben darf. Von beiden Erweiterungen haben wir schon Gebrauch gemacht, als wir im
letzten Abschnitt eine einfache Graphtransformation im AGG vorgenommen haben: Die Abstraktion haben wir benutzt, um Graphen und Morphismen zu Knoten bzw. Kanten zusammenzufassen. Um die Morphismen zwischen den beteiligten einfachen Graphen anzugeben,
muten wir auch Kanten mit Kanten verbinden. Tatsachlich ist die Gesamtheit der beiden
Abstraktionsebenen, die wir in unserer Beispielableitung erzeugt haben, ein AGG-Graph.
Und auch die Ableitung ist, genauer betrachtet, mehr als ein Pushout auf einfachen Graphen: es wurde ja nicht nur der uns aus Abb. 5 bekannte Ergebnisgraph G0 erzeugt, sondern
auch ein Knoten auf der oberen Abstraktionsebene, der noch dazu automatisch zum Abstraktionsobjekt des Ergebnisgraphen erklart wurde. Auch die Kanten, die auf der oberen
Ebene die Ableitungsmorphismen reprasentieren, wurden durch die Regelanwendung erzeugt
und scheinen also zum Ableitungsergebnis zu gehoren. Nimmt man die obere Ebene fur sich,
kann man darin sogar ein weiteres einfaches Pushout entdecken: Die triviale Regel, die einen
Punkt erhalt, angewandt auf einen Graphen mit nur einem Punkt, ergibt { einen Graphen
mit einem Punkt.
Oensichtlich haben wir im AGG-System nicht nur ein erweitertes Graphmodell, sondern
auch einen entsprechend erweiterten Begri von Graphtransformation. Dabei stellt die Situation aus Abb. 7 grundsatzlich die Ausgangssituation fur eine Regelanwendung nach diesem Transformationsbegri dar: Auf einer gemeinsamen Abstraktionsebene, die wegen ihrer reprasentativen Eigenschaften auch Diagrammebene heit, nden sich drei Knoten als
Reprasentanten fur die beteiligten Graphen und dazwischen zwei Kanten als Reprasentanten fur Regel bzw. Ansatz. Was die Objekte genau reprasentieren, ist eindeutig durch die
Abstraktionsbeziehungen festgelegt: jedes reprasentiert seine Verfeinerungsobjekte auf der
darunterliegenden Ebene inklusive deren Verfeinerungen es ergeben sich also jeweils Verfeinerungsbaume. Abb. 8 verdeutlicht schematisch die Konstellation, fur die die Denition des
Graphmodells folgende Eigenschaften zusichert:
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
LD
ED
13
RD
rD
mD
GD
E1
m1
L1
r1
R1
G1
...
12
...
2 DAS AGG-SYSTEM UND SEIN GRAPHBEGRIFF
En
mn
Ln
rn
Rn
Gn
Abbildung 8: Schematische Darstellung der Ausgangssituation fur eine
Graphtransformation im AGG-System.
Jetzt sind wir soweit, um { analog zur SPO-Transformation auf einfachen Graphen { die
wichtigsten Eigenschaften der SPO-Transformation auf hierarchischen Graphen3
zu formulieren (die Bezeichner beziehen sich auf Abb. 8):
Eine partielle Abbildung r : L ;! R zwischen zwei Verfeinerungsbaumen von Knoten
L und R heit Regel, wenn die folgenden Bedingungen gelten:
Verfeinerungsbaume von Knoten sind AGG-Graphen. Da in einem solchen Baum je-
des Objekt auer dem Wurzelknoten eine denierte Abstraktion besitzt, entsprechen
sie sogar der Denition der ALR-Graphen, die in Abschnitt 2.1 erwahnt wurden. Umgekehrt ist auch jeder ALR-Graph der Verfeinerungsbaum eines Knotens. Das AGGSystem transformiert also nur ALR-Graphen, eine Untermenge der darstellbaren AGGGraphen.
Die Verfeinerungen eines Knotens { also die Gi, Li und Ri in Abb. 8 { ergeben auf
jeder Ebene einen achen AGG-Graphen. Flache AGG-Graphen sind eine Erweiterung
der einfachen Graphen, in denen als Quelle bzw. Ziel von Kanten nicht nur Knoten,
sondern auch Kanten zugelassen sind.
Im Verfeinerungsbaum einer Kante haben alle Kanten "dieselbe Richtung\.
Verfeinerungsbaume verschiedener Objekte uberschneiden sich nie.
{ Die Abbildungsvorschrift r selbst ist ein Verfeinerungsbaum einer Kante rD zwischen den Wurzelknoten LD und RD der beteiligten Verfeinerungsbaume.
{ Auf jeder Ebene Ei unterhalb der Diagrammebene ED ist ri : Li ;! Ri ein
partieller Graphmorphismus auf achen AGG-Graphen.
Eine Regel r : L ;! R ist anwendbar auf einen Graphen G, wenn es eine totale
Abbildung m : L ;! G gibt, fur die analoge Bedingungen gelten, wie wir sie oben fur
die Regeln formuliert haben, nur diesmal total anstatt partiell. Eine solche Abbildung
heit Ansatz der Regel r im Graphen G.
Wie bei der einfachen SPO-Transformation gilt auch hier die eindeutige Existenz eines
Ergebnisgraphen G0 zu jedem Paar von Regel und Ansatz G0 ist Verfeinerungsbaum
eines Knotens.
Sei eine Regel r : L ;! R gegeben mit Ansatz m in einen Graphen G. Dann erfolgt die
Konstruktion des Ergebnisgraphen G0 wie folgt:
3
gemeint sind ALR-Graphen, also Verfeinerungsbaume von Knoten
14
1. Einfaches Pushout auf jeder Ebene
Auf jeder Ebene Ei konstruieren wir das Pushout G0i der achen AGG-Graphen Li ,
Ri und Gi im Sinne der Konstruktion des Ergebnisgraphen aus Abschnitt 2.3.1. Die
nun zusatzlich erlaubten Kanten zwischen zwei Kanten bzw. einem Knoten und einer
Kante fugen sich problemlos in diese Konstruktionsweise ein. Dabei werden jeweils
auch die Ableitungsmorphismen mi : Ri ;! G0i und ri : Gi ;! G0i erzeugt. Auf der
Diagrammebene ED ergibt sich das triviale Pushout.
2. Zuordnung der Abstraktionen
Damit der Ergebnisgraph zum Verfeinerungsbaum eines Knotens wird, mu nun jedem
Objekt aus den G0i ein Abstraktionsobjekt zugeordnet werden. Im allgemeinen sorgt die
Konstruktion des einfachen Pushouts zusammen mit den aus Def. 2.1 hervorgehenden
Vertraglichkeitsbedingungen der Abstraktion dafur, da ein solches Abstraktionsobjekt
eindeutig existiert. Man ndet es, indem man die Urbilder des zu abstrahierenden
Objektes in Gi , Ri bzw. Li sucht, die ja voraussetzungsgema Abstraktionen in der
daruberliegenden Ebene haben. Deren Weg verfolgt man uber die Morphismen bis
nach Gi;1 und hat das passende Abstraktionsobjekt gefunden. Es kann aber auch
passieren, da gar kein solcher Weg existiert einen derartigen Abstraktionskonikt losen
wir gema der "SPO-Philosophie\, indem wir das Objekt, fur das wir keine Abstraktion
nden konnen, einfach loschen.
Eine formale Konstruktion im Rahmen von ALR-Graphen wird in Low93] gegeben.
3 MODELLIERUNG VON AGG-GRAPHEN
15
ist, d.h. alle AGG-Modelle erzeugt werden und nur solche. Am Ende des Kapitels folgen Betrachtungen zur parallelen und sequentiellen Unabhangigkeit der angegebenen Regeln.
3.1 AGG-Modell
Wir nennen die Modellierung eines AGG-Graphen AGG-Modell. Die Abbildungen a s t p
und ap eines AGG-Graphen werden im AGG-Modell durch Kanten unterschiedlicher Typen
und die Elemente der Mengen O und P durch Knoten unterschiedlicher Typen modelliert.
Die Elemente der Mengen Onf?g und P des AGG-Graphen werden im AGG-Modell durch
Knoten der Typen O und P modelliert. Knoten des Typs O nennen wir kurz O-Knoten,
Knoten des Typs P nennen wir P-Knoten. Das ?-Element wird im AGG-Modell durch einen
Knoten vom Typ ? modelliert, den wir kurz ?-Knoten nennen. Zu betonen ist, da das
?-Element nicht durch einen O-Knoten modelliert wird!
Fur jede der Abbildungen a s t p und ap des AGG-Graphen gibt es im Modell einen Kantentyp, der nach dem Namen der Abbildung benannt ist, also zum Beispiel Kanten vom
Typ a, kurz a-Kanten, fur die Abbildung a. Analog sind s-Kanten, t-Kanten, p-Kanten
und ap -Kanten deniert. Oder allgemein: Wenn im AGG-Graphen fur ein Objekt o gilt:
f (o) = o0 f 2 fa s t p apg, dann ziehen wir im AGG-Modell eine Kante des Typs f , kurz
f -Kante, von o nach o0 .
Abbildung 9 zeigt die das AGG-Modell des Beispielgraphen aus Abb. 1.
3 Modellierung von AGG-Graphen
4
Es existiert lediglich eine Theorie fur ALR-Graphen im Rahmen von Graphstrukturen, vgl. Low93].
p-Kanten
a-Kanten
O-Knoten (O = Bottom)
P
P-Knoten
ap
P
k6
L
R
R1
L1
k1
L2
k4
L3
k5
t
k6
s,t
k3
s
L
R
s,t
T
Wie aus dem vorigen Kapitel schon deutlich wurde, weicht die Denition der AGG-Graphen
relativ weit von der einfacher Graphen ab. Insbesondere aufgrund der Abstraktionsfunktion,
die zu der Quell- und Zielfunktion hinzukommt, muten wir aufwendige Untersuchungen
anstellen, wie im AGG-System eine Regelanwendung verstanden wird. Zudem mu wegen
der Beschreibung der AGG-Graphen mit pradikatenlogischen Formeln der herkommliche
Morphismusbegri zumindest neu uberdacht und geeignet deniert werden.
Um keine vollstandig neue Theorie4 fur AGG-Graphen entwickeln zu mussen, versuchen wir,
AGG-Graphen durch einfache Graphen darzustellen. Damit konnen wir dann alle Operationen und Begrie wie z.B. Single-Pushout, Graphersetzung, injektive Ansatze usw. benutzen,
ohne jeweils neu erklaren zu mussen, was sie angewandt auf AGG-Graphen bedeuten.
Selbstverstandlich soll ein solcher Graph dann in gewissem Sinne zu einem AGG-Graphen
aquivalent sein, d.h. wir mochten bei der "U bersetzung\ keine Informationen verlieren, sondern nur anders darstellen. Zunachst geben
wir solch einen entsprechenden Graphen an,
den wir im folgenden AGG-Modell nennen. Wir geben hier keinen Korrektheitsbeweis der
Transformation an, da leicht einsichtig ist, da die Umsetzung eine direkte Abbildung der
AGG-Graphen in einfache Graphen ist.
Wir beschaftigen uns mit der Frage, welche Eigenschaften ein AGG-Modell hat und durch
welche Graph-Grammatiken es erzeugt wird. Eine solche wollen wir angeben. Diese untersuchen wir daraufhin, ob die durch die Regeln und den Startgraphen induzierte Sprache korrekt
O-Knoten (Objekt <> Bottom
s-,t- und ap-Kanten
T
3 MODELLIERUNG VON AGG-GRAPHEN
s,t
s,t
s,t
k1
k2
s
R2
L3
s,t
t
ap
t
s
L1
R1
k3
L2 s
t
t
k4
s
s,t
t
k5
k2
s
P
R2
Abbildung 9: Modellierung des Beispiel-AGG-Graphen aus Abb. 1
3.2 Terminologien
des O-Knotens nicht auf ? zeigt und auch nicht die s-Kante des O"Wenn dieaufs-Kante
Knotens,
den die a-Kante zeigt, dann zeigen die a-Kante des Knotens, auf den die
s-Kante zeigt, und die s-Kante des Knotens, auf den die : : :\
3 MODELLIERUNG VON AGG-GRAPHEN
16
Um die Formulierung der Konsistenzbedingungen im Unterabschnitt "Korrektheit der AGGModell-Grammatik\ nicht zu umstandlich zu gestalten, werden wir im Rahmen der Modellierung zwei Terminologien entwickeln, die es uns gestatten, komplizierte Sachverhalte kurzer
und damit ubersichtlicher auszudrucken. Eine Terminologie wird Formulierungen fur AGGGraphen anbieten, die andere fur AGG-Modelle. Im folgenden werden die Termini eingefuhrt.
Dabei wird in der Regel zuerst der Terminus fur AGG-Graphen beschrieben und dann der
entsprechende fur AGG-Modelle.
zeigen: Der Begri wird nur fur AGG-Modelle benotigt. "Eine Kante x von beliebigem Typ
zeigt von dem Knoten Q auf den Knoten Z\ bedeutet, da Q die Quelle und Z das
Ziel von x ist. Eine aquivalente Formulierung ist: die Kante x des Knotens Q zeigt auf
Z.
P -Element eines Objektes / P -Knoten eines O-Knotens: Das P -Element eines Objektes ist der Funktionswert der p-Abbildung des Objektes. Analog ist im AGG-Modell
der P -Knoten eines O-Knotens der Knoten, auf den die p-Kante des O-Knotens zeigt.
Ebene: Die Gesamtheit aller Objekte im AGG-Graphen, deren P -Element gleich ist, bezeichnen wir als Ebene. Analog bezeichnet eine Ebene im AGG-Modell die Gesamtheit
aller O-Knoten, deren P -Knoten gleich ist.
P -Element einer Ebene / P -Knoten einer Ebene: Das P -Element einer Ebene ist das
P -Element aller Objekte dieser Ebene. Analog ist der P -Knoten einer Ebene der P Knoten aller O-Knoten dieser Ebene.
nachsthohere Ebene: Als nachsthohere Ebene im AGG-Graphen bezeichnen wir die Ebene, deren P -Element der Funktionswert der ap -Abbildung des P -Elementes der aktuellen Ebene ist. Analog bezeichnen wir als nachsthohere Ebene im AGG-Modell die
Ebene, deren P -Knoten das Ziel der ap -Kante des P -Knotens der aktuellen Ebene ist.
oberste Ebene: Als oberste Ebene im AGG-Graphen bezeichnen wir die Ebene, deren P Element durch die ap -Abbildung auf ? abgebildet wird. Analog bezeichnen wir als
oberste Ebene im AGG-Modell die Ebene, von deren P -Knoten eine ap-Kante auf den
?-Knoten zeigt.
AGG-Knoten: Im AGG-Graphen ist ein AGG-Knoten ein Objekt, das uber die s- und tAbbildung auf ? abgebildet wird. Analog ist im AGG-Modell ein AGG-Knoten ein
O-Knoten, dessen s- und t-Kanten auf den ?-Knoten zeigen.
AGG-Kante: Im AGG-Graphen ist eine AGG-Kante ein Objekt, das uber die s- und tAbbildung nicht auf ? abgebildet wird. Analog ist im AGG-Modell eine AGG-Kante
ein O-Knoten, dessen s- und t-Kanten auf einen O-Knoten verschieden von ? zeigen.
Abstraktionsobjekt: Im AGG-Graphen ist das Abstraktionsobjekt eines Objektes o dasjenige Objekt ungleich ?, auf das o uber die a-Abbildung abgebildet wird. Wird o
uber die a-Abbildung auf ? abgebildet, so hat o kein Abstraktionsobjekt. Analog ist
im AGG-Modell das Abstraktionsobjekt eines O-Knotens o der O-Knoten, auf den die
a-Kante von o zeigt. Zeigt die a-Kante von o auf keinen O-Knoten, sondern auf den
?-Knoten, so hat o kein Abstraktionsobjekt.
3 MODELLIERUNG VON AGG-GRAPHEN
17
AGG-Quelle: Im AGG-Graphen ist die AGG-Quelle einer AGG-Kante o das Objekt, das
Funktionswert der s-Abbildung von o ist. Analog ist im AGG-Modell die AGG-Quelle
einer AGG-Kante o der O-Knoten, auf den die s-Kante von o zeigt.
AGG-Ziel: Im AGG-Graphen ist das AGG-Ziel einer AGG-Kante o das Objekt, das Funktionswert der t-Abbildung von o ist. Analog ist im AGG-Modell das AGG-Ziel einer
AGG-Kante o der O-Knoten, auf den die t-Kante von o zeigt.
Kantenzug: Eine f -Kante o, f 2 fa s t p apg, ist ein f{Kantenzug von der Quelle von o
zum Ziel von o. Ist y ein Kantenzug von B nach C und z ein Kantenzug von A nach
B, so fuhrt der z ; y{Kantenzug von A nach C .
+
(f ) {Kantenzug: Ein Kantenzug, bei dem alle Kanten vom gleichen Typ f , f 2
fa s t p apg sind, heit (f )+{Kantenzug.
Die folgende Tabelle soll noch einmal kurz die soeben denierten Begrie gegenuberstellen,
sofern sie in beiden Sprachen vorkommen oder in der jeweils anderen Sprache ein Pendant
besitzen.
AGG-Graph
Objekt
P -Element eines Objektes
Ebene
P -Element einer Ebene
nachsthohere/oberste Ebene
AGG-Knoten
AGG-Kante
Abstraktionsobjekt
AGG-Quelle/-Ziel
AGG-Modell
O-Knoten
P -Knoten eines O-Knotens
Ebene
P -Knoten einer Ebene
nachsthohere/oberste Ebene
AGG-Knoten
AGG-Kante
Abstraktionsobjekt
AGG-Quelle/-Ziel
3.3 AGG-Modell-Grammatik
Die Graphgrammatik GGAGG = (S0 fR0 R1 R2 R3 R4 R5g) erzeugt alle Modelle von
AGG-Graphen und nur solche, wie spater noch gezeigt wird. Sie ist in Abb. 10 dargestellt.
Zur besseren U bersichtlichkeit konnen gepunktete Linien zwischen korrespondierenden Objekten auf beiden Regelseiten weggelassen oder durch Zuordnungszahlen ersetzt werden. Wenn weder Linien noch Zuordnungszahlen existieren, ist aus der Anordnung der Objekte die Zuordnung zu erkennen.
Die von GGAGG erzeugte Graphsprache L(GGAGG ) = f G j S0 =) G g, also die Menge
aller aus S0 in beliebig vielen Schritten ableitbaren Graphen, soll im weiteren Text als Menge
der AGG-Modelle bezeichnet werden.
3 MODELLIERUNG VON AGG-GRAPHEN
18
R0 : Abstraktionsebene einfuegen
So: Startgraph
T
T
ap
s
ap
a
P
19
Dieser Korrektheitsbegri bezieht sich nur auf das von uns gewahlte Modell. Man mute hier
auerdem zeigen, da die Transformation eines AGG-Graphen in unser Modell korrekt ist,
sprich, da eine bijektive Korrespondenz zwischen allen AGG-Graphen und ihren Modellen
existiert.
ap
ap
P
t
T
->
3 MODELLIERUNG VON AGG-GRAPHEN
P
P
AGG-Graphen
bijektive Korrespondenz
Vollstaendigkeit
AGG-Modelle
R1: Knoten einfuegen
T
->
a,s,t
p
P
Abbildung 11: Korrektheitsbegri
T
P
Um die Konsistenzerhaltung der AGG-Modell-Grammatik uberprufen zu konnen, sind Konsistenzbedingungen erforderlich. Konsistenzbedingungen sind notwendige Eigenschaften, die
fur jedes beliebige AGG-Modell gelten. Es liegt nahe, da wir uns bei der Formulierung der
Konsistenzbedingungen an der Denition der AGG-Graphen orientieren.
Jedes AGG-Modell mu folgenden Konsistenzbedingungen genugen:
R2: Kante einfuegen
->
p
s
p
P
T
p
t
p
T
p
P
a
R3: Abstraktion (Knoten -> Knoten)
P
->
s
T
ap
P
s
a
ap
p
P
p
p
P
s,a
T
p
s
R4: Abstraktion (Kante -> Knoten)
->
s
T
a
a
a
s
T
s
a
a
a
t
s
t
R5: Abstraktion (Kante -> Kante)
s
->
t
s
t
a
t
a
T
s
a
a
s
T
a
a
L(GG AGG )
Konsistenz
t
Abbildung 10: Graphgrammatik zur Erzeugung von AGG-Modellen
3.4 Korrektheit der AGG-Modell-Grammatik
Wir nennen unsere AGG-Modell-Grammatik GGAGG korrekt, wenn sie konsistent und
vollstandig ist. Konsistent heit, da sie nur Graphen erzeugt, die AGG-Modelle sind.
Vollstandig bedeutet, da sie zu jedem AGG-Graphen das zugehorige AGG-Modell erzeugen
kann.
1. (Teilgraph und ?)
Der Startgraph S0 ist Teilgraph eines jeden AGG-Modells. Es gibt genau einen ?Knoten.
2. (Linkstotalitat, Rechtseindeutigkeit und Wertebereich)
Jeder O-Knoten sowie der ?-Knoten ist Quelle genau jeweils einer a-, s- und
t-Kante. (Totale Abbildungen a s t)
Jeder O-Knoten ist Quelle genau einer p-Kante. (Abbildung p)
Jede a-, s- und t-Kante zeigt auf einen O-Knoten oder auf den ?-Knoten.
Jede p-Kante hat einen O-Knoten als Quelle und einen P -Knoten als Ziel.
Jede ap-Kante zeigt auf einen P -Knoten oder auf den ?-Knoten.
3. (Knoten oder Kante)
Jeder O-Knoten reprasentiert entweder eine AGG-Kante oder einen AGG-Knoten.
4. (Abstraktionen)
Eine a-Kante zeigt entweder auf den ?-Knoten oder auf einen O-Knoten der
nachsthoheren Ebene, also auf das Abstraktionsobjekt.
Folgende Falle konnen auftreten, wenn ein Knoten ein Abstraktionsobjekt besitzt:
(Knoten mit Knoten als Abstraktion)
Die a-Kante eines AGG-Knoten zeigt auf einen AGG-Knoten.
(Kante mit Knoten als Abstraktion)
Wenn das Abstraktionsobjekt einer AGG-Kante ein AGG-Knoten ist, dann haben
AGG-Quelle und AGG-Ziel das gleiche Abstraktionsobjekt wie die AGG-Kante.
(Kante im Kantenbuschel)
Wenn das Abstraktionsobjekt einer AGG-Kante o eine AGG-Kante ist, dann zeigt
der a ; s-Kantenzug von o auf den gleichen Knoten wie der s ; a-Kantenzug von
o und der a ; t-Kantenzug von o auf den gleichen Knoten wie der t ; a-Kantenzug
von o.
3 MODELLIERUNG VON AGG-GRAPHEN
20
5. (Zyklenfreiheit)
Der AGG-Modell-Graph ist zyklenfrei bis auf die Schlingen am ?-Knoten. (Diese Bedingung lat sich aus der Denition des AGG-Graphen herleiten.)
6. (AGG-Kanten nur innerhalb einer Ebene)
Fur jede AGG-Kante gilt, da ihre AGG-Quelle und ihr AGG-Ziel in der gleichen
Ebene liegen wie sie selbst.
7. (Injektivitat der ap-Abbildung und Linearitat der Ebenen )
Jeder P -Knoten ist Quelle genau einer ap-Kante und Ziel hochstens einer apKante.
Von jedem P -Knoten gibt es einen (ap)+-Kantenzug zum ?-Knoten.
3.4.1 Konsistenz der AGG-Modell-Grammatik
Es soll gezeigt werden, da die AGG-Modell-Grammatik konsistent ist, also nur Graphen
erzeugt werden, die Modelle von AGG-Graphen sind. Der Beweis wird durch Induktion uber
die Anzahl der Regelanwendungen gefuhrt.
Induktionsverankerung ist, da der Startgraph AGG-Modell ist. Induktionsannahme ist, da
die Graphen, auf die wir die Regeln anwenden, selbst schon AGG-Modelle sind. Im Induktionsschlu lat sich zeigen, da die abgeleiteten Graphen den Konsistenzbedingungen
genugen. Den Induktionsschlu fuhren wir beispielhaft fur die Regel R0 durch.
Es folgt die U berprufung des Startgraphen.
1. (Teilgraph und ?)
Der Startgraph ist immer Teilgraph von sich selbst. Oensichtlich! Es gibt genau einen
?-Knoten.
2. (Linkstotalitat, Rechtseindeutigkeit und Wertebereich)
Der ?-Knoten ist Quelle genau jeweils einer a-, s- und t-Kante. Es gibt keinen
O-Knoten.
Es gibt keinen O-Knoten.
Jede a-, s- und t-Kante zeigt auf den ?-Knoten.
Es gibt keine p-Kanten.
Die einzige ap-Kante zeigt auf den ?-Knoten.
3. (Knoten oder Kante)
Es gibt keinen O-Knoten.
4. (Abstraktionen)
Die einzige a-Kante zeigt auf den ?-Knoten. Es gibt also kein Abstraktionsobjekt.
5. (Zyklenfreiheit)
Der Modell-Graph ist zyklenfrei bis auf die Schlingen am ?-Knoten.
6. (AGG-Kanten nur innerhalb einer Ebene)
Es gibt keine AGG-Kanten.
3 MODELLIERUNG VON AGG-GRAPHEN
21
7. (Injektivitat der ap-Abbildung und Linearitat der Ebenen)
Der einzige P -Knoten ist Quelle genau einer ap-Kante und Ziel keiner ap-Kante.
Von dem einzigen P -Knoten gibt es einen (ap)+-Kantenzug zum ?-Knoten.
Fur die folgende U berprufung der Regel R0 (Abstraktionsebene einfugen) gilt nach Induktionsannahme, da der Graph, auf den die Regel R0 angewandt wird, ein AGG-Modell ist.
1. (Teilgraph und ?)
Die Regel R0 bildet den ?-Knoten ab, das heit, da alle Schlingen am ?-Knoten
unverandert bleiben. Die Regel R0 fugt einen neuen P -Knoten ein, der durch eine neue
ap-Kante mit dem ?-Knoten verbunden ist. Also ist im abgeleiteten Graphen wieder
der Startgraph enthalten.
Weitere ?-Knoten gibt es nach Induktionsannahme nicht.
2. (Linkstotalitat, Rechtseindeutigkeit und Wertebereich)
Die Regel R0 bildet den ?-Knoten auf den ?-Knoten ab. Die a-, s- und t-Kanten
des ?-Knoten werden nicht geloscht.
Alle O-Knoten sind nach Induktionsannahme Quelle genau jeweils einer a-, s- und
t-Kante. Die Regel R0 verandert weder O-Knoten noch a-, s-, t- oder p-Kanten
und fugt solche nicht hinzu.
Nach Induktionsannahme ist jeder O-Knoten Quelle genau einer p-Kante. Die
Regel R0 verandert keinen O-Knoten und fugt keinen hinzu.
Nach Induktionsannahme zeigt jede a-, s- und t-Kante auf einen O-Knoten oder
den ?-Knoten. Da keine a-, s- und t-Kante durch die Regel R0 hinzugefugt wird,
gilt dies auch nach Anwendung der Regel.
Nach Induktionsannahme zeigt jede p-Kante auf einen P -Knoten. Da keine pKante durch die Regel R0 zugefugt wird, gilt dies auch nach Anwendung der
Regel.
Nach Induktionsannahme zeigt jede ap-Kante auf einen P -Knoten oder den ?Knoten. Die Regel R0 fugt zwei ap -Kanten und einen P -Knoten ein, fur die das
ebenfalls gilt.
3. (Knoten oder Kante)
Nach Induktionsannahme reprasentiert jeder O-Knoten entweder einen AGG-Knoten
oder eine AGG-Kante. Da keine s- und t-Kanten und kein O-Knoten durch die Regel
R0 verandert werden, gilt dies auch nach Anwendung der Regel.
4. (Abstraktionen)
Nach Induktionsannahme gilt fur alle O-Knoten, da sie entweder auf den ?-Knoten
oder auf O-Knoten der nachsthoheren Ebene abstrahiert sind.
Keine O-Knoten werden durch die Regel R0 betroen. Der ?-Knoten wird auf den ?Knoten abgebildet. Daher gelten alle Konsistenzbedingungen fur Abstraktionen nach
Induktionsannahme.
3 MODELLIERUNG VON AGG-GRAPHEN
22
5. (Zyklenfreiheit)
Nach Induktionsannahme ist der Graph zyklenfrei bis auf die Schlingen am ?-Knoten.
Durch Ersetzen der (ap )-Kante durch einen (ap)+ {Kantenzug mit gleicher Quelle und
gleichem Ziel entsteht kein Zyklus.
6. (AGG-Kanten nur innerhalb einer Ebene)
Nach Induktionsannahme liegt jede AGG-Kante in der gleichen Ebene wie ihre AGGQuelle und ihr AGG-Ziel. Die Regel R0 verandert weder O-Knoten noch p-Kanten.
Somit bleiben alle AGG-Kanten, AGG-Quellen und AGG-Ziele unberuhrt.
7. (Injektivitat der ap-Abbildung und Linearitat der Ebenen)
Die Regel R0 fugt einen P -Knoten ein, der Quelle genau einer ap-Kante und
Ziel genau einer ap -Kante ist. Beim abgebildeten P -Knoten wird die ausgehende ap -Kante durch eine neue ap-Kante ersetzt. Nach Induktionsannahme ist der
abgebildete P -Knoten Ziel hochstens einer ap -Kante.
Nach Induktionsannahme gibt es von jedem P -Knoten einen (ap)+-Kantenzug
zum ?-Knoten. Der Kantenzug wird nicht durch die Loschung der (ap)-Kante
unterbrochen, da zwei neue (ap)-Kanten mit einem P -Knoten die Verbindung
zum ?-Knoten wiederherstellen.
Somit haben wir beispielhaft an der Regel R0 gezeigt, da durch die Anwendung dieser Regel
AGG-Modelle wiederum in AGG-Modelle uberfuhrt werden. Zum Beweis der Konsistenz der
AGG-Modell-Grammatik mute dies in analoger Weise auch fur die Regeln R1 bis R5 gezeigt
werden, worauf an dieser Stelle aber verzichtet wird.
3.4.2 Vollstandigkeit der AGG-Modell-Grammatik
Die Korrektheit unserer Transformation eines AGG-Graphen in unser Modell voraussetzend
zeigen wir nun, da wir fur jeden gegebenen AGG-Graphen G =(O ? P a s t p ap) ein
Modell erzeugen konnen, das diesen Graphen reprasentiert. Wir geben die Struktur eines
Beweises an, mit dem gezeigt werden kann, da mit der Grammatik GGAGG alle Modelle
von AGG-Graphen erzeugt werden konnen. Wir benutzen dazu das Prinzip der doppelten
Induktion5 , da ein AGG-Graph in zwei "Richtungen\ wachsen kann:
Wir konnen in einer bestimmten Ebene Objekte einfugen.
Wir konnen hohere Ebenen einfugen.
Die auere Induktion lauft uber die Anzahl der Ebenen, sprich uber die Machtigkeit von P .
Die innere Induktion lauft uber die Anzahl der Objekte, sprich uber die Machtigkeit von O.
In die innere Induktion geht implizit ein, was wir in der aueren Induktion zeigen wollen. Im
folgenden ist die Struktur des Beweises dargestellt.
A uere Induktionsverankerung:
Zu zeigen ist, da wir fur jeden AGG-Graphen mit einer Ebene ein aquivalentes Modell
mit der angegebenen Grammatik erzeugen konnen. Habe nun der zu modellierende
5
Die doppelte Induktion ist eine Verallgemeinerung der Noether'schen Induktion
3 MODELLIERUNG VON AGG-GRAPHEN
23
AGG-Graph nur eine Ebene, d.h. jP j = 1. (Bemerkung: Alle Objekte sind auf ?
abstrahiert, da es nur diese eine Ebene gibt. Deshalb betrachten wir diese Abbildung
nicht explizit.) Dazu fuhren wir eine innere Induktion uber die Machtigkeit von O
durch. Wir zeigen also, da wir fur jeden AGG-Graphen (mit nur einer Ebene) bei
beliebiger Machtigkeit von O ein AGG-Modell erzeugen konnen, das diesen Graphen
reprasentiert.
Innere Induktionsverankerung:
Sei die Machtigkeit von O gleich Eins, also jOj = 1. Das heit wir mussen den
Graphen mit dem ausgezeichneten Element ?, also den leeren AGG-Graphen
erzeugen. Der Startgraph modelliert gerade den leeren AGG-Graphen.
Innere Induktionsannahme :
Es sei schon gezeigt, da wir fur einen AGG-Graphen mit nur einer Ebene, dessen
Machtigkeit von O kleiner gleich n ist, also jOj n ein AGG-Modell erzeugen
konnen, das diesen Graphen reprasentiert.
Innerer Induktionsschlu:
Sei also ein AGG-Graph G mit jOj = n +1 gegeben. Wir mussen jetzt einen AGGb ? Pb ab sb tb pb abp = ap) nden, der aus n Objekten besteht und
Graphen Gb = (O
dessen Funktionen ba sb bt und pb Einschrankungen der Funktionen a s t p auf die
Objektmenge Ob O sind. Dieser soll zudem durch Anwendung einer Regel in
G uberfuhrt werden konnen. Diesen Graphen Gb nennen wir Vorganger von G. In
der vollstandigen Fallunterscheidung zeigen wir, da es so einen Vorganger immer
gibt.
Isolierter AGG-Knoten
Angenommen, G enthalt einen isolierten AGG-Knoten. Der Graph Gb , bei dem
genau dieser AGG-Knoten fehlt, ist ein Vorganger von G mit nur n Objekten.
Kante zwischen zwei Objekten
Angenommen, G enthalt keinen isolierten Knoten. Dann kann G nur AGGKnoten enthalten, die Quelle oder Ziel mindestens einer AGG-Kante sind.
Wir suchen uns jetzt eine Kante, die ihrerseits nicht wieder Quelle oder Ziel
einer anderen Kante ist.
Angenommen, solch eine Kante existiert nicht. Dann gilt fur alle Kanten, da
sie Quelle oder Ziel mindestens einer anderen AGG-Kante sind, d.h. von jeder
AGG-Kante existiert eine s- oder t-Abbildung zu einer anderen. Auerdem
ist die Anzahl der AGG-Kanten endlich, da AGG-Kanten Objekte sind und
die Menge O endlich ist. Daraus folgt, da der Graph G nicht zyklenfrei ist,
und somit kein AGG-Graph.
Daher mu eine AGG-Kante existieren, die nicht wieder selbst Quelle oder
Ziel einer anderen ist.
Ein Vorganger Gb mit n Objekten ist also der Graph, in dem genau diese
Kante fehlt.
Jetzt greift die Induktionsannahme. Ein Modell des AGG-Graphen Gb konnen
wir schon erzeugen. Mit der Regel R1 konnen wir einen isolierten AGG-Knoten
einfugen. Mit der Regel R2 konnen wir eine AGG-Kante zwischen zwei beliebigen
Knoten einfugen.
Damit erhalten wir das AGG-Modell des Graphen G.
3 MODELLIERUNG VON AGG-GRAPHEN
24
Somit ist die auere Induktionsverankerung erfullt.
A uere Induktionsannahme:
Es sei schon gezeigt, da wir fur jeden AGG-Graphen mit n Ebenen, sprich jP j = n,
und mit beliebig vielen Objekten, sprich jOj = m ein AGG-Modell erzeugen konnen,
das diesen Graphen reprasentiert.
A uerer Induktionsschlu:
Sei also ein AGG-Graph G =(O ? P a s t p ap) mit jP j = n +1 gegeben. Wir mussen
jetzt einen AGG-Graphen
b ? Pb ab sb tb pb abp )
Gb = (O
nden, der Vorganger von G ist und nur n Ebenen hat.
Konstruktion des Vorgangers Gb :
Einen Vorganger Gb nden wir, indem wir G um die oberste Ebene reduzieren. Das
bedeutet, da wir die Menge O um alle Objekte der obersten Ebene reduzieren,
Ob = Onfojap(p(o)) = ?g:
Hierbei mussen wir nun berucksichtigen, da in der abgezogenen Menge i.a. auch Abstraktionsobjekte sind, d.h. da jetzt die Abbildung a in der darunterliegenden Ebene
nicht mehr total ist. Daher denieren wir die Abbildung ab folgendermaen:
(
falls a(o) 62 Ob ab(o) = ?
a(o) sonst
Die Funktion ab bildet alle Objekte der Ebene unter der obersten Ebene auf ? ab alle
ubrigen Objekte werden genauso abgebildet wie von der Abbildung a.
Dann bilden wir die Menge
Pb = P nfpjap(p) = ?g
die gerade die Machtigkeit n hat, da jfpjap(p) = ?gj = 1. Analog mussen wir auch hier
die Abbildung abp leicht modizieren :
(
falls ap(p) 62 Pb
abp(p) = ?
ap (p) sonst
Die Funktion abp bildet das P-Element unter der obersten Ebene auf ? ab alle ubrigen P-Elemente werden genauso abgebildet wie von der Abbildung ap . Alle anderen
Funktionen aus Gb sind Einschrankungen der entsprechenden Funktionen aus G.
Dieser so konstruierte Graph Gb ist ein AGG-Graph, falls G selbst ein AGG-Graph ist.
Die Mengen Ob und Pb sind endlich, sofern nur O und P endlich sind. Die Modizierungen der Abbildungen hangen mit den veranderten Wertebereichen zusammen. Sofern
die Abbildungen aus G total waren, sind es auch die aus Gb . Nach Induktionsannahme
lat sich ein Modell dieses Graphen Gb mit der angegebenen Grammatik erzeugen.
Zu zeigen ist, da wir aus dem AGG-Modell fur den AGG-Graphen Gb ein AGG-Modell
ableiten konnen, das den AGG-Graphen G reprasentiert.
Mit Regel R0 konnen wir einen neuen obersten Ebenenknoten einfugen. So haben wir
ein AGG-Modell mit einer leeren obersten Ebene erzeugt.
3 MODELLIERUNG VON AGG-GRAPHEN
25
Die innere Induktion entfallt, da nach dem Substitutionstheorem (auch Einbettungstheorem)(siehe Low93]) beim SPO-Ansatz kontextunabhangig die gleiche Ableitungssequenz gebildet werden kann wie in der inneren Induktion uber die Anzahl
der Elemente in der einzigen Ebene. So fugen wir die Knoten und Kanten in die
oberste Ebene ein, die die Objekte der obersten Ebene des Graphen G modellieren.
Jetzt haben wir also ein AGG-Modell abgeleitet, das sich von dem angestrebten AGGModell fur den Graphen G nur noch in den Abstraktionen unterscheidet, da bisher
noch alle a-Kanten der Objekte aus der zweitobersten Ebene auf ? zeigen. Mit den
Regeln R3, R4 und R5 lassen sich alle zulassigen Abstraktionen modellieren.
So ist gezeigt, da mit der angegeben Modellgrammatik GGAGG fur jeden gegebenen AGGGraphen ein AGG-Modell erzeugt werden kann, das diesen Graphen reprasentiert. Zusammen mit dem (skizzierten) Beweis der Konsistenz von GGAGG ist somit die Korrektheit der
Grammatik demonstriert.
3.5 Unabhangigkeit der Regeln der AGG{Modell{Grammatik
Im folgenden wollen wir exemplarisch die Regeln der AGG-Modell-Grammatik auf parallele
und sequentielle Unabhangigkeit untersuchen. Solche Unabhangigkeiten sind insbesondere
im Zusammenhang mit der Verwendung von Graphgrammatiken innerhalb von verteilten
und nebenlaugen Systemen interessant. Auerdem gestatten derartige Unabhangigkeiten
auch Freiheiten in der Auswahl der Anwendungsreihenfolge von Regeln auf herkommlichen
Systemen. Die hier gemachten Unabhangigkeitsuberlegungen illustrieren die im Rahmen algebraischer Graphgrammatiken vorhandenen Moglichkeiten.
3.5.1 Parallele Unabhangigkeit
Zunachst einige Grunduberlegungen zu paralleler Unabhangigkeit. Wann sind zwei Ableitungen voneinander parallel unabhangig?
Gegeben seien im folgenden zwei Regeln r1 und r2 mit den linken Regelseiten L1 und L2 sowie
den rechten Regelseiten R1 und R2. Man nennt die Ableitung eines Graphen G mit Regel
r2 am Ansatz m2 schwach parallel unabhangig von einer anderen Ableitung des Graphen G
mit Regel r1 am Ansatz m1, wenn sie kausal von ihr unabhangig ist, d.h. beliebig verzogert
ausgefuhrt werden kann. Intuitiv bedeutet das, da r2 nicht auf solchen Elementen von
G operiert, die von r1 unter m1 geloscht werden. Noch einmal anders ausgedruckt: Die
Elemente des Ausgangsgraphen, die im Ansatz der zweiten Ableitung liegen, durfen nur im
Kontext oder im bewahrten Teil der ersten Ableitung liegen. Zu beachten sind hier auch
die bei der ersten Ableitung implizit geloschten Kanten. Zwei Ableitungen, die wechselseitig
schwach parallel unabhangig sind, werden (stark) parallel unabhangig genannt. Eine formale
Denition ndet sich in KLTW93].
Neben der Unabangigkeit von Ableitungen lat sich auch die Unabhangigkeit von Regeln
untersuchen: Zwei Regeln sind voneinander unabhangig, wenn alle moglichen Ableitungen
(an beliebigen Graphen mit beliebigen Ansatzen) mit diesen Regeln voneinander unabhangig
sind.
3 MODELLIERUNG VON AGG-GRAPHEN
26
Untersuchen wir die Regeln R0 bis R5 der AGG{Modell{Grammatik hinsichtlich Loschungen,
so ergibt sich, da bei einer Regelanwendung der Regel R0 eine auf ? zeigende ap -Kante,
bei Anwendung der Regel R3 eine auf ? zeigende a-Kante eines AGG-Knotens, und bei
Anwendung der Regeln R4 und R5 je eine auf ? zeigende a-Kante einer AGG-Kante geloscht
wird. Mit den Regeln R1 und R2 wird nichts geloscht.
Fur alle denkbaren Ansatze operieren die Regeln R0, R1, R2 und R3 nur auf solchen Teilgraphen, die im Kontext oder bewahrten Teil aller anderen Regeln der Regelmenge R0 bis
R5 liegen. Die Regeln R4 und R5 operieren fur alle denkbaren Ansatze nur auf Teilgraphen,
die von Ableitungen mit den Regeln R0 bis R3 bewahrt werden.
Somit sind alle Ableitungen mit den Regeln R0, R1, R2 oder R3 parallel unabhangig von
beliebigen Ableitungen mit den Regeln R0 bis R5 . Das bedeutet, obige Regeln konnen beliebig
parallel miteinander angewendet werden, auch mit sich uberschneidenden Ansatzen.
Die parallele Unabhangigkeit der Anwendungen der Regeln R4 und R5 ist hierbei ausgespart.
Denn beide Regeln benotigen im Ansatz eine a-Kante, die durch eine parallele Anwendung
der jeweils anderen Regel mit sich uberschneidendem Ansatz geloscht werden konnte. Regel
R4 und R5 sind also nicht parallel unabhangig. Fur sich nicht uberschneidende Ansatze
konnen sie aber dennoch parallel angewendet werden.
3.5.2 Sequentielle Unabhangigkeit
Auch hier zunachst einige Voruberlegungen. Eine Ableitung ist (schwach) sequentiell unabhangig von einer anderen, wenn sie keine Elemente benutzt, die von der anderen erst
erzeugt werden. (Starke) sequentielle Unabhangigkeit und Unabhangigkeit von Regeln
sind analog zum parallelen Fall deniert. Die formale Denition ndet sich wiederum in
KLTW93].
Betrachten wir jetzt wieder die Regeln der AGG{Modell{Grammatik. Hinsichtlich sequentieller Unabhangigkeit lassen sich die Regeln R0 bis R5 schlecht pauschal klassizieren. Vielmehr mute die sequentielle Unabhangigkeit von Ableitungen mit den Regeln R0 bis R5
mit konkreten Ansatzen bestimmt werden. Dennoch lassen sich einige generelle Aussagen
treen. Dazu wird in der folgenden Auistung mit "(un)abhangig\ die schwache sequentielle
(Un)abhangigkeit bezeichnet:
In Graphen mit mehreren Ebenen sind Ableitungen mit den Regeln R1 bis R5 abhangig
von vorangehenden Ableitungen mit der Regel R0 (Ebene einfugen), wenn in der oberen
Ebene eingefugt wird.
Ableitungen mit der Regel R2 (Kante einfugen) sind abhangig von vorangehenden
Ableitungen mit der Regel R1 (Knoten einfugen). Dies gilt jedoch nicht fur Kanten
zwischen Kanten.
Ableitungen mit der Regel R3 (Knoten abstrahieren) sind abhangig von vorangehenden
Ableitungen mit der Regel R1 (Knoten einfugen).
Im allgemeinen konnen die Regeln also nicht wahllos angewendet werden, da verschiedene
sequentielle Abhangigkeiten existieren. Werden diese Abhangigkeiten beachtet, konnen in
vielen Teilphasen die Regeln aber in beliebiger Reihenfolge angewendet werden.
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
27
4 Spezikation im Rahmen des "logischen Graphmodells\
Mit dem AGG-Modell aus dem vorigen Abschnitt haben wir eine Moglichkeit, AGG-Graphen
darzustellen. Wenn wir nun aber Operationen des AGG-Systems mit seiner graphischen Benutzeroberache spezizieren wollen, fehlen uns im bisherigen Modell die Mittel, um beispielsweise Fenster und selektierte Objekte zu beschreiben. All das wird uns das logische
Graphmodell ermoglichen.
Wie wir an einem Beispiel sehen werden, gestaltet sich das Spezizieren von AGGOperationen dennoch beschwerlich, wenn wir uns allein der bisher bekannten, einfachen
SPO-Regeln bedienen. Deshalb werden wir einige Konzepte einfuhren, die das Spezizieren
komfortabler machen sollen: Negative Anwendungsbedingungen, Transaktionen und Amalgamierungen. Zahlreiche Spezikationsbeispiele werden die Anwendung dieser Konzepte veranschaulichen.
4.1 Das logische Graphmodell
Das logische Graphmodell ist eine erste Erweiterung des AGG-Modells. Es ermoglicht, Konzepte wie Fenster, aktuelles Fenster, sichtbare und unsichtbare Objekte, selektierte Objekte
etc. darzustellen. Das logische Graphmodell ermoglicht nicht, das Layout von Graphen oder
Fenstern zu beschreiben.
Fenster im AGG-System werden durch Knoten vom Typ W (kurz W-Knoten) modelliert.
Die Ebene des Graphen, die in einem Fenster sichtbar ist, ist durch eine Kante vom Typ
w (kurz: w-Kante) gekennzeichnet, die vom W -Knoten auf den entsprechenden P -Knoten
zeigt.
Das aktuelle Fenster wird durch eine unmarkierte Schlinge am entsprechenden W -Knoten
dargestellt. Diesen W -Knoten nennen wir aktuellen W-Knoten.
Als aktuelle Ebene wollen wir die Ebene des AGG-Graphen bezeichnen, die im aktuellen
Fenster angezeigt wird. Im logischen Graphmodell wird die aktuelle Ebene durch den P Knoten reprasentiert, auf den die w-Kante des aktuellen W-Knotens zeigt.
Um ein "Verstecken\ von Objekten durch die Hide-Operation des AGG-Systems zu modellieren, ziehen wir von einem O-Knoten immer dann eine Sichtbarkeitskante zu einem W -Knoten,
wenn das reprasentierte Objekt im reprasentierten Fenster nicht versteckt wird. Das Vorhandensein der Sichtbarkeitskanten ist unabhangig davon, welche Ebene momentan im Fenster
angezeigt wird, d.h. beim Wechseln in eine andere Ebene und anschlieendem Zuruckkehren
sind dieselben Objekte sichtbar wie zuvor. In den graphischen Darstellungen markieren wir
die Sichtbarkeitskanten durch ein +.
Selektierte Objekte werden durch Schlingen vom Typ sel (kurz sel-Schlingen) am entsprechenden O-Knoten markiert.
Als Beispiel ist eine AGG-Sitzung modelliert, bei der 3 Fenster geonet sind. In der linken
Bildhalfte von Abb. 12 sind die drei Fenster zu sehen, rechts das zugehorige logische Modell.
Die Nummern der korrespondierenden Fenster sind an den W -Knoten angegeben.
Fenster (2) ist das aktuelle Fenster, weshalb W -Knoten (2) der aktuelle W -Knoten ist. Es
ist ein schlingenbehafteter Knoten sichtbar. Fenster (3) zeigt die gleiche (untere) Ebene des
Graphen an, allerdings ist hier die Schlinge unsichtbar. Also gibt es in dem logischen Modell
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
28
eine Sichtbarkeitskante6 von der die Schlinge reprasentierenden AGG-Kante zum W -Knoten
(2), nicht aber zum W -Knoten (1). Fenster (1) zeigt die Abstraktion des in Fenster (2)
dargestellten Graphen. Wurde man die untere Ebene in Fenster (1) anzeigen, waren weder
Knoten noch Schlinge sichtbar, was aus den fehlenden Sichtbarkeitskanten hervorgeht.
Der Knoten der oberen Ebene ist potentiell in allen drei Fenstern sichtbar. Der Knoten der
unteren Ebene ist selektiert, was durch die sel-Schlinge modelliert wird. Er wird deshalb in
allen Fenstern, die derzeitig die untere Ebene anzeigen und zu deren W -Knoten Sichtbarkeitskanten existieren, als selektiert dargestellt.
(1)
ap
s,t,a
p
P
T
AGG 1.O
Level: 1 of 2
w
W
+
(1)
ap
(3)
W
AGG 1.O
Level: 2 of 2
(2)
AGG 1.O
(3)
Level: 2 of 2
P
’normaler’ Knoten
p
AGG 1.O
a
s,t
+
s,t
w
(2)
a
+ +
w
W
+
+
p
sel
AGG 1.O
’normales’ Fenster
aktuelles Fenster
selektierter Knoten
Abbildung 12: logisches Graphmodell - Beispiel
In Erganzung zu den Konsistenzbedingungen des AGG-Modells lassen sich weitere Konsistenzbedingungen fur das logische Graphmodell formulieren. Vier derartige werden
zunachst informell beschrieben und dann in die Sprache des logischen Modells ubertragen,
wobei hier kein Anspruch auf Vollstandigkeit erhoben wird.
Im AGG-System gibt es zu jedem Zeitpunkt mindestens ein Fenster, darunter bendet sich
stets genau ein aktuelles Fenster. In einem Fenster konnen zu einem Zeitpunkt nur Objekte
einer einzigen Ebene angezeigt werden. Fur jedes Fenster und jedes Objekt gilt, da das
Objekt in dem betrachteten Fenster entweder sichtbar oder unsichtbar ist. Schlielich sollen
sich alle zu einem Zeitpunkt selektierten Objekte in einer Ebene benden.
1. (mindestens ein Fenster, genau ein aktuelles Fenster)
Es gibt mindestens einen W -Knoten. Genau ein W -Knoten ist der aktuelle W -Knoten.
2. (Fenster zeigt Objekte genau einer Ebene)
Von jedem W -Knoten geht genau eine auf einen P -Knoten zeigende w-Kante aus.
w-Kanten verlaufen nur zwischen W -Knoten und P -Knoten.
3. (Objekte entweder sichtbar oder unsichtbar)
Zwischen einem O-Knoten und einem W -Knoten kann hochstens eine Sichtbarkeitskante existieren. Sie hat dann den O-Knoten als Quelle und den W -Knoten als Ziel.
6
Zur besseren U bersichtlichkeit sind die Sichtbarkeitskanten (nur) in diesem Bild gepunktet dargestellt.
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
29
4. (Selektierte Objekte in einer Ebene)
Die p-Kanten aller selektierter O-Knoten zeigen auf ein und denselben P -Knoten.
4.2 SPO-Graphtransformation ohne konzeptionelle Erweiterungen
In diesem Unterabschnitt wird beispielhaft die Operation Knoten einfugen allein mit der in
Abschnitt 2.3.1 vorgestellten SPO-Graphtransformation modelliert.
4.2.1 Spezikation "Knoten einfugen\
Die Operation "Knoten einfugen\ des AGG-Systems fugt in der aktuellen Ebene einen einzelnen Knoten ein. Dieser ist neben dem Fenster, in dem die Einfugeoperation durchgefuhrt
wird, auch in allen anderen Fenstern sichtbar, die diese Ebene anzeigen. Zusatzlich ist er
in allen anderen Fenstern (d.h. in denjenigen Fenstern, die zur Zeit des Einfugens Objekte
anderer Ebenen anzeigen) potentiell sichtbar. Wenn man also in einem solchen Fenster zu der
Ebene wechseln wurde, zu der der neu eingefugte Knoten gehort, ware er auch dort sichtbar.
Eine explizite Abstraktion ndet dabei nicht statt.
Im logischen Graphmodell soll die Operation den entsprechenden O-Knoten, die auf ? zeigenden a-, s- und t-Kanten sowie die auf den entsprechenden P -Knoten zeigende p-Kante
einfugen. Desweiteren soll zu allen W -Knoten genau eine Sichtbarkeitskante zeigen, die von
dem eingefugten O-Knoten ausgeht.
Die Modellierungsentscheidung, Sichtbarkeitskanten auf jeden W -Knoten zeigen zu lassen,
verhindert, da die Operation durch eine einzelne Regel ausgedruckt werden kann. Wir geben stattdessen eine Regelmenge an. An diese Regelmenge wird die Bedingung geknupft,
da die Operation ununterbrechbar sein soll, d.h. wird die Operation angestoen, darf bis
zur Vollendung der Operation keine andere Regel als eine aus der zugehorigen Regelmenge
greifen.
Dazu mu das logische Graphmodell um Kontrollstrukturen erweitert werden. Fur das konkrete Problem wollen wir die Fenster in einer zyklischen Liste verwalten, um so den gezielten
Zugri auf alle vorhandenen Fenster zu ermoglichen. Zum Einfugen von Sichtbarkeitskanten
kann man sich an dieser Liste entlanghangeln und dabei die erforderlichen Kanten ziehen.
Das Beispiel verwendet fur diesen Zweck funf zusatzliche Kantentypen:
einen Kantentyp kontrolle (im folgenden kontrolle-Kanten genannt), der wie folgt in
dem AGG-Graphen vorhanden sein soll: alle W -Knoten sollen derart mit kontrolleKanten versehen sein, da sie eine Ringstruktur bilden. Diese Struktur soll im folgenden
Ring\ genannt werden.
"Damit
die Regelmenge greifen kann, mu der Ring schon beim Onen
der Fenster
mit erstellt werden. Dies ist bei der Spezikation der Operation "Fenster onen\ zu
berucksichtigen.
weitere Kantentypen neu, beginn, ende und lauf , die Zeiger auf Knoten darstellen
und deren Funktion sich aus den Namen selbst ergibt. Sie kommen nur als Schlingen
an Knoten vor und sollen dementsprechend neu-, beginn-, ende- und lauf -Schlingen
genannt werden.
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
30
Die im Graphen vorhandene Kontrollstruktur besteht nur aus den zusatzlichen kontrolleKanten, die den Ring bilden. Die Regelmenge zur Modellierung der Operation "Knoten
einfugen\ besteht aus folgenden drei Regeln:
lauf
W
w
ende
T
T
kontrolle
W
beginn
->
W
w
P
W
P
lauf
p
neu
lauf
kontrolle
kontrolle
W
W
W
W
->
SPO 2
+
neu
neu
beginn
SPO 1
a,s,t
ende
lauf
kontrolle
W
W
W
->
W
+
SPO 3
neu
Abbildung 13: Regelmenge zu "Knoten einfugen\
Vor der Erklarung der Regeln soll auf eine Moglichkeit zur vereinfachten Darstellung von
Kantenbuscheln hingewiesen werden, die in der Regel SPO1 benutzt wurde und auch in
spateren Regeln Verwendung nden wird:
Kantenbuschel, beispielsweise "s,t\ bzw. "a,s,t\ :
Mehrere Kanten "x\, "y\, "z\ mit einer gemeinsamen Quelle und einem gemeinsamen
Ziel konnen in einer
Regel vereinfacht auch als eine einzige Kante mit der Bezeichnung
x
,
y
,
z
\
dargestellt
werden.
"
Die Anwendungsreihenfolge der drei Regeln ist implizit festgelegt. Zu Beginn kann nur die
Regel SPO1 angewendet werden, da in den linken Seiten der beiden anderen Regeln Kontrollstrukturen (z.B. die lauf -Schlinge) vorkommen, die erst durch Ausfuhrung der ersten
Regel geschaen werden.
Durch die Anwendung von SPO1 wird der Ring am aktuellen Fenster aufgebrochen. Dadurch
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
31
entsteht eine Kette von W -Knoten (im folgenden "Kette\ genannt). Der Startknoten dieser
Kette, also der aktuelle W -Knoten, wird mit je einer beginn- und lauf -Schlinge versehen
dafur wird die vorhandene unmarkierte Schlinge geloscht. Der Endknoten der Kette erhalt
eine ende-Schlinge. Der O-Knoten wird in der aktuellen Ebene eingefugt und zum spateren
Wiedernden mit einer neu-Schlinge versehen. Die erste Regel kann nur einmal angewandt
werden, da die unmarkierte Schlinge (zum Anzeigen des aktuellen Fensters) geloscht wurde.
Aus dem gleichen Grunde kann die Operation "Knoten einfugen\ auch nicht durch andere
AGG-Editoroperationen unterbrochen werden, da solche nur im aktuellen Fenster gestartet
werden konnen.
Je nach Anzahl der vorhandenen Fenster wird mit Regel SPO2 oder SPO3 fortgefahren.
Wenn es mehr als einen W -Knoten gibt, wird durch die Regel SPO2 eine Wiederholungsschleife realisiert. Die Regel ist anwendbar, solange in der Kette hinter einem W -Knoten
mit lauf -Schlinge noch ein weiterer W -Knoten vorhanden ist. Sie setzt die lauf -Schlinge
weiter und fugt eine Sichtbarkeitskante ein. Eine Unterbrechung durch andere Regeln ist
unmoglich, da entweder keine unmarkierte Schlinge vorhanden ist oder die lauf -Schlinge
nicht auf denselben W -Knoten wie die ende-Schlinge zeigt.
Ist die Kette abgearbeitet\, d.h. es gibt kein Nachfolge-Fenster (W -Knoten) mehr, kann die
zweite Regel "nicht mehr angewendet werden. In diesem Falle greift die Regel SPO3 ebenso
fur den Fall, da SPO2 uberhaupt nicht anwendbar war (bei insgesamt nur einem Fenster).
Die dritte Regel setzt eine Sichtbarkeitskante zum letzten W -Knoten der Kette und macht
aus der Kette wieder einen Ring. Desweiteren werden die nicht mehr benogtigten Schleifen
geloscht und die unmarkierte Schlinge wieder an ihren ursprunglichen Platz gesetzt.
Hier endet die Operation.
Bereits bei einer solchen relativ einfachen Operation wird die Benutzung von SPOGraphtransformation ohne Erweiterung relativ kompliziert. Bei komplizierteren Operationen
sind aufgrund vieler Kontrollstrukturen wesentlich unubersichtlichere Modellierungen zu erwarten. Weiterhin ist zu bedenken, da das Graphmodell fur jede Operation oder zumindest
fur jede Operationsfamilie um eine Kontrollstruktur speziell fur diese Operation oder Operationsfamilie erweitert werden mu. Aus diesem Grunde haben wir uns fur eine Erweiterung
der vorhandenen Ausdrucksmittel entschieden.
4.3 Negative Anwendungsbedingungen
4.3.1 Informelle Beschreibung
Wahrend bei der SPO-Graphtransformation ohne Erweiterungen in den Regeln (positive) Informationen uber das Vorhandensein bestimmter Elemente kodiert sind, lassen sich durch negative Anwendungsbedingungen Aussagen uber das Nichtvorhandensein bestimmter Strukturen formulieren. Eine weitere Art negativer Bedingungen stellt das Verbieten bestimmter
Verklebungen in den Ansatzen dar, d.h. es ist unterscheidbar, ob Objekte verschieden sein
durfen oder mussen.
Bei Verwendung negativer Anwendungsbedingungen kann es passieren, da sich positive und
negative Anforderungen widersprechen (z.B. wenn der negative Teil eine Struktur verbietet,
die der positive Teil fordert), die Gesamtanwendungsbedingung ist dann unerfullbar, die
entsprechende Regel kann nie zur Anwendung kommen. Deshalb ist sicherzustellen, da nur
widerspruchsfreie Anwendungsbedingungen verwendet werden.
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
32
Die theoretischen Grundlagen fur Regeln mit Anwendungsbedingungen sind in HHT94] und
HMTW94] zu nden. Dort gibt es sowohl positive als auch negative Anwendungsbedingungen, wir verwenden hier allerdings einen Spezialfall mit lediglich negativen Anwendungsbedingungen. Diese wollen wir kurz als NAB-Regeln bezeichnen. NAB-Regeln mit einer negal L ;!
r R darstellen. Dabei
tiven Anwendungsbedingung konnen wir in der Form r^ = L^ ;
^
enthalt L die geforderten, positiven Strukturen, L zusatzlich dazu die negativen Informationen. R ist wie bei den einfachen SPO-Regeln die rechte Regelseite.
Etwas formaler werden negative Anwendungsbedingungen als totale Graphmorphismen
l : L ! L^ dargestellt, wobei L als linke Regelseite die positiven Anforderungen enthalt.
L^ ; l(L) reprasentiert dann die verbotene Teilstruktur und l(L) die verbotene Verklebung.
Ein Ansatz m in einen Graphen G erfullt die negative Anwendungsbedingung l, falls kein
Ansatz7 m0 : L^ ! G mit m0 l = m existiert.
Obwohl in dieser Denition fur l beliebige totale Graphmorphismen zugelassen sind, werden
wir uns im weiteren auf Graphinklusionen einschranken, die fur unsere Modellierungszwecke
vollig ausreichen.
NAB-Regeln stellen eine Verallgemeinerung der einfachen SPO-Regeln dar, da man diese
Regeln auch als NAB-Regeln auassen kann, bei denen weder bestimmte Strukturen noch
bestimmte Verklebungen verboten sind.
In einigen Fallen verwenden wir auch Regeln mit mehreren negativen Bedingungen, d.h.
mehreren Graphen L^1 : : : L^n und mehreren Graphinklusionen l1 : : : ln, die konjunktiv zu
verknupfen sind. D.h., solche Regeln sind schon dann nicht mehr anwendbar, wenn mindestens eine der verbotenen Strukturen im Wirtsgraphen zu nden ist.
Fur die graphische Darstellung von NAB-Regeln bieten sich zwei Moglichkeiten an:
L^ , L und R konnen als getrennte Graphen gezeichnet werden, so da eine
NAB-Regel das folgende Aussehen bekommt:
L^
;
;!
L
R
L^ n l(L) kann gestrichelt in die linke Regelseite aufgenommen werden.
Je nach U bersichtlichkeit konnen beide Darstellungsformen verwendet werden.
Werden mehrere Anwendungsbedingungen verwendet, so werden diese stets als getrennte Graphen angegeben. Die einzelnen Bedingungen L^1 : : : L^n werden dabei
untereinander gezeichnet:
..
.
L^1
-
L^n
.
L
;!
R
Mit der Einfuhrung der NAB-Regeln konnten wir auf die Verwendung des ?-Knotens im logischen Graphmodell verzichten. Bei der Modellierung von AGG-Graphen hatten dann nur
7
Ein Ansatz ist ein totaler Graphmorphismus { vgl. Abschnitt 2.3.1.
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
33
noch die AGG-Kanten s- und t-Kanten, nicht jedoch die AGG-Knoten. Die Abstraktionskanten fur Objekte ohne Abstraktion wurden dann ebenfalls entfallen. Dann muten allerdings
die bisherigen Graphregeln modiziert werden: Mittels NAB konnte in den Regeln unterschieden werden, ob es sich um AGG-Knoten oder -Kanten handelt. Die Unterscheidung, ob
ein Objekt bereits abstrahiert ist oder nicht, wurde ebenso durch eine NAB erfolgen.
Bei einer Veranderung der Regeln muten auch die Konsistenzbetrachtungen erneut angestellt werden. Auerdem wurde der Umfang der Graphregeln bei der alternativen Modellierung nicht wesentlich sinken, so da wir uns fur die Beibehaltung der einmal gewahlten
Variante entschieden haben.
4.4 Transaktionen
4.4.1 Informelle Beschreibung
Das Transaktionskonzept ermoglicht es, NAB-Regeln bzw. -Regelmengen (siehe unten) in
einer vorzugebenden Reihenfolge und ununterbrechbar auszufuhren. Damit lassen sich komplexe Operationen einfacher durch Graphregeln darstellen. Notige Kontrollstrukturen (vgl.
Spezikation von "Knoten einfugen\ in Abschnitt 4.2.1) konnen aus den Arbeitsgraphen
herausgenommen werden und durch die Steuerung des Kontrollusses mittels Transaktionen
ersetzt werden.
Um den Transaktionsbegri beschreiben zu konnen, wollen wir die folgenden Begrie
einfuhren:
Ein Transaktionselement ist eine endliche, nichtleere Menge von NAB-Regeln. Dabei wird
die ubliche Mengenschreibweise mit geschweiften Klammern verwendet.
Fur die einzelnen Regeln kann gefordert werden, da sie nur an Ansatzen eines bestimmten
Typs (z.B. nur an vorsichtigen Ansatzen) benutzt werden durfen. Diese verbal beschriebenen
Ansatzeinschrankungen werden in runde Klammern gesetzt und der Regel nachgestellt.
In Erweiterung des Anwendbarkeitsbegries fur einzelne Regeln heit ein Transaktionselement E anwendbar, wenn mindestens eine der Regeln aus E anwendbar ist. Ist keine Regel
aus E anwendbar, heit E nicht anwendbar. Die einmalige Anwendung von E auf einen Graphen G besteht aus der Anwendung einer (beliebigen) Regel aus E auf G. In diesem Fall
handelt es sich also um einen nichtdeterministischen Vorgang, wenn mehrere Regeln aus E
auf G anwendbar sind.
Weiterhin kann vorgegeben werden, wie oft ein bestimmtes Transaktionselement angewendet
werden soll (Anwendungshaugkeiten). Moglich ist, da ein Transaktionselement einmal, nmal oder maximal oft, d.h. solange es anwendbar ist, angewendet werden soll. Hierfur fuhren
wir folgende Schreibweisen ein:
tn (n 2 IN nf0g) fur n-malige Anwendung des Transaktionselementes t
t2 fur wiederholte Anwendung des Transaktionselementes t, solange es anwendbar ist.
Die Mehrfachanwendung besteht dann aus der sequentiellen Ausfuhrung des entsprechenden
Transaktionselementes in der geforderten Haugkeit. Ist eine Ausfuhrung eines Transaktionselementes in der angegebenen Haugkeit nicht moglich, schlagt die gesamte Transaktion
fehl, d.h. der Graph wird nicht verandert. Bei wiederholter Anwendung eines Transaktionselementes, solange es anwendbar ist, besteht naturlich die Gefahr, da die Transaktion nicht
terminiert. Dies zu verhindern, ist Aufgabe des Spezikateurs.
Eine Folge von Transaktionselementen mit Anwendungshaugkeiten bezeichnen wir als
(operationale) Regelfolge oder Transaktion. Die Transaktionselemente werden dabei in der
gewunschten Reihenfolge notiert, durch Semikolons getrennt und durch k eingeschlossen.
Fur die Spezikation von Operationen interessieren uns nur der Zustand vor Beginn und
der Zustand nach Beendigung der Transaktion. Hat die "Abarbeitung\ mit der Anwendung
einer Regel des ersten Transaktionselementes erst einmal begonnen, soll - Fehlschlagen der
Transaktion und Endlosschleifen ausgenommen { die gesamte Regelfolge ohne Unterbrechung
abgearbeitet werden.
Die Syntax der eingefuhrten Formalismen soll durch nachfolgende BNF-Darstellung zusammengefat werden. Dabei sind nicht weiter ausgefuhrte Nichtterminale so zu verstehen, wie
es oben (informell) beschrieben wurde.
:= k<T-ELEMENT-FOLGE>k
:= <T-ELEMENT>
j<T-ELEMENT> <T-ELEMENT-FOLGE>
<T-ELEMENT>
:= f<REGELMENGE>g <ANWENDUNGSHA UFIGKEIT>
<ANWENDUNGSHA UFIGKEIT> := 2 j1 j2j ::: jn
<REGELMENGE>
:= <REGEL>
j<REGEL> <REGELMENGE>
<REGEL>
:= <NAB-REGEL>
j<NAB-REGEL> (<ANSATZEINSCHRA NKUNG>)
<TRANSAKTION>
<T-ELEMENT-FOLGE>
Zwei Schreibvereinfachungen sind bei Transaktionen zulassig:
Die Mengenklammern um einelementige Regelmengen konnen weggelassen werden.
Die Anwendungshau
gkeit 1 kann weggelassen werden.
Eine Formalisierung eines Transaktionskonzeptes, da dem hier beschriebenen ahnelt, ist in
HMTW94] zu nden.
Mit den neu eingefuhrten Konzepten und Notationen sollen nun einige AGG-Funktionen
modelliert werden:
4.4.2 Spezikation "Knoten einfugen\
Die Beschreibung der Operation "Knoten einfugen\ ist im Unterabschnitt 4.2.1 zu nden.
Dort wurde die Operation ohne negative Anwendungsbedingunen und Transaktionskonzept
modelliert. Abb. 14 zeigt eine wesentlich ubersichtlichere Spezikation, die durch die Verwendung der neuen Konzepte ermoglicht wird.
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
35
ri : Einfuegen des Knotens im aktuellen Fenster und Markieren des Knotens
1
4
2
3
w
W
1
->
P
4
2
3
w
5
p
P
W
T
34
s,t,a
T
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
5
rii: Setzen einer Sichtbarkeitskante zu allen W-Knoten
1
2, 3
W
1
->
+
2, 3
W
+
riii: Loeschen der Markierung des eingefuegten Knotens
->
1
1
Abbildung 14: Regeln zur Spezikation der Operation "Knoten einfugen\
Das Einfugen eines neuen Knotens wird durch die Transaktion k ri rii2 riii k beschrieben.
ri fugt dabei den Knoten (genau einmal) in unser logisches Graphmodell ein. Dies soll nur in
der Ebene moglich sein, die im aktuellen Fenster angezeigt wird. Damit der aktuelle Knoten
von den weiteren Regeln wieder gefunden wird, wird er durch eine Schlinge markiert.
rii fugt zwischen dem neu eingefugten Knoten und einem W-Knoten einer beliebigen Ebene
eine Sichtbarkeitskante ein. Um zu verhindern, da mehrere Sichtbarkeitskanten eingefugt
werden, die auf denselben W-knoten zeigen, enthalt die linke Regelseite eine negative Anwendungsbedingung. Da rii solange angewendet wird, bis kein Ansatz mehr zu nden ist,
ist anschlieend sichergestellt, da der neu eingefugte Knoten mit jedem W-Knoten durch
genau eine Sichtbarkeitskante verbunden ist.
riii loscht anschlieend die temporare Schlingenmarkierung des neu eingefugten Knotens. Er
hat damit seine Sonderrolle verloren und stellt ab jetzt einen ganz normalen Knoten dar.
4.4.3 Spezikation "Objekt loschen\
Voraussetzung fur das Loschen von Objekten durch die Operation edit/delete ist die Selektierung bestimmter Objekte. Diese werden dann ebenso geloscht wie samtliche Verfeinerungsobjekte der selektierten Objekte und alle zuruckbleibenden hangenden Kanten.
An dieser Stelle sollen zwei Varianten vorgestellt werden. Variante 1 versieht zusatzlich zu
den selektierten Objekten alle implizit zu loschenden Objekte mit einer Markierung (selSchlinge). Danach werden alle mit einer sel-Schlinge behafteten Objekte geloscht. Variante
1 kommt ohne negative Anwendungsbedingungen aus (Abb. 15).
Fur die Regeln Ri bis Riii und alle weiteren gilt folgende Konvention:
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
36
Zusammenfassung verschiedener Regeln, beispielsweise "s/t\ :
Zwei Regeln, die sich nur durch den Typ bestimmter Kanten unterscheiden, konnen
graphisch zusammengefat werden. Kanten, deren Typen in den Regeln variieren,
werden dann bezeichnet mit < Typ1 > "/\ < Typ2 >. Die Regelnamen werden
genauso durch "/\ voneinander getrennt.
sel
1
sel
->
a/s/t
2
4
sel
Ri/Rii/Riii
1
3
2
4
sel
Riv
->
Abbildung 15: Regeln zur Spezikation der Operation edit/delete -Variante 1
Die Transaktion k fRi Rii Riiig2 R2iv k entspricht der Operation edit/delete.
Variante 2 dagegen verwendet negative Anwendungsbedingungen. Zunachst werden alle markierten Objekte geloscht. Die implizit zu loschenden Objekte werden daran erkannt, da
ihnen die a-, s- oder t-Kante fehlt. Diese Information wird uber die negativen Anwendungsbedingungen abgefragt (Abb. 16). Zwei mogliche Transaktionen beschreiben die Operation:
k R02 fRi Rii Riiig2 k
k fR0 Ri Rii Riiig2 k
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
37
2. (Fenster zeigt Objekte genau einer Ebene)
Explizit werden weder w-Kanten geloscht noch hinzugefugt. Eine implizite Loschung
ist ebenfalls unmoglich, da w-Kanten stets zwischen W - und P -Knoten verlaufen und
diese ebenfalls nicht geloscht werden.
3. (Objekte entweder sichtbar oder unsichtbar)
Nur rii fugt eine Sichtbarkeitskante ein. Die negative Anwendungsbedingung sichert ab,
da nur dort eine Sichtbarkeitskante eingefugt werden kann, wo es vorher keine gab.
Eine mehrfache Anwendung der Regel mit gleichem Ansatz ist ebenfalls unmoglich.
Damit wird fur die bestehenden Sichtbarkeitskanten nichts verandert und neue werden
hochstens einmal eingefugt.
4. (Selektierte Objekte nur in einer Ebene)
In keiner der Regeln kommen selektierte Objekte vor.
Da alle in der Transaktion vorkommenden Einzelregeln fur sich konsistenzerhaltend im obigen
Sinne sind, ist es auch die gesamte Transaktion, die ja nur diese Regeln verwenden kann.
Der eben beschriebene Fall (alle in der Transaktion vorkommenden Regeln sind einzeln konsistenzerhaltend) ist ein nicht reprasentativer und dazu sehr einfacher Spezialfall.
Im allgemeinen Fall konnen "wahrend\ der Transaktion durchaus inkonsistente Zustande
auftreten und erst nach Abarbeitung der gesamten Transaktion entsteht wieder ein konsistenter Zustand. In dieser Situation durften insbesondere Transaktionselemente, bestehend
aus mehrelementigen Regelmengen mit der Anwendungshaugkeit 2 problematisch fur die
Beweisfuhrung werden.
4.5 Amalgamierung
sel
Ro*
->
1
->
a/s/t
Ri*/Rii*/Riii*
1
T
->
1
->
a/s/t
Abbildung 16: Regeln zur Spezikation der Operation edit/delete -Variante 2
4.4.4 Konsistenznachweise fur Transaktionen
Wir wollen an einem einfachen Spezialfall einen Konsistenznachweis fur eine Transaktion
angeben und anschlieend Probleme, die im allgemeinen Fall auftreten, diskutieren.
Fur die unter 4.4.2 angegebene Spezikation der Operation "Knoten einfugen\ wollen wir
zeigen, da sie konsistenzerhaltend ist. Unter der Annahme, da die Transaktion konsistent
bezuglich der im Abschnitt 3.4 genannten Bedingungen fur einfache AGG-Modelle ist, prufen
wir nur die Konsistenz fur die in Abschnitt 4.1 beschriebenen zusatzlichen Bedingungen fur
das logische Graphmodell. Naturlich gehen wir davon aus, da die Transaktion auf einen
konsistenten Graphen angewendet wird.
1. (mindestens ein Fenster, genau ein aktuelles Fenster)
Es gibt keine Regel, die W -Knoten loscht oder hinzufugt oder Schlingen an W -Knoten
verandert. Damit kann diese Bedingung nicht verletzt werden.
4.5.1 Informelle Beschreibung
Mit Hilfe von Amalgamierungen sind wir in der Lage, Operationen, die fur viele Objekte
durchgefuhrt werden mussen, durch eine Regel auszudrucken. Damit werden sequentielle
und parallele Graphersetzungskonzepte kombiniert. Das Amalgamierungskonzept wurde in
BFH87] eingefuhrt und in TB94] zur Spezikation des AGG-Systems eingesetzt. Eine theoretische Fundierung in Zusammenhang mit negativen Anwendungsbedingungen und dem
Transaktionskonzept wird in HMTW94] gegeben.
In Anlehnung an diese Fundierung wollen wir hier eine kurze informelle Beschreibung des
Konzeptes geben.
Eine Amalgamierungsregel, wie wir sie im folgenden benutzen, besteht aus zwei Teilen:
Einer Menge von Komponentenregeln , die fur jeden moglichen Ansatz vervielfaltigt
werden. Als Komponentenregeln verwenden wir beliebige NAB-Regeln (vgl. 4.3.1).
Einer Basisregel , die festlegt, welche Objekte der linken und der rechten Seiten der
vervielfaltigten Komponentenregeln miteinander verklebt werden. Als Basisregel verwenden wir nur einfache Regeln ohne Anwendungsbedingungen.
Die linke Seite der Basisregel ist Teilgraph der linken Seite aller Komponentenregeln und die
rechte Seite der Basisregel ist Teilgraph der rechten Seite aller Komponentenregeln. D.h. die
Basisregel ist Unterregel aller Komponentenregeln.
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
38
Eine Amalgamierungsregel wird nicht direkt auf einen Graphen angewendet. Fur jeden Graphen wird vielmehr eine individuelle Regel erzeugt, indem zunachst ein Ansatz mB fur die
Basisregel gesucht wird. Dann werden alle gefundenen Ansatze der Komponentenregeln, die
mit mB uberlappen, am Ansatz von mB verklebt. Entsprechend entsteht die rechte Regelseite durch Verklebung der rechten Seiten der Komponentenregeln an der rechten Seite der
Basisregel. Als Ergebnis entsteht die individuelle Regel mit ihrem individuellen Ansatz. Eine
Amalgamierungsregel bezeichnen wir als anwendbar auf einen Graphen, wenn mindestens
ein Ansatz fur eine ihrer Komponentenregeln existiert. Die Anwendung einer Amalgamierungsregel erfolgt durch Anwendung der erzeugten individuellen Regel an ihrem individuellen
Ansatz auf den Wirtsgraphen. Diese individuelle Regel hat anschlieend ihren Zweck erfullt
und wird nicht weiter benotigt.
Die Regelansatze konnen auf injektive Ansatze eingeschrankt werden. Dies ist nicht in jedem
Fall notwendig, erhoht aber die Anschaulichkeit der Amalgamierungsregel.
Da wir Amalgamierungsregeln { kurz: AMA-Regeln { nun auch in Transaktionen verwenden wollen, andert sich die Beschreibung des Nichtterminals <REGEL> der BNF aus Abschnitt 4.4.1 wie folgt:
<REGEL>
:= <AMA-REGEL>
j<NAB-REGEL>
j<AMA-REGEL> (<ANSATZEINSCHRA NKUNG>)
<AMA-REGEL>
:= <BASIS-REGEL> <KOMPONENTEN-MENGE>
<KOMPONENTEN-MENGE> := <NAB-REGEL>
j<NAB-REGEL> <KOMPONENTEN-MENGE>
<BASIS-REGEL>
:= einfache Regel ohne Anwendungsbedingungen
AMA-Regeln werden graphisch wie folgt dargestellt:
B:
K1:
Kn:
..
.
;!
;!
..
.
;!
..
.
Die Selektion erfolgt mit der rechten Maustaste: Das angeklickte Objekt wird selektiert,
bereits selektierte Objekte werden deselektiert.
Die Operation wird durch die in Abb. 17 dargestellte Amalgamierungsregel ObjektSelektieren
modelliert.
39
ObjektSelektieren :=
sel
B:
+
+
->
W
w
W
p
w
P
K:
p
P
sel
->
sel
+
+
W
W
w
p
w
p
P
P
Abbildung 17: ObjektSelektieren-Regel
Die Basisregel grenzt den Wirkungsbereich der Selektion ein: Nur ein im aktuellen Fenster sichtbares Objekt kann eine sel-Markierung erhalten. Welches der dann noch moglichen
Objekte tatsachlich ausgewahlt wird, wird durch den Regelansatz bestimmt. Die Komponentenregel sorgt dafur, da gleichzeitig die sel-Schlingen aller bisher selektierten Objekte
geloscht werden.
4.5.3 Spezikation "Window Open\
Die leeren Rechtecke werden dabei durch die linken und rechten Regelseiten der Basisrespektive Komponentenregeln ersetzt. Bei Regeln mit negativen Anwendungsbedingungen ist zusatzlich die Darstellung der negativen Bedingungen notig.
4.5.2 Spezikation "Objekt selektieren\
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
Es wird ein neues Fenster geonet, in dem alle Objekte derjenigen Ebene sichtbar sind, die
in dem bisher aktuellen Fenster dargestellt wurden. In dem neuen Fenster gibt es also noch
keine versteckten Objekte. Das neue Fenster wird aktuelles Fenster.
Abb. 18 zeigt eine AMA-Regel zur Beschreibung der Operation.
WindowOpen :=
w
B:
w
W
P
->
W
P
w
W
w
K:
P
w
W
->
W
P
w
+
Abbildung 18: WindowOpen-Regel
W
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
40
Die Basisregel B fugt den neuen W -Knoten ein, zieht die w-Kante zum Ebenenknoten des
aktuellen Fensters, loscht die Schlinge am bisherigen aktuellen W-Knoten und fugt eine solche
am neu eingefugten W -Knoten ein. Die Komponentenregel K umfat zusatzlich das Ziehen
der Sichtbarkeitskanten von allen moglichen O-Knoten zum neu eingefugten W -Knoten.
4.5.4 Spezikation "Selection Complement\
Wenn in einer Ebene Objekte selektiert sind, bezeichnen wir diese Ebene als Arbeitsebene.
Sonst bezeichnen wir die aktuelle Ebene als Arbeitsebene. In der Arbeitsebene werden durch
die AGG-Operation SelectionComplement alle selektierten Objekte deselektiert und alle nicht
selektierten Objekte werden selektiert.
SelectionComplementTransaktion := k
ArbeitsebeneBestimmen12 ArbeitsebeneBestimmen22 ArbeitsebeneKomplementieren
k
ArbeitsebeneBestimmen1 :=
Arb
sel
sel
Arb
<P
sel
->
p
P
p
P
p
ArbeitsebeneBestimmen2 :=
Arb
Arb
P
<P
w
->
W
P
w
W
P
w
W
ArbeitsebeneKomplementieren :=
Arb
P
P
sel
Arb
K1:
p
->
K2:
sel
Arb
p
P
p
P
P
sel
Arb
<-
p
P
->
p
P
Abbildung 19: Regeln der SelectionComplementTransaktion
Die beiden Transaktionselemente ArbeitsebeneBestimmen12 und ArbeitsebeneBestimmen22
realisieren zusammen eine vollstandige Fallunterscheidung, d.h. ein IF-THEN-ELSEKonstrukt.
Fur den Fall, da Objekte im Graphen selektiert sind, wird die Ebene, in der sich diese Objekte benden zur Arbeitsebene, d.h. der entsprechende P -Knoten erhalt eine Arb-Schlinge.
Durch die negative Anwendungsbedingung wird erreicht, da die Regel hochstens einmal
ausgefuhrt wird und somit der P -Knoten auch nur hochstens einmal markiert wird.
Falls durch die erste Regel keine Arb-Schlinge eingefugt wurde, weil es keine selektierten
Objekte gab und deshalb die erste Regel nicht zur Anwendung kam, fugt die Regel ArbeitsebeneBestimmen2 die Schlinge ein.
41
Es wird genau eine der beiden Regeln einmal angewendet. Damit die Gesamttransaktion
anwendbar bleibt, verwenden wir allerdings fur beide Einzelregeln die Anwendungshaugkeit "2\.
Die Komplementierung der Arbeitsebene erfolgt durch die AMA-Regel ArbeitsebeneKomplementieren. Dabei loscht die Basisregel die Arb-Schlinge, die Regel K1 deselektiert alle
selektierten Objekte dieser Ebene und K2 selektiert gleichzeitig alle nicht selektierten Objekte.
4.5.5 Spezikation "Copy Connect\
Alle selektierten Objekte einschlielich ihrer Verfeinerungen werden kopiert. Die Originale
werden mit ihren Kopien durch Kanten verbunden. Voraussetzung fur die Anwendbarkeit
der Transaktion ist, da mindestens ein Objekt selektiert ist.
Fur alle selektierten Objekte werden samtliche Verfeinerungen selektiert. Dann werden samtliche Objekte kopiert. Die a-, s-, t- und p-Strukturen werden kopiert. Die Kopien der anfangs
selektierten Objekte werden selektiert.
CopyConnectTransaktion := k
VerfeinerungenSelektieren2 ObjekteKopieren
AbstraktionenA ndern2 OriginalSource2 OriginalTarget2 KopieSource2 KopieTarget2 WindowKnoten
Selektion
Aufraumen
k
->
B:
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
42
4 SPEZIFIKATION IM RAHMEN DES "LOGISCHEN GRAPHMODELLS\
43
KopieSource: Das Original der kopierten AGG-Kante hat als Source ein Objekt, das
kopiert werden soll, d.h. die Quelle der kopierten AGG-Kante ist die Kopie.
KopieTarget: Das Original der kopierten AGG-Kante hat als Target ein Objekt, das
kopiert werden soll, d.h. das Ziel der kopierten AGG-Kante ist die Kopie.
VerfeinerungenSelektieren :=
->
B:
sel
sel
K:
Original Source / Original Target :=
T
a
B:
sel
->
sel
->
s/t
s/t
T
T
B:
T
K:
T
scc
ObjekteKopieren :=
s/t
s/t
->
scc
T
T
T
B:
a
p
p
p
tcc
scc
scc
tcc
T
T
B:
->
scc
T
a
->
tcc
T
tcc
tcc
s/t
tcc
s/t
s/t
scc
tcc
scc
tcc
Abbildung 22: Regeln der CopyConnectTransaktion III
AbstraktionenAendern :=
scc
->
T
Abbildung 20: Regeln der CopyConnectTransaktion I
scc
K:
s/t
a
->
P
p
scc
tcc
T
P
a,s,t
->
scc
T
sel
tcc
Kopie Source / KopieTarget :=
K:
K:
T
->
a
a
a
a
a
scc
tcc
Abbildung 21: Regeln der CopyConnectTransaktion II
Die Regeln OriginalSource, OriginalTarget, KopieSource und KopieTarget werden auf kopierte AGG-Kanten angewendet. Es werden damit die folgenden vier Falle behandelt:
OriginalSource: Das Original der kopierten AGG-Kante hat als Source ein Objekt, das
nicht kopiert werden soll, d.h. die Quelle der kopierten AGG-Kante ist das Original.
OriginalTarget: Das Original der kopierten AGG-Kante hat als Target ein Objekt, das
nicht kopiert werden soll, d.h. das Ziel der kopierten AGG-Kante ist das Original.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
44
->
W
W
K:
->
scc
tcc
+
scc
+
Abbildung 24: Mogliche graphische Darstellung von 3 Knoten und 2 Kanten im
AGG-System
tcc
Selektion :=
B:
K:
Fur die Modellierung dieser neuen Konzepte fuhren wir das folgende Attributkonzept ein:
->
tcc
a
5.2 Attributierte Graphtransformation
->
tcc
sel
tcc
Aufraeumen :=
B:
K:
->
scc
45
weiterhin durch eine Folge von Knickpunkten bestimmt. Zwei aufeinanderfolgende Knickpunkte werden jeweils durch ein Geradenstuck verbunden. Die Zusammensetzung dieser Geradenstucke bildet die Kante, wobei eine Pfeilspitze am "Zielende\ der Kante hinzugefugt
wird.
WindowKnoten :
B:
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
tcc
->
s
t
Abbildung 23: Regeln der CopyConnectTransaktion IV
5 Spezikation im Rahmen des "Layout-Graphmodells\
5.1 Das Layout-Graphmodell
Die zweite Erweiterung des AGG-Modells, die wir Layout-Modell nennen, ermoglicht, das
Layout der Fenster und Graphen zu beschreiben. Im Layout-Modell gehen wir davon aus,
da die Objekte einer Abstraktionsebene in einer imaginaren Ebene angesiedelt sind, in der
ein kartesisches Koordinatensystem deniert ist. Fur jede Ebene des AGG-Graphen soll es
eine derartige imaginare Ebene geben.
Ein Fenster stellt einen rechteckigen Ausschnitt einer imaginaren Ebene dar, d.h. alle sichtbaren Objekte innerhalb dieses Ausschnittes werden angezeigt, die anderen nicht. Die AGGKnoten benden sich an durch x- und y-Koordinaten bestimmten Positionen. Zur Vereinfachung wird angenommen, da AGG-Knoten ausdehnungslos sind. Informationen uber das
Aussehen der Knoten (Knotentyp) wie z.B. die Knotenform und -fullung und ihre Positionen
sollen im Layout-Modell verfugbar sein.
Fur das Layout von AGG-Kanten werden ebenfalls Informationen benotigt, z.B. ob sie gestrichelt oder gepunktet dargestellt werden sollen (Kantentyp). Das Layout einer Kante wird
5.2.1 Informelle Beschreibung
Fur das Layout-Modell ist es unumganglich, numerische Werte zu speichern und darauf Berechnungen durchzufuhren. Diese Berechnungen in die graphische Struktur hineinzucodieren,
ist nahezu unmoglich.8 Die bessere Moglichkeit ist, einzelne Objekte der Graphen mit Attributen zu versehen. Das hier verwendete Attributkonzept (siehe LKW93] und HMTW94])
fur die algebraischen Graphtransformationen soll helfen, die strukturellen und die arithmetischen Aspekte eines Systems zusammenzufuhren und gemeinsam in kompakter Form
beschreiben zu konnen. Dabei ist daran gedacht, die strukturellen Anteile graphisch darzustellen und die Berechnungen in die Attribute zu verlagern, wobei die Grenzen ieend
sind.
Im algebraischen Ansatz wird ein attributierter Graph als Paar, bestehend aus einem (nicht
attributierten) Graphen und einer Attributalgebra, zusammen mit einer Menge von Attributierungsoperationen, die den graphischen Elementen Attribute zuordnen, aufgefat.
5.2.2 Attributierung und Signaturen
Entsprechend der drei logischen Komponenten eines attributierten Graphen { Graph, Attribute, Attributzuordnung { werden wir in diesem Abschnitt drei Signaturteile angeben, die
zusammengenommen die Signatur eines attributierten Graphen ergeben, namlich Graphsignatur, Attributsignatur und Attributierungsoperationen. Besonders die beiden letzten Teile
werden auch in den Regeln der nachfolgenden Beispielspezikationen von Bedeutung sein,
denn die Attribute werden wir mit den Namen der Attributierungsoperationen bezeichnen,
wahrend Attributwerte durch Terme mit Variablen uber der Attributsignatur dargestellt werden. Am Ende des Abschnitts werden wir noch einige wichtige Vereinbarungen zum Aufbau
von Regeln mit attributierten Graphen treen.
8
Es ist denkbar, numerische Berechnungen graphisch durchzufuhren. Dies wurde allerdings bedeuten, die
Informatik auf Graphstrukturen neu aufzubauen: numerische Werte werden - unar codiert - als Graphen
dargestellt. Berechnungen werden dann in Transaktionen implementiert, die sich mit Programmen vergleichen
lassen. Die Transaktionen mussen Aufgaben ubernehmen, die normalerweise von einem Prozessor erledigt
werden.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
46
Mit der Graphsignatur soll der syntaktische Rahmen der verwendeten Graphen beschrieben werden konnen. D.h. die Signatur mu so gewahlt werden, da sich die Graphen des
logischen Graphmodells als Algebren zu dieser Signatur auassen lassen.
Im logischen Graphmodell werden getypte, gerichtete Graphen verwendet. Eine Moglichkeit
zur Beschreibung bietet eine Signatur, bei der alle vorkommenden Knoten- und Kantentypen einzeln als Sorten aufgenommen werden. Als Operationen werden fur jeden Kantentyp
eine eigene source- und target-Funktion (srcKantentyp und tarKantentyp ) vorgesehen. Diese
Funktionen nehmen ein Element der Kantensorte als Argument und liefern die Sorte des
zugehorigen Quell- oder Zielknotens.
In der Graphsignatur mu auch einer Besonderheit des verwendeten Attributkonzeptes Rechnung getragen werden: Attributwerte konnen durch Graphregeln nicht direkt geandert werden. Sie konnen zwar auf der linken Seite geloscht und auf der rechten Seite wieder erzeugt
werden, aber die attributtragenden Objekte werden dabei mitgeloscht. Handelt es sich dabei
um attributtragende Knoten, werden damit alle ein- oder auslaufenden Kanten geloscht, was
sicherlich nicht immer erwunscht ist.
Eine restriktive Losungsvariante wurde neben Kantenattributen nur read-only-Knotenattribute zulassen, d.h. es darf zwar Knotenattribute geben, diese durfen jedoch nicht geandert werden. Eine weitere Moglichkeit besteht darin, fur jeden zu attributierenden Knoten
einen weiteren Knoten als Attributtrager vorzusehen, der mit dem ursprunglichen Knoten
durch eine Kante verbunden ist. Eine dritte Alternative ware, den Knoten mit einer Schlinge
zu versehen und diese zu attributieren. Zudem konnte noch unterschieden werden, wieviele
Attribute solche Attributtrager haben konnen: Wir wollen hier immer nur ein Attribut pro
Trager betrachten. Mehrere Attribute fur ein Objekt werden dann durch entsprechend viele
Attributtrager realisiert. Die Varianten der Knotenattributierung sind nachfolgend veranschaulicht:
Attributcarrier bzw. Hilfsobjekte
zu attributierender Knoten
Verbot von Aenderungen
an Knotenattributen
[Attr]
[Attr]
[Attr]
[Attr]
[Attr]
Extraknoten als
Attributcarrier
Schlinge als
Attributcarrier
Abbildung 25: Moglichkeiten zur Knotenattributierung
Fur unsere Modellierung haben wir die letzte Variante gewahlt. Das erfordert die Aufnahme
der Schlingen als Sorten und entsprechender source- und target-Operationen in die Graphsignatur.
Um die U bersichtlichkeit der graphischen Darstellungen zu erhohen, konnen die Labelschlingen an den Knoten weggelassen und die Attribute direkt an die Knoten geschrieben werden. Ein Attribut an einem Knoten bedeutet also, da an dem Knoten
eine Labelschlinge hangt, die dieses Attribut besitzt.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
47
An dieser Stelle sei angemerkt, da es sich bei den Sortensymbolen tatsachlich nur um
Bezeichner handelt, die keine Semantik tragen. Der Name O ? erzwingt also nicht, da in
jeder Algebra die zugehorige Datenmenge tatsachlich aus der Vereinigung der Datenmengen
zu O und ? bestehen mu.
Modellkomponente
Sortensymbol
O-Knoten
P -Knoten
W -Knoten
?-Knoten
O-Knoten und ?-Knoten
P-Knoten und ?-Knoten
s-Kanten
t-Kanten
a-Kanten
ap -Kanten
w-Kanten
p-Kanten
Sichtbarkeitskanten
sel-Kanten
O
P
W
?
O?
P ?
s
t
a
ap
w
p
+
sel
Zur Attributierung der O-Knoten wird die Kantensorte OLabel und zur Attributierung der
W -Knoten die Kantensorte WLabel eingefuhrt.
Damit ergibt sich die nachfolgende Graphsignatur. Die Auslassungen sollen andeuten, da
noch weitere Kantensorten und Operationen fur weitere in bestimmten Operationsspezikationen benutzte Kantentypen (z.B. del) eingefugt werden muten. Wir geben die Signatur
explizit an, fur die unser logisches Graphmodell eine Algebra ist. Dabei haben allerdings
die Sortensymbole OLabel und WLabel und damit auch die Operationssymbole mit der
Funktionalitat OLabel ! O bzw. WLabel ! W noch keine Entsprechungen in dem Modell.
Diese sollen in dem Layout-Graphmodell durch die Attributtrager an den O- und W -Knoten
interpretiert werden.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
48
Graphsignatur (Minimalvariante)
erw agg modell sig = sorts: O, P , W , ?, O ?, P ?,
s, t, a, ap , w, p, +, sel, : : :
OLabel, WLabel
opns: srcs :
tars :
srct :
tart :
srca :
tara :
srcap :
tarap :
srcw :
tarw :
srcp :
tarp :
src+ :
tar+ :
srcsel :
tarsel :
:::
srcOLabel :
tarOLabel :
srcW Label :
tarW Label :
s!O
s ! O?
t!O
t ! O?
a!O
a ! O?
ap ! P
ap ! P ?
w !W
w !P
p!O
p!P
+ ! O
+ ! W
sel ! O
sel ! O
OLabel ! O
OLabel ! O
WLabel ! W
WLabel ! W
Attributiert werden nur die Sorten OLabel, WLabel und +, wobei die in der nachfolgend
denierten Signatur attr sig beschriebenen Attributsorten Verwendung nden.
In die Attributsignatur werden die benotigten Attributsorten und die zugehorigen Zugrisoperationen aufgenommen, nicht jedoch die Operationen, die den zu attributierenden
Objekten aus der Graphsignatur ihre Attribute zuordnen.
An dieser Stelle geben wir eine minimale Attributsignatur attr sig an, die dann bei Bedarf erweitert werden kann. Sie soll diejenigen Sorten und Operationen enthalten, die fur
die Modellierung von Fensterparametern, Knotentypen und -positionen sowie Kantentypen
benotigt werden. Die Modellierung der Attribute fur die Kantenknickpunkte wird auf die
Erweiterungen verschoben.
Fur die Knotentypen ist die Sorte NTYPE, fur die Kantentypen die Sorte ATYPE vorgesehen. Als x- und y-Komponenten der Koordinaten werden reelle Zahlen vorgesehen, dafur wird
der Standard-Datentyp REAL verwendet. Ein Paar aus zwei reellen Zahlen bildet ein Koordinatenpaar, dafur ist die Sorte COORDS vorgesehen. Auerdem benotigen wir Standarddatentypen INT und BOOL. Auf den Standarddatentypen sollen die ublichen Operationen
zur Verfugung stehen T und F seien die Konstanten fur die Wahrheitswerte true und false.
Weiterhin sind die Selektionsoperationen x und y vorgesehen, die die x- bzw. y-Komponente
einer Koordinate liefern. makecoords setzt aus zwei Zahlenwerten eine Koordinate zusammen.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
49
Attributsignatur (Minimalvariante)
attr sig = BOOL INT REAL sorts: NTYPE, ATYPE, COORDS
opns: x, y:
COORDS ! REAL
makecoords: REAL REAL ! COORDS
Welchen Objekten aus einem Graphen welche Attribute zugeordnet werden, wird durch Attributierungsoperationen festgelegt, die in attrop aufgefuhrt sind. attrop ist lediglich ein
Signaturfragment, das Sorten aus Graph- und Attributsignatur in Beziehung setzt.
Die Fensterausdehnung wird durch Angabe der Koordinaten der oberen linken Fensterecke
(upper left corner { ulc) und der unteren rechten Fensterecke (lower right corner { lrc)
angegeben. Die entsprechenden Attributierungsoperationen ulc und lrc ordnen jeweils einem
Element der Sorte WLabel (Attributtrager fur W -Knoten) ein Element aus COORDS zu.
vis ist fur die Attributierung der Sichtbarkeitskanten vorgesehen. Der zugeordnete boolesche
Wert gibt an, ob der O-Knoten (Quelle der Sichtbarkeitskante) innerhalb der Fensterkoordinaten des W -Knotens (Ziel der Sichtbarkeitskante) liegt. Die Positionskoordinate fur
AGG-Knoten wird durch pos zugeordnet. Die Zuordnung der Kanten- und Knotentypen
erfolgt uber arctype bzw. nodetype.
Die Attributierungsoperationen fur die Knickpunktmodellierung werden nach einer spateren
Signaturerweiterung speziziert.
Attributzuordnung (Minimalvariante)
attrop = opns: ulc:
lrc:
vis:
nodetype:
arctype:
pos:
WLabel ! COORDS
WLabel ! COORDS
+ ! BOOL
OLabel ! NTYPE
OLabel ! ATYPE
OLabel ! COORDS
Es sei hier angemerkt, da formal nur ein Attribut pro Trager moglich ist, was aber durch
Tupelbildung umgangen werden kann. Zur Vereinfachung nehmen wir aber an, da mehrere
einzelne Attribute anstelle eines Tupels vorhanden sind.
Aus den angefuhrten Komponenten ergibt sich die folgende Gesamtsignatur fur attributierte Graphen:
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
50
Attributierte Graphsignatur (Minimalvariante)
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
51
Ein Beispiel fur einen attributierten Graphen zeigt Abb. 26. Dort ist noch einmal Fenster (1)
mit dem zugehorigen Teil des AGG-Graphen aus Abb. 12 zu sehen, diesmal aber im Rahmen
des Layout-Modells, d.h. O-Knoten, P -Knoten und Sichtbarkeitskanten sind attributiert.
attr graph sig = erw agg modell sig attr sig attrop
Ein attributierter Graph ist dann eine Algebra zu dieser Signatur.
Da sowohl AGG-Kanten als auch AGG-Knoten durch Knoten vom Typ O modelliert werden,
und die Attributierungsoperationen jeweils total sind, tragen alle O-Knoten sowohl die Attribute fur AGG-Kanten als auch fur AGG-Knoten. Die gewahlte Signatur bietet also keinerlei
Anhaltspunkte fur eine Unterscheidung, wir konnen allerdings folgende Vereinbarungen fur
die attributierten Graphen selbst treen:
Bei AGG-Knoten interessieren nur die uber die Operationen nodetype und pos zuge-
ordneten Attribute.
Bei AGG-Kanten interessieren nur die uber die Operation arctype zugeordneten Attribute.
Die jeweils nicht interessierenden Attribute sollen dann weder abgefragt noch geandert werden.
Die Darstellung von Attributen innerhalb von Graphen erfolgt durch Angabe der Attributierungsoperation, einem Doppelpunkt und dem Attributwert (das ist eine Variable oder ein Term uber der Attributsignatur zur entsprechenden Attributsorte). Das
Ganze wird in eckige Klammern gesetzt und in der Nahe des attributierten Objektes
plaziert. Dabei brauchen nur die wirklich benotigten Attribute angegeben zu werden.
Attributwerte, die sich von der linken zur rechten Seite einer Regel nicht andern,
konnen auf der rechten Seite durch Auslassungszeichen ersetzt werden.
Die Funktion von Attributen in Graphregeln ist wie folgt: Variablen der linken Regelseite werden durch den Ansatz belegt. Dabei kann derselbe Variablenname mehrmals
auftauchen solche Falle bedeuten indirekt eine Bedingung an den zu ndenden Ansatz. Terme dagegen werden ausgewertet und bedeuten eine direkte Bedingung an
den Ansatz: das attributierte Objekt aus der Regel mu vom Ansatz derart auf ein
Objekt aus dem Kontextgraphen abgebildet werden, da die entsprechenden Attributwerte gleich sind. Um die Graphen nicht zu uberladen, konnen Bedingungen auch
durch Gleichungen angegeben werden, die unterhalb der Regelgraphen notiert werden. Variablen, die in der rechten Regelseite auftauchen, mussen vorher durch den
Ansatz der linken Regelseite belegt worden sein. Terme werden ausgewertet und die
Werte in die entsprechenden Attribute des Ergebnisgraphen geschrieben. Um wiederum eine U berladung der Graphen zu umgehen, konnen die Attributwertberechnungen
auch durch Zuweisungen unterhalb der Regelgraphen angegeben werden.
Ob es sich bei einem Attributwert um eine Variable oder einen Term, insbesondere
eine Konstante handelt, ergibt sich aus der jeweiligen Attributsignatur.
ap
(1)
s,t,a
p
P
w
(1)
W
+ [vis: T]
T
AGG 1.O
nodetype: O
pos: makecoords(200,100)
ulc: makecoords(0,0)
lrc: makecoords(400,200)
Abbildung 26: Beispiel eines attributierten Graphen im Rahmen des Layout-Modells
Die obere linke Ecke von Fenster (1) habe die Koordinaten (0,0), die untere rechte Ecke die
Koordinaten (400,200). Diese treten in Form der Attribute ulc und lrc des W -Knotens auf.
In der Mitte des Fensters ist ein runder Knoten zu sehen, der demzufolge die Koordinaten
(200,100) besitzt, die als Wert des Attributes pos auftauchen. Der Knotentyp wird durch das
Attribut nodetype reprasentiert, der Wert "\ soll fur einen runden Knoten der angegebenen
Groe stehen. Da sich die Knotenkoordinaten innerhalb des durch die Fenstereckkoordinaten
aufgespannten Rechtecks benden, kommt der Knoten tatsachlich in Fenster (1) zur Anzeige,
das Attribut vis der entsprechenden Sichtbarkeitskante bekommt den Wert T zugeordnet.
5.2.3 Amalgamierungsregeln mit Attributen
An dieser Stelle soll eine Besonderheit erwahnt werden, die bei Amalgamierungen mit attributierten Objekten auftreten kann (vgl. dazu Abb. 27). Durch die dargestellte AMA-Regel
sollen die Werte aller Attribute mit Namen attr an Kanten von eckigen zu runden Knoten
um eins erhoht werden.
B:
->
K:
[attr: x]
->
[attr: x + 1]
Abbildung 27: AMA-Regel mit Attributierung (Beispiel)
Wendet man die Regel aus Abb. 27 auf einen Graphen an, in dem sich mehrere verschiedene
Ansatze fur die Komponentenregel K nden lassen, so wurden in der erzeugten individuellen
Regel mehrere Kanten von quadratischen zu runden Knoten auftauchen, die alle mit ein
und demselben Attribut attr versehen sind. Nun ist die Regel nicht so zu verstehen, da in
der individuellen Regel ein und dieselbe Variable x mehrmals vorkommt und dementsprechend immer mit demselben Wert belegt werden mute. Vielmehr kann man davon ausgehen,
da die Variable bei ihrer "Vervielfachung\ in der AMA-Regel jeweils verschiedene Indizes
zugeordnet bekommt. Wie eine solche individuelle Regel aussehen konnte, zeigt Abb. 28.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
[attr: x1]
->
52
[attr: x1 + 1]
[attr: x2]
[attr: x2 + 1]
[attr: xn]
[attr: xn + 1]
Abbildung 28: Zugehorige individuelle Regel
Soll bei der Vervielfachung tatsachlich immer dieselbe Variable benutzt werden, so mu diese
einschlielich des attributtragenden Objekts in der Basisregel auftauchen.
5.2.4 Benutzerinteraktion
Im Rahmen des Layout-Modells wollen wir auch die Interaktionen durch den Benutzer detaillierter als bisher modellieren. Aus einer Transaktion soll bereits ersichtlich sein, an welchen
Stellen einer Spezikation Benutzerinteraktion stattndet. Dazu fuhren wir zunachst einen
Input-Knoten ein, der mit samtlichen Werten attributiert ist, die vom Benutzer verandert
werden konnen, also Mausposition, Default-Kanten- und -Knotentypen etc. Dazu geben wir
dann eine spezielle Interaction-Regel an, die die Veranderung dieser Attributwerte durch den
Benutzer modelliert. Eine solche Interaction-Regel wird also immer dort in einer Transaktion
auftauchen, wo Benutzerinteraktion stattndet aus den ubrigen Regeln einer Spezikation
ist die Benutzerinteraktion damit vollstandig verbannt.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
Steht IA auf T (True), so enthalten die Attribute des Input-Knotens die Daten einer noch
nicht verarbeiteten Interaktion, und die Interaction-Regel ist nicht anwendbar. Diejenige
Regel einer Spezikation, die die Interaktion verarbeitet, setzt anschlieend den IA-Wert auf
F (False), um neue Interaktionen zuzulassen. Fur eine Implementierung wurde das bedeuten,
da beispielsweise die Maus nach dem Anwahlen einer Operation so lange blockiert ist, bis
die Berechnungen fur die Operation beendet sind. Um lange Wartezeiten zu umgehen, ware
entweder ein schneller Rechner vonnoten, oder man mute eine FIFO-Warteschlange fur
Benutzeraktionen einfuhren.
Bei der Spezikation von interaktiven Systemen tritt immer wieder die Situation auf, da
das System auf eine bestimmte Aktion des Benutzers warten soll. In Verbindung mit der
Interaction-Regel kann ein solches Warten auf eine bestimmte Benutzerinteraktion nun speziziert werden, indem zusatzliche Bedingungen an die freien Parameter der Regel angegeben
werden schlielich reprasentieren die Werte dieser Parameter in unserem Modell die Aktionen des Benutzers. Als Beispiel fur diese Art der generischen Erweiterung der InteractionRegel ist im folgenden die Regel Click Interaction angefuhrt, die wir bei der weiteren Spezikation von AGG-Operationen des ofteren einsetzen werden. Wir werden die Interaktionsregeln dort nicht mehr explizit angeben der Name der jeweiligen Regel wird aber in den
entsprechenden Transaktionen auftauchen, womit auf die Abbildungen 29 bzw. 30 verwiesen
wird.
Click_Interaction (NewBtn: BUTTON, NewPos: COORDS, NewArcType: ATYPE,
NewNodeType: NTYPE, NewFactor: REAL) :=
Input
Input
[IA: F]
Interaction (NewBtn: BUTTON, NewPos: COORDS, NewArcType: ATYPE,
NewNodeType: NTYPE, NewFactor: REAL) :=
Input
Input
[IA: F]
->
53
->
IA: T
button: NewBtn
pos: NewPos
arctype: NewArcType
nodetype: NewNodeType
factor: NewFactor
1) NewBtn = Click
IA: T
button: NewBtn
pos: NewPos
arctype: NewArcType
nodetype: NewNodeType
factor: NewFactor
Abbildung 29: Regel, die die Interaktionen durch den Benutzer modelliert.
Die Interaction-Regel hat eine Liste von Parametern, die in der Abbildung direkt hinter
dem Regelnahmen stehen dies sind "freie\ Variablen zu Sorten aus der Attributsignatur, die
nicht als Attribute an irgendwelche Knoten oder Kanten gebunden sind. Bei der Ansatzsuche werden diese Variablen beliebig mit Werten aus den entsprechenden Datenmengen der
jeweiligen Algebra belegt. In der rechten Seite der Regel werden diese zufallig ausgewahlten
Werte, die fur uns die Interaktionen des Benutzers widerspiegeln, als neue Attributwerte an
den Input-Knoten geschrieben.
Das boolesche Attribut IA (fur InterAction ) sorgt dafur, da eine Interaktion nicht von einer
neuen uberschrieben werden kann, bevor sie vom spezizierten System bearbeitet wurde:
Abbildung 30: Beispiel fur eine generische Erweiterung der Interaction-Regel.
Wir geben nun die Signaturteile an, die das Interaktionskonzept betreen, wie gehabt unterteilt in Graph-, Attribut- und Zuordnungsteil.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
54
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
55
Graphsignatur (Interaktionskonzept)
IA graph =
sorts: Input, ILabel
opns: srcILabel , tarILabel : ILabel ! Input
Abbildung 31: Eine Kante mit Knickpunkten im AGG-System.
Attributsignatur (Interaktionskonzept)
Modellvariante 1
IA attr =
Modellvariante 2
sorts: BUTTON
opns: Click:
[pos: SRC] [pos: C1]
! BUTTON
c
c
z
Attributzuordnung (Interaktionskonzept)
nodetype: N
pos: SRC
s
IA attrop = attrop opns: IA:
button:
pos:
arctype:
nodetype:
factor:
ILabel ! BOOL
ILabel ! BUTTON
ILabel ! COORDS
ILabel ! ATYPE
ILabel ! NTYPE
ILabel ! REAL
5.2.5 Modellierungsvarianten
Wir wollen zwei Varianten vorstellen, um das Layout von AGG-Kanten im AGG-System zu
modellieren. Wir werden dann die Operation "Kante Einfugen\ in beiden Varianten spezizieren. Anschlieend werden wir die Spezikationsmoglichkeiten in beiden Varianten
vergleichen, um zu verdeutlichen, da es eine wichtige Designentscheidung sein kann, wie
man die darzustellenden strukturellen und arithmetischen Informationen auf Graph- und
Attributkomponente verteilt.
Im AGG-System werden Kanten als Polygonzuge dargestellt (vgl. Abb. 31). Die Punkte, die
einen Polygonzug aufspannen, wollen wir Knickpunkte nennen. Anfangs- und Endpunkte
zahlen wir dazu.
Die erste Variante der Modellierung wird unser bisheriges logisches Graphmodell ubernehmen und die zusatzlichen Informationen des Layouts von Kanten ausschlielich uber die
Attributierung darstellen. Die zweite Variante benutzt zur Reprasentation des Layouts eine
Kombination aus zusatzlicher Graphstruktur und Attributen.
s/t
nodetype: N
pos: TAR
t
nodetype: N
pos: SRC
arctype: A
corners: <SRC, C1, C2, TAR>
s/t
[pos: C2] [pos: TAR]
c
z
z
c
c
z
nodetype: N
pos: TAR
t
s
[arctype: A]
s/t
s/t
Abbildung 32: Modellierung der Kante aus Abb. 31 in den Varianten 1 und 2.
Die Abbildung 32 veranschaulicht die beiden Modellierungsvarianten. In der Modellvariante 1
verwalten wir die Knickpunkte in dem Attribut corners, das eine mindestens zweielementige
Liste ist, die die Koordinaten der Knickpunkte in der Reihenfolge von der Quelle zum Ziel
der AGG-Kante enthalt. Bei der zweiten Variante stellen wir sie graphisch dar mit Knoten
vom Typ C , die jeweils mit einem Attribut versehen sind, das die Koordinaten der Knickpunkte enthalt. Dabei sind Quelle und Ziel dadurch ausgezeichnet, da die entsprechenden
C -Knoten eine Schlinge tragen, die Richtung der c-Kanten zwischen ihnen gibt die Richtung
der AGG-Kante an. Die z -Kanten bestimmen die Zugehorigkeit eines Knickpunktes zu einer
AGG-Kante.
Der U bersichtlichkeit halber wurden Ebenen-, Abstraktions- und Sichtbarkeitskanten vernachlassigt.
In der folgenden Tabelle sind die Signaturen der beiden Modellvarianten nebeneinandergestellt. Auallend ist, da einige Sorten und Operationen beiden Varianten gemein sind. Auch
entspricht sich in etwa die Gesamtanzahl von Operationen dabei bezahlt Modellvariante 1
fur ihre auerst knappe Graphsignatur mit einem umso groeren Attributteil, wahrend es
sich bei Variante 2 gerade umgekehrt verhalt.
Anschlieend an die Signaturtabelle wird die Bedeutung der wichtigsten Attributoperationen
und der neuen Knoten- und Kantensorten beschrieben.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
Modellvariante 1
56
apnd (< c0 c1 : : : ct > cp) =< c0 c1 : : : ct cp >.
Hangt das angegebene Element hinten an die LOC.
graph sig1 = erw agg modell sig IA graph graph sig2 = erw agg modell sig IA graph sorts: ch
sorts: ch
C, c, z, mark, CLabel
srcch , tarch:
ch ! O
opns:
srcch , tarch :
srcc , tarc:
srcz :
tarz :
srcmark , tarmark :
srcCLabel, tarCLabel:
ch ! O
c!C
z!C
z!O
mark ! C
CLabel ! C
Attributsignatur
attr sig1 = attr sig IA attr attr sig2 = attr sig IA attr
sorts: LIST OF COORDS (LOC)
opns:
srcCoords, tarCoords: LOC ! COORDS
mkLOC:
COORDS ! LOC
apnd:
LOC COORDS ! LOC
Attributzuordnung
attrop1 = attrop IA attrop opns:
corners:
attrop2 = attrop IA attrop OLabel ! LOC
opns:
pos:
CLabel ! COORDS
Attributierte Graphsignatur
attr graph sig1 = graph sig1 attr sig1 attrop1
Semantik der Attributoperationen:
srcCoords (Source Coordinates):
57
apnd (Append Element):
Modellvariante 2
Graphsignatur
opns:
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
Bedeutung der zusatzlichen Knoten- und Kantensorten:
ch-Kanten (Changed-Kanten): Jede Kante, deren Position verandert wurde, erhalt eine chKante, die anzeigt, da die Sichtbarkeit der Kante erneut berechnet werden mu.
C -Knoten (Corner-Knoten): C -Knoten sind Knoten, die zu AGG-Kanten gehoren. Fur
jeden Knickpunkt, insbesondere auch Anfangs- und Endpunkt einer Kante, existiert
solch ein C -Knoten, der mit einer Schlinge der Sorte CLabel als Attributtrager versehen
ist. Die Schlingenattribute enthalten Informationen uber die Position des jeweiligen
Knickpunktes.
c-Kanten (Corner-Kanten): C -Knoten sind untereinander mit c-Kanten verbunden in der
Weise, da von der Quelle bis zum Ziel der Kante benachbarte Knickpunkte in der
Reihenfolge ihrer Einfugung durch c-Kanten in gleicher Richtung verbunden sind. Auerdem sind an den Anfangs- und Endpunkte reprasentierenden C -Knoten c-Schlingen
vorhanden.
z-Kanten (Zugehorigkeitskanten): Von jedem C -Knoten zeigt eine z-Kante auf den Objektknoten, der die AGG-Kante reprasentiert. Somit konnen wir unterscheiden, welche
Knickpunkte zu welcher AGG-Kante gehoren, und sagen kunftig, da der C -Knoten
zu einer Kante gehort.
mark-Kanten: mark-Kanten sind { ahnlich wie die ch-Kanten { lediglich temporare Markierungen, um sich bestimmte Zustande innerhalb einer Transaktion uber mehrere
Einzelregeln hinweg merken zu konnen. Nach Beendigung einer Transaktion sind sie
nicht mehr vorhanden.
attr graph sig2 = graph sig2 attr sig2 attrop2
srcCoords (< c0 c1 : : : ct >) = c0 .
Gibt die Source-Koordinate einer LOC, List of Coords.
tarCoords (Target Coordinates):
tarCoords (< c0 c1 : : : ct >) = ct.
Gibt die Target-Koordinate einer LOC.
mkLOC (Make List of Coordinates):
mkLOC (cn ) =< cn >.
Macht aus einem COORDS-Element eine LOC.
5.2.6 Spezikation "Window Resize\
Fur die Modellierung dieser Operation verwenden wir nur Variante 1. Die Operation wird in
zwei Versionen unterschiedlicher Komplexitat angegeben.
Die Operation WindowResize verandert die Groe eines vorhandenen Fensters. Dazu mu das
Interaktionsattribut factor, ein Vergroerungs- bzw. Verkleinerungsfaktor angegeben werden.
Ist dieser groer 1, wird vergroert, liegt er zwischen 0 und 1, wird verkleinert. Negative
Werte und 0 werden zuruckgewiesen. X- und Y-Ausdehnung des Fensters werden mit dem
Faktor multipliziert. Die linke obere Ecke des groenveranderten Fensters bleibt erhalten,
nur die anderen Eckpunkte erhalten neue Koordinaten. Bild 33 soll die Arbeitsweise von
WindowResize verdeutlichen.
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
58
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
59
Dies wird mit Hilfe einer Amalgamierungsregel erreicht. Die Basisregel legt Fenster und
Ebene fest. U ber die Komponentenregel K1 werden alle sichtbaren Knoten erreicht, uber
K2 alle sichtbaren Kanten. Die Unterscheidung ist notwendig, da sich die Berechnung der
neuen Attributwerte fur Knoten und Kanten unterschiedlich gestaltet. Abbildung 35 zeigt die
Spezikation der WindowResize-Regel in dieser Version. Die zugehorige Transaktion lautet:
k Interaction WindowResize 1b k
x
<ulc>
<new_lrc>
<lrc>
y
WindowResize_1b :=
B:
T
1
->
{
NEW_LRC :=
2
lrc: LRC
Input IA: T
{
ulc: ULC
W
4
7
8
+
1
2
->
s
[vis: VIS]
4
lrc: NEW_LRC
7
8
w
+
s
[vis: NEW_VIS]
ulc: ULC
W
1
P
lrc: NEW_LRC
makecoords( x(ULC)+((x(LRC)-x(ULC))*V , y(ULC)+((y(LRC)-y(ULC))*V )
P
6
5
3
Input
factor: V
{
NEW_VIS :=
,V<=0
[pos: POS]
p
IA: T
Input
factor: V
LRC
5
3
Input IA: F
factor: V
NEW_LRC :=
->
,V>0
T , x(ULC) < x(POS) < x(NEW_LRC) AND
[pos: POS]
p
6
IA: F
factor: V
y(ULC) < y(POS) < y(NEW_LRC)
F , sonst
,V>0
Abbildung 34: Spezikation von WindowResize, Version 1a: ohne Berechnung der
Objektsichtbarkeiten
In Verbindung mit der Interaktionsregel lat sich Version 1 durch die Transaktion
k Interaction WindowResize 1a k beschreiben.
K2:
ulc: ULC
W
1
2
8
9
[vis: VIS1]
P
5
3
{
1
2
+
w
NEW_VIS1 :=
W
4
lrc: LRC
Input
Die kompliziertere Version berechnet fur alle in diesem Fenster potentiell sichtbaren Objekte
(d.h. es existiert eine Sichtbarkeitskante vom O-Knoten zum W -Knoten), ob sie im groenveranderten Fenster auch tatsachlich angezeigt werden. Fur Knoten bedeutet das, es mu
berechnet werden, ob die Objektkoordinaten innerhalb der Fensterkoordinaten liegen. Wenn
dies der Fall ist, wird der Knoten im Fenster angezeigt, ansonsten nicht.
Die Entscheidung, ob eine Kante angezeigt wird oder nicht, ist schwieriger, da Quelle und
Ziel weit auseinanderliegen konnen. Was soll z.B. passieren, wenn nur ein Teil der Kantenknickpunkte innerhalb des Fensters liegt? Um derartigen Problemen aus dem Weg zu gehen,
haben wir uns fur eine restriktive Version entschieden, die eine Kante genau dann anzeigt,
wenn Quelle und Ziel im Fenster liegen.
ulc: ULC
T
1
,V<=0
s
p
->
T
W
factor: V
makecoords( x(ULC)+((x(LRC)-x(ULC))*V , y(ULC)+((y(LRC)-y(ULC))*V )
lrc: LRC
w
IA: F
Input
3
T
WindowResize_1a :=
1
w
LRC
ulc: ULC
W
lrc: NEW_LRC
P
factor: V
3
4
ulc: ULC
IA: T
Input
P
1
2
w
K1:
ulc: ULC
W
4
ulc: ULC
lrc: LRC
2
T
W
Fur die Spezikation dieser Operation werden zwei Versionen angegeben. Die einfache Version berechnet nur die Fenstereckkoordinaten neu, an der Graphstruktur wird nichts verandert.
Wir vernachlassigen also vorlaug die Berechnung, welche Objekte nach der Fenstergroenveranderung aufgrund ihrer Koordinaten aktuell im Fenster zu sehen sind. Beide Versionen
beziehen sich auf die Signatur attr graph sig1.
T
Abbildung 33: Zum Verstandnis von WindowResize
4
lrc: NEW_LRC
8
w
+
9
s
[vis: NEW_VIS1]
7
[corners: LOC]
6
IA: T
factor: V
P
3
Input
5
p
7
[corners: LOC]
6
IA: F
factor: V
T , x(ULC) < x(srcCoords(LOC)) < x(NEW_LRC) AND y(ULC) < y(srcCoords(LOC)) < y(NEW_LRC) AND
x(ULC) < x(tarCoords(LOC)) < x(NEW_LRC) AND y(ULC) < y(tarCords(LOC)) < y(NEW_LRC)
F , sonst
Abbildung 35: Spezikation von WindowResize, Version 1b: mit Berechnung der
Objektsichtbarkeiten
5.2.7 Spezikation "Kante Einfugen\
Die Aktion "Kante Einfugen\ im AGG-System ist hochgradig interaktiv. Zuerst klickt der
Benutzer die Source der einzufugenden Kante mit der Maus an, klickt dann optional beliebig
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
60
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
uberein und dieser ist sichtbar. Die neue AGG-Kante wird in Form eines O-Knotens
eingefugt, die p-, s- und a-Kanten werden gesetzt. Der arctype wird aus dem Input
ubernommen, die Position des ausgewahlten Knotens wird zum ersten Element in der
Knickpunktliste.
viele Positionen fur Knickpunkte an, bis er schlielich das Target wiederum per Mausklick
bestimmt.
Als Source oder Target sind im AGG-System sowohl Knoten als auch Kanten moglich. Um
die Regeln etwas zu vereinfachen, wollen wir uns jedoch auf Knoten beschranken.
"Kante Einfugen\ { Modellierung in Variante 1:
Diese Transaktion bezieht sich auf die Modellvariante 1 (vgl. Abb. 32). Entsprechend heien
die Regeln, die speziell auf diese Variante zugeschnitten sind, " : : : 1'".
Transaktion KanteEinfugen 1 :=
k
k
PlaceCorner_1 :=
NAB kein Knoten getroffen
[corners: C]
[corners: C]
p
P
Click Interaction
PlaceSourceToNode 1
f Click Interaction, PlaceCorner 1 g2
PlaceTargetToNode 1
VisibleArc 1
61
W
w
W
ch
p
+
[vis: T]
Input
IA: T
pos: mouse
[corners: new_C]
p
P
P
w
ch
W
->
<-
p
w
ch
s
Input
IA: F
"
Input
IA: T
pos: mouse
[pos: mouse]
new_C := apnd(C, mouse)
Zunachst wartet Click Interaction auf einen Mausklick. Anschlieend ist die
PlaceSourceToNode-Regel anwendbar wurde kein Knoten getroen, so ist die Regel nicht
anwendbar und die Transaktion bricht ab.
Danach sind die Regeln Click Interaction und PlaceCorner solange immer abwechselnd anwendbar, bis der Benutzer durch Click Interaction einen Knoten angewahlt hat. Dieser Knoten soll das Ziel der neuen Kante werden. Nun ist die PlaceTargetToNode-Regel anwendbar.
Die Amalgamierungsregel VisibleArc, die fur jedes existierende Fenster die Sichtbarkeitskante
setzt und das visible-Attribut berechnet, ist zum Schlu immer genau einmal anwendbar.
Abbildung 37: Regel fur das Setzen der Knickpunkte einer Kante
PlaceCorner 1: Mit dieser Regel sollen in einer Solange-anwendbar-Schleife beliebig viele
Knickpunkte der neuen Kante angegeben werden konnen. Deswegen darf die Regel nicht
anwendbar sein, wenn der Benutzer sichtbare Knoten anwahlt diese sollten das Ziel
der neuen Kante werden. Zur Kontrolle dient die negative Anwendungsbedingung: sie
stellt sicher, da die gewahlte Position nicht auf einem sichtbaren Knoten liegt. Die
Regel selbst hangt dann lediglich die aktuelle Mausposition an die Knickpunktliste.
Durch die Werte des IA-Attributes wird sichergestellt, da diese Regel im Wechsel mit
der entsprechenden Interaction-Regel angewendet wird.
PlaceSourceToNode_1 :=
PlaceTargetToNode_1 :=
+ ["]
+ [vis: T]
W
w
P
[pos: mouse]
W
p
p
s
->
P
p
w
W
s
ch
s
W
p
s
ch
->
["]
p
w
t
ch
s
T
corners: new_C
arctype: atype
P
[pos: mouse]
p
w
p
a
T
[corners: C]
Input
IA: T
pos: mouse
arctype: atype
+["]
["]
Input
IA: F
"
"
new_C := mkLOC(mouse)
Input
IA: T
pos: mouse
[corners: new_C]
T
P
T
+ [vis: T]
Input
IA: F
"
new_C := apnd(C, mouse)
Abbildung 36: Regel zum Bestimmen der Quelle einer Kante
Abbildung 38: Regel zum Bestimmen des Ziels einer Kante
PlaceSourceToNode 1: Der Benutzer hat als Quelle fur die neue Kante einen Knoten
PlaceTargetToNode 1: Diese Regel funktioniert analog zu ihrem Source-Gegenstuck. Die
ausgewahlt: Die Input-position mouse stimmt mit der Position des gewahlten Knotens
fehlende t-Kante wird gesetzt . Die neu eingefugte AGG-Kante ist im aktuellen Fenster
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
62
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
immer sichtbar, denn mit der Maus konnen keine Positionen auerhalb des aktuellen
Fensters angegeben werden. Dennoch wird die +-Kante noch nicht gesetzt, da die
Sichtbarkeit auch fur alle anderen Fenster noch bestimmt werden mu. Deshalb bleibt
der neue Knoten markiert.
PlaceSourceToNode_2 :=
+ [vis: T]
w
+ [vis: T]
[pos: mouse]
P
W
VisibleArc_1 :=
[pos: mouse]
P
W
p
p
w
p
s
s
[arctype: atype]
->
->
s
z
["]
T
[corners: C]
[corners: C]
c
mark
C
[pos: mouse]
Input
pos: mouse
arctype: atype
IA: F
Input
pos: mouse
arctype: atype
IA: T
ch
K1:
["]
a
T
ch
B:
63
->
W
W
ulc: ulc
lrc: lrc
"
"
+ [vis: newvis]
newvis := calcVis(srcCoords(C),
tarCoords(C),
ulc, lrc)
Abbildung 40: Regel zur Bestimmung der Quelle einer Kante
PlaceSourceToNode 2 (Source ist ein AGG-Knoten): Die Position des ausgewahlten
Knotens wird an den ersten C -Knoten attributiert.
Abbildung 39: Regel zur Berechnung der Sichtbarkeiten
VisibleArc 1: In dieser Amalgamierungsregel wird die Markierung der neuen AGG-Kante
geloscht, wahrend gleichzeitig zu jedem vorhandenen Fensterknoten eine +-Kante gezogen wird, denn neu eingefugte Objekte sind im AGG grundsatzlich nicht versteckt.
Ob das neue Objekt in den Grenzen des jeweiligen Fensters sichtbar ist, wird im visibleAttribut jeder +-Kante angegeben. Es berechnet sich aus den Koordinaten9 des Objekts und den Parametern des jeweiligen Fensters. Die Dummy-Operation calcVis soll
hier nur den funktionalen Zusammenhang andeuten ein Beispiel fur die ausfuhrliche
Berechnung ndet sich in Abb. 35 (Berechnung von NEW VIS1).
"Kante Einfugen\ { Modellierung in Variante 2:
KanteEinfugenTransaktion 2 := k
k
Click Interaction
PlaceSourceToNode 2
f Click Interaction, PlaceCorner 2 g2
PlaceTargetToNode 2
VisibleArc 22
Aufbau und Funktion der Transaktion stimmen mit der Modellierungsvariante 1 uberein und
werden hier nicht erneut beschrieben. In den Regelbeschreibungen werden nur Unterschiede
zur Modellvariante 1 angegeben.
9
Unserer Vereinbarung aus Abschnitt 5.2.6 gema ist eine Kante genau dann in einem Fenster sichtbar,
wenn ihre Quelle und ihr Ziel innerhalb dieses Fensters liegen. Deshalb benotigen wir hier nur die Sourceund Target-Koordinaten aus der Knickpunktliste.
Place:
PlaceCorner_2
:=
NAB kein Knoten getroffen
p
C
w
p
z
P
mark
p
+
W
Input
[pos: mouse]
C
<-
w
z
p
z
P
z
P
mark
C
->
w
[pos: mouse]
W
Input
[IA: T]
[pos: mouse]
[pos: mous
c
W
Input
[IA: F]
[pos: mouse]
Abbildung 41: Regel fur das Setzen der Knickpunkte einer Kante
C
mark
5 SPEZIFIKATION IM RAHMEN DES "LAYOUT-GRAPHMODELLS\
64
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
65
5.2.8 Vergleich der Modellierungsvarianten
PlaceTargetToNode_2 :=
T
T
ch
s
P
p
P
W
->
z
w
p
z
w
C
p
W
mark
[vis: T] +
s
p
c
z
t
c
C
[pos: mouse]
C
[vis: T] +
Input
[IA: T]
[pos: mouse]
[pos: mouse]
Input
[IA: F]
[pos: mouse]
[pos: mouse]
Abbildung 42: Regel zur Bestimmung des Ziels einer Kante
PlaceTargetToNode 2 (Target ist ein AGG-Knoten): Die Position des ausgewahlten
Knotens wird an den letzten C -Knoten attributiert.
6 Spezikation eines erweiterten AGG-Systems
VisibleArc_2 :=
ch
B:
->
z
z
C
[pos: C1]
c
z
C
[pos: C2]
c
[pos: C1]
z
C
C
[pos: C2]
c
c
ch
K1:
z
W
ulc: ulc
lrc: lrc
z
C
[pos: C2]
c
z
->
C
[pos: C1]
c
W
Wahrend bisher eine detaillierte Spezikation ausgewahlter Komponenten des vorhandenen
AGG-Systems mit Hilfe von Graphtransformationen erfolgte, soll nun eine zukunftige erweiterte AGG-Version mit Hilfe von Petrinetzen speziziert werden. Petrinetze gestatten es, auf
einer hoheren Abstraktionsebene die Grundstruktur des gesamten Systems im U berblick zu
beschreiben. Fur die Spezikation relevante Teile einer Anforderungsspezikation fur dieses
erweiterte Graphtransformationssystem werden innnerhalb dieses Kapitels beschrieben.
6.1 Petrinetze
Die folgende Beschreibung von verschiedenen Arten von Netzen und deren Analysemethoden
sind eng an Rei85a] angelehnt.
[vis: newvis]
+
C
[pos: C1]
c
Die Graphen in Variante 1 erscheinen ubersichtlicher als die der Variante 2. Man kann aber
erkennen, da die Attributsignatur der Variante 1 schnell sehr gro wird, und bei der Spezikation von komplexeren Operationen als der hier beispielhaft dargestellten verliert man sich
schnell in fehlertrachtiger Indexrechnerei. Zudem darf man nicht vergessen, da die Semantik der Attributoperationen in unseren Beispielen nur informell speziziert ist, wahrend die
formale Semantik des graphischen Anteils vollstandig ist. So gesehen ist in Variante 1 noch
ein deutlicher Mehraufwand notig, um denselben Grad der Formalisierung zu erreichen.
Vorteile hat die Aufnahme von Listen als Datentyp in den Attributteil immer dann, wenn
diese Listen haug als Ganzes zur Bearbeitung benotigt werden. Da die Lange von Listen
variabel ist, mussen ihre Elemente bei graphischer Modellierung jedesmal aufwendig in einer Schleife aufgesammelt werden. Ein Beispiel ist eine alternative Sichtbarkeitsberechnung
fur Kanten mit mehreren Knickpunkten, bei der eine Kante nur dann in einem Fenster zu
sehen ist, wenn all ihre Knickpunkte innerhalb des Fensters liegen. In Variante 1 muten
lediglich die als Listenelemente vorkommenden Knickpunkte durchsucht werden, wahrend in
Varainte 2 zusatzlich der Steueru auf den graphisch modellierten Knickpunkten speziziert
werden mute.
z
C
[pos: C2]
c
"
"
newvis := calcVis(C1, C2, ulc, lrc)
Abbildung 43: Regel zur Berechnung der Sichtbarkeiten
VisibleArc 2: Die mit Schlingen versehenen C-Knoten sind genau die Quell- bzw. Ziel-
knickpunkte der neuen AGG-Kante. Deren Koordinaten werden fur die Berechnung
des visible-Attributwerts newvis benotigt, die wiederum durch die Dummy-Funktion
calcVis angedeutet wird. Welcher der beiden Werte C1 und C2 dabei Quell- bzw. Zielkoordinaten reprasentiert, ist dabei irrelevant.
6.1.1 Informelle Beschreibung
Ein Petrinetz N ist ein gerichteter Graph, der aus zwei verschiedenen Sorten von Knoten
besteht, den Stellen S und den Transitionen T, die durch gerichtete Kanten miteinander
verbunden sind. Dabei verbindet eine Kante immer genau einen Knoten der einen Sorte
mit genau einem Knoten der anderen Sorte. Die Kanten sind Elemente einer sogenannten
Flurelation F. Ein solches Petrinetz N lat sich dann als Tupel (S T F ) beschreiben, wobei
S \ T = gelten mu und F S T T S ist.
Die zwei Knotensorten dienen der Modellierung verschiedenartiger Komponenten eines Systems: Eine Stelle reprasentiert eine passive Systemkomponente, da konnte z.B. eine Zwischenablage fur Daten sein. Eine aktive Systemkomponente wird durch eine Transition modelliert. Die Verarbeitung bestimmter Daten gehort beispielsweise zu den aktiven Teilen eines
Systems. Um die Knoten der unterschiedlichen Sorten auch in der graphischen Darstellung
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
66
eines Netzes unterscheiden zu konnen, werden Stellen durch Kreise und Transitionen durch
Rechtecke dargestellt.
Kanten verbinden immer eine aktive mit einer passiven Komponente, fuhren also stets von
einer Stelle in eine Transition oder von einer Transition in eine Stelle. Die Ursprungsstellen
der einlaufenden Kanten werden als Eingabestellen, die Ziele der auslaufenden Kanten als
Ausgabestellen einer Transition bezeichnet. Alle Kanten werden in der graphischen Darstellung einheitlich durch Pfeile dargestellt.
Ein Petrinetz der eben beschriebenen Form wird statisches Netz genannt.
Um dynamische Vorgange zu beschreiben zu konnen, mu diese einfache Netzvariante erweitert werden. Dabei wird zugelassen, da die Stellen mit sogenanten Token markiert werden
konnen. Das Vorhandensein von Token auf einer Stelle wird durch eine entsprechende Anzahl
von kleinen, schwarzen Punkten dargestellt, die in die Stelle hineingezeichnet werden. Die
Token entsprechen Objekten, die sich gerade an einer bestimmten Stelle, also in einer passiven Systemkomponente benden. Die Anzahl der Token, die auf einer Stelle liegen konnen,
ist nicht begrenzt.
Um das Vorhandensein von Token mathematisch zu beschreiben, wird die Tupeldarstellung
eines Petrinetzes um eine Funktion m erweitert, die jeder Stelle eine naturliche Zahl m,
die Anzahl der auf ihr bendlichen Token, zuordnet. Ein solches Netz ist dann ein 4-Tupel
N = (S T F m) mit m : S ! IN und S T F wie oben. Die vorhandenen Token sind alle
ununterscheidbar. Um den Anfangszustand eines Systems zu beschreiben, konnen Stellen
mit einer bestimmten Tokenanzahl m0 initialisiert werden. Diese Initialisierung heit dann
Anfangsmarkierung des Netzes.
Die Token konnen durch Schalten von Transitionen innerhalb des Netzes verschoben werden.
Bedingung fur das Schalten einer Transition ist, da auf jede ihrer Eingabestellen mindestens
ein Token liegt. Schaltet die Transition, wird von jeder Eingabestelle ein Token entnommen
und zu jeder Ausgabestelle ein Token hinzugefugt.
Die erweiterten Petrinetze wollen wir Stellen-Transitions-Netze mit 1-markierten Kanten
(oder kurz: ST1-Netze) nennen.
Diese ST1-Netze stellen einen Spezialfall der gebrauchlichen Stellen-Transitions-Netze oder
kurz ST-Netze dar, wie sie z.B. in Rei85a] beschrieben sind.
Fur Petrinetze gibt es ein Verfeinerungskonzept. Dieses erlaubt es, von einer U bersichtsmodellierung schrittweise zu einer detaillierteren Spezikation zu gelangen. Unter Verfeinerung
versteht man die Substitution eines Knotens (also einer Stelle oder Transition) durch ein Petrinetz. Der substituierte Knoten heit Abstraktion dieses Netzes. Das substituierte Netz ist
genau mit den Knoten des ubrigen Petrinetzes verbunden, mit denen auch die Abstraktion
verbunden war. Das Verfeinerungskonzept wird u.a. in Rei85b] beschrieben.
6.2 Das erweiterte System
6.2.1 Informelle Beschreibung
Die Idee des erweiterten Graphtransformationssystems wird kurz vorgestellt. Dabei werden
der zugrundeliegende Graphbegri und mogliche Teilkomponenten beschrieben. Wir wahlen
dafur eine abstrakte Ebene, die soweit wie moglich frei von Realisierungsdetails, also insbesondere auch U berlegungen zum Interface, gehalten wurde.
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
67
Wir sprechen von einem erweiterten Graphtransformationssystem, weil es nicht nur erlauben soll, Graphen zu verwalten und zu transformieren, sondern daruberhinaus auch Analysemoglichkeiten und Schnittstellen zu anderen Systemen bieten soll. Hier geht das erweiterte System uber das existierende AGG-System Bey91] hinaus. Einerseits sollen durch
einen allgemeineren Graphbegri die Ausdrucksmoglichkeiten beim Spezizieren erhoht werden. Andererseits sollen auf theoretischen Ergebnissen basierende Analysen vom System
unterstutzt werden, was die Spezikation fur den Benutzer leichter nachvollziehbar macht
(vgl. KLTW93]).
Der Graphbegri des erweiterten Systems verallgemeinert die im vorhandenen System benutzten AGG-Graphen. Insbesondere sollen zusatzlich solche Konzepte zur Verfugung gestellt
werden, die im Rahmen dieses Berichts zur Spezikation eingesetzt wurden.
Im erweiterten System soll, ebenso wie im vorhandenen, die Unterscheidung von Objekten
durch verschiedene Darstellungen (runde Knoten, eckige Knoten, durchgezogene Kanten,
gepunktete Kanten) moglich sein. Da diese Objektmerkmale bei samtlichen Transformationen erhalten bleiben, wollen wir sie als statische Attribute bezeichnen. Als Gegenstuck dazu
fuhren wir berechenbare oder dynamische Attribute ein, die im Gegensatz zu den statischen
Attributen ihre Werte bei Transformationen verandern konnen. Berechenbare Attribute gibt
es im AGG-System nicht. Zur Berechnung der neuen Werte der Attribute wahrend der Transformation sollen verschiedene andere Systeme verwendet werden konnen. Neue Attributwerte
konnten sich z.B. durch die Ausfuhrung eines C-Programmes ergeben. Berechenbare Attribute machen es moglich, komplexere Anwendungsbedingungen ubersichtlicher als nur durch
graphische Struktur darzustellen. Sie fuhren zu einer abstrakteren Modellierung. Auch die
Einfuhrung negativer Anwendungsbedingungen fur die graphische Struktur fuhrt zu solch einer Abstraktion. Diese erlauben es, sicherzustellen, da vor der Transformation bestimmte
Objekte in einem Graphen nicht vorhanden sind.
Grundlage des erweiterten Graphtransformationssystems ist also eine auf dem SPO-Konzept
basierende Graphersetzung von AGG-Graphen mit statischen und berechenbaren Attributen
sowie negativen Anwendungsbedingungen.
Um das erweiterte System naher zu beschreiben, wollen wir zunachst verwandte Operationen zu einer Einheit, genannt Komponente zusammenfassen. Folgende 6 Komponenten sind
vorgesehen:
Systemverwaltungskomponente
Graphtransformationskomponente
Analysekomponente 1
Analysekomponente 2
Editorkomponente
Layoutkomponente
Aufgabe der Systemverwaltung ist es, die Entwicklung von Graphspezikationen zu unterstutzen. Insbesondere mussen dazu verschiedene Versionen von Spezikationen sowie eventuell vorhandene und zur Speicherung vorgesehene Testergebnisse verwaltet werden.
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
68
Die Graphtransformations- oder Ableitungskomponente ubernimmt nach manueller, halbautomatischer oder automatischer Auswahl von Regeln und Ansatzen die Erzeugung abgeleiteter Graphen bzw. langerer Ableitungssequenzen.
Wesentlicher Bestandteil des Systems sind zwei Analysekomponenten, die dem Benutzer zu
mehr Erkenntnissen uber Regeln und Transformationen verhelfen sollen. Diese sollen auf
theoretischen Ergebnissen basieren, die Verallgemeinerungen von Resultaten fur verschiedene einfachere Graphbegrie darstellen. Dabei konnen mit der Analysekomponente 1 Eigenschaften von Graphen getestet werden, wahrend die Analysekomponente 2 verschiedene
Parallelitats- und Unabhangigkeitsuntersuchungen ermoglichen soll.
Der graphischen Erstellung und Modikation von Graphen und Regeln dient die Editorkomponente. Dabei werden neben der Struktur auch Layoutinformationen angegeben. Insbesondere mu der Grapheditor des vorhandenen AGG-Systems an den erweiterten Graphbegri
angepat werden.
Sowohl im vorhandenen als auch im erweiterten AGG-System sind Graphen nur bis auf
Isomorphie eindeutig. Layoutinformationen sind dabei zu vernachlassigen. Auf der anderen Seite ist es fur ein Graphtransformationswerkzeug wichtig, Graphen in ubersichtlicher
und anschaulicher Art darzustellen. Bei der Eingabe bzw. Modikation von Graphen liegt
dies in der Verantwortung des Benutzers. Bei der Generierung abgeleiteter Graphen mu
das System diese Aufgabe ubernehmen die dazu notigen Funktionen sind in der LayoutKomponente zusammengefat. Neben dem fur die Transformation vordenierten Layout soll
es dem Benutzer nachtraglich moglich sein, das Layout abgeleiteter Graphen regelgesteuert
zu verandern.
Als erster Spezikationsschritt soll ein statisches Petrinetz des erweiterten Graphtransformationssystems angegeben werden, um die Grundstruktur des Gesamtsystems auf der hochsten
sinnvollen Abstraktionsebene aufzuzeigen. Dieser Schritt beinhaltet, die Unterteilung des
Gesamtsystems in - miteinander in Beziehung stehende - Teilsysteme in Anlehnug an die
sechs vorgegebenen Komponenten. Vier der Teilkomponenten werden anschlieend in den
Abschnitten 6.2.3 bis 6.2.6 genauer untersucht. Zu Beginn dieser Abschnitte sind die Anforderungen an diese Komponenten in verbaler Form detaillierter aufgefuhrt. Danach wird
jeweils versucht, die beschriebene Teilkomponente unter Berucksichtigung dieser Anforderungen mittels eines ST1-Netzes zu spezizieren.
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
Anzeigekomponente
Layoutregeln
Editorkomponente
Editierspezifikation
Systemverwaltungskomponente
Analysekomponente 1
Spezifikation
Graphtransformationskomponente
Analysekomponente 2
Abbildung 44: Statisches Netz zur Beschreibung des Gesamtsystems
Das statische Netz in Abb. 44 zeigt die einzelnen Komponenten und deren potentielle Wechselwirkungen. Um die aufgrund der sugesstiv gewahlten Bezeichner und der kurzen Erlauterungen gewonnene Intuition fur dieses bisher noch semantikfreie Netz zu verbessern, werden
wir erlautern, welche Bedeutung die einzelnen Bestandteile fur uns haben. Prinzipiell wurde die Modellierung so gewahlt, da die Stellen als passive Komponenten Datenspeicher
reprasentieremn, und die Transitionen die Teilkomponenten des erweiterten Graphtransformationssystems.
Als grobste Abstraktion der zu verwaltenden Daten dient die Stelle Spezikation. Sie
6.2.2 Spezikation des Gesamtsystems
Das folgende statische Netz orientiert sich stark an der im letzten Abschnitt vorgestellten
Struktur: Die sechs Komponenten nden sich als Transitionen in diesem Netz wieder, um
ihren dynamischen Charakter zu verdeutlichen. Zusatzlich wurde eine Anzeigekomponente
durch eine Transition modelliert. Diese ist fur die physische Ausgabe von Graphen, Regeln,
Ergebnissen etc. auf dem Bildschirm verantwortlich. Neben den Transitionen gibt es die drei
Stellen Spezikation, Editierspezikation und Layoutregeln, die (vorlauge) Spezikationen,
Spezikationen im Zugri der Editorkomponente bzw. Regeln fur das regelgesteuerte Graphlayout enthalten.
Layoutkomponente
69
soll Graphspezikationen beinhalten, die aus Startgraph(en), Regelmenge, abgeleiteten
Graphen und Testergebnissen bestehen.
Die Stelle Editierspezikation beinhaltet nur Spezikationen ohne Testergebnisse und
abgeleitete Graphen. Derartige Spezikationen konnen editiert werden, ohne da Inkonsistenzen auftreten. Vorhandene Testergebnisse und abgeleitete Graphen mussen
vor einem Editiervorgang verworfen werden.
Die Stelle Layoutregeln enthalt die Vorschriften zum regelgesteuerten Graphlayout.
Die Transition Systemverwaltungskomponente modelliert die gleichnamige Teilkomponente. Sie enthalt Moglichkeiten, verschiedene Versionen von Spezikationen mit zugehorigen Testergebnissen zu verwalten, zu laden, zu speichern etc.
Die Editorkomponente beinhaltet Moglichkeiten zur Erstellung und Modikation von
Editierspezikationen.
Mit der Analysekomponente 1 konnen beliebige Tests auf Einzelgraphen (Start- oder
abgeleiteten Graphen) durchgefuhrt werden.
Mit Hilfe der Analysekomponente 2 konnen Abhangigkeitstests zwischen Regeln einer
Spezikation vorgenommen werden. Ebenso moglich sind Abhangigkeitsuntersuchungen auf Ableitungsebene anhand von Ableitungssequenzen, die mit dem erweiterten
System gewonnen wurden.
Hinter der Transition Graphtransformationskomponente verbirgt sich die Moglichkeit,
Ableitungen - auch automatisch - durchzufuhren und mittels eines Undo-Mechanismus
wieder ruckgangig zu machen.
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
70
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
71
Die Layoutkomponente dient dazu, Layoutregeln zu verwalten und zu verandern, die
fur das regelgesteurte Graphlayout benotigt werden. Sie wirkt eng mit der
Anzeigekomponente zusammen, die die graphische Ausgabe von Spezikationen und
Testergebnissen auf dem Bildschirm realisiert.
In den folgenden vier Abschnitten werden einige der Teilsysteme mittels ST1-Netzen naher
speziziert, wobei jeweils auf unterschiedliche Modellierungsaspekte fokussiert wird. Auch die
angegebenen ST1-Netze stellen jeweils nur eine Sichtweise auf die jeweilige Teilkomponente
dar. Fast zwangslaug werden dadurch nicht alle beschriebenen Aspekte der Komponenten
berucksichtigt. Ware dies das Ziel, wurden die Petrinetze wesentlich groer und unubersichtlicher werden.
EditierSpezifikation
Testmodus
Speichern
Benennen
Speicher
Spezifikation
6.2.3 Spezikation der Systemverwaltungskomponente
Die Systemverwaltungskomponente soll die Entwicklung von Graphspezikationen unterstutzen. Das ist durchaus mit Einschrankungen fur den Benutzer verbunden, die ihm
helfen sollen, Inkonsistenzen in seinem System zu vermeiden. Naturlich wird eine solche Entwicklung nicht geradlinig verlaufen: Phasen der Weiterentwicklung werden sich abwechseln
mit Phasen des Testens und daraufhin auch mit Phasen der A nderung bereits vorhandener
Teilspezikationen. Zu verwalten sind also verschiedene Versionen von Spezikationen sowie
mit ihnen durchgefuhrte Tests. Testergebnisse sollen dabei an die zugehorigen Speziaktionen
gebunden werden.
Die im System verwendeten Graphspezikationen haben den Charakter von Graphgrammatiken, d.h. sie bestehen im allgemeinen Fall aus Startgraph und Regelmenge. Wahlt man eine
Graphgrammatik zur Spezikation, so ist es das Ziel eine Menge von Graphen auszuzeichnen
(namlich die, die zur erzeugten Sprache gehoren). Will man Graphtransformationssysteme
zur graphischen Spezikation von Ablaufen benutzen, werden keine Startgraphen benotigt.
Wir wollen hier der Einfachheit halber solche Graphtransformationssysteme als Graphgrammatiken ohne Startgraph auassen und sowohl Graphgrammatiken mit Startgraphen als
auch Graphtransformationssysteme als Graphspezikationen auassen.
Die Systemverwaltung mu es erlauben, Regeln zu benennen, und zu Regelmengen zusammenzufassen. Diese wiederum, evtl. zusammen mit Startgraphen, mussen (benannten) Graphspezikationen zuzuordnen sein. Ebenso ist bei der Verwaltung von Ableitungssequenzen
(also Folgen von abgeleiteten Graphen) und Testergebnissen die Bindung an eine Spezikation zu beachten.
Die Reproduzierbarkeit von Testergebnissen ist eine Forderung, die die A nderungsmoglichkeiten an Spezikationen einschrankt. Solange eine Regel bzw. der Startgraph fur die Erreichung
eines gespeicherten Testergebnisses gebraucht wird, ist sie bzw. er vor A nderungen geschutzt.
Der Benutzer mu erst die Testergebnisse loschen, bevor er seine A nderungen durchfuhren
kann.
Eine mogliche Modellierung einer Systemverwaltungskomponete wird in Abb. 45 vorgeschlagen.
Editiermodus
Laden
Abbildung 45: ST1-Netz zur Beschreibung der Systemverwaltungskomponente
In Abb. 45 ist die Summe der Token auf den Stellen Spezikation und Editierspezikation immer eins. Dieses Token reprasentiert die aktuell zum Testen oder Editieren benutzte
Spezikation. Weitere Spezikationen benden sich im Speicher.
Die Stellen Spezikation und Editierspezikation konnen gema der eingangs gemachten Angaben jeweils zu Stellen Graphen, Regeln verfeinert werden und im Falle von Spezikation
auerdem zu Testergebnisse. Diese Stellenaufsplittung wird in Abb. 46 veranschaulicht. Gleiche Namen fur Graphen und Regeln in den verfeinerten Darstellungen sollen hier nur der
Erlauterung dienen und implizieren nicht, da es sich um die gleichen Stellen handelt.
Regeln
Spezifikation
Graphen
Testergebnisse
Regeln
Editierspezifikation
Graphen
Abbildung 46: Verfeinerung der Stellen Editierspezikation und Spezikation
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
72
Durch die angegebene Verfeinerung der Stelle Spezikation soll zum Ausdruck kommen, da
eine Spezikation wie oben beschrieben in eine Regelmenge, eine Graphmenge und eine Menge von Testergebnissen zerfallen kann. In der Graphenmenge sind sowohl Startgraphen als
auch abgeleitete Graphen enthalten, die Testergebnisse entstammen den Analysekomponenten. Es wird also jeweils eine komplette Spezikation zusammen mit zugehorigen Testergebnissen verwaltet. Eine solche komplette Spezikation kann mittels der Transition Benennen
einen Namen erhalten und mit Speichern in der Stelle Speicher abgelegt werden. Von dort
kann mittels Laden auch eine vorher gesicherte Version wiederhergestellt werden. Um dem
Benutzer zu ermoglichen, Spezikationen mit aber auch ohne Testergebnisse laden und speichern zu konnen, kann man die Transitionen Speichern und Laden zu je zwei Transitionen
verfeinern, die beide Alternativen realisieren.
Wichtig bei dieser Modellierung ist die Bindung von Testergebnissen an eine Spezikation.
Das schliet mit ein, da eine A nderung der Spezikation durch die Editorkomponente nur
moglich ist, wenn der Benutzer zuvor mittels der Transition Editiermodus alle Testergebnisse
und abgeleiteten Graphen verwirft hiernach sind in der Stelle Editierspezikation nur noch
die Regeln und Startgraphen vorhanden, die von der Editorkomponente bearbeitet werden
konnen.
Mit der Transition Testmodus kann eine editierte oder neu eingegebene Spezikation erneut
fur A nderungen gesperrt und fur Tests freigegeben werden.
6.2.4 Spezikation der Graphtransformationskomponente
Elementare Teile dieser Systemkomponente sind im AGG-System bereits vorhanden.
Daruberhinaus sind Erfahrungen mit dem zweiten an der TU Berlin entwickelten System
GRADE ONE eingeossen, dessen Schwerpunkt weniger auf einem komfortablen Editor als
auf einer weiter entwickelten Transformationskomponente liegt (vgl. San93]).
Wir unterscheiden benutzergesteuerte Operationen von weitgehend automatisierten. Man
kann uber den Editor Regeln und Ansatze naturlich von Hand eingeben. Vor einer Ableitung
wurde dann vom System lediglich automatisch gepruft, da es sich tatsachlich um eine ableitbare Situation handelt (Regel ist Morphismus, Ansatz total). Mehr Systemunterstutzung
wurde fur die Regeleingabe bedeuten, da der Benutzer tatsachlich nur eine Regel eingeben darf, d.h. den Morphismus zwischen zwei selektierten Graphen. Bei der Denition von
Ansatzen kame es einer automatischen Ansatzsuche gleich. Hierbei ist darauf zu achten, da
der Benutzer auch die Moglichkeit hat, etwa durch die Vorgabe eines Teilansatzes, Einu zu
nehmen. Auerdem sollte das System in der Lage sein, nach und nach alle Ansatze zu nden.
Auf der obersten Ebene schlielich bedeutet Automatisierung, da das System beginnend bei
einem Startgraphen eine Ableitungssequenz von benutzerdenierter Lange erzeugt, indem es
aus einer Regelmenge zufallig Regeln auswahlt und fur sie Ansatze sucht.
Weiterhin gehort zur Transformationskomponente ein Undo-Mechanismus. Man braucht dazu den Formalismus nicht verlassen, wenn man in Kauf nimmt, da nicht alle Transformationen umkehrbar sind. In diesem Falle besteht der Undo-Mechanismus lediglich aus der
Moglichkeit, die Umkehrregel zu konstruieren und sie an dem durch die ruckgangig zu machende Transformation induzierten Ansatz anzuwenden. Dazu kann die normale Transformationskomponente verwendet werden. Ein Undo, fur das das Verlassen des Formalismus
notwendig ware, wollen wir an dieser Stelle nicht unterstutzen.
A hnlich wie im vorigen Abschnitt werden wir beim Spezizieren der Graphtransformations-
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
73
komponente die Komponente als Prozedur auassen und sie verfeinern, d.h. nach und nach
Teile herausziehen. Ein- und Ausgabestellen sind dabei die Stellen Graphen und Regeln.
Graphtransformation
Graphtransformation
Regeln
Graphen
Spezifikation
Testergebnisse
Abbildung 47: Zur Verfeinerung der Graphtransformationskomponente
Die Token auf den Stellen Graphen und Regeln sollen anschaulich als einzelne Graphen
betrachtet werden, die durch Eingeben mit dem Editor, durch Ableiten oder ahnliches entstanden sind. Die Aufgabe, einen Graphen als Arbeitsgraphen zu bestimmen oder eine Regel
auszuwahlen, liegt in der Transition verborgen.
Die Graphtransformationskomponente kennt drei Betriebsarten: eine manuelle, die halbautomatische und die automatische. Bei der manuellen Betriebsart soll der Benutzer per Hand
sowohl eine Regel als auch den kompletten Ansatz eingeben. Es wird dann lediglich automatisch die Korrektheit des Ansatzes gepruft und eine Ableitung durchgefuhrt. Im Rahmen der
halbautomatischen Betriebsart soll der Rechner fur eine vorbestimmte Regel alle Ansatze
suchen. Hier soll auch die Vorgabe eines Teilansatzes durch den Benutzer moglich sein. In
diesem Fall soll der Ansatz automatisch vervollstandigt werden. Bei der automatischen Betriebsart soll der Rechner fur einen gegebenen Graphen selbstandig eine Regel aus einer
Menge auswahlen, fur diese in dem Graphen einen Ansatz nden und die Ableitung bilden
und zwar so lange, bis der Benutzer einen Abbruch signalisiert.
Bei genauerer Betrachtung stellt sich heraus, da die manuelle Betriebsart einen Spezialfall
der halbautomatischen darstellt, namlich fur die Angabe eines vollstandigen Teilansatzes.
Aus diesem Grund haben wir nur zwei Betriebsarten speziziert, zwischen denen der Benutzer
hin- und herschalten konnen soll. Diese Alternative wird durch eine Art Schalter speziziert,
wie er in Abb. 48 dargestellt ist.
t1
halbautomatisch
automatisch
t2
Abbildung 48: Spezikation von Benutzerinteraktion
Es mu garantiert werden, da zu jedem Zeitpunkt die Summe der Token auf beiden Stellen
des Schalters hochstens eins ist. Wird mit der Graphtransformationskomponente gearbeitet,
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
74
wird das Token aus dem Schalter abgezogen und dient der Steuerung des weiteren Ablaufs.
Wie dieser Ablauf aussieht, soll nun fur beide Betriebsarten ausgefuhrt werden.
Der halbautomatische Fall konnte dann durch das Netz in Abb. 49 speziziert werden.
t1
halbautomatisch
75
automatisch
t2
Regeln
Regel und Graph
mit Teilansatz
t1
halbautomatisch
automatisch
naechster Ansatz
Ansatz,
Regel,
Graph
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
Autoableiten
t2
Ableitungsgraph
BenutzerEnde
kein Ansatz
Ableiten
Regeln
Graphauswahl
Ansatz verwerfen
Teilansatz
eingeben
Graphen
Graphen
Abbildung 50: ST1-Netz zur Beschreibung der Graphtransformationskomponente
(automatischer Fall)
Abbildung 49: ST1-Netz zur Beschreibung der Graphtransformationskomponente
(halbautomatischer Fall)
Wenn die Transition Teilansatz eingeben schaltet, werden eine Regel und ein Graph ausgewahlt. Nach dem Erstellen einer Kopie wird der Graph zuruckgegeben, da auch moglicherweise noch andere auf diesen zugreifen konnen. Desweiteren verschwindet das Token von
der Stelle halbautomatisch und zeigt damit an, da die Transformationskomponente arbeitet.
Der Benutzer kann hier einen Teilansatz eingeben, der auch vollstandig sein kann. Das Token auf der Stelle Regel und Graph mit Teilansatz reprasentiert eine Kombination aus einem
ungepruften (Teil-)Ansatz, einer Regel und einem Graphen.
Findet sich keine Vervollstandigung fur den Ansatz, dann schaltet die Transition kein Ansatz:
Regel und Betriebsarttoken werden an die entsprechenden Stellen zuruckgegeben. Anderfalls
kann die Transition nachster Ansatz schalten und den Ansatz vervollstandigen. Dies wird
durch das Token auf der Stelle Ansatz, Regel, Graph reprasentiert. An dieser Stelle kann durch
das Schalten der Transition Ansatz verwerfen eine Vervollstandigungsmoglichkeit verworfen
werden. Bei erneutem Schalten der Transition nachster Ansatz soll dann auch tatsachlich ein
anderer Ansatz gefunden werden.
Ist ein fur den Nutzer geeigneter Ansatz gefunden, kann die Transition Ableiten schalten und
die Regel, den abgeleiteten Graphen und das Betriebsarttoken an die entsprechenden Stellen
zuruckgeben.
Durch Schalten der Schaltertransition t1 kann ein Wechsel auf die Betriebsart automatisch
stattnden. Das Netz fur diese Betriebsart zeigt Abb. 50.
Zum Anstoen der automatischen Ableitung mu der Benutzer lediglich einen Graphen auswahlen. Dies geschieht durch Schalten der Transition Graphauswahl. Das Ableiten besorgt
die Transition Autoableiten, die selbst eine Regel aus der Stelle Regeln auswahlt und einen
dazu passenden Ansatz sucht. Die Regel wird ebenso wie der abgeleitete Graph im Anschlu
an die Ableitung zuruckgegeben.
Dies kann solange gehen, bis zu keiner Regel aus der entsprechenden Stelle mehr ein Ansatz
gefunden werden kann, oder der Benutzer von auen abbricht. Dies wird durch das Schalten
der Transition BenutzerEnde verdeutlicht.
Verklebt man die Netze aus den Abbildungen 49 und 50 an den gemeinsamen Stellen miteinander, erhalt man ein Gesamtnetz fur beide Betriebsarten. Dieses ist nachfolgend dargestellt
(vgl. Abb. 51).
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
t1
halbautomatisch
76
automatisch
t2
Ansatz,
Regel,
Graph
naechster
Ansatz
Regel und Graph
mit Teilansatz
AbleitungsGraph
Regeln
Ableiten
AutoAbleiten
kein Ansatz
BenutzerEnde
Ansatz
verwerfen
Teilansatz
eingeben
Undo
Graphauswahl
Graphen
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
77
obersten Abstraktionsebene beginnen. Im Gegensatz dazu soll es auch moglich sein von einem
beliebigen Abstraktionsniveau an abwarts obige Eigenschaften zu testen. Dies konnte z.B.
dazu dienen, festzustellen, warum ein Test fur den gesamten AGG-Graphen nicht geklappt
hat. Die Auswahl, wo der Test beginnen soll, geschieht in diesem Fall durch Selektion von
Teilen einer Abstraktionsebene.
Die vordenierten Tests stehen einerseits naturlich dem Benutzer zur Verfugung, werden andererseits aber auch vom System selbst verwendet. A hnlich ist es bei den benutzerdenierten
Tests. Hier kann der Benutzer Konsistenzbedingungen festlegen, die Graphen vor und nach
jeder Transformation erfullen mussen. Das System sollte es erlauben, Konsistenzbedingungen zu editieren, einen AGG-Graphen explizit auf eine oder mehrere Konsistenzbedingungen
zu testen sowie diese Tests im Hintergrund laufen zu lassen. Im letzteren Fall werden die
Tests vom System automatisch nach jeder Transformation (vielleicht sogar nach jeder Editoroperation) durchgefuhrt. Der Benutzer sollte sich hier selbst beliebig weit einschranken
durfen. Ist ein Test nicht erfolgreich, so meldet das System dies dem Benutzer und bricht die
entsprechende Operation ab.
Bei der Spezikation der Analysekomponente 1 tritt das Problem auf, da fur die Tests
nicht klar ist, ob sie durch eine Stelle oder eine Transition modelliert werden sollen. Diese
Schwierigkeit wird durch zwei Dinge verursacht: Die Anzahl und Gestalt der benutzerdenierten Tests ist im voraus nicht bestimmbar. Auerdem konnen verschiedene Tests Einund Ausgabeparameter vollig unterschiedlicher Gestalt erfordern. Vor- und Nachteile einer
Modellierung als Transition bzw. Stelle werden nachfolgend diskutiert:
Da Tests anschaulich eine Tatigkeit darstellen, ist man als erstes versucht, die fest
Abbildung 51: ST1-Netz zur Beschreibung der Graphtransformationskomponente
Zusatzlich wurde eine Undo-Operation hinzugefugt, die durch die Transition Undo modelliert
wird. Diese Operation sucht sich aus der Stelle Graphen den zuletzt abgeleiteten Graphen
heraus und loscht diesen.
6.2.5 Spezikation einer Analysekomponente
Fur die Analysekomponenten soll exemplarisch die Analysekomponente 1 zum Testen von
Grapheigenschaften untersucht werden. Die Tests werden in zwei Gruppen eingeteilt, namlich
in vordenierte und benutzerdenierte Tests. Einige vordenierte Tests sind im System schon
vorhanden, so etwa der Test, ob ein Morphismus injektiv oder surjektiv ist. Sinnvoll sind
aber auch Tests wie: Stellt ein Diagramm eine Ableitung dar oder einen Ansatz fur eine
Regel in einem Graphen? Aber auch viel elementarere Dinge wie: Handelt es sich um einen
Morphismus (eine Regel) oder einfach nur um einen Graphen? Weitere Tests dieser Art sind
denkbar, sollen aber im einzelnen nicht aufgefuhrt werden.
Bei dem was zu testen ist, sind zwei Ebenen denkbar. Zum ersten kann der Test den ganzen
AGG-Graphen behandeln, d.h. z.B. fur den Test, ein Graph zu sein, ist nichts weiter notig,
als da die abstrakteste Ebene aus einem einzigen Knoten besteht. Komplizierter ist es schon,
wenn getestet werden soll, ob es sich um einen Morphismus handelt. Auch hier beginnt der
Test auf der abstraktesten Ebene, setzt sich aber auf alle Abstraktionsebenen fort. Tests,
die den AGG-Graphen als ganzes zum Gegenstand haben, ist gemeinsam, da sie auf seiner
eingebauten Tests auch als Transitionen mit der Eingabestelle Graphen darzustellen:
Erst den Test, ob ein Graph ein Morphismus ist, dann ob ein Teilgraph ein Ansatz fur
eine Regel auf einen Graphen ist, ... Diese Modellierung fuhrt zu einer groen Anzahl
von Transitionen und geht zu Lasten der U bersichtlichkeit. Die benutzerdenierten
Tests lassen sich auf diese Weise nur schlecht modellieren, da man mit einer variablen
Anzahl von Transitionen arbeiten mute. Dies erschwert die Analyse der Netzeigenschaften (vgl. Abschnitt 6.3).
Wenn man allerdings eine Stelle Test nennt, gibt es groere Probleme damit, festzulegen, von welchen Stellen die Eingaben uber Transitionen abgezogen werden und auf
welche Stellen die Ausgaben uber Transitionen gelegt werden sollen. Eingabe fur einen
Test ist zumeist ein zu analysierender Graph. Die Testausgabe ist einerseits der zu
testende Graph, der ja nicht verloren gehen soll, und andererseits auch das eigentliche
Testergebnis. Dies kann aber vielerlei Gestalt annehmen: Es konnte z.B. eine ja/neinAntwort sein oder einen Graphen beinhalten.
Wir haben uns fur die zweite Losung, also die Modellierung durch eine Stelle entschlossen,
da hierbei jederzeit benutzerdenierte Tests eingefuhrt werden konnen. Die sich ergebende
Modellierung der Analysekomponente 1 ist in Abb. 52 dargestellt.
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
78
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
79
Desweiteren konnen Tests editiert werden sowie neue Tests hinzugefugt werden, was durch
die Transitionen Editieren bzw. Neutest modelliert wird.
6.2.6 Spezikation der Editorkomponente
Neutest
Test und
Ebenenwechsel
Tests
Editieren
Testergebnisse
Testgraph
Testende
Test im
Hintergrund
Selektieren
t3
Graphen
Einzelschritte
t4
Automation
Eine der wesentlichen Anforderungen an ein Graphtransformationssystem ist, da die zu
transformierenden Graphen auch tatsachlich uber eine graphische Schnittstelle und nicht
etwa textuell eingegeben werden. Diese Schnittstelle stellt der Grapheditor dar. Fur die Spezikation der Anforderungen an die Editorkomponente wird auf das AGG-System verwiesen.
Die dort vorhandenen, zum Teil komplexen Editoroperationen wie "Copy Connect\ soll es
auch im erweiterten System geben. Da der Graphbegri fur das zu spezizierende System
erweitert wurde, mu der Editor jedoch entsprechend erweitert und angepat werden.
An Hand der Spezikation der Editorkomponente soll eine mehrstuge Netzverfeinerung
exemplarisch vorgestellt werden und eine mogliche Verbindung des verfeinerten Netzes mit
der Graphspezikation diskutiert werden.
Ausgangspunkt der Verfeinerung ist der die Editorkomponente betreende Teil des statischen
Netzes aus Abb. 44, der aus der Stelle Editierspezikation, der Editorkomponenten-Transition
und den beiden dazwischen verlaufenden Elementen der Flurelation besteht. Diesen, in
Abb. 53 dargestellte Netzteil kann man als nullte Verfeinerungsstufe auassen.
Abbildung 52: ST1-Netz zur Beschreibung der Analysekomponente 1
An diesem Netz lat sich gut erkennen, da ST1-Netze in ihrer Ausdrucksmachtigkeit eingeschrankt sind10 : Es ist nicht moglich, Testergebnisse dem zugehorigen Test und Graphen
zuzuordnen. Die Zusammengehorigkeit lat sich nur erhalten, indem man zu jedem Testergebnis den zugehorigen Test und Graphen explizit mit abspeichert. Hatten wir fur jeden Test
eine eigene Transition verwendet, so waren separate Ergebnisspeicher fur jeden Test moglich
gewesen, aber die Bindung eines Ergebnisses an einen bestimmten Graphen ware auch hier
verlorengegangen.
Die Verfeinerung der Analysekomponente 1 sieht wie folgt aus: Der Benutzer kann mit den
zwei Transitionen t3 und t4 entscheiden, ob er den Test in Einzelschritten, Abstraktionsebene
fur Abstraktionsebene, ausfuhren lassen will, oder auf einmal im Hintergrund - Automation.
Wahlt er die Einzelschritt-Methode, mu er als erstes einen Testgraphen festlegen, indem er
entweder Teile einer Abstraktionsebene selektiert, oder dafur sorgt, da die oberste Abstraktionsebene aus einem Knoten besteht. Auch mu er einen der angebotenen Tests auswahlen.
Dies alles soll er wahrend des Schaltens der Transition Selektieren tun.
Bei dem dadurch entstehenden Testgraphen wird nun mittels der Transition Test und Ebenenwechsel der Test auf der angegebenen Abstraktionsebene ausgefuhrt und in die nachste
Ebene gewechselt. Nach Abschlu des Tests schaltet die Transition Testende und liefert den
Test sowie den Ursprungsgraphen und ein Testergebnis.
Wird durch Schalten der Transition t3 bestimmt, da der Test im Hintergrund und vom
Benutzer ungesehen vonstatten gehen soll, kann die Transition Test im Hintergrund schalten
und ahnlich dem oben gezeigten Weg zu einem Testergebnis fuhren.
10
Die genannten Beschrankungen gelten ebenso fur die allgemeineren ST-Netze.
Editorkomponente
Editierspezifikation
Abbildung 53: Editorkomponente - 0.Verfeinerungsstufe
Abb. 54 zeigt das Ergebnis einer ersten Verfeinerung: Dabei wird die Stelle Editierspezikation ebenso verfeinert, wie bei der Modellierung der Systemverwaltungskomponente angegeben. Auerdem wird die Transition Editorkomponente verfeinert: Es gibt jetzt eine Stelle
Editierobjekt, in die eine Regel oder ein (normaler) Graph geladen werden kann (Transitionen Regel laden bzw. Graph laden). Das Editierobjekt kann auch wieder gespeichert werden
(Transitionen Regel speichern bzw. Graph speichern). Schlielich gibt es auf dieser Verfeinerungsebene die Transition Editoroperationen, die eben diese verkorpern soll.
Graph laden
Graphen
Editierobjekt
Editoroperationen
Graph speichern
Regel laden
Regeln
Regel speichern
Abbildung 54: Editorkomponente - 1.Verfeinerungsstufe
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
80
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
81
Das Netz kann je nach Abstraktionsebene entweder uber die Stelle Editierspezikation oder
uber die Stellen Graphen und Regeln mit den Teilnetzen der anderen Komponenten verklebt
werden.
In einer zweiten Verfeinerungsstufe soll die Transition Editoroperationen weiter verfeinert
werden. Dies geschieht dadurch, da fur jede mogliche Editoroperation eine eigene Transition vorgesehen wird. Dies fuhrt wiederum zu einer groeren Anzahl von Transitionen mit
identischen Ein- und Ausgabestellen. Wie ein solchermaen verfeinertes Netz aussehen konnte, ist im nachsten Abb. 55 angedeutet.
T-Element 1
T-Element 2
Transaktion
T-Element n
Graph laden
edit / copy
edit / copy connect
Graphen
Editierobjekt
Graph speichern
Regel laden
edit / copy connect nodes
Regeln
...
Regel speichern
Abbildung 55: Editorkomponente - 2.Verfeinerungsstufe
Da jede Editoroperation durch eine eigene Transition modelliert wird, kann die nichtdeterministische Auswahl einer Operation aus mehreren sehr anschaulich dargestellt werden.
Jede dieser Transitionen steht sinnbildhaft fur eine Editoroperation. Solche Operationen
wurden aber in den vorangegangenen Kapiteln durch Transaktionen graphisch speziziert.
Man konnte sich vorstellen, da beim Schalten einer dieser Transitionen, die zugehorige
Transaktion ausgelost wird, die die eigentliche Operation genauer beschreibt. Auf diese Art
erhalt man eine erste Schnittstelle zwischen der Graphspezikation und dem Petrinetz.
Diese Verbindung soll anhand der Operation Edit/Copy Connect weiter ausgefuhrt werden.
Die fruher spezizierte CopyConectTransaktion sei an dieser Stelle in Erinnerung gerufen
(siehe auch Abb. 20 .):
CopyConnectTransaktion :=
k VerfeinerungenSelektieren2 ObjekteKopieren AbstraktionenA ndern2 OriginalSource2 k
OriginalTarget2 KopieSource2 KopieTarget2 WindowKnoten Selektion Aufraumen
Um eine solche, aus mehreren Transaktionselementen bestehende Transaktion durch mehr
als eine Transition darzustellen, mu eine geeignete Darstellung fur die einzelnen Transaktionselemente gefunden werden. Ein erster Schritt in diese Richtung ware, die die Transaktion
reprasentierende Transition so weit zu verfeinern, da jedes Transaktionselement zu einer
eigenen Transition wird. Dies konnte allgemein wie folgt aussehen:
Abbildung 56: Erste Verfeinerung einer Transaktionstransition
Will man eine detailliertere Darstellung, mu naher auf die Struktur der einzelnen Transaktionselemente eingegangen werden.
Keine Schwierigkeiten bereiten dabei (Einzel)-Regeln, die einmalig oder mit fest vorgegebener Anwendungshaugkeit benutzt werden sollen. Fur jede dieser Regelanwendungen gibt es
eine Transition mit einer Vor- und einer Nachbereichsstelle. Aufeinanderfolgende Regeln werden durch Verkleben von Vorbereichs- und Nachbereichsstellen modelliert. Es mu weiterhin
dafur gesorgt werden, da das Fehlschlagen der gesamten Transaktion im Falle der Nichtanwendbarkeit sichergestellt werden kann. Fur das Fehlschlagen von Regeln soll es jeweils
eigene Transitionen geben.
Regelmengen werden durch mehrere Transitionen (eine fur jede Regel der Menge) dargestellt,
die eine gemeinsame Vor- und eine gemeinsame Nachbereichsstelle besitzen. So kann die
nichtdeterministische Regelauswahl veranschaulicht werden.
Ein besonderer Fall ist die Anwendungshaugkeit 2. Hier mussen die Falle der Nichtanwendbarkeit (die hier nicht zum Transaktionsabbruch fuhrt) und der wiederholten Anwendbarkeit
mitmodelliert werden. Fur die Nichtanwendbarkeit gibt es wiederum eigene Transitionen, die
wiederholte Anwendbarkeit wird uber Schlingen modelliert11 . Beispielhaft soll die Transaktion
k r1 r22 fr1 r2 r3g r12 fr2 r3g2 k
in diesem Detaillierungsgrad modelliert werden. Das Ergebnis zeigt Abb. 57.
11
Unsere Transaktionsdarstellung kann auf einfache Art und Weise in eine EBNF-Darstellung umgeformt
werden, d.h. unsere Transaktionen lieen sich ebenso durch kontextfreie (Typ 2) Sprachen darstellen. Das
detaillierte Petrinetz fur eine solche Transaktion modelliert also einen Akzeptorautomaten, der eine Folge
von Regelanwendungen auf die Zugehorigkeit zu der durch die Transaktion denierten Sprache vom Typ 2
testet. Ein Token auf der Stelle Transaktion erfolgreich entspricht einem Wort der Sprache, ein Token auf
Transaktion fehlgeschlagen einem Wort, da nicht zur Sprache gehort.
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
82
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
83
r1
Graph laden
r1
r2
r2
Transaktion
erfolgreich
r1
r3
edit / copy
r2
r2
Graphen
Editier-
edit / copy connect
objekt
Graph speichern
Regel laden
edit / copy connect nodes
r3
Regeln
...
Regel speichern
nicht anwendbar nicht anwendbar
Regel nicht
anwendbar
Regel nicht
anwendbar
Regel nicht
anwendbar
Transaktion
fehlgeschlagen
VerfeinerungenSelektieren
Objekte kopieren
AbstraktionenAendern
OriginalSource
OriginalTarget
KopieSource
KopieTarget
Selektion
Aufraeumen
WindowKnoten
Regel nicht
anwendbar
Abbildung 57: Detaillierte Verfeinerung einer Beispieltransaktion
Bei diesem Detaillierungsgrad gibt es zwei Arten von Transitionen: Die eine Art (in der
Graphik quadratisch dargestellt) kann man als Regeln auassen. Ein Schalten einer solchen
Transition entspricht einer Regelanwendung. Die andere Art (als Rechtecke dargestellt) dient
zur Darstellung des Steuerusses. Deren Schalten bedeutet, da eine Regel nicht angewendet
werden kann bzw. eine nochmalige Anwendung nicht moglich ist.
Die Namen an den Transitionen sind dabei lediglich als Bezeichner aufzufassen, gleiche Namen (in ein und demselben Bild) implizieren nicht gleiche Transitionen. Eine paarweise
Verschiedenheit der Bezeichner ware sicherlich durch eine geeignete Indizierung erreichbar,
diese soll aber nicht Gegenstand der Betrachtungen sein.
Eine Interpretation der Stellen ist ebenfalls moglich: In der ersten Verfeinerungsstufe entsprechen die Vor- und Nachbereichsstellen der T-Element-Transaktionen Stellen, auf denen ein
Editierobjekt liegen kann. Ein darauiegendes Token entspricht einem solchen Objekt (Regel
oder (normaler) Graph) in einem bestimmten (Zwischen-) Zustand. In der zweiten Verfeinerungsstufe ist diese Interpretationsmoglichkeit ebenfalls gegeben. Wahrend es auf dieser
Modellierungsstufe eine Eingangsstelle pro Transaktion gibt, existieren zwei Ausgangsstellen:
ein Token auf der einen bedeutet einen Graphen, der die Transaktion erfolgreich durchlaufen hat, ein Token auf der andern den Graphen nach Fehlschlagen der Transaktion, also in
unverandertem Zustand. Die Aufspaltung in zwei Stellen wurde vorgenommen, falls diese Unterscheidung benotigt wird. Gegebenenfalls lassen sich diese beiden Stellen auch miteinander
verkleben.
Geht man nach der oben beschriebenen Vorgehensweise zur Verfeinerung von Transaktionstransitionen vor, ergibt sich die in Abb. 58 dargestellte Verfeinerung der Edit/Copy ConnectTransaktion. Die obere Bildebene zeigt die zweite Verfeinerungsstufe der Editorkomponente, wobei der die Operation Edit/Copy Connect betreende Teil schra$ert wurde. Dieser
Teil wurde anschlieend detailliert, also auf der selben Ebene wie die Beispieltransaktion in
Abb. 57, als Petrinetz dargestellt. Fuhrt man die Zahlung der Verfeinerungen der Editorkomponente weiter, entspricht dies der dritten Verfeinerungsstufe. Auf der unteren Bildebene ist
zusatzlich veranschaulicht, da jetzt an die die Graphregeln symbolisierenden (quadratisch
dargestellten) Transitionen die entsprechenden Regeln angehangt werden konnen. Dabei kann
man sich vorstellen, da sich mehrere Transitionen eine Graphregel teilen.
Editierobjekt
WindowKnoten :
B:
->
W
W
K:
+
scc
tcc
->
+
scc
+
tcc
Abbildung 58: Editorkomponente - 2.Verfeinerungsstufe, detaillierte Verfeinerung von
Edit/Copy Connect - 3.Verfeinerungsstufe und Anbindung einer Graphregel
6.3 Analyse von Petrinetzen
Fur Petrinetze gibt es eine reichhaltige Auswahl mathematischer Analyseverfahren. Da die
verwendeten ST1-Netze ein Spezialfall der ST-Netze darstellen, sind samtliche Analyseverfahren fur diese allgemeineren Netze anwendbar. Einige davon (vgl. Rei85a]) sind nachfolgend aufgezahlt:
Stellen-Invarianten geben an, fur welche Mengen von Stellen die gewichtete Summe
der darauf bendlichen Token konstant bleibt, unabhangig davon, welche Transitionen
schalten. Die Stelleninvariante (1 1 2 0) bedeutet z.B., da 1 m(s1 ) + 1 m(s2 ) +
2 m(s3) = const, mit m(si ) die Anzahl der Token auf der Stelle si ist. Alle Linearkombinationen von Stellen-Invarianten sind wieder Stellen-Invarianten.
Transitionsinvarianten geben an, welche Transitionen zusammengenommen nichts an
der Markierung des Netzes andern, wenn sie alle geschaltet werden. Wiederum sind
auch alle Linearkombinationen von Transitionsinvarianten selbst Transitionsinvarianten.
Uberdeckungsgraphanalysen
umfassen mehrere Verfahren, die den U berdeckungsgraph
eines Petrinetzes analysieren. Dieser zeigt alle Zustandsubergange auf. Seine Knoten
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
84
sind Netzzustande, wobei zwei Knoten durch eine Kante verbunden sind, wenn das
Schalten einer Transition die zwei zugehorigen Zustande ineinander uberfuhrt. Anhand
der U berdeckungsgraphen konnen u.a. die folgenden Probleme analysiert werden:
{ Beschranktheit der Stellen: Bleibt die Anzahl der Token in Stellen beschrankt oder
nicht?
{ Existenz von unendlichen Schaltsequenzen.
{ Anzahl verschiedener Netzzustande.
{ Lebendigkeit von Transitionen: Eine Transition t heit lebendig, sofern andere
Transitionen stets so geschaltet werden konnen, da die Transition t im weiteren
Verlauf nochmals schalten kann, ansonsten heit t tot.
{ Erreichbarkeit eines bestimmten Netzzustands.
{ Existenz von Verklemmungen (deadlocks).
Das ST1-Netz zur Modellierung der Graphtransformationskomponente aus Abb. 51 soll im
folgenden Abschnitt mit Hilfe der angegebenen Analyseverfahren exemplarisch untersucht
werden.
6.3.1 Analyse der Graphtransformationskomponente
Die Netzspezikation der Graphtransformationskomponente weist zwei Stelleninvarianten
auf:
1. Die Anzahl der Token auf den Stellen automatisch, halbautomatisch, Ableitungsgraph,
Regel und Graph mit Teilansatz und Ansatz, Regel, Graph sind konstant. Nach einem
Blick auf das Netz stellt sich heraus, da die Tokenanzahl auf diesen vier Stellen immer
eins ist, d.h. da stets genau eine dieser Stellen mit einem Token belegt ist. Daraus
folgt, da man sich entweder
zu einer Ableitung mit halbautomatischer Ansatzeingabe entschlieen kann, oder
fur eine Ableitung mit automatischer Ansatzsuche entscheiden kann, oder
in der automatischen Ableitungssequenz bendet, oder
gerade manuell einen gefundenen Ansatz zur Ableitung festlegen kann
An diesem Punkt wird also jede mogliche Parallelitat vermieden.
2. Die Anzahl der Token auf den Stellen Regeln, Regel und Graph mit Teilansatz und
Ansatz, Regel, Graph sind konstant. In unserem Beispiel-Netz betragt die Anzahl der
Token auf den Stellen immer zwei. Da aber wie oben beschrieben die Stellen Graphen
und Regeln die Schnittstelle zu anderen Komponenten darstellen sollen, konnten ja
von dort andere Token auf die Stellen Graphen und Regeln geschaltet werden. Diese
Stelleninvariante besagt, da wahrend einer Graphtransformation die Anzahl der Token
auf der Stelle Regeln erhalten bleibt. Die beiden anderen Stellen beschreiben ja den
eigentlichen Vorgang der halbautomatischen Graphtransformation.
Als nachstes wurden Transitionsinvarianten untersucht. Dabei wurden sechs Invarianten gefunden:
6 SPEZIFIKATION EINES ERWEITERTEN AGG-SYSTEMS
85
1. Die erste Transitionsinvariante besteht aus den Transitionen Teilansatz eingeben,
nachster Ansatz, Ableiten und Undo. Das Schalten der ersten drei Transitionen beschreibt den Vorgang der halbautomatischen Ableitung. Hierbei wird ein neuer Graph
(reprasentiert durch ein Token) produziert. Dieser wird durch Schalten der Transition
Undo wieder entfernt. Hiernach bendet sich das Netz erneutim Ausgangszustand. Die
Bedeutung dieser Transitionsinvariante liegt auf der Hand: Undo macht eine vorgenommene Ableitung wieder ruckgangig.
2. Nach Schalten der Transitionen Graphauswahl, Benutzerende und Undo bendet sich
das Netz wieder in demselben Zustand wie vorher. Diese Transitionsinvariante beschreibt den Vorgang der Ableitung und seine Umkehrung diesmal aber fur die automatische Betriebsart.
3. Die dritte Invariante umfat Teilansatz eingeben und kein Ansatz. Sie beschreibt ahnlich der zweiten Invariante einen Handlungsstrang, namlich denjenigen, in den man
gelangt, wenn keine Vervollstandigung des eingegebenen Teilansatzes gefunden wurde.
4. Auch die Transitionen nachster Ansatz und Ansatz verwerfen bilden eine eigene Transitionsinvariante. Hier wird beschrieben, da wenn ein automatisch gefundener Ansatz
verworfen wird, sich das Netz wieder im vorhergehenden Zustand bendet.
5. Ebenso bendet sich das Netz nach dem Schalten der Transition Autoableiten wieder im gleichen Zustand wie vorher. Dadurch wird gewahrleistet, da diese Transition
mehrmals hintereinander schalten kann.
6. Die letzte Invariante (t1, t2) besagt, da der Schalter (automatisch, halbautomatisch)
sowohl in die eine Richtung als auch in die andere umgelegt werden kann und sich das
Netz danach wieder in der ursprunglichen Situation bendet.
Aus der Berechnung des U berdeckungsgraphen ergaben sich folgende Ergebnisse:
1. Der U berdeckungsgraph besteht aus 20 Knoten.
2. Der U berdeckungsgraph ist unbeschrankt, da durch die Ableitung immer ein neuer
Graph entsteht und der alte erhalten bleibt.
3. Er enthalt unendliche Schaltsequenzen.
4. Alle Transitionen sind lebendig. D.h., da die Funktionalitat jeder Transition der Komponente erhalten bleibt.
5. Es gibt einen moglichen Deadlock. Dieser tritt auf, wenn durch das Schalten der Transition Undo die vorgegebenen Graph{Token aus der Stelle Graphen geloscht werden. Dies
sollte aber in einem realen System durch eine geeignete Reprasentation der abgeleiteten
Graphen zu verhindern sein.
6. Es liegen Token immer nur ausschlielich auf der Stelle halbautomatisch oder auf der
Stelle automatisch. Dadurch wird garantiert, da die beiden Stellen auch wie gewunscht
die Funktionalitat eines Schalters besitzen.
7 BEWERTUNG UND AUSBLICK
86
7 Bewertung und Ausblick
In diesem Bericht haben wir die Spezikation ausgewahlter Operationen des AGG, eines
algebraischen Graphgrammatiksystems, beschrieben.
Die Systemspezikation erfolgte in drei Ausbaustufen, basierend auf dem AGG-Modell, dem
logischen Modell und dem Layout-Modell, wobei die Schritte von der ersten zur zweiten bzw.
von der zweiten zur dritten Stufe Erweiterungen in doppelter Hinsicht beinhalten. Zum einen
wurden die von den Regeln manipulierten Graphen um Knoten und Kanten weiterer Typen
angereichert, um z.B. Fenster und die Sichtbarkeit von Objekten modellieren zu konnen.
Daruberhinaus wurden die Graphen um verschiedenste Attribute fur Knoten und Kanten
erweitert, um z.B. die Position und die Darstellungsart eines Objektes zu spezizieren. Im
Zusammenhang damit ergaben sich neue Konsistenzbedingungen, entsprechende Erweiterungen der Funktionalitaten schon vorhandener Operationen, wie das Anzeigen eines erzeugten
Objektes im logischen Modell oder die Ermittlung seiner Position im Layout-Modell sowie neue Operationen wie das O nen und Schlieen von Fenstern und das Verschieben von
Objekten. Da mit der Komplexitat auch die Anforderungen an den verwendeten Kalkul
gestiegen sind, wurde dieser, ausgehend vom SPO-Ansatz, ebenfalls in zwei Schritten, um
negative Anwendungsbedingungen, Amalgamierung und Transaktionen sowie um Attribute
erweitert.
Das Vorgehen einer schrittweisen Erweiterung hat sich bewahrt, da es eine allmahliche
Annaherung an die Gesamtkomplexitat sowohl des Problems als auch des Kalkuls ermoglichte
und trotzdem auf jeder Stufe eine in sich verstandliche und formal vollstandige Spezikation
ermoglicht hat. Die dabei eingesetzten Ausdrucksmittel haben sich als geeignete Erweiterungen des SPO-Ansatzes erwiesen, allerdings sind die Moglichkeiten der Beschreibung von
Kontrollussen mittels Transaktionen eher beschrankt, da z.B. Rekursion fehlt. Das schrittweise Vorgehen bietet desweiteren die Chance, Kernbereiche des Systems, wie in unserem
Beispiel die interne Reprasentation der AGG-Graphen und deren Manipulation, formal zu
spezizieren und insbesondere zu verizieren, da hier aufgrund der reduzierten Komplexitat
auf die erweiterten Ausdrucksmittelverzichtet werden kann.
Weitere Forschungsarbeit ist insbesondere auf dem Gebiet der Konsistenz vonnoten. Dies
betrit zunachst die Entwicklung einer handhabbaren Methode zur Formulierung und zum
Beweis von Konsistenzbedingungen, zusatzlich ist vor allem eine Unterstutzung der oben
skizzierten schrittweisen Entwicklung, etwa durch Charakterisierung konsistenzbewahrender
Erweiterungen, erforderlich.
Ein weiteres Problem, das vor allem bei der Spezikation des Layout-Modells zutage getreten
ist, bleibt die ausufernde Komplexitat der Regeln. Hier ist dringend ein Abstraktionskonzept
erforderlich, das z.B. mit Hilfe von verschiedenen Abstraktionsebenen, wie sie AGG schon
bereitstellt, den Detailreichtum reduzieren hilft.
Der letzte Abschnitt dieses Berichtes beschaftigte sich mit der Spezikation einer moglichen
Erweiterung des AGG-Systems. Im Gegensatz zu den anderen Spezikationen erfolgte diese mit Petrinetzen, war auf einem wesentlich hoheren Abstraktionsniveau angesiedelt und
konnte nur sehr allgemein Daten- und Kontrollusse des erweiterten Systems beschreiben.
Eine Verfeinerung von Stellen und Transitionen zu Teilnetzen ermoglichte eine schrittweise Konkretisierung bis zu einer Ebene, auf der Transitionen direkt als Regeln interpretiert
werden konnten und die Netze so die Transaktionen "implementierten\. Die Vorgehensweise,
das System grob mit Petrinetzen zu modellieren, und Details mittels Graphtransformationen
8 KONVENTIONEN
87
genauer zu spezizieren, hat sich bewahrt. Allerdings steht eine formale Absicherung dieser
Kombination aus Graphregeln und Petrinetzen, die insbesondere eine U bertragung gewisser
Analyseergebnisse ermoglichen sollte, noch aus.
Letztlich stellt sich die Frage, ob das Fallbeispiel eines Graphgrammatiksystems fur die
Bewertung der benutzten Spezikationstechniken geeignet ist. Es erleichtert zwar die Spezikation der manipulierten Objekte, nicht aber die der verschiedenen Systemfunktionalitaten
und -komponenten, so da die Frage bejaht werden kann.
8 Konventionen
Zur besseren U bersichtlichkeit konnen gepunktete Linien zwischen korrespondierenden
Objekten auf beiden Regelseiten weggelassen oder durch Zuordnungszahlen ersetzt
werden. Wenn weder Linien noch Zuordnungszahlen existieren, ist aus der Anordnung
der Objekte die Zuordnung zu erkennen.
Wenn wir von "Kanten\ sprechen, meinen wir immer AGG-Kanten, also O-Knoten,
deren s- und t-Kanten auf andere O-Knoten zeigen. Wenn wir uns auf Kanten aus dem
Modell beziehen, geben wir ihre Bezeichnungen explizit an, also t-Kante, a-Kante usw.
Fur die graphische Darstellung von NAB-Regeln bieten sich zwei Moglichkeiten an:
{ L^ , L und R konnen als getrennte Graphen gezeichnet werden, so da eine NABRegel das folgende Aussehen bekommt:
L^
;
L
;!
R
{ L^ n l(L) kann gestrichelt in die linke Regelseite aufgenommen werden.
Je nach U bersichtlichkeit konnen beide Darstellungsformen verwendet werden.
Werden mehrere Anwendungsbedingungen verwendet, so werden diese stets als getrennte Graphen angegeben. Die einzelnen Bedingungen L^1 : : : L^n werden dabei untereinander gezeichnet:
..
.
L^1
-
L^n
.
L
;!
R
Zwei Schreibvereinfachungen sind bei Transaktionen zulassig:
{ Die Mengenklammern um einelementige Regelmengen konnen weggelassen werden.
{ Die Anwendungshaugkeit 1 kann weggelassen werden.
Kantenbuschel, beispielsweise "s,t\ bzw. "a,s,t\ :
Mehrere Kanten "x\, "y\, "z\ mit einer gemeinsamen Quelle und einem gemeinsamen
Ziel konnen in einer Regel vereinfacht auch als eine einzige Kante mit der Bezeichnung
"x,y ,z\ dargestellt werden.
LITERATUR
88
Zusammenfassung verschiedener Regeln, beispielsweise "s/t\ :
Zwei Regeln, die sich nur durch den Typ bestimmter Kanten unterscheiden, konnen
graphisch zusammengefat werden. Kanten, deren Typen in den Regeln variieren, werden dann bezeichnet mit < Typ1 > "/\ < Typ2 >. Die Regelnamen werden genauso
durch "/\ voneinander getrennt.
Die Darstellung von Attributen innerhalb von Graphen erfolgt durch Angabe der Attributierungsoperation, einem Doppelpunkt und dem Attributwert (das ist eine Variable oder ein Term uber der Attributsignatur zur entsprechenden Attributsorte). Das
Ganze wird in eckige Klammern gesetzt und in der Nahe des attributierten Objektes
plaziert. Dabei brauchen nur die wirklich benotigten Attribute angegeben zu werden.
Attributwerte, die sich von der linken zur rechten Seite einer Regel nicht andern, konnen
auf der rechten Seite durch Auslassungszeichen ersetzt werden.
Die Funktion von Attributen in Graphregeln ist wie folgt: Variablen der linken Regelseite werden durch den Ansatz belegt. Dabei kann derselbe Variablenname mehrmals
auftauchen solche Falle bedeuten indirekt eine Bedingung an den zu ndenden Ansatz. Terme dagegen werden ausgewertet und bedeuten eine direkte Bedingung an den
Ansatz: das attributierte Objekt aus der Regel mu vom Ansatz derart auf ein Objekt
aus dem Kontextgraphen abgebildet werden, da die entsprechenden Attributwerte
gleich sind. Um die Graphen nicht zu uberladen, konnen Bedingungen auch durch
Gleichungen angegeben werden, die unterhalb der Regelgraphen notiert werden. Variablen, die in der rechten Regelseite auftauchen, mussen vorher durch den Ansatz der
linken Regelseite belegt worden sein. Terme werden ausgewertet und die Werte in die
entsprechenden Attribute des Ergebnisgraphen geschrieben. Um wiederum eine U berladung der Graphen zu umgehen, konnen die Attributwertberechnungen auch durch
Zuweisungen unterhalb der Regelgraphen angegeben werden.
Ob es sich bei einem Attributwert um eine Variable oder einen Term, insbesondere eine
Konstante handelt, ergibt sich aus der jeweiligen Attributsignatur.
Um die U bersichtlichkeit der graphischen Darstellungen zu erhohen, konnen die Labelschlingen an den Knoten weggelassen und die Attribute direkt an die Knoten geschrieben werden. Ein Attribut an einem Knoten bedeutet also, da an dem Knoten
eine Labelschlinge hangt, die dieses Attribut besitzt.
Literatur
Bey91]
Bey92]
BFH87]
Ehr79]
M. Beyer. GAG: Ein graphischer Editor fur algebraische Graphgrammatiksysteme. Master's thesis, 1991.
M. Beyer. AGG1.0 - Tutorial. Technical University of Berlin, Department of
Computer Science, 1992.
P. Bohm, H.-R. Fonio, and A. Habel. Amalgamation of graph transformations: a
synchronization mechanism. Journal of Computer and System Science, 34:377{
408, 1987.
H. Ehrig. Introduction to the algebraic theory of graph grammars. In V. Claus,
H. Ehrig, and G. Rozenberg, editors, 1st Graph Grammar Workshop, Lecture
Notes in Computer Science 73, pages 1{69, 1979.
LITERATUR
HHT94]
89
A. Habel, R. Heckel, and G. Taentzer. Graph grammars with negative application conditions. accepted for special issue of Fundamenta Informaticae, 1994.
HMTW94] R. Heckel, J. Muller, G. Taentzer, and A. Wagner. Attributed graph transformations with controlled application of rules. submitted to proceedings of
Graphgrammar Mallorca Workshop 94, 1994.
KLTW93] M. Kor, M. Lowe, G. Taentzer, and A. Wagner. Algebraische Graphgrammatiken | zwischen Theorie und Praxis | Skript zur Lehrveranstaltung "Graphtransformation und Petrinetze"(in german). Technical University of Berlin, Department of Computer Science, 1993.
LB93]
M. Lowe and M. Beyer. AGG | an implementation of algebraic graph rewriting.
In LNCS 690, 1993. Rewriting Techniques and Applications, Fifth Int. Conf.,
RTA'93.
LKW93] M. Lowe, M. Kor, and A. Wagner. An algebraic framework for the transformation of attributed graphs. In M.R. Sleep, M.J. Plasmeijer, and M.C. van
Eekelen, editors, Term Graph Rewriting: Theory and Practice, chapter 14, pages
185{199. John Wiley & Sons Ltd, 1993.
Low93] M. Lowe. Algebraic approach to single-pushout graph transformation. TCS,
109:181{224, 1993.
Rei85a] W. Reisig. Petri nets. Springer Verlag, 1985.
Rei85b] W. Reisig. Systementwurf mit Netzen. Springer Verlag, 1985.
Rei91]
W. Reisig. Petri nets and algebraic specications. Theoretical Computer Science,
80:1{34, 1991.
San93]
C. Sander. Implementierung eines Ableitungssystems fur algebraische Graphgrammatiken. Diplomarbeit, 1993.
Sch91]
A. Schurr. PROGRESS{Editor: A text{oriented hybrid editor for PROgrammed
graph REwriting SyStems. page 67. Springer, 1991. Lecture Notes in Computer
Science 532.
Tae92]
G. Taentzer. Parallel high-level replacement systems. Technical Report 92/10,
TU Berlin, 1992.
TB94]
G. Taentzer and M. Beyer. Amalgamated graph transformation systems and
their use for specifying AGG { an algebraic graph grammar system. 1994.
Zun95]
A. Zundorf. Eine Entwicklungsumgebung fur PROgrammierte GRaphErsetzungsSysteme. PhD thesis, RWTH Aachen, 1995.