MDA – Model Driven Architecture Vortrag im Rahmen des Seminar Modellgetriebene Softwareentwicklung Thomas Böhm
Inhalt MDA Grobkonzept & Ziele Begriffe Aufbau und Technik der MDA Ablauf der Softwareentwicklung mit MDA Zusammenfassung Ausblick Thomas Böhm Model Driven Architecture
MDA Grobkonzept & Ziele Automation durch Formalisierung Generatoren im Zusammenspiel mit formal eindeutigen Modellen automatische Generierung von Code Ziele: Handhabbarkeit von Komplexität durch Abstraktion gleichbleibende Softwarequalität Erhöhung der Wartbarkeit Erhöhung der Wiederverwendbarkeit Thomas Böhm Model Driven Architecture
Begriffe Modell Architektur SE ist model-driven vereinfachter Ausschnitt der Realität durch Abstraktion Konzentration auf wesentliche Eigenschaften Ausblenden irrelevanter Details Architektur beschreibt Teile eines Systems und ihr zusammenwirken SE ist model-driven weil Modelle die Richtung von Entwurf, Implementierung, Einführung, Wartung und Änderung durchgängig vorgeben Wie Schritt von Assembler zu prozeduralen Sprachen Thomas Böhm Model Driven Architecture
Aufbau und Technik der MDA I Model Driven Architecture gibt Modelle vor, deren Einsatz und deren Verhalten untereinander Unterteilung in drei Ebenen von Modellen Computation Independent Model (CIM) Platform Independent Model (PIM) Platform Specific Model (PSM) neu: Metamodelle und Transformationen nicht fix Thomas Böhm Model Driven Architecture
Aufbau und Technik der MDA II Umfeld & Anforderungen CIM Ablauflogik PIM Modell-Modell-Transformation CORBA Modell J2EE Modell XML Modell PSM Modell-Code-Transformation CORBA Code J2EE Code XML Code Implementierung Thomas Böhm Model Driven Architecture
Aufbau und Technik der MDA III Computation Independent Modell Konzentration auf Umfeld und Anforderung an das System keine Details über Aufbau oder Ablauf des Systems nutzt Vokabular der Anwender oft reine verbale Beschreibung Brücke zwischen Fachexperten der Anwender und Modellierer der Systemanforderungen Thomas Böhm Model Driven Architecture
Aufbau und Technik der MDA IV Platform Independent Model Konzentration auf Aufbau und Ablauf des Systems Ausblenden implementierungsspezifischer Details wie Betriebssystem, Programmiersprache, Datenverwaltungssystem ect. benutzt generelle Modellierungssprache wie UML MOF Thomas Böhm Model Driven Architecture
Aufbau und Technik der MDA V Platform Specific Model erweitert PIM um plattformspezifische Details und Konzepte enthält alle Informationen um ausführbaren Code zu erzeugen letzte Modellierungsebene vor der Implementierung Thomas Böhm Model Driven Architecture
Aufbau und Technik der MDA VI Transformation automatisierte Erzeugung eines Modells aus einem Modell höherer Ebene übersetzten eines Models in ein Modell auf der gleichen Ebene Thomas Böhm Model Driven Architecture
Ablauf der Softwareentwicklung mit MDA I Erstellung des CIM meist Übergabe von Anforderungen in Form einer Spezifikation Nutzung vorhandener Informationen wie Geschäftsprozessmodelle denkbar z.B. UML Use Case- oder Aktivitätsdiagramme Grundlage für Rücksprache mit dem Kunden und/oder Projektleiter Verstehen des Problems vordergründig Thomas Böhm Model Driven Architecture
Ablauf der Softwareentwicklung mit MDA II Erstellung des PIM Modellierung des Verhaltens des Systems durch Zustände und Ereignisse mögliche Verwendung von Zustandsdiagrammen der UML möglicher Einsatz von Klassendiagrammen benötigt eine formal eindeutige Designsprache (UML-Profil, MOF) Thomas Böhm Model Driven Architecture
Ablauf der Softwareentwicklung mit MDA III Mapping (heute noch nötig) zusätzliche Spezifikation für die Transformation vom PIM zum PSM abhängig von Zielplattform Möglichkeit Markierungen festzulegen, um weiteres Transformationsverhalten zu steuern Einflechtung von Templates möglich Festlegung von Regeln bei der Transformation Thomas Böhm Model Driven Architecture
Ablauf der Softwareentwicklung mit MDA IV Transformation Erzeugen des PSM aus PIM und Mappinginformationen PIM Transformation Marks marked PIM Mapping Plattform- information PSM Thomas Böhm Model Driven Architecture
Ablauf der Softwareentwicklung mit MDA V Ergebnis <<BusinessEntity>> Customer <<EJBEntityBean>> Customer <<UniqueId>> +id:String +lastName:String ... <<PrimaryKeyField>> +id:String +lastName:String ... J2EE Transformation <<Query>> +findbylastName() <<EJBFinderMethod>> +findbylastName() PIM PSM Thomas Böhm Model Driven Architecture
Ablauf der Softwareentwicklung mit MDA VI Weiterverwendung PSM erzeugter PSM etwa auf Niveau bisheriger Modelle z.B. UML Klassendiagramm für JAVA mit entspr. Attributen, Methoden, Variabeln Transformation in Quellcode Thomas Böhm Model Driven Architecture
Ablauf der Softwareentwicklung mit MDA VII Änderungen im Programm werden am PIM durchgeführt in allen darunter liegenden Transformationen übernommen dauerhafte Konsistenz zw. Modelle und Quellcode Änderung der Technik (Plattform, Programmiersprache...) fließen in Transformation bzw. Mapping ein Thomas Böhm Model Driven Architecture
Zusammenfassung Code ist übersichtlicher Fehler besser identifizierbar, behebbar verbesserte Wartbarkeit durch stabile Code-Qualität einfacheres Programmieren durch Standardisierung und Automatisierung Wiederverwendbarkeit Thomas Böhm Model Driven Architecture
Ausblick Weiterentwicklung von Tools zur Unterstützung der Modellierungsebenen um Modellierungsvorschriften auf Metaebene festzulegen und überprüfen zu lassen zur besseren Transformation (XMI) Weiterentwicklung der Modellierungssprachen Verbreitung der Idee und ihr Anwendung direkt ausführbare Modelle auf PIM-Ebene denkbar und wünschenswert bedarf Entwicklung von fähigen Compilern, Interpreter Thomas Böhm Model Driven Architecture
Quellen: http://www.omg.org/mda/ MDA Guide Version 1.0.1 Javamagazin 9.2003 Thomas Böhm Model Driven Architecture