Modell Driven Software Development (MDSD)



Ähnliche Dokumente
Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Vortrag von: Ilias Agorakis & Robert Roginer

Model Driven Architecture (MDA)

Model Driven Development im Überblick

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Model Driven Architecture

Model Driven Architecture Praxisbeispiel

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Einführung in Generatives Programmieren. Bastian Molkenthin

Generatives Programmieren

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Inhalt. Motivation Techniken des MDE. Fallbeispiele

INNOVATOR im Entwicklungsprozess

A Domain Specific Language for Project Execution Models

Systemdenken und Gestaltungsmethodik System-Modellierung

Andreas Lux Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

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

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

SEA. Modellgetriebene Softwareentwicklung in der BA

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Robot Karol für Delphi

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Übungsklausur vom 7. Dez. 2007

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München,

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

3. GLIEDERUNG. Aufgabe:

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Informatik 12 Datenbanken SQL-Einführung

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Model Driven Architecture

Modellgetriebene Service-Entwicklung

Guide DynDNS und Portforwarding

Christian Kühnel, BMW Group AGILE ENTWICKLUNG VON FAHRERASSISTENZSOFTWARE. AGILE CARS 2014.

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

b+m Informatik AG Langlebige und zukunftsfähige modellgetriebene Softwaresysteme? Thomas Stahl b+m Informatik AG

Anforderungen an die HIS

Comparing Software Factories and Software Product Lines

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Modellbasierte Softwareentwicklung

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

Product Line Engineering (PLE)

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Software Systems Engineering

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Microsoft Access 2013 Navigationsformular (Musterlösung)

Dokumentation von Ük Modul 302

Print2CAD 2017, 8th Generation. Netzwerkversionen

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Übungen zur Softwaretechnik

Handbuch zum Excel Formular Editor

AMS Alarm Management System

Content Management System mit INTREXX 2002.

Thema: Personenkonstellation

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Projektmanagementsoftware: Standard vs. Individual

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Reporting Services und SharePoint 2010 Teil 1

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Benutzung der LS-Miniscanner

Datenübernahme easyjob 3.0 zu easyjob 4.0

Kurzanleitung zu. von Daniel Jettka

Keine Disketteneinreichung ab 1. Februar 2014

Turtle Charts mit der ViFlow Turtle Schablone (VTS) erstellen

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Traceability-Modell als Erfolgsfaktor für Process Enactment. Paul-Roux Wentzel, SEE 2008

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

XT Großhandelsangebote

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

Model-Driven Development in Scrum-Projekten

16 Architekturentwurf Einführung und Überblick

MetaQuotes Empfehlungen zum Gebrauch von

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Computeria Solothurn

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Summenbildung in Bauteiltabellen mit If Then Abfrage

Liebe Eltern, Alles weitere zum MensaMax -Programm sehen Sie in der folgenden Anleitung. Die Gemeinschaftsschule am Federsee

Microsoft SharePoint 2013 Designer

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

paluno Software & CPS Matthias Book Innovationsworkshop Horizon 2020 ICT

Transkript:

Modell Driven Software Development (MDSD) Eine Einführung Uni Jena, 2013-04-08

Modelle in der Softwareentwicklung schon lange benutzt Analysemodelle, Entwurfsmodelle, Verhaltensmodelle, Prozessmodelle, Structure Charts, State Machines, Flow Charts, E/R-Modelle, Architekturmodelle, Interaktionsmodelle, Zunehmende Verbreitung von Modellen seit UML Unterscheidung Modellbasierte Softwareentwicklung Modellgetriebene Softwareentwicklung Softwareentwicklung mit Modellen Modelle in der Softwareentwicklung 2

Dabei geht es in der Regel um Entwurf und Dokumentation von Softwaresystemen Umsetzung des Modells ist ein kreativer Akt der Überwindung von Abstraktionsstufen Lediglich gedankliche Verbindung zwischen Modell und Implementierung Es müssen konkrete (technische) Ausprägungen für ein abstraktes Modell gefunden werden (z.b. technische Klassen ) Modellbasierte Softwareentwicklung Modell Code Interpretation Anreicherung 3

Modellbasierte Softwareentwicklung Nachteile modellbasierter Entwicklung Da Softwaresysteme sich dynamisch entwickeln, müssen die Modelle mit großem Aufwand aktuell gehalten werden I.d.R. sind Softwaresystem und Modelle inkonsistent, spätestens nach einiger Zeit Modelle spezifizieren Softwaresysteme nur teilweise und müssen durch kreative Interpretation von Programmierern in Code umgesetzt werden Werden von Entwicklern deshalb oft nur als Zwischenergebnis gesehen (nicht ganz zu unrecht), wenn nicht gar als Overhead Modell Interpretation Anreicherung Code 4

Modellgetriebene Softwareentwicklung (MDSD Model Driven Software Development) Modelle sind gleichzusetzen mit Programmcode Aus den Modellen wird automatisch Code generiert Modelle und Generatoren müssen also alle notwendigen Details enthalten Trennung zwischen Modelle die fachlichen Entscheidungen Generatoren die technische Umsetzung Modelle beziehen sich also immer auf einen bestimmten Fachbereich Domäne Domänenspezifische Sprache (DSL) Domänenspezifische Abstraktion des fachlichen Bereiches finden Fachbereich so der formalen Modellierung zugänglich machen Modell Automatische Generierung Code 5

Hohes Automatisierungspotential bei der Softwareentwicklung Automatische Codegenerierung Produktivitätssteigerung Modelländerungen werden schnell (automatisch) in Code umgesetzt Hohe Qualität in der Softwareentwicklung Keine Fehler in handgeschriebenem Code Fehler in Generatoren müssen nur einmal gefixt werden Bessere Wartbarkeit Modelle immer synchron mit Code Trennung von fachlichen und technischen Aspekten Modellgetriebene Softwareentwicklung Vorteile 6

Effektivere Entwicklung/Modellierung auf abstrahiertem Niveau Domänespezifische Modelle für Fachexperten besser verständlich, da befreit von technischem Ballast Einführung von MDSD ist ein bedeutender Evolutionsschritt ähnlich dem Übergang von Assembler-Programmierung zu Hochsprachen Modellgetriebene Softwareentwicklung Vorteile 7

Domänenspezifische Sprachen (DSL), zur Formulierung von Modellen Textuell Graphisch Beliebige andere für Fachmodellierer geeignete Formate (z.b. bis hin zu Excel) Generatoren zur Abbildung von Modell auf Programmcode Modell Code Auch Modell Modell Code (schrittweises Absteigen der Abstraktionsebenen) Auch plattformspezifische Generatoren zur Unterstützung unterschiedlicher Laufzeitumgebungen möglich Meist Erzeugung von Quellcode in einer Programmiersprache der dann compiliert wird Modellgetriebene Softwareentwicklung Wesentliche Bestandteile 8

CASE Computer Aided Software Engineering Softwareerstellung mit Hilfe von integrierten Tools, mächtigen Wizards & Vorlagen Integrierte Entwicklungsumgebungen Unterstützung des Entwicklungsprozesses / Life-Cycles Weitgehend vorgegebene Werkzeugkette und Abläufe 4GL 4th Generation Languages Programmiersprachen mit mächtigen Konstrukten Reduzierung der Code-Menge Ausrichtung auf speziellen Anwendungsbereich Rückblick 9

Table-driven (codeless) Programming: z.b. GUI-Developer mit Property-Tables Report-/Formular-Generatoren Haben sich nicht durchgesetzt Proprietäre, teure Werkzeuge Wurden von standardisierter OO-Modellierung mit UML verdrängt Rückblick 10

UML und IDEs UML Standardisierte Modellierungssprache(n) Unterstützung von Analyse, Design bis Inplementierung Integration in IDEs (Integrated Development Environments) Automatisierung durch Round-Trip-Fähigkeiten Konsistenz zwischen Modellen und Code Aber Modell und Code liegen auf gleicher Abstraktionsebene Damit ist das Modell nur eine Darstellung des Codes Modell Code hübscher graphisch übersichtlicher bei kleinen Modellen (Achtung: Tapeten mit Auto-Layout!!!) Nett zur technischen Dokumentation, nicht für Fach-Dokumentation 11

Definition MDSD Modellgetriebene Softwareentwicklung ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen. [Stahl, Völter, Efftinge und Haase: Modellgetriebene Softwareentwicklung, dpunkt, 2007] Formale Modelle Beschränkung auf relevante Aspekte der zu erstellenden Software Vollständige Beschreibung, so daß die Informationen zur Erstellung der Anwendung ausreichen Verschiedene Formalismen möglich UML, textuelle DSLs, graphische DSLs, Excel, Erzeugung lauffähiger Software Nicht nur Dokumentationsmodelle, keine manuelle Implementation der Modelle Generieren von lauffähigem Code in einer Programmiersprache Interpretation von Modellen und Ausführen entsprechender Aktionen 12

Definition MDSD Modellgetriebene Softwareentwicklung ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen. Automatisierung Maschinelle Transformation [Stahl, Völter, Efftinge und Haase: Modellgetriebene Softwareentwicklung, dpunkt, 2007] kein manueller Eingriff, keine menschliche Interpretation kein intelligentes, kreatives Ausfüllen von Lücken Wiederholbarkeit der Transformation Keine Wizards, die einmalig ausgeführt werden Keine nachträglichen Änderungen/Weiterentwicklungen am produzierten Code (Konsistenz von Modell und Code) Modelle sind der neue Programmcode! I.d.R. wird es Programmteile geben, die weiterhin programmiert werden Plattformcode (allgemeine, nicht veränderliche Basisfunktionalität) nicht verallgemeinerbare, spezielle Algorithmen (nicht sinnvoll abstrahierbar) Diese Teile isolieren 13

Verbesserung der Softwarequalität Wiederverwendbarkeit Steigerung der Entwicklungseffizienz Initiale Entwicklung Wartung, Weiterentwicklung Befreiung der Entwickler von lästiger, fehleranfälliger Routinearbeit Beherrschung komplexer Infrastrukturen (Datenbanken, Application-Server, GUI-Frameworks, Protokolle, Schnittstellentechnologien, ) Erzeugung performanter, robuster und wartbarer Anwendungen Gründe für MDSD Allgemein 14

Entwickeln auf höherem Abstraktionsniveau Einheitliche Architektur Entwicklungsgeschwindigkeit Wiederverwendung Interoperabilität und Plattformunabhängigkeit Softwarequalität Gründe für MDSD Speziell (siehe folgende Folien im Detail) 15

Entwickeln auf höherem Abstraktionsniveau Programmieren auf einer höheren Abstraktionsebene Beschreibung mit reichhaltigeren, fachorientierten Konstrukten Formular und Feld statt Window, Widget, Klasse, Tabelle, Spalte Aufteilung der Gesamtkomplexität Komplexität im Modell Durch Modellierungselemente und ihre Zusammenhänge es gibt Formulare und Felder mit bestimmten Eigenschaften ein Formular kann Felder haben Komplexität in der Generierung Durch Abbildung der Modellierungselemente auf ihre Implemetierung Formulare und Felder werden abgebildet auf Oberflächen-Elemente: Windows, Widgets Verarbeitungs-Elemente: Klassen, Attribute, Methoden Speicherungs-Elemente: Tabellen, Spalten 16

Entwickeln auf höherem Abstraktionsniveau Programmieren auf einer höheren Abstraktionsebene Beschreibung mit reichhaltigeren, fachorientierten Konstrukten Formular und Feld statt Window, Widget, Klasse, Tabelle, Spalte Aufteilung der Gesamtkomplexität Komplexität im Modell Durch Modellierungselemente und ihre Zusammenhänge Komplexität in der Generierung Durch Abbildung der Modellierungselemente auf ihre Implementierung Formular Window Klasse Tabelle 1 n 1 n 1 n 1 n 1 n Feld Widget Attribut Attribut Spalte 17

Entwickeln auf höherem Abstraktionsniveau Abstraktion muß nicht immer technisch sein Abstraktion muß nicht immer einstufig sein Modell auf Abstraktionsebene Förderverwaltung Modell auf Abstraktionsebene Formularverarbeitung Programmcode Fachliche Abstraktion Formular Technische Abstraktion Förderantrag Standard- Felder Fachliche Abbildung Standardprüfungen Technische Abbildung Klasse Attribut Methode... 18

Umsetzung des Modellinhalts erfolgt über Generatoren immer einheitlich in der selben Art und Weise Z.B. auf EJBs, POJOs oder WebServices Keine Verwässerung der Architektur durch Differenzen in manuellen Umsetzungen Architektur wird bestimmt durch Elemente, die das Modell erlaubt (Fachliche Architekur) Generierung, die diese Elemente auf technische Konstrukte umsetzt (Technische Architektur) Architektur ist nicht abhängig von Modellinhalt Wird also immer eingehalten Maximal vorgegebene Architekturvarianten durch Auswahl im Modell Einheitliche Architektur 19

Technische Architektur durch Änderung der Generierung veränderbar einheitliche Änderung für alle Anwendungsteile Änderung an einer Stelle konzentriert: Generator Einheitliche Architektur 20

Zeitersparnis beim Eintippen von Quelltexten? Nein Zeit für die Eingabe des Programmcodes ist ohne hin bei nicht-trivialen Projekten verschwindend gering! Nachnutzung existierender Generatoren Nicht bei Individualentwicklungen, da müssen diese ebenfalls entwickelt werden Aber bei Produktfamilien reicht i.d.r. Beschränkung auf Fachmodellierung Selbe Domäne, selbe Architektur, gleiche Zielplattform Entwicklung auf fachlicher Ebene mit höherem Abstraktionsniveau Trennung von fachlicher Modellierung und technischer DSL- und Generatorentwicklung Einbeziehung von Fachexperten in Modellierung, wiederverwendbares formalisiertes Expertenwissen Entwicklungsgeschwindigkeit 21

Wartung und Weiterentwicklung von Systemen Konsistenz von Modell und Code, eingehaltene Architektur Änderungen im besten Fall sehr lokal fachlich: Modell technisch: Generierung Beides: DSL + Modell + Generierung Entwicklungsgeschwindigkeit 22

Technische Wiederverwendung Bei Produktfamilien - Selbe Domäne - Selbe Architektur - Gleiche Zielplattform Nachnutzung der DSL Nachnutzung der Generatoren Fachliche Wiederverwendung Selbes Modell Änderung der Generierung auf eine andere Zielplattform Analog zur Wiederverwendung von Programmcode natürlich auch Verwendung existierender Modelle per Cut-and-Paste Aufteilung von Modellen in wiederverwendbare Komponentenmodelle Bildung von Produktvarianten mit gemeinsamen Komponenten Wiederverwendung 23

Interoperabilität und Plattformunabhängigkeit sind Hauptziele der Model Driven Architecture (MDA), definiert von der Object Management Group (OMG) Aus selbem Modell Codegenerierung für unterschiedliche Zielumgebungen, z.b. JavaEE und.net Per Standardisierung von Modellen UML-Fokusierung Modelhierarchien/Transformationsstufen: PIM (Platform Independent Model) PSM (Platform Specific Model) PDM (Platform Definition Model) Insofern ist MDA eine spezielle Ausprägung von MDSD Interoperabilität und Plattformunabhängigkeit 24

Oft ist ein 100% automatisches Umschalten auf eine neue Plattform nicht möglich, da Auswirkungen auf das Modell bestehen Aber der Umstieg wird unterstützt, durch Trennung von fachlichen und technischen Aspekten Und gleichzeitige Unterstützung bekannter Plattformen bei Berücksichtigung in Modell und Generierungen ist möglich Interoperabilität und Plattformunabhängigkeit 25

Einheitliche Architektur kann garantiert werden Durch Generierung ist die Qualität der technischen Funktionalität garantierbar können Fehler in Routine-Code vermieden werden treten Fehler im Generator nach Beseitigung an keiner weiteren Stelle mehr auf Können Fehler auf unterstem technischen Niveau (Segementation Fault) vermieden werden Es ist vermeidbar, daß die Anwendung unhaltbar abstützt, einfriert etc. Fehler können sinnvoll zum Nutzer durchgereicht werden Es kann gesichert werden, daß der Nutzer mit der Fehlfunktion etwas anfangen kann und daß ein Fachbezug des Fehlers besteht Fachliche Fehler, fachliches Chaos lassen sich natürlich nicht ausschließen Softwarequalität 26

MDSD-Beispiel Modell im DSL-Editor 27

MDSD-Beispiel Generierter Code 28

MDSD-Beispiel Generierte Anwendung 29

MDSD-Beispiel Manuelle Erweiterung 30

Unterschiede und Vorteile von MDSD im Vergleich zum klassischen Vorgehen Einheitliche Architektur durch Generierung Fachliche Modellierung in einer DSL mit erhöhtem Abstraktionsgrad Trennung von fachlichen und technischen Aspekten, Kapselung der technischen Plattform-Details in der Generierung Wichtige Teile für MDSD DSL zur Formalisierung der grundlegenden Fachkonstrukte und konkreten Fachinhalte Generator zur Abbildung auf technische Laufzeitplattform Fazit 31