SlideShare ist ein Scribd-Unternehmen logo
1 von 76
Downloaden Sie, um offline zu lesen
iks Gesellschaft für Informations- und
                   Kommunikationssysteme mbH


                           Sponsor der




                              13.03.2008

Seite 2 / 77
iks - Daten und Fakten

        Gründung           1989

        Sitz               Hilden

        Geschäftsleitung   Dipl.-Inf. Monika Stoll
                           Dipl.-Ing. Thomas Kondring
                           Hartwig Tödter

        Team               ca. 85 Mitarbeiter/innen

        Tätigkeitsgebiet   Individuelle IT-Konzepte und
                           Softwarelösungen

Seite 3 / 77
Unsere Leistungen (Schwerpunkte)

       IT-Beratung

       Projektleitung

       Projektdurchführung / Softwareentwicklung
          – z.B. als Outsourcing-Partner
          – oder als Ergänzung der Entwickler-Teams unserer Kunden
            (Know-how-Transfer, Abfangen von Projektspitzen)


       Schulungen / Coaching




Seite 4 / 77
Technisches Umfeld

       Schwerpunkt: Java-Technologien
          – Java SE, Java EE, server- und clientseitige Anwendungsentwicklung
          – Frameworks
          – ...


       .NET / C#

       Business Intelligence

       AS/400
          – COBOL, RPG


       Visual Basic, Delphi, C++ etc.

Seite 5 / 77
Unsere Kunden

International tätige Konzerne sowie große und mittlere
Unternehmen aus unterschiedlichen Branchen:

      Industrie
      Versicherungen / Finanzdienstleistungen
      Handel
      Telekommunikation
      Transport / Verkehr / Logistik
      Verbände / Vereine / Interessenvertretungen
      Dienstleistungsunternehmen
      Gesundheitswesen

Seite 6 / 77
Unsere Mitarbeiter

       ca. 85 Mitarbeiterinnen und Mitarbeiter

       Ausbildung u.a.
          –    Informatiker
          –    Wirtschaftsinformatiker
          –    Mathematiker
          –    Ingenieure


       Einsatz in Kundenprojekten u.a. als
          –    Projektleiter, Analysten
          –    IT-Berater, Softwarearchitekten, Anwendungsentwickler
          –    Trainer
          –    ...


Seite 7 / 77
iks im Internet

           Weitere Informationen über iks finden Sie auf unserer Website


                             www.iks-gmbh.com

                         Und nun viel Spaß beim Vortrag:


               Modellgetriebene Softwareentwicklung:
                             ein Rundflug



Seite 8 / 77
Modellgetriebene Softwareentwicklung:

                            ein Rundflug




                                 13.3.2008

                                   Autor:
                         Christoph Schmidt-Casdorff


Seite 9 / 77
Seite 10 / 77
Inhaltsverzeichnis

1. MDSD – Motivation und Einführung
          1.1 Software Dilemma
          1.2 Grundkonzepte
          1.3 MDSD Keywords
          1.4 MDA


2. Werkzeuglandschaft
          2.1 Language Workbench
          2.2 Metamodelle und Modellierung
          2.3 Generierung und Transformation
          2.4 Übersicht der Werkzeuglandschaft




Seite 11 / 77
Inhaltsverzeichnis

3. Entwicklungsprozess
          3.1 DSL Infrastruktur
          3.2 architekturzentrierte MDSD
          3.3 domänen zentrierte MDSD


4. Erfahrungsbericht
          4.1 Vorstellung
          4.2 DSLs
          4.3 Aufwandsbetrachtungen


5. Appendix A
          5.1 Standards und Werkzeuge




Seite 12 / 77
Technologien im OO-Umfeld

          Struts                  Wicket
                       Web 2.0
                                     .Net
   Portlets
                                 JMS

                             Multi Threading
                Ajax

Seite 13 / 77
Aktuelles Softwaredilemma

       Jede dieser Architekturen löst ein technologisches Problem,
       schafft aber folgende neue Probleme:
          – Komplexität der Softwareentwicklung erhöht sich
                • komplexere Anforderungen an Entwickler
          – Komplexität der Software erhöht sich
                • erhöhter Wartungsaufwand
          – Bindung an Technologie verringert Flexibilität
                • eine einmal gewählte Technologie ist nur schwer zu wechseln,
                • aber Technologien sind im Fluss
          – Technologie und Geschäftslogik sind stark gekoppelt


       ... und produziert damit Kosten, Kosten, . . .


Seite 14 / 77
Grundgedanke der Generierung

      Angenommen . . .
        – die domänene Logik könnte unabhängig von der einzusetzenden
          Technologie erstellt werden (==Modell)

        – spezielle Software (==Generatoren) erzeugt aus dem Modell der
          domänenen Logik den Quellcode (==Generat) bzgl. der gewünschten
          Technologie/Programmiersprache/....

        – das Generat trifft auf eine (der domänenen Logik angepasste) Plattform
          (==Zielplattform) aus Frameworks/Komponenten/... innerhalb/mittels derer
          es ausgeführt wird


       Grundgedanke von MDSD (Model Driven Software Development)



Seite 15 / 77
Grundgedanke ‚Generierung‘ - Skizze


  Generatoren               Framework/Komponenten
            Individual Code




                  wird generiert             wird ausgeführt
Modell                             Generat                     Zielplattform




  Seite 16 / 77
Motivation für MDSD

       Plattformunabhängigkeit
          – Generatoren für jede Zielplattform

       Effizienzsteigerung durch Automation
          – Softwareerstellung durch Generierung

       Qualitätsverbesserung
          – durch Generierung
                • Qualität des generierten Codes wird über Generator gesteuert
                • Architektur- und Designanforderungen werden systematisch eingehalten
          – durch Wiederverwendung der Domain Architektur
                • Qualität steigt mit Anzahl der Einsätze einer Domain Architektur




Seite 17 / 77
MDSD - Grundgedanke
  ist allgemein gültig
  ist unabhängig von der eingesetzten Systemumgebung
     –     Betriebssystem
     –     Programmiersprache
     –     Architektur
     –     Modellierungssprache

  allerdings findet sich im OO-/Java-Umfeld eine wachsende
  Infrastruktur
     –     Modellierungssprachen (UML, EMF,...)
     –     Transformationssprachen (QVT,...)
     –     Transformationswerkzeuge (Eclipse)
     –     .....



Seite 18 / 77
Metapher für Generator/Transformator

       Compiler dient als Metapher für technische Funktionsweise
       von Generatoren/Transformatoren
          – Generator -> Compiler
          – Modell -> Quellcode
          – Generat -> Maschinencode


       Damit ein Generator ein Modell interpretieren kann, muss
       dieses
          – in einer Sprache formuliert sein, die der Generator versteht
          – formal sein (d.h. einer vorgegebenen Syntax entsprechen)




Seite 19 / 77
Domäne-spezifische Sprache

       Sprache zur Formulierung von Modellen
          – DSL (domain specific language)

       … besitzt eine formale Spezifikation in Form eines Metamodells
          – beschreibt die Sprachelemente
          – abstrakte Syntax

       … kann in unterschiedlichen Formen dargestellt/realisiert werden
          – UML, EMF, textuell
          – konkrete Syntax




Seite 20 / 77
Problemräume / Domäne

       können durch die Architektur/Technologie motiviert sein
          – architektur-zentriert
          – Abbildung in die gewählte Technologie
                • Anbindung an Datenbanken (JDBC, Hibernate, …)
                • Middleware EJB, Spring
          – ist der zur Zeit verbreitetere Einsatz von MDSD


       können domänen motiviert sein
          – domänen-zentriert
          – wird durch die konkrete domänenkeit vorgegeben




Seite 21 / 77
DSL

       je abgegrenzter der Problemraum und

       je spezieller die DSL dieses Problemraums ist,

       desto größer ist der Mehrwert durch MDSD

► Finde abgegrenzten Problemraum und entsprechende DSL

► In Projekten existieren u.U. mehrere DSLs nebeneinander




Seite 22 / 77
Generatoren/Transformatoren
        – interpretieren das Modell
        – enthalten möglichst viel Wissen um den Problemraum
        – setzen ein Regelwerk zur Generierung/Transformation um
        – setzen allgemeine Muster für Architektur und Code um


      Transformatoren beschreiben model-to-model-Transformationen
      Generatoren beschreiben Generierung von Artefakten
        –       Quellcode, XML-Dateien, HTML-Seiten, ....
        –       Model-to-text-Transformationen

      Generatoren/Transformatoren können in beliebig vielen Schritten
      gekoppelt sein



Seite 23 / 77
Zielplattform

       ist Laufzeitumgebung zur Ausführung der Generate

       je spezifischer die Zielplattform dem Generat entgegenkommt,
       desto einfacher wird der Generator

       Beispiele für Zielplattformen
          –     J2EE Container
          –     Message Oriented Middleware
          –     Datenbank
          –     eigenentwickelte Frameworks




Seite 24 / 77
Software Systemfamilie

      Domänen-Architektur (Domain Architecture)
        – DSL/Metamodell, Modelltransformationen, Zielplattform
        – beschreibt die Umgebung vom Modell zum Softwareprodukt

      Software-Systemfamilie
        – Programmgruppe mit gemeinsamen Eigenschaften
        – hier: gemeinsame Domain Architecture




Seite 25 / 77
MDA - model driven architecture -

       ist der Beitrag der OMG (Object Management Group) zu MDSD
          – ist eine Ausprägung der MDSD
       definiert 3 unterschiedliche Abstraktionsebenen
          –     CIM – computer independent model
          –     PIM – platform independent model
          –     PSM – platform specific model
          –     … und einen Prozess, der die 3 Modelle schrittweise ineinander überführt
          –     diese 3 Modellabstraktionen haben sich in der Realität nicht bewährt
                 • Abgrenzung untereinander ist nur schwer möglich (relative Bewertungen)
                 • in der Praxis treten mehr als 3 Modellausprägungen auf

       definiert Standards im MDSD-Umfeld
          – (E)MOF, UML, OCL, QVT, XMI
          – CWM – common warehouse metamodel (DSL für dataware housing)
                                                                                            ◄
Seite 26 / 77
Language Workbench

       Werkzeuglandschaft, um DSL-zentrierte Software zu entwickeln
          – [Martin Fowler 2003]


       dies umfasst Werkzeuge,
          – um DSL zu definieren
          – um Editor zu definieren
                • eigentliche Modellierung
                • dynamische Modellvalidierungen
          – um Generatoren zu entwickeln
                • Generierung
                • Modellvalidierung
          – um model-to-model-Transformationen zu entwickeln
          – Workflow, um die unterschiedlichen Schritte zusammenzuhalten


Seite 27 / 77
Modellierungssprachen und Metamodelle

       … sind beispielsweise
          – UML
          – ERM (Entity Relationship Model)


       … werden durch ein Metamodell beschrieben
          – abstrakte Syntax der Modellierungssprache
          – statische Semantik
          – dynamische Constraints




Seite 28 / 77
Beispiele für Metamodelle
       XSD
          –     XML-Schema
       BNF
          –     Backus-Naur-Form
          –     textuelle Notation für Sprachen
                  •   Darstellung kontextfreier Grammatiken
       (E)MOF
          –     (Extended) Meta Object Facility
          –     Metamodellierungssprache der UML
          –     mittels MOF ist UML, OCL, … beschrieben
       UML Profile
          –     Möglichkeit innerhalb von UML eine Domänen zu beschreiben
       EMF / ECORE
          –     ECORE ist semantisch (im Wesentlichen) zur EMOF äquivalente Metamodell
                im Eclipse-Umfeld
          –     EMF (Eclipse Modelling Framework) enthält Werkzeuge zur Metamodellierung
          –     Basis vieler Werkzeuge im Eclipse-Umfeld
Seite 29 / 77
Modellierungssprachen und Metamodelle

       eine DSL ist eine spezifische Modellierungssprache
          – bedarf einer Meta-(Modellierungs-)Sprache
                • um eigenes Metamodell zu entwerfen
          – ist auf einen bestimmten Problembereich zugeschnitten




Seite 30 / 77
Modellierung
       Modellierung setzt einen geeigneten Editor voraus
          – möglichst graphisch
          – bei Texteditoren syntax highlighting, code completion, …

       UML Werkzeuge sind Editoren zur Modellierung
          – Für Modelle welche auf UML basieren
          – Austauschformat zwischen OMG-UML und Eclipse
          – DSL werden durch UML Profile beschrieben

       unterstützt Syntax und Semantik des Metamodells
          – Modellvalidierungen
                • statische Semantik (wer darf welchen Pfeil auf wen ziehen)
                • dynamische Constraints
                     – vgl. OCL et al


Seite 31 / 77
Generierung / Transformation

       setzt auf einem Metamodell auf
          – i.d.R. werden Objektmodelle über den Metamodellen genutzt
          – Generierungswerkzeug kennt bestimmte MetaModelle
                • Nur deren Modelle können interpetiert werden


       besteht i.d.R. aus mehreren Aufgaben
          – Validierungen
          – Modell-Anreicherungen (model-to-model-Transformationen)
          – Codegenerierungen (model-to-text-Transformationen)
                • erzeugen die Generierungsartefakte
                • Code, Deskriptoren, XML-Dateien
          – alle Aufgaben können ggf. mehrfach ausgeführt oder kombiniert werden


Seite 32 / 77
Generierungs- / Transformationstechniken
       Template Engines zur model-to-text-Transformation
          – dynamisch typisierte Engines
                • Velocity, freemaker, JSTL (jexl), …
          – statisch typisierte wie Xpand (openArchitectureWare ►Appendix A)

       spezielle Transformationssprachen
          – QVT, MOFScript

       als Komponente entwickelte M2T/M2M-Transformationen
       heißen Cartridge
          – wiederverwendbar
          – Generator setzt sich i.d.R. aus mehreren Cartridges zusammen
          – Bestandteil einer Generierungsplattform, die sich auf eine spezielle
            DSL stützt
                • siehe AndroMDA, Fornax, … (►Appendix A)

Seite 33 / 77
Integration von Individual Code

       Individual Code ist nicht generierter/modellierter Code,
          – der in die Zielplattform integriert werden muss
          – der unabhängig von Generierung/Modellierung ist
       während Generierung/Transformation werden Regeln ausgeführt
          – welche Individual Code in Generat einbinden
          – i.d.R. über Benennungsregel
       beispielweise
          – Super-/Subclassbeziehung
          – Interface / Implementierung




Seite 34 / 77
Integration von Individual Code

       Szenario : domänenes Modell gerät an die Grenzen der
       Modellierung
          – domänene Logik kann nicht mit Mitteln der DSL beschrieben werden
          – domänene Logik soll durch Individual Code umgesetzt werden
          – Model öffnet sich an definierten Stellen und mit definierter Semantik


       extension point Verfahren
          –     vgl. Eclipse
          –     Modell öffnet extension points für Individual Code
          –     Generator bindet Individual Code an extension points
          –     Verfahren eignet sich sehr gut für Integration von Individual Code auf
                Modellebene




Seite 35 / 77
MDSD Ausführungsumgebung

       ist ein alternativer Ansatz zur Generierung

       Modell wird in einer Ausführungsumgebung ausgeführt
          – es findet keine explizite Generierung statt
          – Modell und Ausführungsplattform sind aufeinander zugeschnitten
          – siehe OpenMDX ( ►Appendix A)




Seite 36 / 77
MDSD und Eclipse

       Eclipse Modelling Project
          – Subprojekt von Eclipse
          – umfasst Werkzeuge für alle Phasen der MDSD


       Metasprachen und Editoren für Metamodelle ( ►Appendix A)
          – erlaubt die Definition neuer Metamodelle auf Basis von ECORE
                • EMF liefert Framework zur Editierung
                • UML nach ECORE Umwandlung (oAW – uml2ecore )
                • Frameworks zur BNF basierten Definition von DSL
                • Xtext (integriert in openArchitectureWare)




Seite 37 / 77
MDSD und Eclipse - DSL Editoren

       Syntax- und kontextbezogene Editoren für textuelle DSLs
          – Xtext


       GMF – graphische Editoren auf Basis eines ECORE Modells
          – wird von Borland aktiv und maßgeblich unterstützt
          – Validierungs-Frameworks lassen sich integrieren




Seite 38 / 77
GMF Beispiel




Seite 39 / 77
Werkzeuglandschaft

       Language Workbench
          – EMF + GMF + openArchitectureWare (►Appendix A)
          – EMF + GMF + AndroMDA 4 (►Appendix A)


       Generierungswerkzeuge
          – bieten vorgefertigte DSLs und Generatoren/Transformatoren
          – AndoMDA 3 (►Appendix A)
          – Fornax (►Appendix A)
                • UML, Sculptor


       MDSD Laufzeitumgebungen
          – openMDX
          – bietet Modellierung und Laufzeitumgebung zur Ausführung der Modelle   ◄
          – ►Appendix A

Seite 40 / 77
Entwicklungsprozesse

Es existieren zwei Entwicklungsprozesse :

       DSL Infrastruktur
          – Aufbau der DSL Infrastruktur


       Primärer Entwicklungsprozess
          – bisheriger Entwicklungsprozess unter Einsatz der MDSD Infrastruktur


       sollten beide unabhängig voneinander gelebt werden

       sind natürlich inhaltlich stark gekoppelt




Seite 41 / 77
DSL Infrastruktur

         ist ein eigener Entwicklungsprozess
            – sollte auch so gelebt werden
            – besitzt starke Bindung / Kopplung an primären Entwicklungsprozess

         Aufgaben in Domäne / Modellierung
            – DSL-Analyse
            – Definition und Aufbau einer Modellierungsumgebung
            – Festlegung der Zielplattform
            – Definition der Architektur- und Designmuster für Generatoren

         Aufgaben in Generatorenentwicklung
            – Generatorenentwicklung, Frameworkentwicklung



Seite 42 / 77
DSL Infrastruktur

         erfordert neue Rollen
           – DSL Analyse
                • Konsistenz der DSL
                • Kommunikation mit Fachseite und Entwicklung

           – Generatorentwicklung
                • neue komplexes Umfeld
                • große Anforderungen an Abstraktionsvermögen

         erfordert neue Kompetenzen an bekannte Rollen
           – Architektur
           – Testmanagement und Testkonzeptionen




Seite 43 / 77
Architekturzentrierte MDSD


       Modelle werden um Technologieaspekte angereichert
          – JEE, Hibernate, Spring, ….


       MDSD ist auf die Realisierungsphase beschränkt
          – Artefakte sind
                • Modell
                • zusätzlicher selbst geschriebener Code


       Generierung beschleunigt die Realisierungsphase




Seite 44 / 77
Einsatz von domänen-zentrierter MDSD

         MDSD trifft die Phasen Analyse, Realisierung

         Artefakte sind
            – fachliches Modell (Analyse)
            – zusätzlicher Individual Code (Realisierung)




Seite 45 / 77
Einsatz von domänen-zentrierter MDSD

         Generierung beschleunigt die Realisierungsphase

         Designphase degeneriert

         Formale Modellierung
            – verlangsamt die Analyse (zu Beginn)
            – erhöht die Anforderungen an Analytiker
                • keine Realisierung als Puffer
                • Modelle sind ausführbarer


         Bedarf ständiger Betreuung durch DSL Infrastruktur
            – DSLs wachsen mit dem Einsatz


Seite 46 / 77
Einsatz von domänen-zentrierter MDSD
       Modell ist kein Artefakt der Realisierung
          – Modell und Realisierung haben unterschiedliche Lebenszyklen

       Folgende Fragen sind projektspezifisch zu beantworten:
          ? Wer generiert? – Hoheit in Realisierung oder Analyse
          ? Lebenszyklus der Generate
                ? Ist Generierung Teil des Buildprozesses?
                ? Werden Generate versioniert?
       Best Practice
          – Pair Modelling
                • Zumindest bis sich Analyse an Auswirkungen ihres „Tuns“ gewöhnt hat
          – Konzept zur Integration Individual Codes
                • wird nicht nur durch Generator, sondern durch Modell bestimmt




Seite 47 / 77
Entwicklungsprozesse

       Zwei getrennte Entwicklungsprozesse
          – für MDSD-Infrastruktur und primärer (bisheriger) Entwicklungsprozess


       Primärer Entwicklungsprozess
          – beschäftigt sind Modellen als neuen Artefakten
          – Benötigt neue Rollen und Phasen
          – Standardisierte Prozesse wie RUP und XP sind um MDSD Aspekte erweitert


       Einsatz von domänen-zentrierter MDSD
          – ist umfassender
          – hat größeren Einfluß auf Organisatien


                                                                                   ◄
Seite 48 / 77
Erfahrungsbericht

      MDSD wurde bei einem großen Finanzdienstleister umgesetzt
        – Laufzeit des Projekts > 5 Jahre

      Änderungsmanagement und Informationsaustausch
      mit Leistungsträgern
        – Größtenteils dateibasierte Satzverarbeitung

        – Größenordnung pro Monat:
                • Auflieferung von ca. 0,5 – 1 Mio. Datensätze
                • Versand von bis zu mehreren Mio. Datensätzen an die Leistungsträger




Seite 49 / 77
DSLs

         zentrales Businessmodell
            – O/R-Mapping

         WebGUI

         Kundenanschreiben

         Export / Import zu Dateischnittstellen

         Archivierung




Seite 50 / 77
DSLs - Technologie


MetaModel                 UML


DSL                       UML Profile


Generierung (bisher)      Proprietäre Modellzugriffsschicht


Generierung (zukünftig)   ECORE basierte Modellzugriff




Seite 51 / 77
Einsatz von MDSD

      Einsatz von MDSD > 40% (bezogen auf Modelle)

      Mengengerüste
        – 10 DSLs
        – derzeit ca. 100.000 Modellelemente, davon < 2% (ca. 1900)
          programmatisch ergänzt

      Kleines Entwicklungs- und Modellierungsteam
      (< 10 Personen)
        – davon 3 externe Kräfte




Seite 52 / 77
Aufwände bzgl. MDSD
                                                                                     Ablösung der
PT aggregiert                                                                        proprietären
                                                                                  Generatorumgebung

                           Aufwand verringert
                              sich deutlich

         Stabilisierung
        der Infrastruktur



                                                Aufsetzen und Pflege der
                                                MDSD-Infrastruktur



              0
                    2003        2004     2005         2006         2007    2008      Jahr
      Projektbeginn                       Wirkbetriebseinführung Phase 1

    Seite 53 / 77
Aufwände bzgl. MDSD

   PT aggregiert                                                                   Wiederverwendung von
                               Pflege der MDSD                                    Modellen und Entwicklung
                                 Infrastruktur
Modellierungsaufwand erreicht
 den für MDSD-Infrastruktur



Vorlauf zur Erzeugung
  der Infrastruktur



                                                                      Modellierung


                        2003       2004      2005           2006       2007        2008     Jahr
         Projektbeginn                           Wirkbetriebseinführung Phase 1
        Seite 54 / 77
Aktueller Stand im Projekt

     Stabilität / Verlässlichkeit
       – DSL ist seit über zwei Jahr stabil
       – Generatoren sind stabil und zuverlässig
       – Framework ist bis auf kleinere Änderungen stabil
       – Entwicklungsprozess hat sich stabilisiert und bewährt




 Seite 55 / 77
Risiken

     Bindung der Generatoren an proprietäres Tool

     Komplexität der DSL muss begrenzt bleiben
        – Gefahr unklarer Modellierungsregeln
        – Gefahr impliziter Abhängigkeiten zwischen Modellierungselementen




Seite 56 / 77
Erwartung an MDSD

+ Erfolgreiches Management der Mengen an Detailinformationen
+ Robuste Software durch Framework-Einsatz
+ Kurze Reaktionszeiten bei Änderungen der Anforderungen (change
  requests, bugs)
         + Wartung verringert sich um mehr als 50 %

•      Zu erwartende Aufwandsvorteile in zukünftigen Phasen
         •      durch Einsatz der bestehenden Domain Architecture
         •      Lernkurve bewältigt
         •      Erweiterung der Software-Systemfamilie




    Seite 57 / 77
Resümee

In unserem Fall und bei unserer Ausgangssituation hat sich der
  Einsatz von Modellgetriebener Softwareentwicklung gelohnt.




  Seite 58 / 77
Literatur

       Modellgetriebene Softwareentwicklung. Techniken, Engineering,
       Management
          – Stahl, Völter,Efftinge
          – DPunkt Verlag (2007) - ISBN-10: 3898644480


       Modellgetriebene Softwareentwicklung. MDA und MDSD in der
       Praxis
          – Pietrek et al
          – Entwicklerpress (2007) - ISBN-10: 3939084115


       Model Driven Architecture. Applying MDA to Enterprise Computing
          – David S. Frankel
          – OMG Press (2003) - ISBN-10: 0471319201


Seite 59 / 77
www.iks-gmbh.com




Seite 60 / 77
Appendix A: Werkzeugübersicht




Seite 61 / 77
Standards OMG / Eclipse
       OMG
          –     MOF – Modellierungssprache für Metamodelle
          –     UML – Modellierung
          –     OCL – dynamische Constraints
          –     QVT – model-to-model Transformationen


       Eclipse – de facto Standards
          – ECORE - Metamodellierung
                 • semantisch gleichwertig zu (E)MOF
                 • beide werden sich annähern
          – abgeleitet Standards wie
                 • UML2 – UML für Eclipse
                 • QVT für Eclipse
                 • OCL für Eclipse

Seite 62 / 77
Tools im Eclipse-Umfeld - Metamodellierung

         Alle MDSD-Entwicklungen unter Subprojekt
         Eclipse Modelling Project


         Metasprachen und Editoren für Metamodelle
            – erlaubt die Definition neuer Metamodelle auf Basis von ECORE
                • EMF liefert Framework zur Editierung
                • UML nach ECORE Umwandlung (oAW – uml2ecore )
            – Frameworks zur BNF basierten Definition von DSL
                • Xtext (integriert in openArchitectureWare)




Seite 63 / 77
Tools im Eclipse-Umfeld - DSL Editoren

         Syntax- und kontextbezogene Editoren für textuelle DSLs
            – Xtext


         GMF – graphische Editoren auf Basis eines ECORE Modells
            – wird von Borland aktiv und maßgeblich getrieben
            – Validierungs-Frameworks lassen sich integrieren




Seite 64 / 77
GMF Beispiel




Seite 65 / 77
Tools im Eclipse-Umfeld - Generierung

       Metamodell-Unterstützungen
          – Ecore, UML2, ….
       Generatoren (model-to-text-Transformationen)
          – Template Engines
                • EMF – JET
                • oAW – Xpand2
          – MOFScript – model to text Transformation
       Validierungen
                • OCL
                • Check (oAW)

       model-to-model Transformationen
          – QVT Implementierungen
                • SmartQVT (Teil des Standards)
                • ATL (QVT – Dialekt)
Seite 66 / 77
openArchitectureWare (oAW)

       http://www.eclipse.org/gmt/oaw/
       Software-Generator Framework
       bietet
          – Integration vieler Metamodelle
                 • EMF, UML, RSA, Xtext (BNF-like)
          –     Template Sprachen (Xpand2)
          –     Model-zu-Model-Transformationen (Xtend)
          –     bietet Validierungen (Check) inkl. Integration in GMF
          –     Konzepte zur Integration eigenen Codes in Generatorartefakte (recipe)

       interne Konzepte entsprechen nicht immer Standards
       basiert auf dem b+m Generator Framework



Seite 67 / 77
AndroMDA
       Links
          – http://galaxy.andromda.org/docs-a4
          – http://galaxy.andromda.org/docs/getting-started/java/index.html
          – http://galaxy.andromda.org/docs-3.2/contrib/birds-eye-view.html
       Software-Generator Framework
          – aktuelles Release 3.2 (A3)
          – Neuentwicklung in Version 4 (Previews verfügbar)
       AndroMDA 3 setzt Schwerpunkte auf
          – Einsatz vom UML als Metamodell (UML Profiles)
                • kann auf Basis MOF erweitert werden
                • eigene Objektmodell (metafacade) basierend auf Netbean MDR
          – Generierung einer JEE-Anwendung
          – Einsatz von vorgefertigten Cartridges
                • Hibernate, EJB, Spring, ….

Seite 68 / 77
AndroMDA




                Quelle: http://galaxy.andromda.org/
Seite 69 / 77
AndroMDA

       AndroMDA 4 bietet
          – die Definition eigener Metamodelle
                • EMF basierte Metamodelle
                • UML 2 Ecore Converter

          – model-to-model-Transformationen via ATL
          – model-to-text-Transformationen mittels MOFScript
          – … beides Teilmengen von OCL
          – eigenen Workflow, konfigurierbar in Groovy
          – bessere Integration in Eclipse
          – maven basierter Entwicklungsprozess
          – nicht abwärtskompatibel zu A3



Seite 70 / 77
openMDX

       http://www.openmdx.org/index.html
       stellt Laufzeitumgebung zur Ausführung von Modellen bereit
          – kein Generator-Ansatz
       implementiert den MDA Standard gemäß OMG
          – Modellierung erfolgt in MOF
          – basiert auf JMI-Binding
       generische Plattform für verteilte Objekte
          – abstrahiert von Standards wie JEE, CORBA, etc.
          – Plattform-unabhängige Logik
       Code wird in plug-ins bereitgestellt
          – es existieren generische plug-ins für Peristence, Verteilung etc…


Seite 71 / 77
openMDX Entwicklungsprozess




                              Quelle: http://www.openmdx.org/index.html


Seite 72 / 77
openMDX                             architecture




   Seite 73 / 77
                   Quelle: http://www.openmdx.org/index.html
Fornax

       http://fornax-platform.org/cp/display/fornax/Fornax

       Fornax bietet DSL
          – inklusive Metamodelle, Editoren, Cartridges
          – basiert auf EMF / oAW Plattform
          – maven basierter Entwicklungsprozess


       Fornax - UML2
          – unterschiedliche Cartridge für EJB, Spring, Hibernate, Grails
          – Metamodelle basieren auf (Eclipse-) UML2




Seite 74 / 77
Fornax - Sculptor

       http://www.theserverside.com/tt/articles/content/ProductivityWithSc
       ulptor/article.html

       ist ein Plattform zur Codegenerierung

       besitzt eine textuelle DSL auf Basis oAW/XText

       basiert auf Konzepten des Domain Driven Designs

       liefert Cartridges für gängige Frameworks
          – Spring, Hibernate und Java EE




Seite 75 / 77
UML Tools
       IBM Rational Software Architect, Borland Together
       Architect, Magic Draw, Enterprise Architect usw.

          – bieten i.d.R. Export in EMF-Umfeld
                • genauer Export in EMF UML2 2.x
                • somit steht das EMF-Umfeld für Generatoren zur Verfügung
          – bieten teilweise eigene Schnittstelle auf Modell an
          – haben teilweise UML2 2.x als internes Metamodell
                • Together Architect 2008
          – bieten teilweise integriertes OCL
                • Editor
                • Ausführungsumgebung
                • dynamische Constraints in UML-Profilen
          – graphische Editoren basieren teilweise auf GMF
          – bieten teilweise Unterstützung für QVT

       UML- und EMF-Welt wachsen zusammen

Seite 76 / 77
www.iks-gmbh.com




Seite 77 / 77

Weitere ähnliche Inhalte

Andere mochten auch

Presentación bloq cierre fatla
Presentación bloq cierre fatlaPresentación bloq cierre fatla
Presentación bloq cierre fatlaRosaMarquezG
 
De la idea al negocio
De la idea al negocioDe la idea al negocio
De la idea al negocioClamilopez
 
Ultraschallsensoren von ifm 2016
Ultraschallsensoren von ifm 2016Ultraschallsensoren von ifm 2016
Ultraschallsensoren von ifm 2016ifm electronic gmbh
 
Urlaubsempfehlungen
UrlaubsempfehlungenUrlaubsempfehlungen
UrlaubsempfehlungenAnja Angeli
 
Países más seguros y Países violentos
 Países más seguros y Países violentos Países más seguros y Países violentos
Países más seguros y Países violentosElvin Padilla
 
Arquitectura de un computador cori 5
Arquitectura de un computador cori 5Arquitectura de un computador cori 5
Arquitectura de un computador cori 5karolayRB
 
Proceso de-investigacion-cientifica1
Proceso de-investigacion-cientifica1Proceso de-investigacion-cientifica1
Proceso de-investigacion-cientifica1Karen Villaroel
 
El acoso escolar o matoneo (bullying) [modo de compatibilidad]
El acoso escolar o matoneo (bullying) [modo de compatibilidad]El acoso escolar o matoneo (bullying) [modo de compatibilidad]
El acoso escolar o matoneo (bullying) [modo de compatibilidad]José Darío Casado Flórez
 
Kummrow :: eBooks - ein neues Medium für Bibliotheken ?!
Kummrow :: eBooks - ein neues Medium  für Bibliotheken ?!Kummrow :: eBooks - ein neues Medium  für Bibliotheken ?!
Kummrow :: eBooks - ein neues Medium für Bibliotheken ?!Eckhard Kummrow
 
2013 03 12 Tactixx | online marketing nach der privacy debatte
2013 03 12 Tactixx | online marketing nach der privacy debatte2013 03 12 Tactixx | online marketing nach der privacy debatte
2013 03 12 Tactixx | online marketing nach der privacy debatteChristian Hauth
 
Kommunikation Im Risikomanagement
Kommunikation Im RisikomanagementKommunikation Im Risikomanagement
Kommunikation Im RisikomanagementMarkus Aeschimann
 
Videojournalismus tide 510
Videojournalismus tide 510Videojournalismus tide 510
Videojournalismus tide 510Qooo
 
Maria camila garcia carriòn
Maria camila garcia carriònMaria camila garcia carriòn
Maria camila garcia carriòncamila garcia
 

Andere mochten auch (20)

Presentación bloq cierre fatla
Presentación bloq cierre fatlaPresentación bloq cierre fatla
Presentación bloq cierre fatla
 
TIPOS DE TARJETAS
TIPOS DE TARJETASTIPOS DE TARJETAS
TIPOS DE TARJETAS
 
Anatomia
AnatomiaAnatomia
Anatomia
 
De la idea al negocio
De la idea al negocioDe la idea al negocio
De la idea al negocio
 
Ultraschallsensoren von ifm 2016
Ultraschallsensoren von ifm 2016Ultraschallsensoren von ifm 2016
Ultraschallsensoren von ifm 2016
 
Urlaubsempfehlungen
UrlaubsempfehlungenUrlaubsempfehlungen
Urlaubsempfehlungen
 
Nomina
NominaNomina
Nomina
 
Países más seguros y Países violentos
 Países más seguros y Países violentos Países más seguros y Países violentos
Países más seguros y Países violentos
 
Arquitectura de un computador cori 5
Arquitectura de un computador cori 5Arquitectura de un computador cori 5
Arquitectura de un computador cori 5
 
Proceso de-investigacion-cientifica1
Proceso de-investigacion-cientifica1Proceso de-investigacion-cientifica1
Proceso de-investigacion-cientifica1
 
Web 2.0 fj ag[1]
Web 2.0 fj ag[1]Web 2.0 fj ag[1]
Web 2.0 fj ag[1]
 
La boca
La bocaLa boca
La boca
 
El acoso escolar o matoneo (bullying) [modo de compatibilidad]
El acoso escolar o matoneo (bullying) [modo de compatibilidad]El acoso escolar o matoneo (bullying) [modo de compatibilidad]
El acoso escolar o matoneo (bullying) [modo de compatibilidad]
 
Kummrow :: eBooks - ein neues Medium für Bibliotheken ?!
Kummrow :: eBooks - ein neues Medium  für Bibliotheken ?!Kummrow :: eBooks - ein neues Medium  für Bibliotheken ?!
Kummrow :: eBooks - ein neues Medium für Bibliotheken ?!
 
2013 03 12 Tactixx | online marketing nach der privacy debatte
2013 03 12 Tactixx | online marketing nach der privacy debatte2013 03 12 Tactixx | online marketing nach der privacy debatte
2013 03 12 Tactixx | online marketing nach der privacy debatte
 
Kommunikation Im Risikomanagement
Kommunikation Im RisikomanagementKommunikation Im Risikomanagement
Kommunikation Im Risikomanagement
 
Gran guerra
Gran guerraGran guerra
Gran guerra
 
Videojournalismus tide 510
Videojournalismus tide 510Videojournalismus tide 510
Videojournalismus tide 510
 
Caries
CariesCaries
Caries
 
Maria camila garcia carriòn
Maria camila garcia carriònMaria camila garcia carriòn
Maria camila garcia carriòn
 

Ähnlich wie Java User Group Düsseldorf - Vortrag der iks am 13. März 2008

Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"joergreichert
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 
Modulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine EinführungModulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine EinführungAndreas Weidinger
 
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...Andreas Weidinger
 
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...Ramon Anger
 
BizDataX - Data Masking Solution - Datamasking-Tool
BizDataX - Data Masking Solution - Datamasking-ToolBizDataX - Data Masking Solution - Datamasking-Tool
BizDataX - Data Masking Solution - Datamasking-ToolDragan Kinkela
 
Roadmap - die Einführung eines CMS/ECM
Roadmap - die Einführung eines CMS/ECMRoadmap - die Einführung eines CMS/ECM
Roadmap - die Einführung eines CMS/ECMGeorg Eck
 
Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...
Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...
Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...Klaus Rüggenmann
 
2011 07-13 collaboration solutions day - cedros
2011 07-13 collaboration solutions day - cedros2011 07-13 collaboration solutions day - cedros
2011 07-13 collaboration solutions day - cedrosPhilipp_Koenigs
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
Onno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellenOnno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellenlernet
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Firmen-Präsentation dmr solutions gmbh
Firmen-Präsentation dmr solutions gmbhFirmen-Präsentation dmr solutions gmbh
Firmen-Präsentation dmr solutions gmbhRalf Lütke
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven DesignTobiasFrischholz
 
We4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmap
We4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmapWe4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmap
We4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmapWe4IT Group
 

Ähnlich wie Java User Group Düsseldorf - Vortrag der iks am 13. März 2008 (20)

MDSD Herausforderung: Entwicklungsmethodik und technisches Umfeld
MDSD Herausforderung: Entwicklungsmethodik und technisches UmfeldMDSD Herausforderung: Entwicklungsmethodik und technisches Umfeld
MDSD Herausforderung: Entwicklungsmethodik und technisches Umfeld
 
Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
 
Zertifizierter projektmanager verfügbar
Zertifizierter projektmanager verfügbarZertifizierter projektmanager verfügbar
Zertifizierter projektmanager verfügbar
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Modulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine EinführungModulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine Einführung
 
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
 
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
 
BizDataX - Data Masking Solution - Datamasking-Tool
BizDataX - Data Masking Solution - Datamasking-ToolBizDataX - Data Masking Solution - Datamasking-Tool
BizDataX - Data Masking Solution - Datamasking-Tool
 
Roadmap - die Einführung eines CMS/ECM
Roadmap - die Einführung eines CMS/ECMRoadmap - die Einführung eines CMS/ECM
Roadmap - die Einführung eines CMS/ECM
 
Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...
Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...
Umsetzungsstrategien für Cross-Plattform Projekte - IA Konferenz 2013 Klaus R...
 
2011 07-13 collaboration solutions day - cedros
2011 07-13 collaboration solutions day - cedros2011 07-13 collaboration solutions day - cedros
2011 07-13 collaboration solutions day - cedros
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Die Megatrends in der Softwarebranche
Die Megatrends in der SoftwarebrancheDie Megatrends in der Softwarebranche
Die Megatrends in der Softwarebranche
 
Onno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellenOnno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellen
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
 
Firmen-Präsentation dmr solutions gmbh
Firmen-Präsentation dmr solutions gmbhFirmen-Präsentation dmr solutions gmbh
Firmen-Präsentation dmr solutions gmbh
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 
We4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmap
We4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmapWe4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmap
We4IT LCTY 2013 - x-pages-men - whats next - application modernization roadmap
 

Mehr von IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Mehr von IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 

Java User Group Düsseldorf - Vortrag der iks am 13. März 2008

  • 1. iks Gesellschaft für Informations- und Kommunikationssysteme mbH Sponsor der 13.03.2008 Seite 2 / 77
  • 2. iks - Daten und Fakten Gründung 1989 Sitz Hilden Geschäftsleitung Dipl.-Inf. Monika Stoll Dipl.-Ing. Thomas Kondring Hartwig Tödter Team ca. 85 Mitarbeiter/innen Tätigkeitsgebiet Individuelle IT-Konzepte und Softwarelösungen Seite 3 / 77
  • 3. Unsere Leistungen (Schwerpunkte) IT-Beratung Projektleitung Projektdurchführung / Softwareentwicklung – z.B. als Outsourcing-Partner – oder als Ergänzung der Entwickler-Teams unserer Kunden (Know-how-Transfer, Abfangen von Projektspitzen) Schulungen / Coaching Seite 4 / 77
  • 4. Technisches Umfeld Schwerpunkt: Java-Technologien – Java SE, Java EE, server- und clientseitige Anwendungsentwicklung – Frameworks – ... .NET / C# Business Intelligence AS/400 – COBOL, RPG Visual Basic, Delphi, C++ etc. Seite 5 / 77
  • 5. Unsere Kunden International tätige Konzerne sowie große und mittlere Unternehmen aus unterschiedlichen Branchen: Industrie Versicherungen / Finanzdienstleistungen Handel Telekommunikation Transport / Verkehr / Logistik Verbände / Vereine / Interessenvertretungen Dienstleistungsunternehmen Gesundheitswesen Seite 6 / 77
  • 6. Unsere Mitarbeiter ca. 85 Mitarbeiterinnen und Mitarbeiter Ausbildung u.a. – Informatiker – Wirtschaftsinformatiker – Mathematiker – Ingenieure Einsatz in Kundenprojekten u.a. als – Projektleiter, Analysten – IT-Berater, Softwarearchitekten, Anwendungsentwickler – Trainer – ... Seite 7 / 77
  • 7. iks im Internet Weitere Informationen über iks finden Sie auf unserer Website www.iks-gmbh.com Und nun viel Spaß beim Vortrag: Modellgetriebene Softwareentwicklung: ein Rundflug Seite 8 / 77
  • 8. Modellgetriebene Softwareentwicklung: ein Rundflug 13.3.2008 Autor: Christoph Schmidt-Casdorff Seite 9 / 77
  • 10. Inhaltsverzeichnis 1. MDSD – Motivation und Einführung 1.1 Software Dilemma 1.2 Grundkonzepte 1.3 MDSD Keywords 1.4 MDA 2. Werkzeuglandschaft 2.1 Language Workbench 2.2 Metamodelle und Modellierung 2.3 Generierung und Transformation 2.4 Übersicht der Werkzeuglandschaft Seite 11 / 77
  • 11. Inhaltsverzeichnis 3. Entwicklungsprozess 3.1 DSL Infrastruktur 3.2 architekturzentrierte MDSD 3.3 domänen zentrierte MDSD 4. Erfahrungsbericht 4.1 Vorstellung 4.2 DSLs 4.3 Aufwandsbetrachtungen 5. Appendix A 5.1 Standards und Werkzeuge Seite 12 / 77
  • 12. Technologien im OO-Umfeld Struts Wicket Web 2.0 .Net Portlets JMS Multi Threading Ajax Seite 13 / 77
  • 13. Aktuelles Softwaredilemma Jede dieser Architekturen löst ein technologisches Problem, schafft aber folgende neue Probleme: – Komplexität der Softwareentwicklung erhöht sich • komplexere Anforderungen an Entwickler – Komplexität der Software erhöht sich • erhöhter Wartungsaufwand – Bindung an Technologie verringert Flexibilität • eine einmal gewählte Technologie ist nur schwer zu wechseln, • aber Technologien sind im Fluss – Technologie und Geschäftslogik sind stark gekoppelt ... und produziert damit Kosten, Kosten, . . . Seite 14 / 77
  • 14. Grundgedanke der Generierung Angenommen . . . – die domänene Logik könnte unabhängig von der einzusetzenden Technologie erstellt werden (==Modell) – spezielle Software (==Generatoren) erzeugt aus dem Modell der domänenen Logik den Quellcode (==Generat) bzgl. der gewünschten Technologie/Programmiersprache/.... – das Generat trifft auf eine (der domänenen Logik angepasste) Plattform (==Zielplattform) aus Frameworks/Komponenten/... innerhalb/mittels derer es ausgeführt wird Grundgedanke von MDSD (Model Driven Software Development) Seite 15 / 77
  • 15. Grundgedanke ‚Generierung‘ - Skizze Generatoren Framework/Komponenten Individual Code wird generiert wird ausgeführt Modell Generat Zielplattform Seite 16 / 77
  • 16. Motivation für MDSD Plattformunabhängigkeit – Generatoren für jede Zielplattform Effizienzsteigerung durch Automation – Softwareerstellung durch Generierung Qualitätsverbesserung – durch Generierung • Qualität des generierten Codes wird über Generator gesteuert • Architektur- und Designanforderungen werden systematisch eingehalten – durch Wiederverwendung der Domain Architektur • Qualität steigt mit Anzahl der Einsätze einer Domain Architektur Seite 17 / 77
  • 17. MDSD - Grundgedanke ist allgemein gültig ist unabhängig von der eingesetzten Systemumgebung – Betriebssystem – Programmiersprache – Architektur – Modellierungssprache allerdings findet sich im OO-/Java-Umfeld eine wachsende Infrastruktur – Modellierungssprachen (UML, EMF,...) – Transformationssprachen (QVT,...) – Transformationswerkzeuge (Eclipse) – ..... Seite 18 / 77
  • 18. Metapher für Generator/Transformator Compiler dient als Metapher für technische Funktionsweise von Generatoren/Transformatoren – Generator -> Compiler – Modell -> Quellcode – Generat -> Maschinencode Damit ein Generator ein Modell interpretieren kann, muss dieses – in einer Sprache formuliert sein, die der Generator versteht – formal sein (d.h. einer vorgegebenen Syntax entsprechen) Seite 19 / 77
  • 19. Domäne-spezifische Sprache Sprache zur Formulierung von Modellen – DSL (domain specific language) … besitzt eine formale Spezifikation in Form eines Metamodells – beschreibt die Sprachelemente – abstrakte Syntax … kann in unterschiedlichen Formen dargestellt/realisiert werden – UML, EMF, textuell – konkrete Syntax Seite 20 / 77
  • 20. Problemräume / Domäne können durch die Architektur/Technologie motiviert sein – architektur-zentriert – Abbildung in die gewählte Technologie • Anbindung an Datenbanken (JDBC, Hibernate, …) • Middleware EJB, Spring – ist der zur Zeit verbreitetere Einsatz von MDSD können domänen motiviert sein – domänen-zentriert – wird durch die konkrete domänenkeit vorgegeben Seite 21 / 77
  • 21. DSL je abgegrenzter der Problemraum und je spezieller die DSL dieses Problemraums ist, desto größer ist der Mehrwert durch MDSD ► Finde abgegrenzten Problemraum und entsprechende DSL ► In Projekten existieren u.U. mehrere DSLs nebeneinander Seite 22 / 77
  • 22. Generatoren/Transformatoren – interpretieren das Modell – enthalten möglichst viel Wissen um den Problemraum – setzen ein Regelwerk zur Generierung/Transformation um – setzen allgemeine Muster für Architektur und Code um Transformatoren beschreiben model-to-model-Transformationen Generatoren beschreiben Generierung von Artefakten – Quellcode, XML-Dateien, HTML-Seiten, .... – Model-to-text-Transformationen Generatoren/Transformatoren können in beliebig vielen Schritten gekoppelt sein Seite 23 / 77
  • 23. Zielplattform ist Laufzeitumgebung zur Ausführung der Generate je spezifischer die Zielplattform dem Generat entgegenkommt, desto einfacher wird der Generator Beispiele für Zielplattformen – J2EE Container – Message Oriented Middleware – Datenbank – eigenentwickelte Frameworks Seite 24 / 77
  • 24. Software Systemfamilie Domänen-Architektur (Domain Architecture) – DSL/Metamodell, Modelltransformationen, Zielplattform – beschreibt die Umgebung vom Modell zum Softwareprodukt Software-Systemfamilie – Programmgruppe mit gemeinsamen Eigenschaften – hier: gemeinsame Domain Architecture Seite 25 / 77
  • 25. MDA - model driven architecture - ist der Beitrag der OMG (Object Management Group) zu MDSD – ist eine Ausprägung der MDSD definiert 3 unterschiedliche Abstraktionsebenen – CIM – computer independent model – PIM – platform independent model – PSM – platform specific model – … und einen Prozess, der die 3 Modelle schrittweise ineinander überführt – diese 3 Modellabstraktionen haben sich in der Realität nicht bewährt • Abgrenzung untereinander ist nur schwer möglich (relative Bewertungen) • in der Praxis treten mehr als 3 Modellausprägungen auf definiert Standards im MDSD-Umfeld – (E)MOF, UML, OCL, QVT, XMI – CWM – common warehouse metamodel (DSL für dataware housing) ◄ Seite 26 / 77
  • 26. Language Workbench Werkzeuglandschaft, um DSL-zentrierte Software zu entwickeln – [Martin Fowler 2003] dies umfasst Werkzeuge, – um DSL zu definieren – um Editor zu definieren • eigentliche Modellierung • dynamische Modellvalidierungen – um Generatoren zu entwickeln • Generierung • Modellvalidierung – um model-to-model-Transformationen zu entwickeln – Workflow, um die unterschiedlichen Schritte zusammenzuhalten Seite 27 / 77
  • 27. Modellierungssprachen und Metamodelle … sind beispielsweise – UML – ERM (Entity Relationship Model) … werden durch ein Metamodell beschrieben – abstrakte Syntax der Modellierungssprache – statische Semantik – dynamische Constraints Seite 28 / 77
  • 28. Beispiele für Metamodelle XSD – XML-Schema BNF – Backus-Naur-Form – textuelle Notation für Sprachen • Darstellung kontextfreier Grammatiken (E)MOF – (Extended) Meta Object Facility – Metamodellierungssprache der UML – mittels MOF ist UML, OCL, … beschrieben UML Profile – Möglichkeit innerhalb von UML eine Domänen zu beschreiben EMF / ECORE – ECORE ist semantisch (im Wesentlichen) zur EMOF äquivalente Metamodell im Eclipse-Umfeld – EMF (Eclipse Modelling Framework) enthält Werkzeuge zur Metamodellierung – Basis vieler Werkzeuge im Eclipse-Umfeld Seite 29 / 77
  • 29. Modellierungssprachen und Metamodelle eine DSL ist eine spezifische Modellierungssprache – bedarf einer Meta-(Modellierungs-)Sprache • um eigenes Metamodell zu entwerfen – ist auf einen bestimmten Problembereich zugeschnitten Seite 30 / 77
  • 30. Modellierung Modellierung setzt einen geeigneten Editor voraus – möglichst graphisch – bei Texteditoren syntax highlighting, code completion, … UML Werkzeuge sind Editoren zur Modellierung – Für Modelle welche auf UML basieren – Austauschformat zwischen OMG-UML und Eclipse – DSL werden durch UML Profile beschrieben unterstützt Syntax und Semantik des Metamodells – Modellvalidierungen • statische Semantik (wer darf welchen Pfeil auf wen ziehen) • dynamische Constraints – vgl. OCL et al Seite 31 / 77
  • 31. Generierung / Transformation setzt auf einem Metamodell auf – i.d.R. werden Objektmodelle über den Metamodellen genutzt – Generierungswerkzeug kennt bestimmte MetaModelle • Nur deren Modelle können interpetiert werden besteht i.d.R. aus mehreren Aufgaben – Validierungen – Modell-Anreicherungen (model-to-model-Transformationen) – Codegenerierungen (model-to-text-Transformationen) • erzeugen die Generierungsartefakte • Code, Deskriptoren, XML-Dateien – alle Aufgaben können ggf. mehrfach ausgeführt oder kombiniert werden Seite 32 / 77
  • 32. Generierungs- / Transformationstechniken Template Engines zur model-to-text-Transformation – dynamisch typisierte Engines • Velocity, freemaker, JSTL (jexl), … – statisch typisierte wie Xpand (openArchitectureWare ►Appendix A) spezielle Transformationssprachen – QVT, MOFScript als Komponente entwickelte M2T/M2M-Transformationen heißen Cartridge – wiederverwendbar – Generator setzt sich i.d.R. aus mehreren Cartridges zusammen – Bestandteil einer Generierungsplattform, die sich auf eine spezielle DSL stützt • siehe AndroMDA, Fornax, … (►Appendix A) Seite 33 / 77
  • 33. Integration von Individual Code Individual Code ist nicht generierter/modellierter Code, – der in die Zielplattform integriert werden muss – der unabhängig von Generierung/Modellierung ist während Generierung/Transformation werden Regeln ausgeführt – welche Individual Code in Generat einbinden – i.d.R. über Benennungsregel beispielweise – Super-/Subclassbeziehung – Interface / Implementierung Seite 34 / 77
  • 34. Integration von Individual Code Szenario : domänenes Modell gerät an die Grenzen der Modellierung – domänene Logik kann nicht mit Mitteln der DSL beschrieben werden – domänene Logik soll durch Individual Code umgesetzt werden – Model öffnet sich an definierten Stellen und mit definierter Semantik extension point Verfahren – vgl. Eclipse – Modell öffnet extension points für Individual Code – Generator bindet Individual Code an extension points – Verfahren eignet sich sehr gut für Integration von Individual Code auf Modellebene Seite 35 / 77
  • 35. MDSD Ausführungsumgebung ist ein alternativer Ansatz zur Generierung Modell wird in einer Ausführungsumgebung ausgeführt – es findet keine explizite Generierung statt – Modell und Ausführungsplattform sind aufeinander zugeschnitten – siehe OpenMDX ( ►Appendix A) Seite 36 / 77
  • 36. MDSD und Eclipse Eclipse Modelling Project – Subprojekt von Eclipse – umfasst Werkzeuge für alle Phasen der MDSD Metasprachen und Editoren für Metamodelle ( ►Appendix A) – erlaubt die Definition neuer Metamodelle auf Basis von ECORE • EMF liefert Framework zur Editierung • UML nach ECORE Umwandlung (oAW – uml2ecore ) • Frameworks zur BNF basierten Definition von DSL • Xtext (integriert in openArchitectureWare) Seite 37 / 77
  • 37. MDSD und Eclipse - DSL Editoren Syntax- und kontextbezogene Editoren für textuelle DSLs – Xtext GMF – graphische Editoren auf Basis eines ECORE Modells – wird von Borland aktiv und maßgeblich unterstützt – Validierungs-Frameworks lassen sich integrieren Seite 38 / 77
  • 39. Werkzeuglandschaft Language Workbench – EMF + GMF + openArchitectureWare (►Appendix A) – EMF + GMF + AndroMDA 4 (►Appendix A) Generierungswerkzeuge – bieten vorgefertigte DSLs und Generatoren/Transformatoren – AndoMDA 3 (►Appendix A) – Fornax (►Appendix A) • UML, Sculptor MDSD Laufzeitumgebungen – openMDX – bietet Modellierung und Laufzeitumgebung zur Ausführung der Modelle ◄ – ►Appendix A Seite 40 / 77
  • 40. Entwicklungsprozesse Es existieren zwei Entwicklungsprozesse : DSL Infrastruktur – Aufbau der DSL Infrastruktur Primärer Entwicklungsprozess – bisheriger Entwicklungsprozess unter Einsatz der MDSD Infrastruktur sollten beide unabhängig voneinander gelebt werden sind natürlich inhaltlich stark gekoppelt Seite 41 / 77
  • 41. DSL Infrastruktur ist ein eigener Entwicklungsprozess – sollte auch so gelebt werden – besitzt starke Bindung / Kopplung an primären Entwicklungsprozess Aufgaben in Domäne / Modellierung – DSL-Analyse – Definition und Aufbau einer Modellierungsumgebung – Festlegung der Zielplattform – Definition der Architektur- und Designmuster für Generatoren Aufgaben in Generatorenentwicklung – Generatorenentwicklung, Frameworkentwicklung Seite 42 / 77
  • 42. DSL Infrastruktur erfordert neue Rollen – DSL Analyse • Konsistenz der DSL • Kommunikation mit Fachseite und Entwicklung – Generatorentwicklung • neue komplexes Umfeld • große Anforderungen an Abstraktionsvermögen erfordert neue Kompetenzen an bekannte Rollen – Architektur – Testmanagement und Testkonzeptionen Seite 43 / 77
  • 43. Architekturzentrierte MDSD Modelle werden um Technologieaspekte angereichert – JEE, Hibernate, Spring, …. MDSD ist auf die Realisierungsphase beschränkt – Artefakte sind • Modell • zusätzlicher selbst geschriebener Code Generierung beschleunigt die Realisierungsphase Seite 44 / 77
  • 44. Einsatz von domänen-zentrierter MDSD MDSD trifft die Phasen Analyse, Realisierung Artefakte sind – fachliches Modell (Analyse) – zusätzlicher Individual Code (Realisierung) Seite 45 / 77
  • 45. Einsatz von domänen-zentrierter MDSD Generierung beschleunigt die Realisierungsphase Designphase degeneriert Formale Modellierung – verlangsamt die Analyse (zu Beginn) – erhöht die Anforderungen an Analytiker • keine Realisierung als Puffer • Modelle sind ausführbarer Bedarf ständiger Betreuung durch DSL Infrastruktur – DSLs wachsen mit dem Einsatz Seite 46 / 77
  • 46. Einsatz von domänen-zentrierter MDSD Modell ist kein Artefakt der Realisierung – Modell und Realisierung haben unterschiedliche Lebenszyklen Folgende Fragen sind projektspezifisch zu beantworten: ? Wer generiert? – Hoheit in Realisierung oder Analyse ? Lebenszyklus der Generate ? Ist Generierung Teil des Buildprozesses? ? Werden Generate versioniert? Best Practice – Pair Modelling • Zumindest bis sich Analyse an Auswirkungen ihres „Tuns“ gewöhnt hat – Konzept zur Integration Individual Codes • wird nicht nur durch Generator, sondern durch Modell bestimmt Seite 47 / 77
  • 47. Entwicklungsprozesse Zwei getrennte Entwicklungsprozesse – für MDSD-Infrastruktur und primärer (bisheriger) Entwicklungsprozess Primärer Entwicklungsprozess – beschäftigt sind Modellen als neuen Artefakten – Benötigt neue Rollen und Phasen – Standardisierte Prozesse wie RUP und XP sind um MDSD Aspekte erweitert Einsatz von domänen-zentrierter MDSD – ist umfassender – hat größeren Einfluß auf Organisatien ◄ Seite 48 / 77
  • 48. Erfahrungsbericht MDSD wurde bei einem großen Finanzdienstleister umgesetzt – Laufzeit des Projekts > 5 Jahre Änderungsmanagement und Informationsaustausch mit Leistungsträgern – Größtenteils dateibasierte Satzverarbeitung – Größenordnung pro Monat: • Auflieferung von ca. 0,5 – 1 Mio. Datensätze • Versand von bis zu mehreren Mio. Datensätzen an die Leistungsträger Seite 49 / 77
  • 49. DSLs zentrales Businessmodell – O/R-Mapping WebGUI Kundenanschreiben Export / Import zu Dateischnittstellen Archivierung Seite 50 / 77
  • 50. DSLs - Technologie MetaModel UML DSL UML Profile Generierung (bisher) Proprietäre Modellzugriffsschicht Generierung (zukünftig) ECORE basierte Modellzugriff Seite 51 / 77
  • 51. Einsatz von MDSD Einsatz von MDSD > 40% (bezogen auf Modelle) Mengengerüste – 10 DSLs – derzeit ca. 100.000 Modellelemente, davon < 2% (ca. 1900) programmatisch ergänzt Kleines Entwicklungs- und Modellierungsteam (< 10 Personen) – davon 3 externe Kräfte Seite 52 / 77
  • 52. Aufwände bzgl. MDSD Ablösung der PT aggregiert proprietären Generatorumgebung Aufwand verringert sich deutlich Stabilisierung der Infrastruktur Aufsetzen und Pflege der MDSD-Infrastruktur 0 2003 2004 2005 2006 2007 2008 Jahr Projektbeginn Wirkbetriebseinführung Phase 1 Seite 53 / 77
  • 53. Aufwände bzgl. MDSD PT aggregiert Wiederverwendung von Pflege der MDSD Modellen und Entwicklung Infrastruktur Modellierungsaufwand erreicht den für MDSD-Infrastruktur Vorlauf zur Erzeugung der Infrastruktur Modellierung 2003 2004 2005 2006 2007 2008 Jahr Projektbeginn Wirkbetriebseinführung Phase 1 Seite 54 / 77
  • 54. Aktueller Stand im Projekt Stabilität / Verlässlichkeit – DSL ist seit über zwei Jahr stabil – Generatoren sind stabil und zuverlässig – Framework ist bis auf kleinere Änderungen stabil – Entwicklungsprozess hat sich stabilisiert und bewährt Seite 55 / 77
  • 55. Risiken Bindung der Generatoren an proprietäres Tool Komplexität der DSL muss begrenzt bleiben – Gefahr unklarer Modellierungsregeln – Gefahr impliziter Abhängigkeiten zwischen Modellierungselementen Seite 56 / 77
  • 56. Erwartung an MDSD + Erfolgreiches Management der Mengen an Detailinformationen + Robuste Software durch Framework-Einsatz + Kurze Reaktionszeiten bei Änderungen der Anforderungen (change requests, bugs) + Wartung verringert sich um mehr als 50 % • Zu erwartende Aufwandsvorteile in zukünftigen Phasen • durch Einsatz der bestehenden Domain Architecture • Lernkurve bewältigt • Erweiterung der Software-Systemfamilie Seite 57 / 77
  • 57. Resümee In unserem Fall und bei unserer Ausgangssituation hat sich der Einsatz von Modellgetriebener Softwareentwicklung gelohnt. Seite 58 / 77
  • 58. Literatur Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management – Stahl, Völter,Efftinge – DPunkt Verlag (2007) - ISBN-10: 3898644480 Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis – Pietrek et al – Entwicklerpress (2007) - ISBN-10: 3939084115 Model Driven Architecture. Applying MDA to Enterprise Computing – David S. Frankel – OMG Press (2003) - ISBN-10: 0471319201 Seite 59 / 77
  • 61. Standards OMG / Eclipse OMG – MOF – Modellierungssprache für Metamodelle – UML – Modellierung – OCL – dynamische Constraints – QVT – model-to-model Transformationen Eclipse – de facto Standards – ECORE - Metamodellierung • semantisch gleichwertig zu (E)MOF • beide werden sich annähern – abgeleitet Standards wie • UML2 – UML für Eclipse • QVT für Eclipse • OCL für Eclipse Seite 62 / 77
  • 62. Tools im Eclipse-Umfeld - Metamodellierung Alle MDSD-Entwicklungen unter Subprojekt Eclipse Modelling Project Metasprachen und Editoren für Metamodelle – erlaubt die Definition neuer Metamodelle auf Basis von ECORE • EMF liefert Framework zur Editierung • UML nach ECORE Umwandlung (oAW – uml2ecore ) – Frameworks zur BNF basierten Definition von DSL • Xtext (integriert in openArchitectureWare) Seite 63 / 77
  • 63. Tools im Eclipse-Umfeld - DSL Editoren Syntax- und kontextbezogene Editoren für textuelle DSLs – Xtext GMF – graphische Editoren auf Basis eines ECORE Modells – wird von Borland aktiv und maßgeblich getrieben – Validierungs-Frameworks lassen sich integrieren Seite 64 / 77
  • 65. Tools im Eclipse-Umfeld - Generierung Metamodell-Unterstützungen – Ecore, UML2, …. Generatoren (model-to-text-Transformationen) – Template Engines • EMF – JET • oAW – Xpand2 – MOFScript – model to text Transformation Validierungen • OCL • Check (oAW) model-to-model Transformationen – QVT Implementierungen • SmartQVT (Teil des Standards) • ATL (QVT – Dialekt) Seite 66 / 77
  • 66. openArchitectureWare (oAW) http://www.eclipse.org/gmt/oaw/ Software-Generator Framework bietet – Integration vieler Metamodelle • EMF, UML, RSA, Xtext (BNF-like) – Template Sprachen (Xpand2) – Model-zu-Model-Transformationen (Xtend) – bietet Validierungen (Check) inkl. Integration in GMF – Konzepte zur Integration eigenen Codes in Generatorartefakte (recipe) interne Konzepte entsprechen nicht immer Standards basiert auf dem b+m Generator Framework Seite 67 / 77
  • 67. AndroMDA Links – http://galaxy.andromda.org/docs-a4 – http://galaxy.andromda.org/docs/getting-started/java/index.html – http://galaxy.andromda.org/docs-3.2/contrib/birds-eye-view.html Software-Generator Framework – aktuelles Release 3.2 (A3) – Neuentwicklung in Version 4 (Previews verfügbar) AndroMDA 3 setzt Schwerpunkte auf – Einsatz vom UML als Metamodell (UML Profiles) • kann auf Basis MOF erweitert werden • eigene Objektmodell (metafacade) basierend auf Netbean MDR – Generierung einer JEE-Anwendung – Einsatz von vorgefertigten Cartridges • Hibernate, EJB, Spring, …. Seite 68 / 77
  • 68. AndroMDA Quelle: http://galaxy.andromda.org/ Seite 69 / 77
  • 69. AndroMDA AndroMDA 4 bietet – die Definition eigener Metamodelle • EMF basierte Metamodelle • UML 2 Ecore Converter – model-to-model-Transformationen via ATL – model-to-text-Transformationen mittels MOFScript – … beides Teilmengen von OCL – eigenen Workflow, konfigurierbar in Groovy – bessere Integration in Eclipse – maven basierter Entwicklungsprozess – nicht abwärtskompatibel zu A3 Seite 70 / 77
  • 70. openMDX http://www.openmdx.org/index.html stellt Laufzeitumgebung zur Ausführung von Modellen bereit – kein Generator-Ansatz implementiert den MDA Standard gemäß OMG – Modellierung erfolgt in MOF – basiert auf JMI-Binding generische Plattform für verteilte Objekte – abstrahiert von Standards wie JEE, CORBA, etc. – Plattform-unabhängige Logik Code wird in plug-ins bereitgestellt – es existieren generische plug-ins für Peristence, Verteilung etc… Seite 71 / 77
  • 71. openMDX Entwicklungsprozess Quelle: http://www.openmdx.org/index.html Seite 72 / 77
  • 72. openMDX architecture Seite 73 / 77 Quelle: http://www.openmdx.org/index.html
  • 73. Fornax http://fornax-platform.org/cp/display/fornax/Fornax Fornax bietet DSL – inklusive Metamodelle, Editoren, Cartridges – basiert auf EMF / oAW Plattform – maven basierter Entwicklungsprozess Fornax - UML2 – unterschiedliche Cartridge für EJB, Spring, Hibernate, Grails – Metamodelle basieren auf (Eclipse-) UML2 Seite 74 / 77
  • 74. Fornax - Sculptor http://www.theserverside.com/tt/articles/content/ProductivityWithSc ulptor/article.html ist ein Plattform zur Codegenerierung besitzt eine textuelle DSL auf Basis oAW/XText basiert auf Konzepten des Domain Driven Designs liefert Cartridges für gängige Frameworks – Spring, Hibernate und Java EE Seite 75 / 77
  • 75. UML Tools IBM Rational Software Architect, Borland Together Architect, Magic Draw, Enterprise Architect usw. – bieten i.d.R. Export in EMF-Umfeld • genauer Export in EMF UML2 2.x • somit steht das EMF-Umfeld für Generatoren zur Verfügung – bieten teilweise eigene Schnittstelle auf Modell an – haben teilweise UML2 2.x als internes Metamodell • Together Architect 2008 – bieten teilweise integriertes OCL • Editor • Ausführungsumgebung • dynamische Constraints in UML-Profilen – graphische Editoren basieren teilweise auf GMF – bieten teilweise Unterstützung für QVT UML- und EMF-Welt wachsen zusammen Seite 76 / 77