Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7.

Ähnliche Dokumente
Themen. Software Design and Quality Group Institute for Program Structures and Data Organization

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

A Domain Specific Language for Project Execution Models

Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI

DSLs mit Xtext entwerfen , A. Arnold

Master Projekt SoSe Computergestützte Generierung und Validierung von Softwaremodellen. Rene Meis Nazila Gol Mohammadi Prof. Dr.

Herausforderung: Entwicklungsmethodik und technisches Umfeld

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

Model Driven Architecture Praxisbeispiel

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Forschungsprojekt SS 2009

Einführung in Generatives Programmieren. Bastian Molkenthin

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

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

Comparing Software Factories and Software Product Lines

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

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

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

Innovator Anbindung an openarchitectureware. Connect. Klaus Weber.

Model-Driven Software Engineering (HS 2011)

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

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

DSL Entwicklung und Modellierung

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle

Software Engineering II

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

Model Driven Development im Überblick

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer

Modellbasierte Softwareentwicklung

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

Modellgetriebene Service-Entwicklung

INNOVATOR im Entwicklungsprozess

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by

Model Driven Architecture (MDA)

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

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

Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren

Modellierung & Domänen Spezifische Sprachen (DSL)

Datenhaltung für Android Model First Christian Ingenhaag, Frederik Götz, Carl Steeg

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten

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

Vortrag von: Ilias Agorakis & Robert Roginer

Graphischer Editor für die technologieunabhängige User Interface Modellierung

Michael Piechotta - CASE Tools. openarchitecture Ware

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

Analyse und Toolevaluierung

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt

Generatives Programmieren

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

Problemseminar ModelDrivenSoftwareDevelopment

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

WIRTSCHAFTSINFORMATIK

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

BDI-Agenten für agile zielorientierte Geschäftsprozesse

WhiteStarUML Tutorial

Einführung in die Modellierung

Alexander Delater, Barbara Paech RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG

OpenProposal: Anwendervorschlägen für. 27. November 2008 WIR FORSCHEN FÜR SIE. Asarnusch Rashid Herbert Schäfler FZI Forschungszentrum

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

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

EMF-GMF-Tutorial: Petrinet

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Jochen Bauer

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Kurzfassung der Studienarbeit

Praktikum Software Engineering: Verfahren und Werkzeuge

Viele gute Stellen sind frei. Besetzen Sie eine.

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

Schenkel Personal Partner

Content Management System mit INTREXX 2002.

Werkzeuge einer MDSD Entwicklungsumgebung für große Softwareproduktlinien Teil 2: Realisierung. itemis AG 2010 All rights reserved

Vom Konzept direkt ins Cockpit: Optimierte HMI-Entwicklung mittels automatischer Codegenerierung

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

AGILES Software Engineering in der COUNT IT. Testautomatisierung in der agilen Softwareentwicklung

Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik

Sehr geehrte Faktor-IPS Anwender,

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Remote Eclipse RCP Management

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

Übung: Verwendung von Java-Threads

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

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

Software Engineering in

Application Requirements Engineering

Rhapsody in J Modellierung von Echtzeitsystemen

Die Eclipse Rich Client Platform. Martin Lippert Consultant und Coach

Toolgestützte Prozessdokumentation. Prozessorientiertes E-Government, Joel Meir,

WLGauge: : Web Link Gauge to Measure the Quality of External WWW Links. Andreas Lübcke

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann

Erfolg ist programmierbar.

CellMicrocosmos v2.1 -The Revision-

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

Die Entwicklung des Open-Source. Source-Tools. zum Datenbankabgleich von Karsten Panier. Inhalt

Transkript:

Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7. July, 2009 WIR FORSCHEN FÜR SIE Dr.-Ing. Steffen Becker sbecker@fzi.de Abteilungsleiter Software Engineering FZI Forschungszentrum Informatik

Problemstellung Definition einer Modellierungssprache <<Server>> Mediastore Server IWeb IMediaStore IDatabase MediaStore WebUI Database IWatermarking IEncoder Digital MP3Encoder Watermarking Modellierung von komponentenbasierten Software- Architekturen Annotation mit Qualitätsattributen Statik, Dynamik und Allokation abbildbar Semantisch reicher als UML Modellanalysen Performance-Vorhersagen Zuverlässigkeitsvorhersagen Kostenschätzungen Wartbarkeitsanalysen 2

Problemstellung II <<Server>> Mediastore Server IWeb IMediaStore IDatabase WebUI MediaStore Database IWatermarking IEncoder Digital MP3Encoder Watermarking Codegenerierung Code-Skelette aus Modell zur Validierung Prototypen aus Modell Java C / C++ <<Server>> Mediastore Server IWeb IMediaStore IDatabase Modellgewinnung WebUI MediaStore Database Digital Watermarking IWatermarking MP3Encoder IEncoder Java C / C++ Erstellung von Modellen aus Altanwendungen Gewinnung von Annotationen aus laufenden Systemen 3

Erster Versuch Klassischer Ansatz in.net 1. 2. 3. OO-Entwurf des Modells Realisierung in C# Editor implementieren GUI Entwurf COM Komponenten Recovery Parser und Analyser Entwurf für C# Code 4

Kritische Faktoren Hohe Änderungsrate am OO-Modell Implementierung schnell veraltet Serialisierung fehleranfällig trotz Mustereinsatz Tests oft nicht schnell genug anpassbar GUI-Editor Realisierung Extrem fehleranfällig trotz MVC oder PAC Muster und ausgiebigen Tests Schlechtes Rahmenwerk 5

Zweiter Versuch Eclipse und MDSD 1. 2. 3. 4. EMF Meta-Modell erzeugen Realisierung durch EMF Editor mittels GMF mappen Editor generieren und adaptieren Transformationen Realisiert mittels oaw Reverse Engineering mittels JDT Modellaufbau durch Visitor-Muster 6

Abstract Syntax Static Semantics 1 Syntax Meta-Model Semantics * Concrete Syntax * Dynamic Semantics Schritt 1 EMF Meta-Modell Bestandteile eines Metamodells Abstrakte Syntax Mind. eine konkrete Syntax (s. Editoren) Statische Semantik Dynamische Semantik Umsetzung Abstrakte Syntax mittels RSA UML2 Modell Ecore: Transformation mittels EMF Importer Statische Semantik mit OCL und EMF Extension Dynamik mittels In-Model Dokumentation 7

Erfahrungen EMF Metamodellierung Agilität Sehr hoch Komplexität Über 120 Metaklassen in 12 Paketen Flexibilität Erweiterbarer Modellcode Qualität Modell und Code gut versteh- und wartbar 8

Schritt 2 Generierung von GMF Editoren GMF: Werkzeug für graphische Syntax Domain Model Tooling Model Graph Model Mapping Model Umsetzung 4 GMF Editoren erzeugt Editor für Verhaltensmodell höchste Komplexität (~100 Modellelemente) Initiales Mapping und Feedback schnell erreichbar 9

Palladio Component Model EDITOR DEMONSTRATION 10

Erfahrungen GMF Editoren Agilität Prototypen schnell erzeugbar Nicht alle gewünschten Mappings modellierbar Komplexität Generat komplex, Mappingmodelle komplexer für realistische Editoren Flexibilität 80:20 Regel: Anpassungen sind aufwändig aber möglich Qualität Editor qualitativ hochwertig 11

Vergleich Kosten/Nutzen der Editoren Kriterium 1. Versuch (manuell) 2. Versuch (MDSD) Frameworks C#,.NET, Netron ( buggy ) Java, Eclipse, EMF, GMF, GEF Undo / Redo Manuell Generiert Event-Handling Manuell Generiert Entwicklungsaufwand Hoch Mittel Aufwand nach Hoch Mittel Modelländerungen API Nach Notwendigkeit Umfassend Fehlerwahrscheinlichkeit Hoch Gering (Systematische Fehler) Lernaufwand Hoch Mittel Zeitbedarf ~ 4 Personen-Jahre ½ Personen-Jahre 12

Anforderung 2. Schritt Textuelle Syntax Sprache für QoS Annotationen (Stochastic Expressions) Beispiel: a.bytesize * 100 + 10 Sprache metamodelliert Lexer und Parser mittels ANTLR Umsetzung Manuelle Umsetzung Nutzung der Eclipse RCP-API MDSD-basierte Lösungen zu der Zeit (2007) untauglich (xtext, TCS,..) Features: Syntax Highlighting, Code Completion, etc. 13

Palladio Component Model STOCHASTIC EXPRESSIONS DEMONSTRATION 14

Schritt 3 Transformationen openarchitectureware (M2T-Engine) Bietet Modell-Konzistenzprüfungen Template-basiertes Model-2-Text Workflow-Engine Umsetzung Transformation Modell Simulationscode, Modell EJBs, Modell Prototypen Modulare Transformation dank Aspektkonzept 15

Palladio Component Model MODELLTRANSFORMATIONEN DEMONSTRATION 16

Erfahrungen Transformationen Agilität Hoch, Templates leicht änderbar Komplexität Mittel, > 30 Template Dateien Flexibilität Qualität Notfalls oaw erweiterbar, da Quelloffen Templates nicht ganz leicht wartbar, Fehler jedoch leicht auffindbar 17

QVT (M2M-Engine) Ausblick Transformationen 2 Sprachen: QVT-Relational, QVT-Operational Mapping Werkzeuge werden gerade nutzbar Erwartung: Höhere Produktivität durch spezialisierte Transformationssprachen Einsatzgebiete Transformationsmodularisierung Einbinden von Plattformspezifika Modellmanipulationen (In-Place-Transformationen) Aktuell: Sammlung erster Erfahrungen mit Werkzeugreife und Wartbarkeit des Codes 18

4. Schritt Modellgewinnung Java-2-PCM Ausnutzen des G-AST von JDT Zugriff auf die Java-Code Struktur Einfache Ansteuerung der JDT-API <<Server>> Mediastore Server Einsatzgebiete IWeb IMediaStore IDatabase WebUI MediaStore Database Digital Watermarking IWatermarking MP3Encoder IEncoder Java C / C++ Generierung der PCM-EMF-Instanz Erstellung des Modells dank EMF-generierter API Abstraktionsberechnung in Java Gute Unterstützung, EMF-Builder vermisst 19

Gefühlte Qualität Agilität Der Einsatz von MDSD hat Palladio erst ermöglicht (Forschung als Moving Target ) Produktivität Hohe Produktivität durch einzelne erzielbar Reife Wartbarkeit Qualität Stabilität variiert (z.b. EMF: gut, GMF: Potential) Unklar, einige Probleme (z.b. Metamodellevolution) identifiziert Für Forschungsprototyp hoch (z.b. durch integrierte Dokumentation & Tests) 20

Fazit MDSD bereits heute Praxistauglich Agile und Qualitative Entwicklung möglich Verbesserungspotential in Werkzeugen erkannt Entwicklung von DSLs (Graphisch & Textuell) Weitere Fallstudien in der Praxis nötig 21 Ausbildung (z.b. am KIT)

Kontakt Palladio Component Model http://www.palladio-approach.net Dr.-Ing. Steffen Becker Abteilungsleiter Software Engineering Ansprechpartner Palladio Component Model FZI Forschungszentrum Informatik Haid-und-Neu-Str. 10-14 D-76131 Karlsruhe Tel.: +49-721-9654-612 Fax: +49-721-9654-613 http://www.fzi.de/se 22