UML und MDA

UML und MDA

Der nächste logische Schritt

Als Verfechter von gut strukturierten Softwareentwicklungsprozessen und sorgfältig designten Softwaremodulen sind wir vor einiger Zeit auf die Unified Modeling Language (UML) der OMG gestoßen. Endlich gab es eine formale grafische Sprache zur Modellierung von Struktur und Verhalten von Softwareapplikationen. Wir führten bereits vor einigen Jahren in unseren Projekten die Verwendung von UML zur Modellierung von verschiedenen Aspekten der zu entwickelnden Software ein.

Trennung von technischem und inhaltlichem Code

Je mehr in unseren Projekten modelliert wurde und je klarer wir unsere Zielarchitektur definierten, desto deutlicher wurde die Redundanz bei der Erstellung der eigentlichen Quellcodes. Immer mehr Code schien schematisch und immer gleich zu sein. Wir entwickelten einen Blick dafür, welche Codeteile technischer Code sind (also bei klar definierter Architektur quasi redundant sind) und welche Codeteile inhaltlicher Natur sind, also die eigentliche Geschäftslogik abbilden.

Codegenerierung

Der nächste Schritt war nun, die Erstellung des technischen Codes zu automatisieren. Aus der Kombination der UML-Modelle und der (formalen) Definition der Zielarchitektur lässt sich eine automatisierbare Model-To-Code-Transformation ableiten.

Model Driven Architecture

Genau hier setzt die Model Driven Architecture (MDA), ebenfalls von der OMG spezifiziert, an. Aus UML-Modellen, die zunächst plattformunabhängig sind (PIM = Platform Independent Model) lassen sich automatisch plattformspezifische Modelle (PSM = Platform Specific Model) oder auch Code generieren. Der Generator (oder auch Transformer) kennt also das Eingangsmodell (PIM) sowie die Zielarchitektur. Durch das "Markieren" des PIM über Stereotypen und Tagged Values können den Modellelementen des PIM platformspezische Eigenschaften zugeordnet werden. So kann also z.B. eine Klasse als "Entity" oder auch als "FrontendSessionObject" modelliert werden. Intern verfügt der Transformer über ein Mapping von den markierten Quellelementen auf tatsächliche Komponenten der Zielarchitektur.

Wir sehen in der MDA eine große Bedeutung für die objektorientierte Softwareentwicklung. Es ist einfach der nächste logische Schritt, wenn man auf gutes Softwaredesign und klar definierte Architekturen setzt.

Modellgetriebene Softwareentwicklung »

Die Zielsetzung der modellgetrieben Softwareentwicklung ist es, möglichst viele Informationen, die im Prozess der Softwareentwicklung entstehen, in formalen Modellen abzubilden. Der Vorteil liegt auf der Hand: Höheres Automatisierungs- potential durch die Eindeutigkeit der Informationen.

Model Driven Architecture »

Eine kurze Einführung in die MDA, von Oliver Meimberg, aus Schriften zum Software-Qualitätsmanagement von Roland Petrasch und Stephan Höppner

SuchenSitemap