37. Werkzeuge für die ModelDriven Architecture Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden http://st.inf.tu-dresden.de Version 09-0.1, 31.12.09 SEW, © Prof. Uwe Aßmann 1 37.1 Modellgetriebene Architektur (MDA) SEW, © Prof. Uwe Aßmann 2 Modellgrenzen am Beispiel INNOVATOR ► Innovator kann gleichzeitig für Analyse-, Entwurfs- und Implementierungsmodelle eingesetzt werden, sowie für Transformationen dazwischen Prof. U. Aßmann, SEW 3 MDA-Transformationsprozess Ziel: Aus plattformunabhängigem (independent) Metamodell PIM sind mittels Regeln, Techniken plattformspezifi sche (specifi c) Modelle PSM zu entwerfen, zu generieren, zu implementieren oder zu portieren, um neue objektorientierte Anwendungen für eine bestimmte (Komponenten-)Plattform zu erhalten. Ein weiteres Ziel von MDA ist die Integration solcher Technologien wie CORBA, J2EE, .Net und XML als Plattform. Unter einem Modell wird die Repräsentation einer Funktion, einer Struktur oder das Verhalten eines Systems verstanden, die modellgetrieben auf eine bestimmte Plattform transformiert werden sollen. Source Language defi ned in Source Model PIM Quelle: depends upon Transformation Specifi cation defi ned by Transformation depends upon Target Language defi ned in Target Model PSM Kleppe, A., Warmer, J., Bast, W.: MDA Explained - Practice and Promise of the Model Driven Architecture; Addison Wesley 2003 (Draft 25.10.02) Prof. U. Aßmann, SEW 4 PIM und PSM gemäß der MDA Für die unterschiedlichen Abstraktionsebenen PIM und PSM stehen verschiedene Beschreibungsmittel zur Verfügung: Fachkonzept auch CIM (Computation independent model) Plattformunabhängiges Modell (UML, OCL, XMI) PIM Plattformspezifi sches Modell Basiskomponenten (JB) Steuerungskomponenten Infrastrukturkomponenten (EJB, CCM, COM+, .NET) Anwendungskomponenten Ein PSM berücksichtigt die jeweilige Basistechnologie, auf der ein PIM zum Einsatz kommen kann (CORBA-Broker, .NET-Spezifi ka oder das Web-Service-Protokoll SOAP). Auch PSMs können mit der UML modelliert werden. In jedem Fall werden aus den PSMs die Codegerüste erzeugt, die die Komponenten-Entwickler dann weiter bearbeiten. PSM Programmierung (ooP) Quelle: Warum JANUS MDA und MDA JANUS ist; Whitepaper der Firma otris Software AG Dortmund; URL: www.otris.de Prof. U. Aßmann, SEW 5 Das MDA-Metamodell PIM Mapping Techniken <<basiert auf>> Mapping von PIM zu PIM 1..n <<beschrieben mit>> PIM UML <<dargestellt mit>> MOF <<dargestellt mit>> 1..n <<unabhängig von>> 1..n andere Sprachen Metamodel Mapping von PIM zu PSM Refactoring vom PSM zu PIM 1..n 1..n <<dargestellt mit>> <<beschrieben mit>> <<basiert auf>> 1..n PSM <<hängt ab von>> Infrastruktur 1..n PSM Mapping Techniken Mapping von PSM zu PSM PSM = plattformspezifi sches Modell PSI = plattformspezifi sche Implementation Transformationen bezeichnet man auch als Abbildungen (mappings). Mapping von PIM zu PIM schafft neue „Business Viewpoints“, von PSM zu PIM Abstraktionen aus plattformabhängigen Implementierungen und zwischen PSM weiteren Verfeinerungen oder Zielplattformen. Prof. U. Aßmann, SEW 6 Model Management ► In der MDA müssen Modelle verwaltet werden: ■ ► Modellalgebren . Lookup . Dif, comm, union, compose ■ Versionsmanagement ■ Konfgurationsmanagement Das führt auf Modellinfrastrukturen, Beispiel ModelBus ■ http://www.modelbus.org/modelbus/ ■ Verteiltes Repository für Modelle Prof. U. Aßmann, SEW 7 Model Managemant Funktionen Tools im ModelBus Tool UMLRepository UML to EJB Code Generation Service Parameter Multiplizität fi ndClass ClassName Class in [1..1] out [1..1] fi ndPackage PackageName Package in [1..1] out [1..1] transform sourceModel in [1..*] targetModel out [1..*] generateSingle Component EJBComponent in [1..1] generate Components EJBComponent in [1..*] Type primitiveType (String) specifi cModelType (Foundation::Core::Class) primitiveType (String) specifi cModelType (Model_Management::Package) specifi cModelType (Model_Management::Package) specifi cModelType (EJB:: EjbComponent) specifi cModelType (EJB:: EjbComponent) specifi cModelType (EJB:: EjbComponent) Quelle: Blanc, X., Gervais, M.-P., Sriplakich, P.: Model Bus: Towards the Interoperability of Modelling Tools; in Aßmann, U. u.a.: Model Driven Architecture, Springer Verlag 2005 Prof. U. Aßmann, SEW 8 Bewertungsaspekte von MDA-Tools Unterstützung der Sprachen UML 2.0, OCL, XMI, CWM (MOF 2.0-basiert) Import, Export und Validierung von Modellen auf Basis ihres Austauschs mit XMI 2.0 Mapping zu einer Programmiersprache wie z. B. JMI Model-to-Model Mapping bzw. Transformation (z. B. PIM zu PSM) Model-to-Code Transformation (PIM zu PSI) Validierung der Modelle sowohl für Im-/Export als auch für die Transformation Erweiterungsmöglichkeiten der UML-Profi le durch explizite Metamodellierung sowie Modellprüfung Forward-, Reverse- bzw. Roundtrip-Engineering auf der Code-Ebene in Protected Regions Unterstützung zur Generierung grafi scher Benutzungsschnittstellen Automatische Generierung der Dokumentation Modellierung von Testfällen und automatische Generierung der Testdaten Eigenständige MDA-Tools, wenn sie (Meta-)Modellierung, Transformation und CodeGenerierung unterstützen MDA-Suite, wenn sie CASE- bzw. UML-Umgebungen integrieren Quelle: Petrasch, R., Meimberg, O.: Model Driven Architecture - eine praxisorientierte Einführung in die MDA; dpunkt-verlag 2006 9 Prof. U. Aßmann, SEW Werkzeugfunktionen am Bsp. ArcStyler Object Modeler erfasst Anforderungen unabhängig von Plattform (funktionale, essentielle Anforderungen) Basis CRC-Cards Technologie Pattern Refi nement Assistent überführt Fachmodell interaktiv in PIM UML-Modell (Basis MagicDraw oder Rational Rose) mit Annotation der essentiellen Design-Entscheidungen Verfeinerung des Fachmodells top down in untergeordnete UML-Diagramme und Quellcodegenerierung ebenfalls mit UML-Tool (MagicDraw) Codevervollständigung und Optimierung für jeweiligen Applikationsserver mit Cartriges und Tool ArcStyler von Interactive Objects Software GmbH Freiburg Komponentengenerierung für Oberfl äche sowie weitere Projekt- und Konfi gurations- dateien mit JBuilder. Schnittstelle zu IDE ist Standard „Ant Build Process“ Datenbankgenerierung über Skripte zum Erstellen der DB-Schemas möglich. Das Werkzeug ArcStyler ist im Zusammenspiel mit MagicDraw (oder Rational Rose...) ein leistungsfähiges Werkzeugsystem(MDA-Suite), mit dem sich zum Beispiel J2EEApplikationen gemäß den Konzepten der MDA entwickeln lassen. Quelle: Versteegen, G.: Wege aus der Plattformabhängigkeit - Hoffnungsträger Model Driven Architecture; Computerwoche 29(2002) Nr. 5 vom 1. Febr. 2002 Prof. U. Aßmann, SEW 10 Vorgehen und Unterstützung beim ArcStyler http://www.interactive-objects.com/products/arcstyler/supportdocumentation.html Prof. U. Aßmann, SEW 11 Cartridges und generierte Artifakte Quelle: Butze, D.: Entwicklung eines Praktikums für die werkzeugestützte Softwareentwicklung nach der Model-Driven-Architecture; Großer Beleg an der Fakultät Informatik der TU Dresden 2004 Prof. U. Aßmann, SEW 12 Kurzbeschreibung weiterer MDA-Tools Name Typ Austauschform. Zielsprachen IDE integr. IBM Rational Software Architect Suite XMI, Rose Java, C++ Eclipse Compuware OptimalJ Suite XMI, JDBC, XML Schema, versch. IDL Java, SQL, XML VisualStudio, JBuilder, Eclipse AndroMDA Framework XMI Java, SQL, anpassbar Eclipse Open Architecture Ware Framework XMI beliebig durch Anpassung Eclipse BITplan Framework XMI Java, Obj. Pascal, C, C++, C#, Cobol, IDL, SQL, Vis. Basic Eclipse, smart Ultra Edit, VIM Generator Quelle: Petrasch, R., Meimberg, O.: Model Driven Architecture - eine praxisorientierte Einführung in die MDA; dpunkt-verlag 2006 Prof. U. Aßmann, SEW 13 Prof. U. Aßmann, SEW 14 End