Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012



Ähnliche Dokumente
Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg

Model Driven Development im Überblick

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Der Kopf ist rund, damit das Denken die Richtung

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Modellgetriebene Softwareentwicklung. 31. Januar 2013

Generative Prozessmodelle Patrick Otto MDD Konferenz

Xesar. Die vielfältige Sicherheitslösung

Vortrag von: Ilias Agorakis & Robert Roginer

Statuten in leichter Sprache

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Professionelle Seminare im Bereich MS-Office

SEA. Modellgetriebene Softwareentwicklung in der BA

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Software-Praktikum. Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2013

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

Konzentration auf das. Wesentliche.

Erläuterungen zur Untervergabe von Instandhaltungsfunktionen

Usecase Meta Model Comparison and Model Migration. Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig,

Ein hierarchischer, modellgetriebener Ansatz zur Codegenerierung. R. Gitzel, M. Schwind

Kapitel 10: Dokumentation

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Generatives Programmieren

Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Elternzeit Was ist das?

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Software Factories SS Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

Neue Arbeitswelten Bürokultur der Zukunft

Info-Veranstaltung zur Erstellung von Zertifikaten

Fotoprotokoll / Zusammenfassung. des Seminars Methodik der Gesprächsführung und Coaching. Vertriebs- & Management - Training

INNOVATOR im Entwicklungsprozess

Regulatorische Anforderungen an die Entwicklung von Medizinprodukten

Kontakte knüpfen und pflegen, Themen gemeinsam Diskutieren, Termine bekannt geben, oder die. ideal dazu, also sollten wir es auch nutzen!

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi

Erfolg ist programmierbar.

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

PhoToPlan 6.0 Was ist neu?

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Kulturelle Evolution 12

So versprüht man digitalen Lockstoff

Konzepte der Informatik


Der Kunde zahlt die Gehälter.

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Anleitung über den Umgang mit Schildern

Modulbauten von Losberger für die Kfz-Branche

Mehr Transparenz für optimalen Durchblick. Mit dem TÜV Rheinland Prüfzeichen.

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Mobile Intranet in Unternehmen

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Das Werk einschließlich aller seiner Texte ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechts

Referenz-Konfiguration für IP Office Server. IP Office 8.1

Vorratsgesellschaften Der schnelle Weg zum eigenen Unternehmen interna

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Business-Rule-Management als Instrument des Software-Reengineering

Was ist Sozial-Raum-Orientierung?

Grundlagen Software Engineering

Eine Anwendung mit InstantRails 1.7

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Was meinen die Leute eigentlich mit: Grexit?

ratgeber Urlaub - Dein gutes Recht

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Haben Sie über elektronisches Schließfachmanagement nachgedacht? Ein Schließfach ist ohne ein solides Schloss nicht komplett.

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Kurzfassung der Studienarbeit

Installation OMNIKEY 3121 USB

Projekt- Management. Landesverband der Mütterzentren NRW. oder warum Horst bei uns Helga heißt

Ausbildung zum/zur Lebens- und Sozialberater/in

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Info zum Zusammenhang von Auflösung und Genauigkeit

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Erfolg ist programmierbar.

Rundung und Casting von Zahlen

Objektorientierte Programmierung

Model Driven Architecture Praxisbeispiel

Ein mobiler Electronic Program Guide

Behindert ist, wer behindert wird

Was ist das Budget für Arbeit?

Silca Software ERKLÄRUNG. February 2013 Copyright Silca S.p.A. V.2.0

Deutliche Mehrheit der Bevölkerung für aktive Sterbehilfe

MARKUS WASER THE POWER IS IN YOU FACT SHEET IHR WEG ZUM PERSÖNLICHEN ERFOLG

Thorsten Sett-Weigel Berlin, den 28. März 2012 Finowstraße Berlin

Umfrage: Ihre Erwartungen, Ihr Bedarf und der aktuelle Einsatz von Informationstechnologie (IT) in Ihrem Unternehmen

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

Transkript:

Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012

Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene Anwendungsentwicklung Welche Voraussetzungen müssen für die modellgetriebene Entwicklung von Anwendungssoftware erfüllt sein? Wann lohnt sich die Entwicklung einer Infrastruktur für modellgetriebenes Entwickeln in einer Domäne? Meinungen über modellgetriebene SW-Entwicklung Taentzer Modellgetriebene Softwareentwicklung 39

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 Taentzer Modellgetriebene Softwareentwicklung 40

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. Taentzer Modellgetriebene Softwareentwicklung 41

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, Taentzer Modellgetriebene Softwareentwicklung 42

Iterative Softwareentwicklung Vorbereitung Nachbereitung Analyse (Anforderungsmodell) Test (Evaluierung) Design (Lösungsmodell) visuell MDD Implementierung (Lösung) textuell Taentzer Modellgetriebene Softwareentwicklung 43

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) Computer Independent Model M2M Plattform Independent Model M2M Plattform Plattform Specific Specific Model Model M2C Plattform Taentzer Modellgetriebene Softwareentwicklung 44

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. Taentzer Modellgetriebene Softwareentwicklung 45

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

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 Taentzer Modellgetriebene Softwareentwicklung 47

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. Taentzer Modellgetriebene Softwareentwicklung 48

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 Taentzer Modellgetriebene Softwareentwicklung 49

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 Taentzer Modellgetriebene Softwareentwicklung 50

Analyse von Applikationscode Code einer Referenzanwendung analysieren individueller Code schematisch wiederkehrender Code separieren generischer Code Anwendungsmodell individueller Code schematisch wiederkehrender Code Plattform Taentzer Modellgetriebene Softwareentwicklung 51

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 Taentzer Modellgetriebene Softwareentwicklung 52

Generative Softwareentwicklung Applikation Domänenspezif. Design-Modell transformiert in Infrastruktur-Code modelliert mit Generator MDD-Infrastruktur Domänenspezifische Modellierungssprache Generator Templates (Modell-zu-Code Tr. ) Anwendungsspez.- Code Infrastrukturkomponenten (Plattform) Taentzer Modellgetriebene Softwareentwicklung 53

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. Taentzer Modellgetriebene Softwareentwicklung 54

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. Taentzer Modellgetriebene Softwareentwicklung 55

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. Taentzer Modellgetriebene Softwareentwicklung 56

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. Taentzer Modellgetriebene Softwareentwicklung 57

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 Taentzer Modellgetriebene Softwareentwicklung 58