Evolution von Modelltransformationen
Diplomarbeit, April 2010
Mit der wachsenden Verbreitung von Modellgetriebenen Softwareentwicklungsansätzen im industriellen Umfeld steigen in gleichem Maße die Anforderungen an Entwicklungswerkzeuge. Diesem Trend folgend positionieren sich stetig neue Softwareanwendungen auf dem modellgetriebenen Anwendungsmarkt, wodurch dem Entwickler einerseits zwar immer mächtigere Softwaretools zur Verfügung stehen. Andererseits erschweren uneinheitliche Standards innerhalb der Modellgetriebenen Softwareentwicklung auf Projektebene die Etablierung und Aufrechterhaltung einer hochintegrierten Anwendungsentwicklungslandschaft, gerade im Hinblick auf die Erweiterbarkeit um neue Applikationen. Das Konzept, welches zu einer Relativierung der Problematik beiträgt, ist das der Modelltransformation. Sie gestattet eine automatische Konvertierung von Modellen zwischen unterschiedlichsten Formaten und damit einen anwendungsübergreifenden Einsatz von Modellen in komplexen Entwicklungsprozessen.Ein wiederkehrendes Szenario modellgetriebener Softwareentwicklungsprozesse ist die Evolution, d.h die Weiterentwicklung, von Metamodellen. Ursächlich hierfür sind sowohl außerplanmäßig auftretende, wie etwa fehlerkorrektive, Maßnahmen als auch solche, die den Funktionsumfang einer Softwareapplikation erweitern und regulärer Teil einer Produktlebenszyklusses sind. Bezogen auf ihr Ergebnis bedeutet eine Evolution von Metamodellen jedoch, dass die syntaktische und semantische Konsistenz mit den darauf aufbauenden Modelltransformationen gebrochen wird.Die Zielsetzung dieser Arbeit besteht darin, für jene Problematik eine konzeptuelle Lösungsmöglichkeit zu erarbeiten. Wie in den späteren Ausführungen nachgelesen werden kann, ist es hierfür zunächst notwendig, die evolutionären Veränderungen auf Metamodellebene zu bestimmen. Neben eines postevolutionären algorithmischen Vergleichs eines Metamodells mit seiner weiterentwickelten Version verspricht die evolutionsbegleitende Überwachung auf Modifikationen adäquate Ergebnisse. Mit COPE wird dabei auf einen Vertreter dieses Prinzips näher eingegangen, auch im Hinblick darauf, dass es als Basis für eine prototypische Implementierung verwendet wird. In einer zweiten Phase bedarf es der Adaption von Modelltransformationen an detektierte Metamodelländerungen. Anpassungen lassen sich hierbei einheitlich anhand von Ersetzungsanweisungen spezifizieren, welche sich den modularen Aufbau von Modelltransformationen zu Nutze machen, um fehlerhafte Referenzen und Konzepte zu korrigieren.
