Modellbasierte Software-Entwicklung eingebetteter Systeme - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Modellbasierte Software-Entwicklung eingebetteter Systeme

Description:

Title: Folie 1 Author: Holger Schlingloff Last modified by: hs Created Date: 10/17/2004 9:41:53 AM Document presentation format: Bildschirmpr sentation (4:3) – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 20
Provided by: Holge50
Category:

less

Transcript and Presenter's Notes

Title: Modellbasierte Software-Entwicklung eingebetteter Systeme


1
Modellbasierte Software-Entwicklung eingebetteter
Systeme
  • Prof. Dr. Holger Schlingloff
  • Institut für Informatik der Humboldt Universität
  • und
  • Fraunhofer Institut für offene Kommunikationssyste
    me FOKUS

2
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?

3
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

4
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

5
Example
  • Source Mura, Panda, Prevostini Executable
    models and Verifivation from MARTE and SysML

6
(No Transcript)
7
(No Transcript)
8
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)

9
Modelio Demo vertagt
10
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)

11
Schema
  • Paradigma für funktionale Systeme input-process-o
    utput
  • Paradigma für eingebettete Systeme loopsense-thi
    nk-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

12
Beispiel Pacemaker
13
Example VDI-Pacemaker
  • Verhalten (vereinfacht)
  • wait for an atrial pulse to be sensed
  • wait for at most the AV delay
  • if within this time a ventricular pulse is
    detected, goto step 1.
  • otherwise, generate a ventricular pulse and goto
    step 1.

14
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

Variable s ist der aktuelle Zustand Variable i
ist der aktuelle Input
15
Sprungtabellentechnik
  • tablestatexinput?state
  • tableoff,dn,tape,tape,up,off,
    tape,dn,memory,...
  • soff
  • while (true)
  • dequeue i from input stack
  • stables,i

Variable s ist der aktuelle Zustand Variable i
ist der aktuelle Input
16
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 t?T t(s,(e,c,a),s), c
    true, e0 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

17
Beispiel VisualState Codegenerierung
18
Menschen- vs. maschinenlesbarer Code
19
Verifikation und Reportgenerierung
  • Schlüsselwort Modellprüfung (model checking)
Write a Comment
User Comments (0)
About PowerShow.com