Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren...

36
Oliver Neumann 1 Modellgetriebene Softwareentwicklung reaktiver Systeme

Transcript of Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren...

Page 1: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 1

Modellgetriebene Softwareentwicklung reaktiver

Systeme

Page 2: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 2

Agenda● Einleitung● Motivation● Begriffsklärung

– Reaktive Systeme– MDA

● Umsetzung● Ausblicke

Page 3: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 3

Vorträge aus der TI● J.Sellentin „Zeitgesteuerte Kommunikationssysteme

für verteilte Hard-Real-Time Anwendungen“● S. Cordes „Situationserkennung auf Basis eines

Fahrzeugumgebungsmodells in Fahrerassistenzsystemen“

● A. Pröhl „Entscheidungsstrategien und Steuerungskonzepte eines Kollisionsvermeidungssystem“

● O. Tetzlaf „Sensordatenfusion zur Umgebungserfassung in Fahrerassistenzsystemen“

Page 4: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 4

FAUSTFahrerloses Autonomes Transportsystem

Page 5: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 5

FAUST Architekturüberblick

Page 6: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 6

Motivation● Den Entwicklungsprozess vereinfachen● Entwicklungszeit für Anwendungen verkürzen● Ein Modell muss grundsätzlich gezeichnet

werden -> gute Basis für Weiterverarbeitung● Kommerzielle Tools sind verfügbar, aber teuer

und unflexibel

Page 7: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 7

Begriffklärung● Reaktive Systeme

– Automaten– Reaktive Systeme– AIRA– Visualisieren reaktiver Systeme

● MDA (Model driven Architecture)

Page 8: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 8

Automaten

● Finden Verwendung zur Beschreibung formaler Sprache.

● Finden Verwendung im Compilerbau.

● Mealy & Moore

● Zeitlich nicht definierte eingaben führen zu Zustandsübergängen

● Eingaben sind zu keiner Zeit vorhersehbar.

Page 9: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 9

Reaktive Systeme● Harel Automaten('87)

– Verbinden die Ansätze von Mealy und Moore

– Erweitern das Konzept um eine Hierarchie

● Parallele Spezifikation● Schachtelung(Subauto

maten)– Erweitert um Historie

● Anpassungen durch Prof. Kaltenhäuser ('01)– Keine Historie– n Startzustände im

Subautomaten– Anforderungen an

Semantik restriktiver (Abarbeitung eines Automaten)

Page 10: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 10

AIRA Komponenten● Automaten In Reaktiven Anwendungen● Die AIRA-Reports● Die AIRA-Compiler

– AIRA/KNT– AIRA/ANW

● Die AIRA-Laufzeitumgebung für QNX– Entwickelt im letzten Semester in Anw.1

Page 11: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 11

AIRA Reports● AIRA KNT / Sprache zum Beschreiben eines

Kontrollers (Automaten, die einzelne Task)● AIRA DAT / Sprache zum Beschreiben von

Datentypen(-strukturen)[soll in AIRA/KNT einfliessen]

● AIRA ANW / Sprache zum Beschreiben einer verteilten Anwendung(Welche Tasks laufen auf welchem Rechner, Kommunikation der Tasks)

Page 12: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 12

AIRA

AIRA/ANWAIRA/KNT

1..n

Page 13: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 13

AIRA Compiler● Implementiert in Eiffel● Syntaxprüfung● Erzeugen eines Parsebaumes (Eiffelobjekte)● Semantikprüfung● Ausgabe von Anwendungscode (C, Java, ...)

Page 14: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 14

AIRA Laufzeit● Die Schaltlogik eines Automaten ist immer

gleich...● ...lässt sich in einer Laufzeitumgebung

umsetzen.● Das Zustandsmodell ist für jede Anwendung

anders.● Minimiert den Codeumfang bei der generierung

von ausführbarem Code.

Page 15: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 15

AIRA-Logik

1322

α

232

4

Sub-Aktivität

Externe Reaktion

Interne Reaktion

λ - Reaktion

[ kein Endzustand

erreicht ]

[ SubAktiv hat reagiert ]

[ SubAktiv hat geendet ]

[ SubAktiv hat nicht reagiert orSubAktiv ist beendet]

[ λ Reaktion definiert ]

[ Endzustand erreicht ]

[ Aktivität ist aktiv ]

[ int-Reakt reagiert ]

[ Aktivität ist beendet ]

[ keine int-Reakt reagiert]

[ keine λ-Reaktion

definiert ]

[ ext-Reakt reagiert ]

[ End-zustand erreicht ]

[ keine ext-Reakt reagiert]

2

[ kein Endzustand erreicht ]

{ rekursiver Aufruf von 'reagieren' }

Returninformationen1 – keine Reaktion in der Aktivität2 – Aktivität hat reagiert3 – Aktivität hat geendet4 – Aktivität ist beendet

Page 16: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 16

Visualisieren reaktiver Systeme

Page 17: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 17

Begriffsklärung● Reaktive Systeme● MDA (Model Driven Architecture)

– Allgemein– MOF– XMI

Page 18: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 18

Modellgetriebene Softwareentwicklung● Woher kennen wir das?

– J2EE Umfeld– Klassendiagramme in Code transformieren.– ER-Diagramme direkt in DB übertragen.

● Ist das das Kernthema dieses Vortrages?– NEIN....

● Es geht darum, andere Diagrammtypen zur Erzeugung von Code heranzuziehen.

Page 19: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 19

Modellgetriebene Softwareentwicklung● Vom Bild zur Anwendung● Steigerung der Entwicklungsgeschwindigkeit● Besser handhabbar

– Durch höhere Abstraktion– Bei komplexen (verteilten) Systemen

● Je nach Anforderung 20%-80% Generierung

Page 20: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 20

Kontroller Kontroller

Interface Interface

Vollständigkeit der Generierung

100 %?deutlich weniger

Page 21: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 21

MOF - Meta-Object Facility● Die Grundbegriffe der MOF

– MOF 0-3(MoF-0,MoF-1,UML,Code)– CIM (Computation Independent Modell) für die

umgangssprachliche Beschreibung– PIM (plattformunabhängiges Modell) für

Geschäftsprozesse– PSM (plattformabhängiges Modell) für Architektur,

Services– ein Codemodell, die Zielplattform

● Die Transformationssprache XMI

Page 22: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 22

MOF-Level

Page 23: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 23

XML Metadata Interchange ● Entwickelt von der OMG● Textuelle Beschreibung von UML-Diagrammen● Formalismus zur Generierung von XML-

Vokabularen● XMI als zentrales Austauschformat zwischen

CIM-PIM- und den MOF Levels. Sehr umfangreich und nicht Human-readable Keine Objektinformationen über das Aussehen

in Tools

Page 24: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 24

XMI Beispiel● Erzeugen eines

Metamodells– Definieren von Klasse

Page 25: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 25

XMI Beispiel● Instanzen der

Klassen bildenZustandA

ZustandB

Page 26: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 26

XMI Beispiel● Generieren einer

DTD aus dem Metamodell

<?xml version="1.0" encoding="UTF-8" ?>...

<!ELEMENT Node.name (#PCDATA | XMI.reference)* ><!ELEMENT Node (Node.name?, XMI.extension*)? ><!ATTLIST Node %XMI.element.att; %XMI.link.att;><!ELEMENT innerNode.node (Node | innerNode | leafNode)* ><!ELEMENT innerNode (Node.name?, XMI.extension*, innerNode.node*)? ><!ATTLIST innerNode %XMI.element.att; %XMI.link.att;><!ELEMENT outerNode.information (#PCDATA | XMI.reference)* ><!ELEMENT outerNode (Node.name?, leafNode.information?, XMI.extension*)? ><!ATTLIST leafNode %XMI.element.att; %XMI.link.att;>

Page 27: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 27

XMI Beispiel● Erstellen eines XML-

Files das zum Automaten passt

Zustand A

ZustandB

<?xml version="1.0"?><!DOCTYPE XMI SYSTEM "node.dtd"><XMI> <XMI.header> </XMI.header> <XMI.content> <outerNode> <Node.name>ZustandA</Node.name> <innerNode> <Node.name>ZustandB</Node.name> </innerNode> </outerNode> </XMI.content></XMI>

Page 28: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 28

XMI Beispiel

xml

dtd

Tool

Transformationsregeln

Zielcode

controllerunit ZustandA isaccept Msg_INNER_STATEbehavior

dataspace ....end dataspaceaction switchState is ....end action switchState

end behaviorend controllerunit

Page 29: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 29

Generieren von Code● Probleme

– AIRA stellt besondere Anforderung an die Modellierung

– Semantische Prüfung des Modells zur Entwicklungszeit.

● Lösungen– UML Profile– MOF (Anpassung von Werkzeuge nicht möglich)

Page 30: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 30

Eclipse Modeling Framework● EMF core Framework beinhaltet das Ecore

Metamodell– Ermöglicht das Beschreiben von eigenen Modellen– Runtime Support für Modelle (inkl.

Nachrichtensystem für Änderungen am Modell)– XMI-Serialisierung– Einfacher Editor zum erstellen von Instanzen des

Modells– .....

Page 31: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 31

EMF/GEF Lösung● EMF ermöglicht präsises def. eines

Metamodells für AIRA● Instanzieren von Modellen mit Hilfe des

Graphical Editing Framework (GEF)– Grafiken und EMF Modells können miteinander

verbunden werden (Statecharts!!).● Speichern von XMI-Dateien

Page 32: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 32

Tools zum erzeugen von Code● Tools, die XMI oder EMF verwenden um Code

zu erzeugen– AndroMDA

● Cartridges für AndroMDA um neue Zielsprachen zu implementieren

– MOFScript● Eclipse plugin, basierend auf EMF.● 'Modell zu Text' Transformationswerkzeug

Page 33: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 33

Modellierung von Automaten● Erstellen von Anwendungsmodellen● Transformieren mit XMI● Code für Zielsystem erstellen

Modellierungswerkzeug

XMI

Codegenerierung

AIRA

AIRA-Compiler

C,Java,...

Anwendung

Fehlermeldung

Page 34: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 34

Ausblicke● Evaluieren von MOF und Ecore

– Eigenentwicklung oder ....● Transformationsregelwerk erstellen

– AndroMDA, EMF● Prüfbarkeit von Modellen untersuchen

(semantische Prüfung während des Modellierens)

● Sicherheitsprüfung von Modellen ermöglichen (Live-,Deadlock, etc.)

Page 35: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 35

Litaratur

[1] Modeling Reactive Systems with Statecharts - David Harel, Michal Politi

[2] Model Driven Architecture – David S. Frankel

[3] MOF 2.0/XMI Mapping Specification, v2.1 – OMG

[4] AIRA-Reports – Prof. Dr. H Kaltenhäuser

Page 36: Modellgetriebene Softwareentwicklung reaktiver Systemeubicomp/projekte/master0… · Instanzieren von Modellen mit Hilfe des Graphical Editing Framework (GEF) ... Tools, die XMI oder

Oliver Neumann 36

Ende

Keine weiteren Fragen

Frage

entry/Antwort