• No results found

Noninvasive regelbasierte Graphtransformation für Java

N/A
N/A
Protected

Academic year: 2021

Share "Noninvasive regelbasierte Graphtransformation für Java"

Copied!
2
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Noninvasive regelbasierte Graphtransformation für Java

∗ James J. Hunt

aicas GmbH, Karlsruhe, Germany jjh@aicas.com

Arend Rensink and Maarten de Mol

Department of Computer Science, University of Twente P.O.Box 217, 7500 AE, The Netherlands

rensink@cs.utwente.nl

Der Standardansatz zur Verwendung von Graphtransformationen (GT) in einem Programm ist es, die Daten in eine bekannte Graphenstruktur umzuwandeln, diese zu bearbeiten und sie dann zurück zu wandeln in das Format des Programms. Diese Transformationen stellen sicher, dass die graphischen Operationen korrekt sind. Die Autoren haben eine alternati-ve Methode zur Verwendung der Java-Programme entwickelt, die den Graphtransformator darüber informiert, wie Datenstrukturen eines Programms, die einem idealen Graph ent-sprechen, so dass in sito Graphtransformationen direkt auf der vorliegenden Datenstruktur durchgeführt werden können, ohne unter einem Korrektheitsverlust zu leiden. Der Vor-teil des Ansatzes ist, dass er es ermöglicht, beliebige Java-Programme nicht-invasiv mit deklarativen Graphenregeln zu erweitern. Dieser verbessert die Klarheit, Prägnanz, Nach-prüfbarkeit und Leistung.

Schwachstellen der GT sind ihre mangelnde Effizienz und die Notwendigkeit, Daten zwi-schen dem Anwendungsgebiet und der Graphdomäne zu transformieren. Obwohl man-gelnde Effizienz zum Teil der Preis für allgemeine Anwendbarkeit sein kann, so scheint dies nicht der dominierende Faktor zu sein. Viel mehr ist es der Overhead der Transfor-mation. Die beiden “Transformationen” sind eigentlich auch Modelltransformationen, und erhöhen die Komplexität der Technik so weit, dass es unpraktisch für große Graphen wird. Auch eine Anwendung zu erzwingen, die Graphenstruktur des Werkzeugs zu verwenden, hilft nicht viel, da die Graphenstruktur des Werkzeugs nicht ausdrucksfähig genug für die Anwendung sein kann, so dass bestehender Code neu geschrieben werden muss. Daher sind etablierte GT-Techniken invasiv.

Der hier vorgestellte Ansatz stellt diesen Prozess auf den Kopf. Da er Graphensemantik zu dem Problem und nicht das Problem zur Graphensemantik bringt, vermeidet es die invasive Natur der GT, erhält jedoch die Vorteile der GT, einschließlich der allgemeinen Anwendbarkeit und der deklarativen Natur. Es gibt drei Hauptteile dieses Ansatzes.

• Die Graphenstruktur wird spezifiziert durch Einfügen von JAVA-Annotationen in

vorhandenen Klassencode. Als Konsequenz bilden die JAVA-Annotationen eine

Spe-zifikationssprache für Graphen.

Diese Arbeit wurde von der Artemis Joint Undertaking durch das CHARTER-Projekt gefördert, Grant-Nr.

100039. Siehe http://charterproject.ning.com/.

(2)

• Graphenmanipulation, wie etwas Hinzufügen oder Löschen von Knoten und Kanten, werden durch applikationsdefinierte Operationen bereitgestellt, die auch Annotatio-nen benötigen, um ihre Wirkung auf die Graphenstruktur zu beschreiben.

• Regeln werden in einer deklarativen Sprache namensCHARTgeschrieben und an-schließend in JAVA-Code übersetzt. Dieser bearbeitet die oben genannten

Benut-zerklassen mit annotierten Methoden ohne die Übertragung von Datenstrukturen zu und von der Graphendomäne.

Dieser Ansatz ermöglicht es, Komponenten eines bestehenden JAVA-Programms durch de-klarative Graphtransformationen zu ersetzten, nur mit der Anforderung, die Datenstruktu-ren des Programms mit Annotationen zur ergänzen. Der Ansatz wurde in dem CHARTER -Projekt entwickelt, bei dem er in drei verschiedenen Werkzeuge angewendet wurde. Um Graphentransformationsregeln auf einem vorhandenen JAVA-Programm mit diesem

Ansatz anzuwenden, müssen folgende Änderungen vorgenommen werden:

• eine@NodeAnnotation muss an jeder Klasse und Schnittstelle angefügt werden, die einen Knoten darstellt;

• für jeden Kantentyp muss eine dedizierte Schnittstelle mit einer@EdgeAnnotation definiert werden und

• für jede gewünschte Operation muss eine Methode zur Verfügung stehen, entweder durch das Annotieren einer bestehende Methode oder das Hinzufügen einer neuen Methode mit der entsprechenden Annotation.

Diese Änderungen bereichern den vorhandenen Code lediglich durch Meta-Daten. Sie können daher an jedes JAVA-Programm angewendet werden. Daher wird dieser Ansatz

no-ninvasiv genannt. Dies sollte nicht mit “nonmodifying” verwechselt werden, weil Annota-tionen und Schnittstellen zugefügt und zusätzliche Manipulationsmethoden implementiert werden müssen.

EineCHART-Transformation besteht aus Transformationsregeln und kann durch Aufrufen

von einer dieser Regeln gestartet werden. Jede Regel hat eine Signatur, die ihren Namen, ihre Parameter und Rückgabewerte definiert. Mehrere Ein- und Ausgabewerte sind erlaubt. Der Körper einer Regel besteht aus jeweils höchstens einem der folgenden Blöcke in der dieser Reihenfolge: ein Match-, ein Update-, ein Sequence- und ein Return-Block. Ein großer Teil des Aufwands ist in denCHARTCompiler geflossen, der den

entsprechen-den JAVA-Code generiert. Der Compiler wirdRDTgenannt, was für Regel Driven

Trans-former seht. Er unterstützt alle beschrieben Funktionen. Er wurde bereits in vier verschie-denen Systemen erfolgreich verwendet. Die Komplexeste davon ist für die Optimierung in einem neuen Byte-Code-Compile von aicas.

ObwohlCHARTsich in der Praxis bewährt hat, gibt es noch viel zu tun, um die

forma-len Grundlagen stärken zu können und die Benutzbarkeit zu verbessern. Eine Theorie, die es einem CHARTProgrammierer ermöglicht, den Zusammenfluss und die

Terminie-rung seiner Regelsystem abzuleiten, die semantische Erhaltung der Modelltransformatio-nen zu beweisen und eine formale Überprüfung desRDTwären hilfreich. Auf der

prag-matischen Seite benötigt derRDT weitere Arbeit an Effizienz, vielleicht mit einem

bes-seren Matching-Algorithmus. Dies könnte die Leistung des erzeugten Codes verbessern. Schließlich könnte dieCHARTSprache mit zusätzlicher Funktionalität erweitert werden.

Referenties

GERELATEERDE DOCUMENTEN

Auch die potentielle neue Konkurrenz in Europa, die sich bereits in anderen geographischen Märkten mit der Herstellung von Speiseeis befasst, ist umfangreich und könnte mit ihrem

französischen Behörden energetische Getränke wie Red Bull weiterhin vom inländischen Markt verbannen dürfen – wegen der möglichen Gesundheits- gefahren.. Normalerweise sind

München Für die 21 Berufsfischer am Ammersee ist das ein Lichtblick: Sie sollen eine Ausnahmegenehmigung er halten, Kormorane an den Netzen ab zuschießen. Damit reagiert das

Outfit wird mit Persönlichkeit verwechselt. Die Marke und nur die Marke entscheidet über Anerkennung, Erfolg und Sozialprestige. Das ist brutal für diejenigen, die sich diese Art

11 Gibt es Unterschiede in den Gruppen oder Personen, mit denen Sie sich heute und damals verbunden fühlen. 12 Haben Sie das Gefühl, dass das Unternehmen als ganzes oder Gruppen

Darüber versäumen sie, Strukturen zu schaffen, die den Wohlstand auch für den Fall garantieren, dass das Öl ausgeht oder sich die Förderung nicht mehr lohnt – etwa ein

Kunstkritiker erkannten in der in Beckhams linken Oberarm geritzten Darstellung von „Amor und Psyche“ sofort eine Neudeutung des gleichnamigen Gemäldes von William Adolphe

Um seine Leistung auch unter Druck abrufen zu können, solle man lieber sofort loslegen.. Sich vor Beginn eines Vortrags zu viel Zeit zur inneren