Hasso-Plattner-Institut
Hasso-Plattner-Institut
  
Login
 

Stephan Hildebrandt

On the Performance and Conformance of Triple Graph Grammar Implementations

Bei der modell-getriebenen Softwareentwicklung rücken Modelle ins Zentrum des Entwicklungsprozesses. Die Modelle stellen das zu entwickelnde System aus unterschiedlichen Perspektiven dar. Andere Entwicklungsartefakte, z.B. Quellcode, aber auch andere Modelle, werden mit Hilfe von Modelltransformationen automatisch aus existierenden Modellen abgeleitet. Aufgrund ihrer Komplexität umfasst die modell-getriebene Entwicklung von Software heute eine Vielzahl unterschiedlicher Modelle, die außerdem miteinander in Verbindung stehen. Daher sind Modelltransformationen ein wesentliches Element der modell-getriebenen Softwareentwicklung. Da Softwareentwicklung in der Praxis ein arbeitsteiliger Prozess ist, können unterschiedliche, in Beziehung stehende Modelle auch parallel verändert werden. Die Änderungen eines Modells müssen dann auf die anderen Modelle übertragen werden. Dies führt zu dem Problem, dass eine reine Modelltransformation das Zielmodell verwirft, sodass alle Änderungen am bereits existierenden Zielmodell verworfen werden. Daher werden Modellsynchronisationen benötigt, die nur Änderungen vom Quell- auf das vorhandene Zielmodell übertragen, um die Konsistenz zwischen beiden Modellen wiederherzustellen.

Systeme zur Modelltransformation und -synchronisation müssen eine Reihe von Anforderungen erfüllen: In erster Linie müssen Transformationen effizient sein und Transformationen schnell ausführen, sowie konform zu ihrer Transformationsspezifi kation sein und die Zielmodelle ausgeben, die durch die Spezifi kation vorgegeben werden. Bei der Modellsynchronisation muss weiterhin soviel zusätzliche Information im Zielmodell erhalten werden wie möglich, um zu vermeiden, dass vorherige manuelle Ergänzungen des Zielmodells uberschrieben werden.

Tripel-Graph-Grammatiken (TGG) sind ein bidirektionaler Ansatz zur Spezifikation und Ausführung von Modelltransformationen. Vorwärts- und Ruckwärtstransformationen werden von derselben Transformationsspezifi kation abgeleitet. MoTE ist ein auf TGGs basierendes System für bidirektionale Modelltransformationen und -synchronisationen. Die vorgenannten Anforderungen erfüllt MoTE nur bedingt. Insbesondere bei der Ausführungsgeschwindigkeit gibt es Verbesserungspotential. Weiterhin erhält MoTEs Synchronisationsmechanismus nicht in allen Fällen soviel zusätzliche Informationen im Zielmodell, wie moglich wäre.

Ein weiteres Problem ist die Prufung der Conformance eines Transformationssystems, d.h. die Prüfung, ob das Transformationssystem die Transformationsspezi kation korrekt umsetzt. MoTE wurde bisher lediglich anhand einer Reihe von handgeschriebenen Testfällen überprüft. Ein systematisches Testen der Conformance fand aber bisher nicht statt.

Diese Arbeit stellt MoTE2 vor, eine verbesserte Version von MoTE, welche eine Reihe von Optimierungen implementiert, die zu einer höheren Performance und Informationserhaltung bei Synchronisationen im Vergleich zu MoTE führen. Die Conformance eines Transformationssystems kann durch die Umsetzung solcher Optimierungen jedoch beeinträchtigt werden. Daher wird auch ein System zum automatisierten Conformance-Testing vorgestellt, welches automatisch Testfälle mit vollständigen Testorakeln erzeugen, ausführen, und das Ergebnis mit dem erwarteten Resultat vergleichen kann. Zur Erzeugung von Testfällen bietet das System einen zufälligen und einen abhängigkeitsgesteuerten Generierungsmechanismus an.

Die in MoTE2 implementierten Optimierungen und die Eff ektivitat des Conformance-Testing Systems werden anhand einiger Benchmarks evaluiert.