Entwicklung

Mit Eclipse zum Modellaustausch

23.05.2011
Von Karsten Thoms

Automatisierte Softwareproduktion

Die modellgetriebene Softwareentwicklung propagiert die Verwendung von Modellen zur automatisierten Produktion von Software. Damit dies möglich ist, müssen verschiedenartige Modelle in den Fertigungsprozess einfließen und miteinander integriert werden. Dies gelingt vor allem dann, wenn den Modellen eine gemeinsame Basis zugrunde liegt, für die es die notwendigen Werkzeuge unter anderem zur Transformation, Validierung und Persistierung gibt. Auch hier bietet das Eclipse Modeling Framework die derzeit breiteste Unterstützung. Zahlreiche Open-Source-Werkzeuge, insbesondere aus dem Eclipse Modeling Project, und kommerzielle Werkzeuge lassen sich auf dieser Basis integrieren.

Die Integration selbst muss allerdings weitgehend projektspezifisch gelöst werden. Es lassen sich auch durchaus Modelle in einer Werkzeugkette integrieren, die nicht auf EMF basieren. Voraussetzung ist ein hinreichend offenes Modellaustauschformat, wie es zum Beispiel XMI bietet. Der Integrationsaufwand ist hier meist höher.

Das Eclipse-Plug-in OpenArchitectureWare bietet einen ausgereiften Open-Source-Generator für die modellgetriebene Softwareentwicklung.
Das Eclipse-Plug-in OpenArchitectureWare bietet einen ausgereiften Open-Source-Generator für die modellgetriebene Softwareentwicklung.

Die Adaption von Modellen innerhalb einer Werkzeugkette erfolgt durch Modell-zu-Modell-Transformationen (M2M). Realisiert werden diese meist durch Open-Source-Werkzeuge, wobei standardbasierende Lösungen wie QVT ebenso wie propietäre Lösungen (zum Beispiel openArchitectureWare Xtend) zum Einsatz kommen.

Die Produktion der Software erfolgt letztendlich durch Modell-zu-Text-Transformationen, allgemein auch als Code-Generierung bekannt. Zum Teil können Modelle auch durch Interpreter zur Laufzeit direkt verarbeitet werden. Die vollständige Erzeugung von Software aus Modellen erweist sich in der Regel als nicht zweckmäßig, wird in manchen Anwendungsgebieten aber auch angetroffen, unter anderem im Automotive-Bereich oder bei der Entwicklung von eingebetteten Systemen.

Diversität erfordert spezifische Werkzeugketten

Software wird für die unterschiedlichsten Plattformen entwickelt. Die Vielzahl der möglichen Zielsprachen, Softwarearchitekturen und Entwicklungsprozesse machen es unmöglich, allen Anforderungen durch eine einheitliche Modellierungssprache oder eine einzige Werkzeugkette gerecht zu werden. Abhängig vom spezifischen Kontext müssen andere Glieder zusammengefügt werden. Je enger dieser Kontext gefasst wird, desto größer ist das Potential, eine passende Werkzeugkette erstellen zu können. So entwickelt die Robert Bosch GmbH an einer durchgängigen Modellierungs- und Entwicklungsumgebung auf Basis von Eclipse, die für die Entwicklung von Software für elektronische Steuerungseinheiten in Automobilen eingesetzt wird. Als Modellierungssprache kommt hier nicht die UML zur Anwendung, sondern man setzt auf die Industriestandards MSR und Autosar. Die Entwicklung einer hoch spezialisierten Werkzeugkette kann mit großen Entwicklungsaufwänden verbunden sein. Doch je nach Projekt und Anforderungen an die Werkzeugkette kann sich die Investition auch schon für einzelne Projekte rechnen. Gerade im Bereich der Implementierung erzielt man durch die mittlerweile ausgereiften Basiswerkzeuge und aufgrund des hohen Automatisierungspotentials gute Ergebnisse.