19

Click here to load reader

Programmieren war gestern!

Embed Size (px)

DESCRIPTION

Die Vortragsfolien von den Chemnitzer Linux Tagen 2010 zum Thema Modellgetrieben Softwareentwicklung mit GeneSEZ.

Citation preview

Page 1: Programmieren war gestern!

Programmieren war gestern!

Gerrit Beine

12.03.2010

Page 2: Programmieren war gestern!

www.sqqd.de – [email protected]

Übersicht

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjekt

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 2 / 19

• Wie bitte? Modellgetrieben?

• Das GeneSEZ Projekt

• GeneSEZ nutzen

Page 3: Programmieren war gestern!

www.sqqd.de – [email protected]

Wie bitte? Modellgetrieben?

Übersicht

Wie bitte?Modellgetrieben?ProgrammieralltagLösungenModellgetriebeneSoftwareentwicklungMetamodelleGeneratoren

Das GeneSEZProjekt

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 3 / 19

Page 4: Programmieren war gestern!

www.sqqd.de – [email protected]

Programmieralltag

Übersicht

Wie bitte?Modellgetrieben?ProgrammieralltagLösungenModellgetriebeneSoftwareentwicklungMetamodelleGeneratoren

Das GeneSEZProjekt

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 4 / 19

• Hektischer Projektstress

• Suboptimale Programmiersprachen

• DRY? Nein, danke...

• Copy’n’Paste Code ensteht

• Kommunikationsprobleme mit Auftraggebern

• Mangelhafte Dokumentation

Page 5: Programmieren war gestern!

www.sqqd.de – [email protected]

Lösungen

Übersicht

Wie bitte?Modellgetrieben?ProgrammieralltagLösungenModellgetriebeneSoftwareentwicklungMetamodelleGeneratoren

Das GeneSEZProjekt

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 5 / 19

• Low-Level-Generatoren (Rails)

• Modellierungssprachen (UML)

• Dynamische Sprachen (Python, Scala...)

• Agile Methoden (XP, Scrum)

• Krasse Einstellungen

“Der Quellcode ist die Dokumentation”

Page 6: Programmieren war gestern!

www.sqqd.de – [email protected]

Modellgetriebene Softwareentwicklung

Übersicht

Wie bitte?Modellgetrieben?ProgrammieralltagLösungenModellgetriebeneSoftwareentwicklungMetamodelleGeneratoren

Das GeneSEZProjekt

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 6 / 19

• Modell:Vergegenständlichung eines bestimmten Begriffs(Wikipedia)

• Mehrere Modellierungsebenen

• Kommunikationserleichterung

• Formal, also computerinterpretierbar!

– Fachliche Modelle

– Plattformunabhängige Modelle

– Plattformspezifische Modelle

Page 7: Programmieren war gestern!

www.sqqd.de – [email protected]

Metamodelle

Programmieren war gestern! 12.03.2010 – 7 / 19

M3: Meta-Metamodell

M2: Metamodell

M1: Modell

M0: Instanzen

MOF, Ecore

UML

Klassendiagramm,Aktivitätsdiagramm

Objekte

MOF, Ecore

Auto(Farbe: rot, Türen: 5)

Klasse(Name: Auto, Variablen:

(Farbe: String, Türen: Integer) )

Element(Attribute: (Name: Klasse, Variable: (String, Typ) ) )

Element(Attribute: Element)

beschreibt

beschreibt

beschreibt

beschreibt

Instanz von

Instanz von

Instanz von

Instanz von

Page 8: Programmieren war gestern!

www.sqqd.de – [email protected]

Generatoren

Übersicht

Wie bitte?Modellgetrieben?ProgrammieralltagLösungenModellgetriebeneSoftwareentwicklungMetamodelleGeneratoren

Das GeneSEZProjekt

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 8 / 19

• AndroMDA

• Eclipse Modeling Framework

• openArchitectureWare

• objectIF

• Executable UML

Page 9: Programmieren war gestern!

www.sqqd.de – [email protected]

Das GeneSEZ Projekt

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjektZieleGrundlegendePhilosophieVergleich GeneSEZ -UML 2.0BestandteileAktuell: Release 1.7

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 9 / 19

Page 10: Programmieren war gestern!

www.sqqd.de – [email protected]

Ziele

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjektZieleGrundlegendePhilosophieVergleich GeneSEZ -UML 2.0BestandteileAktuell: Release 1.7

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 10 / 19

• Grafisch Modellieren

• Automatisch vom Abstrakten zum Konkreten

• Kluges Generieren statt stupides Coden

• MDSD mit wenig Aufwand in 10 Minuten

• Offene, simple Generator-Plattform

• Programmierer als Anwender im Fokus

• Unterstützung agiler Entwicklung

Page 11: Programmieren war gestern!

www.sqqd.de – [email protected]

Grundlegende Philosophie

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjektZieleGrundlegendePhilosophieVergleich GeneSEZ -UML 2.0BestandteileAktuell: Release 1.7

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 11 / 19

• Modell immer abstrakter als Code

• Code durch Modelltransformationen erzeugt

• Code nicht zwangsläufig Programmiersprache

• Minimales, stark optimiertes Metamodell

• Umfangreiche API zum Handling des Metamodells

Page 12: Programmieren war gestern!

www.sqqd.de – [email protected]

Vergleich GeneSEZ - UML 2.0

Programmieren war gestern! 12.03.2010 – 12 / 19

Metamodell Activities(7 Packages zzgl. 40 Aktionen)

Metamodell Activities(4 Klassen zzgl. 4 benutzte Klasse)

Page 13: Programmieren war gestern!

www.sqqd.de – [email protected]

Bestandteile

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjektZieleGrundlegendePhilosophieVergleich GeneSEZ -UML 2.0BestandteileAktuell: Release 1.7

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 13 / 19

• Adapter für Modellierungssprachen

• Modellvalidierungen

• Transformationen von Modellen

• Modellmodifikationen

• Unterstützung für mehrere Plattformen

• Vorkonfigurierte Workflows

• Logging und Tracing des Generierungsprozesses

Page 14: Programmieren war gestern!

www.sqqd.de – [email protected]

Aktuell: Release 1.7

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjektZieleGrundlegendePhilosophieVergleich GeneSEZ -UML 2.0BestandteileAktuell: Release 1.7

GeneSEZ nutzen

Finale

Programmieren war gestern! 12.03.2010 – 14 / 19

• Metamodell erweitert um Zustandsautomaten undAktivitäten

• Neues Metamodell für Testgenerierung

• Unterstützung für diverse Plattformen

– Java: CLDC, EJB3, Hibernate, SEAM, JPA, JWS

– .NET: C#

– PHP: PHP 5, PHP 5.3, PEAR Packages, Doctrine

– Entwicklung: QF-Test, Selenium, PostgreSQL

Page 15: Programmieren war gestern!

www.sqqd.de – [email protected]

GeneSEZ nutzen

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjekt

GeneSEZ nutzenHandgeschriebenerCode

Finale

Programmieren war gestern! 12.03.2010 – 15 / 19

Page 16: Programmieren war gestern!

www.sqqd.de – [email protected]

Handgeschriebener Code

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjekt

GeneSEZ nutzenHandgeschriebenerCode

Finale

Programmieren war gestern! 12.03.2010 – 16 / 19

• Bleibt in jedem Fall erhalten!

• Protected Regions

• Beliebig in Templates platzierbar

• Erkennung anhand GUID der Modellelemente

• Sogar Umbenennen wird möglich

Page 17: Programmieren war gestern!

www.sqqd.de – [email protected]

Finale

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjekt

GeneSEZ nutzen

FinaleGeneSEZausprobieren!

Programmieren war gestern! 12.03.2010 – 17 / 19

Page 18: Programmieren war gestern!

www.sqqd.de – [email protected]

GeneSEZ ausprobieren!

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjekt

GeneSEZ nutzen

FinaleGeneSEZausprobieren!

Programmieren war gestern! 12.03.2010 – 18 / 19

• Informieren: http://www.genesez.de

• Herunterladen: http://download.genesez.de/

• Handbuch lesen: http://manual.genesez.de/html/

• Kontakt: [email protected]

• ...oder hier auf den Chemnitzer Linux-Tagen

Page 19: Programmieren war gestern!

www.sqqd.de – [email protected]

Fragen?

Übersicht

Wie bitte?Modellgetrieben?

Das GeneSEZProjekt

GeneSEZ nutzen

FinaleGeneSEZausprobieren!

Programmieren war gestern! 12.03.2010 – 19 / 19

Danke für die Aufmerksamkeit!Viel Spaß noch!