Transcript
Page 1: Modellbasierte Software-Entwicklung eingebetteter Systeme

Modellbasierte Software-Entwicklung eingebetteter Systeme

Prof. Dr. Holger SchlingloffInstitut für Informatik der Humboldt Universität

und

Fraunhofer Institut für offene Kommunikationssysteme FOKUS

Page 2: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 2H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Noch Fragen?

•Schema für Controller in C?

•Was ist ein Codegenerator?

•Prinzip der Übersetzung Scicos – C?

•Behandlung von Schleifen?

•Unterschied Gleitkomma-Festkomma?

•Codeoptimierungen – welche?

•Absicherung der Codegenerierung?

•X-in-the-Loop: Was ist X?

Page 3: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 3H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Codegenerierung

• Codegenerierung aus SysML/UML

• Codegenerierung aus State Machines

• Codegenerator ist „Compiler für Modelle“ Wiederverwendung schnelle Prototyp- und Produkterstellung erhöhte Zuverlässigkeit gegen Programmierfehler automatische Optimierung des generierten Codes

• Ziel: automatische Übersetzung von Modellen in ausführbaren (C-) Code

Page 4: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 4H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Codegenerierung aus SysML

•Requirement Diagramme (noch) nicht wirklich für Code verwendbar

•Blockdiagramme (BDD/IBD) VHDL-Code experimentelle Tools (RTaW, c-Lab U

Paderborn) SysML to SystemC

•Aktivitätsdiagramme zur Spezifikation des Kontrollflusses

•Zustandsdiagramme

Page 5: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 5H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Example

Source: Mura, Panda, Prevostini: Executable models and Verifivation from MARTE and SysML

Page 6: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 6H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Page 7: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 7H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Page 8: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 8H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

UML Codegenerierung

• (Fast) jedes UML Tool behauptet, Code generieren zu können Wiki listet ca. 100 Tools auf (“Comparison of

code generation tools”)

•Unterschiedliche Fähigkeiten Meist: Erzeugung von Schablonen Hohe Schule: Round-trip Engineering

•Für Eclipse-UML: Acceleo, Modelio (Softeam)

Page 9: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 9H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Modelio – Demo vertagt

Page 10: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 10H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

UML Zustandsmaschinen

•neben Klassendiagrammen die am häufigsten zur Codegenerierung verwendete Diagrammart

•Übertragung der operationellen Semantik in die Zielsprache

•Beispiel: Hugo-RT, U Augsburg nimmt beliebiges (Papyrus-) Modell erzeugt Java und Promela (für Model-

Checking)

Page 11: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 11H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Schema

• Paradigma für funktionale Systemeinput-process-output

• Paradigma für eingebettete Systemeloop{sense-think-act}

Hauptschleife, endlos wiederholt:- lies Sensorwerte- berechne Abweichung oder Aktion- schreibe Aktuatorwerte

Innerhalb der Berechnung können verschiedenen Modi (Zustände) angenommen werden

• Codegeneratoren folgen diesem Paradigma

Page 12: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 12H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Beispiel Pacemaker

Page 13: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 13H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Example: VDI-Pacemaker

• Verhalten (vereinfacht)1. wait for an atrial pulse to be sensed2. wait for at most the AV delay3. if within this time a ventricular pulse is detected,

goto step 1.4. otherwise, generate a ventricular pulse and goto

step 1.

Page 14: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 14H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Allgemeines Übersetzungsschema

s = off;while (true) { dequeue i from input stack; case s of off: case i of dn: s = tape; end; tape: case i of dn: s = memory; up: s = off; end; memory: case i of dn: s = play; up: s = off; end; play: case i of dn: s = tape; up: s = off; end; end;}

off

memorytape play

dn

dn dn

dn

up up up

Variable s ist der aktuelle Zustand;Variable i ist der aktuelle Input

Page 15: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 15H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Sprungtabellentechnik

table=[state]x[input][state]:table=[[off,dn,tape],

[tape,up,off], [tape,dn,memory],...]

s=off;while (true){ dequeue i from input stack; s=table[s,i];}

off

memorytape play

dn

dn dn

dn

up up up

Variable s ist der aktuelle Zustand;Variable i ist der aktuelle Input

Page 16: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 16H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Codegenerierung für Zustandsmaschinen

• Behandlung des Event-Pools

• Behandlung von Parallelität

• Hierarchisierung

• Completion Events

• History-States

Übersetzungsschema s = s0;

while (true) { dequeue (trigger); let Enabled = {tT | t=(s,(e,c,a),s´), c = true, e=0 or trigger e} if (Enabled not empty) { choose some t=(s,(e,c,a),s´) from Enabled; execute a; //potentially enqueing other triggers s = s´; } }

Page 17: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 17H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Beispiel: VisualState Codegenerierung

Page 18: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 18H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Menschen- vs. maschinenlesbarer Code

Page 19: Modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 19H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Verifikation und Reportgenerierung

• Schlüsselwort: Modellprüfung (model checking)


Top Related