Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05
Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy, Seite 2 September 05
Motivation Technologien ändern sich Architektur und Modelle müssen neu konzipiert werden Unnötige Kosten entstehen www.digicomp-academy, Seite 3 September 05
Überblick Model Driven Development (MDD) Model Driven Software Development (MDSD) Model Driven Engineering (MDE) Ziele Architektur und Modelle stabil halten Effizientere und effektivere Software-Entwicklung www.digicomp-academy, Seite 4 September 05
Überblick MDD-Ansatz Abstraktion (altbekannt!) www.digicomp-academy, Seite 5 September 05
Überblick Weitere Abstraktionsstufe auf dem Weg weg von Bits&Bytes Software-Entwicklung auf Basis grafischer und/oder textueller Modelle Bisher nur Architektur, Entwurf und Dokumentation Domänenspezifisch (Domain Specific Languages (DSL)) Statische und dynamische Aspekte werden modelliert Code wird aus Modellen generiert Transformationsregeln steuern Generierung www.digicomp-academy, Seite 6 September 05
Überblick Metamodell Definiert Elemente der Modelle Plattform Technische oder fachliche Infrastruktur Verschiedene Abstraktionsebenen Z.B. J2EE oder Betriebssystem UML und XML bilden häufig Basis Bezug zu Aspektorientierte Programmierung (AOP) Component Based Development (CBD) www.digicomp-academy, Seite 7 September 05
Überblick Besonders geeignet für Systemfamilien Produktlinien Aufwand für Erstellung der Infrastruktur Metamodell, Generator etc. Entwicklung stark im Fluss Begriffe/Definitionen (was ist ein Modell? etc.) Standards Transformationssprachen Etc. www.digicomp-academy, Seite 8 September 05
MDA Model Driven Architecture (MDA) MDD ala OMG Quelle: www.omg.org/mda/ www.digicomp-academy, Seite 9 September 05
MDA Bietet standardisierte Spezifikationen MOF, XMI etc. Plattformunabhängiges (Independent) Modell (PIM) Fachliches Modell Ohne plattformspezifische Details Plattformspezifische Modelle (PSM) PIM um plattformspezifische Details angereichert PSM wird aus PIM generiert (Modelltransformation) Code-Generierung aus PSM oder aus PIM www.digicomp-academy, Seite 10 September 05
MDA XML Metadata Interchange (XMI) Modellierungssprachenunabhängig Meta Object Facility (MOF) Modell-Stack Vier Modellebenen (M0 - M3) Meta-Metamodell (MOF) bis Code-Modell UML 2 verbreitet im Einsatz Profile für verschiedene Domänen www.digicomp-academy, Seite 11 September 05
MDA www.digicomp-academy, Seite 12 September 05
Kleines Beispiel Automatische Erzeugung der Persistenzschicht für die Plattform Hibernate Eingesetztes Werkzeug Open ArchitectureWare (OAW) www.digicomp-academy, Seite 13 September 05
Kleines Beispiel PIM Instanziertes PIM import de.bmiag.genfw.meta.classifier.class; public class Entity extends Class { } import de.bmiag.genfw.meta.classifier.attribute; public class Persistent extends Attribute { } www.digicomp-academy, Seite 14 September 05
Kleines Beispiel Transformationsregeln <<DEFINE javabean FOR Entity>> public class <<Name>> { <<EXPAND field FOREACH Attribute>> <<EXPAND setter FOREACH Attribute>> <<ENDDEFINE>> <<DEFINE field FOR Persistent>> private <<JavaType>> <<Name>>; <<ENDDEFINE>> www.digicomp-academy, Seite 15 September 05
Kleines Beispiel Transformationsregeln <<DEFINE setter FOR Persistent>> public void set<<name>>(<<javatype>> <<Name>>) { this.<<name>> = <<Name>>; } <<ENDDEFINE>> <<DEFINE mapping FOR Entity>> <hibernate-mapping package= <<FullPackageName>> > <class name= <<Name>> table= <<Name>> > <<ENDDEFINE>> www.digicomp-academy, Seite 16 September 05
Werkzeuge ArcStyler 5.0 (Interactive Objects) Rational Software Architect 2005 (IBM) Together 2005 (Borland) Optimal J 3.3 (Compuware) AndroMDA Open ArchitectureWare www.digicomp-academy, Seite 17 September 05
Literatur Stahl, Thomas und Völter, Markus (2005): Modellgetriebene Softwareentwicklung; dpunkt Vogel, Oliver et al. (2005): Software-Architektur Grundlagen, Konzepte und Praxis; Spektrum Evans, Eric (2003): Domain-Driven Design; Addison-Wesley www.digicomp-academy, Seite 18 September 05
Web-Adressen Object Management Group www.omg.org/mda/ Markus Völter www.voelter.de/services/mdsd.html Vogel, Oliver et al. www.software-architektur-buch.de www.digicomp-academy, Seite 19 September 05