Definition „AndroMDA Model Driven Architecture Framework“ Was ist AndroMDA?

Autor / Redakteur: chrissikraus / Stephan Augsten

AndroMDA ist ein Generator-Framework auf Basis der modellgetriebenen Softwareentwicklung. Es liefert die Grundvoraussetzung, um UML-Diagramme mit externen Tools in Programmcode umzuwandeln.

Anbieter zum Thema

AndroMDA wird mit Cartridges ausgeliefert, die Code für verschiedene Plattformen und Technologien generieren können, darunter beispielsweise Java und .NET.
AndroMDA wird mit Cartridges ausgeliefert, die Code für verschiedene Plattformen und Technologien generieren können, darunter beispielsweise Java und .NET.
(Bild: AndroMDA.org)

Das Open-Source-Framework wurde ursprünglich mit Blick auf Java konstruiert. Es baut auf der modellgetriebenen Softwareentwicklung (engl.: Model Driven Architecture, MDA) auf und setzt daher auf die Generierung von Software auf Grundlage von Modellen. Es kann statische und dynamische Modelle zu Programmcode für verschiedene Plattformen verarbeiten.

Auf der Website zu AndroMDA finden sich Dokumentationen zu gängigen Plattformen wie Java und .NET. Dank des Open-Source-Ansatzes ist es aber möglich, das Framework für jede beliebige Computersprache anzupassen, das Projekt nennt unter anderem auch HTML und PHP.

UML-gestützte Entwicklung

Das Generatorframework nutzt UML-Diagramme, um daraus Anwendungen zu erstellen – ein Entwickler arbeitet also relativ wenig am eigentlichen Quellcode, sondern bildet die geplanten Funktionalitäten, Schichten und Zusammenhänge in Form von UML ab.

Hierfür bietet AndroMDA kein eigenes Tool zum Modellieren der UML-Strukturen – es ist also ein externes Tool notwendig, mit dem zunächst ein Modell der Software erstellt werden muss. Wichtig ist bei der Wahl des Tools im Prinzip nur, dass es Diagramme im XMI-Format (XML Metadata Interchange) ausgeben kann und Features wie UML Constraints oder die Erstellung von Klassendiagrammen und Aktivitätsdiagrammen bietet.

Der eigentliche Build-Prozess wird ebenfalls von einem externen Build Management Tool gesteuert, z. B. Apache Ant oder Maven. AndroMDA stellt lediglich den „Werkzeugkasten“ bereit, mit dem UML-Diagramme in Programmcode verwandelt werden können.

Modellgetriebene Entwicklung für verschiedene Javaplattformen

Ein Kerngedanke von MDA ist die plattformunabhängige Abbildung von Software in Diagrammen, die dadurch beliebig wiederverwendbar sind. AndroMDA akzeptiert ebenfalls allgemein gehaltene UML-Diagramme und generiert daraus automatisch Programmcode für verschiedene Zielarchitekturen. Es ist also möglich, mit nur einem Modell Software für die unterschiedlichsten Plattformen generieren zu lassen.

AndroMDA liest die Informationen aus den XMI-Dateien ein und wandelt sie intern in ein eigenes Metamodell um. Dieses Modell kann anschließend so transformiert werden, wie es für die entsprechende Plattform notwendig ist.

Cartridges

Die einzelnen Module, mit denen AndroMDA UML in Code für verschiedene Zielarchitekturen generiert, werden im Framework Cartridges genannt. Sie enthalten alle Informationen, die für die erfolgreiche Codegeneration nötig sind: Modellbeschreibung, Templates, Deskriptoren und Testdateien.

Die Modellbeschreibung liefert Metafacades, die als Schnittstelle zwischen dem UML-Modell und dem generierten Metamodell dienen. Templates enthalten die nötigen Vorlagen für die Generierung der plattformspezifischen Ausgabedateien. In den Deskriptoren finden sich Definitionen zu allen Bestandteilen der Cartridge, z. B. Templates, Metafacades oder Stereotypen. Und die Testdateien enthalten Informationen zum Testen des generierten Codes.

Von Haus aus bringt AndroMDA Cartridges für folgende Technologien mit:

  • BPM4Struts
  • jBPM
  • JSF
  • EJB
  • EJB3
  • Hibernate
  • Java
  • Meta
  • Spring
  • WebService
  • XmlSchema

AndroMDA bietet die Möglichkeit, einzelne Ressourcen einer Cartridge zu überschreiben und so gewisse Aspekte der Cartridge anzupassen. Außerdem ist es möglich, bei Bedarf komplett eigene Cartridges zu erstellen.

(ID:45980089)