"Aktive VISIO-Schablonen zur grafischen Erstellung von DIANE-Dienstbeschreibungen" Thomas Herzog Betreuer: Michael Klein Universität Karlsruhe - 1 -
Zielsetzung der Arbeit Bereitstellung von Schablonen für G-DSD – Applikation: Microsoft Visio 2003 – „Ablegen und Ausfüllen“ Implementierung eines Übersetzers nach F-DSD – Einfach zu bedienende VBA-Skripte – Ablage in das vordefinierte Repository Benutzerunterstützung – Einfache Vorgänge automatisieren – Neuerstellungen durch Schemakenntnis vereinfachen - 2 -
Schablonen Grundprinzipien von Visio – Komplette Geometrie durch Funktionen bestimmt – Berechnungen in Spreadsheet-ähnlichen Tabellen – Benutzeränderungen in Grafischer und Tabellen- Ansicht möglich – Schablonen können Benutzerdefinierte Daten enthalten – Funktionen kennen Verzweigung, logische Operatoren, Textoperatoren, usw
Schablonen - 4 -
Schablonen können auf das Zeichenblatt gezogen werden. Schablonen - 5 -
Instanzdefinition mit den fertigen Schablonen Schablonen - 6 -
Abfrage der Eigenschaften nach dem Ablegen Schablonen - 7 -
Schablonen Benutzerdefinierte Eigenschaften – Bestimmen das Aussehen und die Beschriftung – Werden nach dem Ablegen abgefragt – Enthalten z.B. Klassenname Typ (bei Instanzen) Wert (bei atomaren Werten) Spezielle Eigenschaften der Objekte - 8 -
=GUARD(IF(Prop.Row_5=TRUE,"E","V")) =GUARD(IF(Prop.Row_6=TRUE,"P","")) =IF((Prop.Row_3=TRUE),1,2) Schablonen - 9 -
Übersetzer Visio-Objektmodell – Jedes Objekt und alle seine Tabellenzellen per VBA zugreifbar – VBA-Makros bei Ereignissen – Kontextmenüs von Objekten erlauben Makroausführung – Benutzerdefinierte Eigenschaften können ausgelesen werden
Übersetzer Übersetzungsprinzip – Seitenweise auf Benutzeranforderung – Iterativ bei Klassendefinition – Iterativ und rekursiv bei Instanzdefinition – Rekursiv bei Request- und Offerdefinition – Akkumulation des Ergebnisses in einem Dialogfenster – Speicherort abgeleitet aus eigenem Speicherort plus relativem Pfad zu F-DSD-Repository
ONTOLOGY: domain.movie public entityclass Movie [ title : String, release_day : Date, duration : Duration, first_showing : Time ]
Übersetzer Klassenübersetzung – Ontologiebezeichnung im „ontology tag“ der Seite – Iteriere über sämtliche lokalen Klassen – Finde ausgehende Vererbungskanten – Finde ausgehende Eigenschaftskanten – Übersetze Eigenschaften – zusätzlich: schreibe Quelldatei und Seitenname in die F-DSD-Datei
Übersetzer Instanzübersetzung – Ontologiebezeichnung im „ontology tag“ der Seite – Iteriere über Instanzen der Seite ohne eingehende Kanten – Finde ausgehende Kanten – Übersetze rekursiv die angehängten anonymen Instanzen – Übersetze die angehängten Werte und benamten Instanzen – zusätzlich: schreibe Quelldatei und Seitenname in die F-DSD-Datei
Übersetzer Request/Offer-Übersetzung – Finde Instanz ohne eingehende Kanten – Starte Instanzübersetzung wie gewohnt – Menge als Eigenschaft angetroffen -> Verzweige in Mengen/Variablenübersetzer – zusätzlich: schreibe Quelldatei und Seitenname in die F-DSD-Datei
Übersetzer Menge/Variable-Übersetzung – Iteriere über alle ausgehenden Kanten – Identifiziere property conditions und default-Werte – Extrahiere connecting strategy aus der Menge – Extrahiere direct conditions aus der Menge – Extrahiere missing strategy aus der abgehenden Kante – Unterscheide, ob Variable oder Menge – Bei Variable: extrahiere erweiterte Informationen – Übersetze property conditions rekursiv
Assistenten Hilfe bei Schemadefinition – Bei Ablage Vererbungsbeziehung zu erzeugen anbieten – Zyklenerkennung – Falsche Verbindungen erkennen
Assistenten Hilfe bei Instanzdefinition – Zyklenerkennung – Falsche Verbindungen erkennen – Einlesen des definierten Schemas im Hintergrund – Assistent zur Instanziierung einer bestimmten Klasse mitsamt ausgewählter properties
Assistenten Hilfe bei Offerdefinition – Assistent zur schrittweisen Erzeugung – „Beginn“ eines Angebots in DSD immer gleich – Bekannter Instanziierungsassistent
Demonstration Schemadefinition Instanziierung Offer Request Übersetzung nach F-DSD