Top Banner
Oliver Neumann 1 Modellgetriebene Softwareentwicklung reaktiver Systeme
36

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

Aug 03, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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