Programmieren ohne Programmierer
Modellgetriebene Softwareentwicklung mit GeneSEZ in 10 Minuten
                          Gerrit Beine
                     gerrit.beine@sqqd.de
Model Driven Software Development




23.08.2009          © SQQD GmbH - www.sqdd.de - info@sqdd.de   2
Nein...




23.08.2009   © SQQD GmbH - www.sqdd.de - info@sqdd.de   3
Grundidee
 ●   Software grafisch Modellieren
 ●   Vom Abstrakten zum Konkreten
 ●   Kluges Generieren statt Stupides Coden
 ●   Computer machen weniger Fehler
 ●   Modell-zu-Modell-Transformationen
 ●   Modell-zu-Text-Transformationen



23.08.2009       © SQQD GmbH - www.sqdd.de - info@sqdd.de   4
Modelltransformationen


  Volere Shell                  UML                    UML              Java, C, PHP, ...


                                                                         Datenbankstruktur
                                                       Designmodell
  Anforderungen           Analysemodell
                                                                          Programmcode
                                                     Testmodell
             Manuelle Analyse
                                                                       Testabläufe und -daten
                                  Transformation und
                                 manuelle Anreicherung
                                                             Transformation und
                                                            manuelle Anreicherung




23.08.2009                  © SQQD GmbH - www.sqdd.de - info@sqdd.de                            5
Metamodelle

                      beschreibt                    Instanz von


                                                                               Element
     MOF, Ecore               M3: Meta-Metamodell                       (Attribute: Element)

                      beschreibt                    Instanz von
                                                                              Element
   UML, GeneSEZ                    M2: Metamodell                   (Attribute: (Name: String,
                                                                    Variable: (String, String) ) )
                      beschreibt                    Instanz von
                                                                               Klasse
 Klassendiagramm,
 Aktivitätsdiagramm                  M1: Modell                       (Name: Auto, Variablen:
                                                                  (Farbe: String, Türen: Integer) )
                      beschreibt                    Instanz von

                                                                               Auto
      Objekte                      M0: Instanzen                       (Farbe: rot, Türen: 5)




23.08.2009             © SQQD GmbH - www.sqdd.de - info@sqdd.de                                       6
Die Idee von GeneSEZ




23.08.2009    © SQQD GmbH - www.sqdd.de - info@sqdd.de   7
Projekthistorie
 ●   Start 2006 an der FH Zwickau
 ●   Ziel: MDSD in 10 Minuten
 ●   Perspektive: Programmierer als Anwender
 ●   Unterstützung agiler Software-Entwicklung
 ●   Keine 1:1 Umsetzung des Modells im Code
 ●   Modelle sind abstrakter als Code



23.08.2009        © SQQD GmbH - www.sqdd.de - info@sqdd.de   8
Basistechnologien
 ●   Eclipse Modeling Framework
 ●   EMF UML2
 ●   openArchitectureWare
 ●   Warum GeneSEZ notwendig ist:
      –   Hoher Investition in Infrastrukur (Zeit)
      –   Hoher Lernaufwand (UML 2 Metamodell)
      –   Auwändige Wartung eines Generators



23.08.2009             © SQQD GmbH - www.sqdd.de - info@sqdd.de   9
GeneSEZ Ansatz
 ●   Definition eines eigenen Metamodells
      –   Optimiert für Codegenerierung
      –   Entwickler als Anwender im Fokus
 ●   Anbieten fertiger Generator-Plattformen




23.08.2009           © SQQD GmbH - www.sqdd.de - info@sqdd.de   10
GeneSEZ Metamodell
 ●   In UML entwickelt
 ●   Steht als Ecore (EMF)
     Modell zu Verfügung
 ●   Kennt AOP, OOP,
     Profile
 ●   Einfache
     Transformation aus
     UML und DSLs


23.08.2009        © SQQD GmbH - www.sqdd.de - info@sqdd.de   11
GeneSEZ Plattformen
 ●   Workflow-Komponenten für Transformationen
 ●   Naming Conventions
 ●   Package Importe / Namespaces
 ●   Type Mapping
 ●   Code-Templates für Metamodellelemente
 ●   Scripten zur Modell-Interpretation und
     -Anreicherung


23.08.2009        © SQQD GmbH - www.sqdd.de - info@sqdd.de   12
Workflow ab Release 1.7



                      UML/DSL           GeneSEZ              Testing
Anforderungen   M2M             M2M                 M2M                M2T       Tests
                       Modell            Modell              Modell


                                                             Source
                                                    M2T
                                                              Code
                                                                             QF-Test,
                                                                             Selenium


                                         Reports




23.08.2009                © SQQD GmbH - www.sqdd.de - info@sqdd.de                       13
Workflow




23.08.2009   © SQQD GmbH - www.sqdd.de - info@sqdd.de   14
Type-Mapping




23.08.2009   © SQQD GmbH - www.sqdd.de - info@sqdd.de   15
Templates




23.08.2009   © SQQD GmbH - www.sqdd.de - info@sqdd.de   16
Scripten




23.08.2009   © SQQD GmbH - www.sqdd.de - info@sqdd.de   17
Beispielcode




23.08.2009   © SQQD GmbH - www.sqdd.de - info@sqdd.de   18
Statistiken...




23.08.2009   © SQQD GmbH - www.sqdd.de - info@sqdd.de   19
Individualisierungen
 ●   Anpassung von Templates und Funktionen
      –   Beeinflussen mit Aspekten
 ●   Ändern von Datentypen
      –   Lokal im Projekt überschreiben
 ●   Generator und Plattform bleiben unverändert
 ●   Wiederverwendung: Eigene Plattform ableiten




23.08.2009           © SQQD GmbH - www.sqdd.de - info@sqdd.de   20
Individualisierungen: Templates




23.08.2009      © SQQD GmbH - www.sqdd.de - info@sqdd.de   21
Individualisierungen: Scripten




23.08.2009          © SQQD GmbH - www.sqdd.de - info@sqdd.de   22
Individualisierungen: Workflow




23.08.2009      © SQQD GmbH - www.sqdd.de - info@sqdd.de   23
Zukünftiges
 ●   31.08.2009 – Release 1.6.3
 ●   Im Herbst – Release 1.7 mit
      –   Zustandsautomaten
      –   Aktivitäten
      –   Testgenerierung
      –   Mehr Plattformen :-)




23.08.2009              © SQQD GmbH - www.sqdd.de - info@sqdd.de   24
Ausprobieren?
 ●   Informieren
      –   http://www.genesez.de/
 ●   Herunterladen
      –   http://www.genesez.de/download
      –   http://updatesite.genesez.de/site.xml
 ●   Handbuch
      –   http://manual.genesez.de/
 ●   info@genesez.de

23.08.2009            © SQQD GmbH - www.sqdd.de - info@sqdd.de   25
Gibt es Fragen?

                           Dann jetzt!

             Oder gleich an unserem Stand :-)



23.08.2009         © SQQD GmbH - www.sqdd.de - info@sqdd.de   26
Aspekte




             Danke und viel Spaß noch.




23.08.2009      © SQQD GmbH - www.sqdd.de - info@sqdd.de   27

Programmieren ohne Programmierer

  • 1.
    Programmieren ohne Programmierer ModellgetriebeneSoftwareentwicklung mit GeneSEZ in 10 Minuten Gerrit Beine gerrit.beine@sqqd.de
  • 2.
    Model Driven SoftwareDevelopment 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 2
  • 3.
    Nein... 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 3
  • 4.
    Grundidee ● Software grafisch Modellieren ● Vom Abstrakten zum Konkreten ● Kluges Generieren statt Stupides Coden ● Computer machen weniger Fehler ● Modell-zu-Modell-Transformationen ● Modell-zu-Text-Transformationen 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 4
  • 5.
    Modelltransformationen VolereShell UML UML Java, C, PHP, ... Datenbankstruktur Designmodell Anforderungen Analysemodell Programmcode Testmodell Manuelle Analyse Testabläufe und -daten Transformation und manuelle Anreicherung Transformation und manuelle Anreicherung 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 5
  • 6.
    Metamodelle beschreibt Instanz von Element MOF, Ecore M3: Meta-Metamodell (Attribute: Element) beschreibt Instanz von Element UML, GeneSEZ M2: Metamodell (Attribute: (Name: String, Variable: (String, String) ) ) beschreibt Instanz von Klasse Klassendiagramm, Aktivitätsdiagramm M1: Modell (Name: Auto, Variablen: (Farbe: String, Türen: Integer) ) beschreibt Instanz von Auto Objekte M0: Instanzen (Farbe: rot, Türen: 5) 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 6
  • 7.
    Die Idee vonGeneSEZ 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 7
  • 8.
    Projekthistorie ● Start 2006 an der FH Zwickau ● Ziel: MDSD in 10 Minuten ● Perspektive: Programmierer als Anwender ● Unterstützung agiler Software-Entwicklung ● Keine 1:1 Umsetzung des Modells im Code ● Modelle sind abstrakter als Code 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 8
  • 9.
    Basistechnologien ● Eclipse Modeling Framework ● EMF UML2 ● openArchitectureWare ● Warum GeneSEZ notwendig ist: – Hoher Investition in Infrastrukur (Zeit) – Hoher Lernaufwand (UML 2 Metamodell) – Auwändige Wartung eines Generators 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 9
  • 10.
    GeneSEZ Ansatz ● Definition eines eigenen Metamodells – Optimiert für Codegenerierung – Entwickler als Anwender im Fokus ● Anbieten fertiger Generator-Plattformen 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 10
  • 11.
    GeneSEZ Metamodell ● In UML entwickelt ● Steht als Ecore (EMF) Modell zu Verfügung ● Kennt AOP, OOP, Profile ● Einfache Transformation aus UML und DSLs 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 11
  • 12.
    GeneSEZ Plattformen ● Workflow-Komponenten für Transformationen ● Naming Conventions ● Package Importe / Namespaces ● Type Mapping ● Code-Templates für Metamodellelemente ● Scripten zur Modell-Interpretation und -Anreicherung 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 12
  • 13.
    Workflow ab Release1.7 UML/DSL GeneSEZ Testing Anforderungen M2M M2M M2M M2T Tests Modell Modell Modell Source M2T Code QF-Test, Selenium Reports 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 13
  • 14.
    Workflow 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 14
  • 15.
    Type-Mapping 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 15
  • 16.
    Templates 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 16
  • 17.
    Scripten 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 17
  • 18.
    Beispielcode 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 18
  • 19.
    Statistiken... 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 19
  • 20.
    Individualisierungen ● Anpassung von Templates und Funktionen – Beeinflussen mit Aspekten ● Ändern von Datentypen – Lokal im Projekt überschreiben ● Generator und Plattform bleiben unverändert ● Wiederverwendung: Eigene Plattform ableiten 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 20
  • 21.
    Individualisierungen: Templates 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 21
  • 22.
    Individualisierungen: Scripten 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 22
  • 23.
    Individualisierungen: Workflow 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 23
  • 24.
    Zukünftiges ● 31.08.2009 – Release 1.6.3 ● Im Herbst – Release 1.7 mit – Zustandsautomaten – Aktivitäten – Testgenerierung – Mehr Plattformen :-) 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 24
  • 25.
    Ausprobieren? ● Informieren – http://www.genesez.de/ ● Herunterladen – http://www.genesez.de/download – http://updatesite.genesez.de/site.xml ● Handbuch – http://manual.genesez.de/ ● info@genesez.de 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 25
  • 26.
    Gibt es Fragen? Dann jetzt! Oder gleich an unserem Stand :-) 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 26
  • 27.
    Aspekte Danke und viel Spaß noch. 23.08.2009 © SQQD GmbH - www.sqdd.de - info@sqdd.de 27