www.wikidata.de-de.nina.az
Modellgetriebene Architektur MDA engl model driven architecture bezeichnet einen modellgetriebenen Softwareentwicklungsansatz der auf einer klaren Trennung von Funktionalitat und Technik beruht Er wurde 2001 von der Object Management Group OMG eingefuhrt 1 Inhaltsverzeichnis 1 Abgrenzung zu CASE und MDSD 2 Ziele 2 1 Steigerung der Entwicklungsgeschwindigkeit 2 2 Bessere Handhabbarkeit aufgrund hoherer Abstraktion 3 Vorgehen 4 Vor und Nachteile 5 MDA Konzepte im Uberblick 5 1 Modell 5 2 Plattform 5 3 UML Profile 6 Siehe auch 7 Literatur 8 Weblinks 9 EinzelnachweiseAbgrenzung zu CASE und MDSD BearbeitenMDSD model driven software development bezeichnet die Verwendung von Modellen und Generatoren zur Verbesserung der Softwareentwicklung Schon in den Anfangszeiten der Informatik stutzte man sich auf Modelle und entwickelte Generatoren um schematischen Quellcode daraus zu erzeugen MDSD wird gelegentlich mit den CASE Ansatzen der 1990er Jahre verwechselt MDSD und CASE unterscheiden sich jedoch in ihren grundlegenden Zielen Ziel der CASE Ansatze war und ist es Software moglichst vollstandig automatisiert aus fachlichen Beschreibungen zu erstellen Da sich die Automatisierung dabei auch auf den Bereich der Softwarearchitektur erstreckt erwiesen sich die CASE Ansatze als sehr unflexibel Diese Tatsache fuhrte in Verbindung mit der Proprietat der verfugbaren Werkzeuge dazu dass sich CASE nicht durchsetzen konnte Ein moglicher Weg zur Implementierung des MDSD ist die im Artikel beschriebene MDA MDA erfordert keine hundertprozentige Automatisierung sondern einen sinnvollen Anteil Dieser variiert je nach fachlicher Anforderung zwischen 20 und 80 Prozent Da die Architektur eines Systems vollstandig manuell erzeugt wird ist MDA hochgradig flexibel und gewahrt im Gegensatz zum CASE Ansatz die vollstandige Kontrolle wahrend des Entwicklungsprozesses Ziele BearbeitenSteigerung der Entwicklungsgeschwindigkeit Bearbeiten Ein Ziel der MDA ist die Steigerung der Entwicklungsgeschwindigkeit Das Mittel dazu heisst Automation durch Formalisierung Aus formal eindeutigen Modellen soll durch Generatoren automatisch Code erzeugt werden das sogenannte Generat Dadurch soll auch die Softwarequalitat gesteigert werden Fehler im Generat konnen an einer Stelle in den Generatorschablonen beseitigt werden Die Qualitat des generierten Sourcecodes ist gleich bleibend was zu einem hoheren Grad der Wiederverwendung fuhren soll Siehe auch Generative Programmierung Bessere Handhabbarkeit aufgrund hoherer Abstraktion Bearbeiten Ein weiteres wesentliches Ziel ist die bessere Handhabbarkeit von Komplexitat durch Abstraktion Mit den Modellierungssprachen soll Programmierung auf einer abstrakteren Ebene moglich werden die klare Trennung von fachlichen und technischen Anteilen zielt auf eine bessere Wartbarkeit durch Trennung von Verantwortlichkeiten ab Die abstraktere technologieunabhangige Beschreibung von Schlusselkonzepten mit eindeutigen Modellierungssprachen verspricht eine verbesserte Handhabbarkeit des Technologiewandels Und nicht zuletzt soll eine verbesserte Interoperabilitat durch Standardisierung erreicht werden Vorgehen BearbeitenDie Idee der MDA geht davon aus dass fur die Konstruktion eines Softwaresystems ein einziges Modell fur die Abbildung einer grosseren komplexeren Applikation zu unscharf und uberladen ist Bei den meisten klassischen UML Modellen sind geschaftsrelevante mit technischen Informationen vermischt MDA unterteilt das Gesamtmodell in mehrere Schichten Computation Independent Model CIM fur die umgangssprachliche Beschreibung Platform Independent Model PIM plattformunabhangiges Modell fur Geschaftsprozesse Platform Specific Model PSM plattformabhangiges Modell fur Architektur Services ein Codemodell die ZielplattformDie Trennung der Modelle separation of concerns stellt eine inhaltliche Erweiterung des UML Standards 2 dar Insbesondere durch das CIM und vor allem das PIM mochte man nicht nur Plattformunabhangigkeit erreichen sondern auch Sprach und Systemunabhangigkeit MDA definiert neben der inhaltlichen Trennung der Modelle auch die Transformation der Modelle und unterscheidet zwei Typen Die Modelltransformation von einem Modell in ein anderes Modell siehe auch MOF QVT Die Codetransformation von einem Modell in den Code Die Transformationen erzeugen aus den Elementen des Quellmodells die Elemente des Zielmodells Die Transformation geschieht ublicherweise von der abstrakteren Ebene in die konkretere Ebene CIM PIM PSM Code Dadurch kann aus einfacheren Modellelementen eine komplexere Anwendung erzeugt werden indem erfahrene Architekten ihre Konstruktionsregeln in solche Transformationsprozesse einprogrammieren MDA ist eine Strategie der Object Management Group OMG Die OMG erstellt herstellerneutrale Spezifikationen zur Verbesserung der Interoperabilitat und Portabilitat von Softwaresystemen Vor und Nachteile BearbeitenEiner der wesentlichen Vorteile von MDA besteht darin Systemdesigner und Softwareentwickler zu einer sorgfaltigeren Konzeption der zu erstellenden Programme in der Entwurfsphase anzuhalten was bei sehr komplexer Software insbesondere bei der Erstellung von Standardsoftware von grosser Wichtigkeit ist Nachteilig ist der sehr hohe Abstraktionsgrad der den Softwareentwicklern abverlangt wird Bei kleineren oder weniger komplexen Anwendungen z B bei Datenbankanwendungen als Individuallosung zur Unterstutzung typischer Verwaltungsablaufe wird der Aufwand einer abstrakten Definition aller Objekte und Prozesse oft als unangemessen hoch empfunden Mit demselben Zeitaufwand lasst sich bei einigen alternativen Softwaretechnologien bereits die Software selbst erstellen Durch die formalisierte strikte Trennung der Modellebenen wird auch die Steigerung der Produktivitat durch Einsatz von Modellen mit gemischtem fachlichem und technischem Inhalt verhindert Des Weiteren erfordert eine automatisierte Transformation eines Modells haufig eine wesentlich formalere Beschreibung als dies fur die Transformation durch einen Menschen erforderlich ist Beispielsweise sei eine Klasse Person mit dem Attribut geborenAm gegeben Ein Programmierer braucht keine besonders detaillierte Beschreibung um die Funktion gibAlterInJahren zu implementieren Fur eine automatische Transformation zu Quellcode oder in ein anderes Modell muss jedoch eine genaue Spezifikation vorliegen Vorteilhaft ist dass Anderungen an der Anwendung im Modell vorgenommen werden Diese werden durch eine erneute Codegenerierung in den Quellcode ubernommen Somit wird das Auseinanderlaufen von Modell und Code unterbunden Insbesondere ein wild hacking bei dem Anderungen im Quellcode nicht in das ursprunglich zugrunde liegende Modell ubernommen werden und somit das Modell mit der Zeit fehlerhaft und letztendlich unbrauchbar wird wird vermieden Daraus ergibt sich dass gerade der MDA Ansatz optimal fur ein iterativ inkrementelles Vorgehensmodell geeignet ist und keineswegs einen Wasserfallansatz unterstutzt oder gar fordert Beim Einsatz generischer Modellierungssprachen wie UML muss ausserdem klar definiert sein durch welche Elemente und mit welchen Mitteln der Modellierungssprache fachliche Sachverhalte zu beschreiben sind damit ein im Sinne der folgenden Transformationen valides Modell entsteht Diese Abbildung fuhrt oft mehr neue Komplexitat ein als durch die Abstraktion verborgen wird Der Einsatz domanenspezifischer Sprachen kann hier deutliche Vorteile bringen MDA Konzepte im Uberblick BearbeitenModell Bearbeiten Ein Modell ist eine abstrakte Reprasentation von Struktur Funktion oder Verhalten eines Systems MDA Modelle werden in der Regel in UML definiert Aber auch klassische Programmiersprachen eignen sich als Modellierungssprachen Ihre Programme sind MDA Modelle Diese sind wiederum unabhangig von der darunter liegenden Plattform Bytecode Maschinencode und API Nicht jede Sammlung von UML Diagrammen stellt ein Modell im Sinn von MDA dar Der wichtigste Unterschied zwischen allgemeinen UML Diagrammen z B Analyse Modellen und MDA Modellen liegt darin dass die Bedeutung von MDA Modellen formal definiert ist Dies wird durch die Verwendung einer formal eindeutigen Modellierungssprache sichergestellt die in einem UML Profil s u festgelegt wird Ein Generator muss genugend Informationen vorfinden um das MDA Modell auf ein anderes Modell oder auf Sourcecode abbilden bzw transformieren zu konnen Plattform Bearbeiten MDA sagt zunachst nichts uber den Abstraktionsgrad von Plattformen aus Plattformen konnen aufeinander aufbauen Beispielsweise ist Intel PC eine Plattform fur Linux CORBA Jakarta EE oder Webservices sind mogliche Plattformen fur ein eBusiness System und C ist eine mogliche Plattform fur CORBA Auch eine wohldefinierte Anwendungsarchitektur mit dazugehorigem Laufzeitsystem kann eine Plattform fur Applikationen sein UML Profile Bearbeiten Ein UML Profil ist die Erweiterung des Standard UML Sprachumfanges zur Bildung einer spezifischeren Designsprache unter Anwendung der in UML vorgesehenen Erweiterungsmechanismen Stereotype TaggedValues Constraints Custom Icons Die im UML Metamodell vorgegebenen Meta Typen werden durch Anwendung der Erweiterungsmechanismen weiter spezialisiert Die in UML Profilen definierten spezifischeren Designsprachen werden insbesondere benotigt um domanen oder plattformspezifische Semantiken abbilden zu konnen Wahrend die Einfuhrung neuer Konzepte durch Profile relativ gut unterstutzt ist lassen sich vorhandene Konzepte mit diesem Mechanismus nur schlecht ausblenden was insbesondere bei der Modellierung mit Standard UML Tools leicht zu Missverstandnissen fuhren kann Siehe auch BearbeitenVorgehensmodell zur Softwareentwicklung Generative Programmierung Universal BinaryLiteratur BearbeitenDavid S Frankel Model Driven Architecture Applying MDA to Enterprise Computing John Wiley amp Sons 2003 ISBN 978 0 471 31920 7 Jim Arlow Ila Neustadt Enterprise Patterns and MDA Building Better Software with Archetype Patterns and UML Addison Wesley Publishing Company 2004 ISBN 978 0 321 11230 9 Stephen J Mellor Kendall Scott Axel Uhl MDA Distilled principles of model driven architecture Addison Wesley Professional 2004 ISBN 978 81 297 0529 7 Anneke Kleppe Jos Warmer Wim Bast MDA Explained The Model Driven Architecture Practice and Promise Addison Wesley Professional 2003 ISBN 978 0 321 19442 8 Klaus Zeppenfeld Regine Wolters Generative Software Entwicklung mit der Model Driven Architecture Spektrum Akademischer Verlag 2005 ISBN 978 3 8274 1555 4 Roland Petrasch Oliver Meimberg Model Driven Architecture Eine praxisorientierte Einfuhrung in die MDA dpunkt verlag 2006 ISBN 978 3 89864 343 6 Thomas Stahl Markus Volter Sven Efftinge Modellgetriebene Softwareentwicklung Techniken Engineering Management 2 Auflage d punkt Verlag 2007 ISBN 978 3 89864 448 8 Andreas Andresen Komponentenbasierte Softwareentwicklung mit MDA UML und XML 2 Auflage Hanser Fachbuch 2004 ISBN 978 3 446 22915 0 Volker Gruhn Daniel Pieper Carsten Rottgers MDA Effektives Software Engineering mit UML2 und Eclipse Springer 2006 ISBN 978 3 540 28744 5 Weblinks BearbeitenOMG Model Driven Architecture Einfuhrung zu MDA mit Begriffserklarungen Model Driven Architecture Eine Einfuhrung Berichte uber diverse Tools die den MDA Ansatz beherzigenEinzelnachweise Bearbeiten MDA Specifications Abgerufen am 12 Mai 2021 uml org UML 2 0 The Current Official Version Normdaten Sachbegriff GND 4832365 2 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Modellgetriebene Architektur amp oldid 228074659