modellbasierte software-entwicklung eingebetteter systeme
DESCRIPTION
Modellbasierte Software-Entwicklung eingebetteter Systeme. Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für offene Kommunikationssysteme FOKUS. Noch Fragen?. Schema für Controller in C? Was ist ein Codegenerator? - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Modellbasierte Software-Entwicklung eingebetteter Systeme](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/1.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/2.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/3.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/4.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/5.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/6.jpg)
Folie 6H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme
![Page 7: Modellbasierte Software-Entwicklung eingebetteter Systeme](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/7.jpg)
Folie 7H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme
![Page 8: Modellbasierte Software-Entwicklung eingebetteter Systeme](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/8.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/9.jpg)
Folie 9H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme
Modelio – Demo vertagt
![Page 10: Modellbasierte Software-Entwicklung eingebetteter Systeme](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/10.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/11.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/12.jpg)
Folie 12H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme
Beispiel Pacemaker
![Page 13: Modellbasierte Software-Entwicklung eingebetteter Systeme](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/13.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/14.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/15.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/16.jpg)
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](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/17.jpg)
Folie 17H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme
Beispiel: VisualState Codegenerierung
![Page 18: Modellbasierte Software-Entwicklung eingebetteter Systeme](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/18.jpg)
Folie 18H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme
Menschen- vs. maschinenlesbarer Code
![Page 19: Modellbasierte Software-Entwicklung eingebetteter Systeme](https://reader036.vdokument.com/reader036/viewer/2022062517/568139ec550346895da1a69f/html5/thumbnails/19.jpg)
Folie 19H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme
Verifikation und Reportgenerierung
• Schlüsselwort: Modellprüfung (model checking)