experiences with model driven software development

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

Upload: others

Post on 12-Jan-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Experiences with Model Driven Software Development

WIR FORSCHEN FÜR SIE

Experiences with Model Driven Software DevelopmentCreating the Palladio Tool Chain

Eclipse Application Developer Day7. July, 2009

Dr.-Ing. Steffen Becker

[email protected] Software Engineering

FZI Forschungszentrum Informatik

Page 2: Experiences with Model Driven Software Development

Problemstellung

Definition einer Modellierungssprache

• 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

<<Server>>

Mediastore Server

WebUI MediaStore Database

Digital

Watermarking

IWeb IMediaStore IDatabase

IWatermarking

MP3Encoder

IEncoder

2

Page 3: Experiences with Model Driven Software Development

Problemstellung II

Codegenerierung

• Code-Skelette aus Modell zur Validierung

• Prototypen aus Modell

Modellgewinnung

• Erstellung von Modellen aus Altanwendungen

• Gewinnung von Annotationen aus laufenden SystemenJava

C / C++

<<Server>>

Mediastore Server

WebUI MediaStore Database

Digital

Watermarking

IWeb IMediaStore IDatabase

IWatermarking

MP3Encoder

IEncoder

Java

C / C++

<<Server>>

Mediastore Server

WebUI MediaStore Database

Digital

Watermarking

IWeb IMediaStore IDatabase

IWatermarking

MP3Encoder

IEncoder

3

Page 4: Experiences with Model Driven Software Development

Erster VersuchKlassischer Ansatz in .NET

1.

• OO-Entwurf des Modells

• Realisierung in C#

2.

• Editor implementieren

• GUI Entwurf

3.

• COM Komponenten Recovery

• Parser und Analyser Entwurf für C# Code

4

Page 5: Experiences with Model Driven Software Development

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

Page 6: Experiences with Model Driven Software Development

Zweiter VersuchEclipse und MDSD

1.

• EMF Meta-Modell erzeugen

• Realisierung durch EMF

2.

• Editor mittels GMF mappen

• Editor generieren und adaptieren

3.

• Transformationen

• Realisiert mittels oAW

4.

• Reverse Engineering mittels JDT

• Modellaufbau durch Visitor-Muster

6

Page 7: Experiences with Model Driven Software Development

Schritt 1EMF Meta-Modell

7

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

Meta-Model

Syntax

Static Semantics

DynamicSemantics

Abstract Syntax

Concrete Syntax

*1

*

Semantics

Page 8: Experiences with Model Driven Software Development

ErfahrungenEMF Metamodellierung

8

Agilität Sehr hoch

Komplexität Über 120 Metaklassen in 12 Paketen

Flexibilität Erweiterbarer Modellcode

QualitätModell und Code gut versteh- und wartbar

Page 9: Experiences with Model Driven Software Development

Schritt 2Generierung von GMF Editoren

9

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

Page 10: Experiences with Model Driven Software Development

EDITOR DEMONSTRATION

Palladio Component Model

10

Page 11: Experiences with Model Driven Software Development

ErfahrungenGMF Editoren

11

AgilitätPrototypen schnell erzeugbar

Nicht alle gewünschten Mappings modellierbar

KomplexitätGenerat komplex, Mappingmodellekomplexer für realistische Editoren

Flexibilität80:20 Regel: Anpassungen sind

aufwändig aber möglich

Qualität Editor qualitativ hochwertig

Page 12: Experiences with Model Driven Software Development

Vergleich Kosten/Nutzen der Editoren

12

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 Modelländerungen

Hoch Mittel

API Nach Notwendigkeit Umfassend

Fehlerwahrscheinlichkeit Hoch Gering(Systematische Fehler)

Lernaufwand Hoch Mittel

Zeitbedarf ~ 4 Personen-Jahre ½ Personen-Jahre

Page 13: Experiences with Model Driven Software Development

2. SchrittTextuelle Syntax

13

Anforderung

• 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.

Page 14: Experiences with Model Driven Software Development

STOCHASTIC EXPRESSIONS DEMONSTRATION

Palladio Component Model

14

Page 15: Experiences with Model Driven Software Development

Schritt 3Transformationen

15

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

Page 16: Experiences with Model Driven Software Development

MODELLTRANSFORMATIONENDEMONSTRATION

Palladio Component Model

16

Page 17: Experiences with Model Driven Software Development

ErfahrungenTransformationen

17

Agilität Hoch, Templates leicht änderbar

Komplexität Mittel, > 30 Template Dateien

FlexibilitätNotfalls oAW erweiterbar,

da Quelloffen

QualitätTemplates nicht ganz leicht wartbar,

Fehler jedoch leicht auffindbar

Page 18: Experiences with Model Driven Software Development

AusblickTransformationen

18

QVT (M2M-Engine)

• 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

Page 19: Experiences with Model Driven Software Development

4. SchrittModellgewinnung

19

Java-2-PCM

• Ausnutzen des G-AST von JDT

• Zugriff auf die Java-Code Struktur

• Einfache Ansteuerung der JDT-API

Einsatzgebiete

• Generierung der PCM-EMF-Instanz

• Erstellung des Modells dank EMF-generierter API

• Abstraktionsberechnung in Java

• Gute Unterstützung, „EMF-Builder“ vermisstJava

C / C++

<<Server>>

Mediastore Server

WebUI MediaStore Database

Digital

Watermarking

IWeb IMediaStore IDatabase

IWatermarking

MP3Encoder

IEncoder

Page 20: Experiences with Model Driven Software Development

“Gefühlte” Qualität

20

Agilität Der Einsatz von MDSD hat Palladio erst

ermöglicht (Forschung als “Moving Target”)

Produktivität Hohe Produktivität durch einzelne erzielbar

ReifeStabilität variiert

(z.B. EMF: gut, GMF: Potential)

WartbarkeitUnklar, einige Probleme

(z.B. Metamodellevolution) identifiziert

QualitätFür Forschungsprototyp hoch

(z.B. durch integrierte Dokumentation & Tests)

Page 21: Experiences with Model Driven Software Development

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

Ausbildung (z.B. am KIT)

Fazit

21

Page 22: Experiences with Model Driven Software Development

Kontakt

22

Dr.-Ing. Steffen BeckerAbteilungsleiter Software EngineeringAnsprechpartner Palladio Component Model

FZI Forschungszentrum Informatik Haid-und-Neu-Str. 10-14D-76131 KarlsruheTel.: +49-721-9654-612Fax: +49-721-9654-613http://www.fzi.de/se

Palladio Component Model

http://www.palladio-approach.net