einführung in modellgetriebene softwareentwicklungswt/ws12/mdd/files/folien… · die mda-idee von...

21
Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012

Upload: others

Post on 03-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Einführung in modellgetriebene Softwareentwicklung

24. Oktober 2012

Page 2: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 39

Überblick Was sind die Grundprinzipien der modellgetriebenen

Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene Anwendungsentwicklung

Welche Voraussetzungen müssen für die modellgetriebene Entwicklung von Anwendungs-software erfüllt sein?

Wann lohnt sich die Entwicklung einer Infrastruktur für modellgetriebenes Entwickeln in einer Domäne?

Meinungen über modellgetriebene SW-Entwicklung

Page 3: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 40

Rollen in der modellgetriebenen Softwareentwicklung

Werkzeugentwickler entwickelt eine MDD-Infrastruktur:

Modellierungssprache Werkzeuge, wie z.B. Editor, Generator, etc.

hat im Wesentlichen Technologiewissen

Anwendungsentwickler nutzt eine MDD-Infrastruktur entwickelt eine konkrete Applikation mit dieser Infrastruktur hat im Wesentlichen Domänenwissen

Page 4: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 41

Was kann modellgetriebene Entwicklung von Anwendungssoftware leisten?

verkürzte Entwicklungszeiten weniger technisches Wissen leichtere Umstellung auf neue Technologien stärkere Entkoppelung von Anwendungswissen und

Technologiewissen Kohärenz von Modell und Code wohldefinierte Softwarearchitektur, besserer Code

... Voraussetzung: eine existierende MDD-Infrastruktur, die …es erlaubt, große Teile der Anwendung modellgetrieben zu

entwickeln …. flexibel genug für eventuelle Anwendungserweiterungen ist.

Page 5: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 42

Wann sollten Anwendungsentwickler eine MDD-Infrastruktur benutzen?

adäquate Modellierungssprache vorhanden genügend Domänenwissen behandelt ein genügend ausgereifter Codegenerator vorhanden

ideal: ausgereifte Frameworks mit standardisierter Benutzung vorhanden

Referenzanwendungen zum Vergleich vorhanden Entwicklungsumgebung zur modellgetriebenen

Softwareentwicklung vorhanden Editoren für die Modellierungssprache, Generator,

Debugger, Versionsverwaltung,…

Page 6: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 43

Iterative Softwareentwicklung

Design(Lösungsmodell)

Implementierung(Lösung)

Analyse(Anforderungsmodell)

Test(Evaluierung)

Vorbereitung Nachbereitung

MDDvisuell textuell

Page 7: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 44

Die MDA-Idee

von der Object Management Group (OMG) entwickelt

Motto: „Model once, run anywhere.“

Mögliche Zielplattformen: CORBA /C++ J2EE / Java XML

Beziehungen zwischen Modellen: Modell-zu-Modell-Tr. (M2M) Modell-zu-Code-Tr. (M2C)

ComputerIndependent Model

PlattformIndependent Model

PlattformSpecific Model

PlattformSpecific Model

Plattform

M2M

M2M

M2C

Page 8: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 45

Beispiel für eine MDD-Infrastruktur: AndroMDA für Webanwendungen

Domäne: Datenintensive Anwendungen, speziell Webanwendungen

Modellierungssprache: UML mit domänenspezifischen Erweiterungen

Modelle enthalten Domänenwissen über Datenstrukturen, Services, Web-Oberfläche

Codegenerator enthält Wissen über die Benutzung unterliegender Plattformen (z.B. OO-

Konzepte, OR-Mapping, etc) Architektur von Web-Anwendungen

Frameworks und Bibliotheken: Java-Plattform: Hibernate, Spring, Struts, etc. .NET-Plattform: C#, NHibernate, ASP, etc.

Page 9: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Wann lohnt es sich MDD-Infrastrukturen zu entwickeln?

Viele ähnliche Anwendungen in derselben Domäne Anwendungen enthalten einen großen Teil von schematisch

wiederkehrendem Code. Es ist zu erwarten, dass die Anwendung auf eine höhere

Abstraktionsebene gehoben werden kann. Domänenspezifische Modellierungssprache ist vorhanden oder

lässt sich aus vorhandenen Anwendungen ableiten. Technologieänderungen sind wahrscheinlich. Optional: Anwendungsentwickler verfügen über begrenztes

Technologiewissen.

Taentzer Modellgetriebene Softwareentwicklung 46

Page 10: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 47

Entwicklung einer MDD-Infrastruktur

Voraussetzung: Meta-Infrastruktur Definitionsmöglichkeit für die Modellierungssprache:

Metamodellierung Definitionsmöglichkeit für die Generatoren: Template-

Sprachen Frameworks für (verschiedene) Plattformen

Definition der Modellierungssprache: Domänenanalyse: Welche syntaktischen Elemente?

Definition der Generatoren: Domänenanalyse: Welche Semantiken?

Weitere MDD-Infrastrukturkomponenten

Page 11: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 48

Beispiel für eine MDD-Infrastruktur: AndroMDA

Domäne: Datenintensive Anwendungen, speziell Webanwendungen

Modellierungssprache: UML mit domänenspezifischen Erweiterungen

Syntaxdefinition der Modellierungssprache: Metamodellierung, speziell Meta Object Facilities (MOF)

Semantikdefinition durch Codegenerierung: Template-Sprache: Velocity Frameworks und Bibliotheken:

Java-Plattform: Hibernate, Spring, Struts, etc. .NET-Plattform: C#, NHibernate, ASP, etc.

Page 12: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 49

Entwicklung einer MDD-Infrastruktur anhand einer Referenzapplikation

Zweigleisige Softwareentwicklung: eine konkrete Applikation MDD-Infrastruktur für die Entwicklung von Softwarefamilien

MDD-Infrastruktur: Modellierungssprache (Metamodell, konkrete Syntax) Generator Zielplattformen

„Henne-oder-Ei“-Problem Infrastruktur und Applikation werden verschränkt entwickelt

Page 13: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 50

MDD-Infrastruktur- Entwicklungsprozess Iterative Softwareentwicklung verschränkte Entwicklung einzelner Applikationen und der MDD-

Infrastruktur Entwicklung von ein oder mehreren konkreten Applikationen ohne MDD Bestimmung allgemeiner und spezifischer Anforderungen Entwicklung der MDD-Infrastruktur Entwicklung derselben Applikationen mit der MDD-Infrastruktur

Analyse des Applikationscodes generischer Code (für alle Applikationen gleich) schematisch wiederkehrender Code ( bis auf wenige Information gleiche

Codeteile) individueller Code (anwendungsspezifischer Teil)

MDD generiert schematische Codeteile aus dem Applikationsmodell

Page 14: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 51

Analyse von Applikationscode

Code einer Referenzanwendung

schematischwiederkehrenderCode

individueller Code

generischer Code

Anwendungs-modell

schematischwiederkehrenderCode

individueller Code

Plattform

analysieren separieren

Page 15: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 52

Welche MDD-Infrastruktur wird extrahiert?

Für eine generative Softwareentwicklung wird von einer oder mehreren Applikationen extrahiert: Metamodell für domänenspezifische

Modellierungssprache Modelltransformationen:

Transformationen zu Zwischenmodellen Generatoren: Model-zu-Code-Transformer

Templates definieren Codefragmente aus der Applikation Benutzung von Plattformen

Page 16: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 53

Generative Softwareentwicklung

Applikation MDD-Infrastruktur

Generator

Domänenspezif.Design-Modell

Anwendungsspez.-Code

Infrastruktur-Code

DomänenspezifischeModellierungssprache

Generator Templates(Modell-zu-Code Tr. )

Infrastrukturkomponenten(Plattform)

modelliert mit

transformiert in

Page 17: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 54

Meinungen über MDD

„Mit MDD kann man schneller Software entwickeln.“ wenn die passende MDD-Infrastruktur vorhanden ist

„Modellgetrieben entwickelte Software ist qualitativ besser.“ Qualität hängt vom Generator und den unterliegenden

Plattformen ab. Er muss mit genügend Technologiewissen entwickelt worden sein.

Für die Anwendungsentwicklung muss genügend Domänenwissen vorhanden sein.

Page 18: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 55

Meinungen über MDD

„Mit MDD kann Software auch ohne oder mit nur geringen Programmierkenntnissen erstellt werden.“ Die domänenspezifische Modellierungssprache muss

beherrscht werden. Der generierte Code kann ohne Programmierkenntnisse

nicht mehr erweitert werden.

„MDD ist für große Projekte nicht einsetzbar.“ Es gibt bisher wenige Referenzen. Es spricht prinzipiell nichts dagegen.

Page 19: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 56

Meinungen über MDD „MDD wird in vielen Firmen nicht eingesetzt, weil die

Entwickler keine oder nur geringe Kenntnisse im Modellieren haben.“ Die domänenspezifische Modellierungssprache muss erlernt

werden.

„MDD macht die SW-Entwicklung nicht leichter. Es werden nur andere Sprachen benutzt.“ Domänenspezifische Modelle sind technologieunabhängiger. Ein Modell ist viel kompakter als der entsprechende Code. Viele Detaillösungen werden standardmäßig generiert. Es ist weniger plattformspezifisches Wissen nötig.

Page 20: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 57

Meinungen über MDD

„MDD läßt sich real nicht einsetzen, weil es keine adäquaten Entwicklungsumgebungen gibt.“ Die MDD-Infrastruktur muss zu einer umfassenden

Entwicklungsumgebung ausgebaut werden.

„MDD hilft nicht wirklich. Es ist genauso schwierig, gute Modelle zu entwickeln wie gute Programme zu schreiben.“ Der Generator enthält Technologiewissen, das nicht im

Modell steht, also vom Applikationswissen getrennt ist. Aber: Modellieren ist wie Programmieren ein kreativer Akt.

Page 21: Einführung in modellgetriebene Softwareentwicklungswt/ws12/mdd/files/Folien… · Die MDA-Idee von der Object Management Group (OMG) entwickelt Motto: „Model once, run anywhere.“

Taentzer Modellgetriebene Softwareentwicklung 58

Zusammenfassung Modellgetriebene Entwicklung bedeutet zweierlei:

Entwicklung einer MDD-Infrastruktur Entwicklung einer Anwendung mit der MDD-Infrastruktur

Entwicklung einer MDD-Infrastruktur: Entwicklung von Referenzapplikationen Analyse des Applikationscodes:

Separierung in generischen, schematisch wiederkehrenden und individuellen Code

Definition einer Modellierungssprache Definition von Generatoren