ppt - Institut für Informatik

 Documents

 123 views
of 16
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Description
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer…
Share
Transcript
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 Ein paar Fragen • Definition UML Zustandsmaschine? • Semantik paralleler Regionen? • Anfangszustand: Pseudostate oder nicht? • Interne Transitionen eines Zustands? • Annotation einer Transition? • Was ist ein Ereignis? H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 2 4. Codegenerierung und Modelltransformation • PID-controller in C: real setpoint, P, I, D; // desired value, factors real previous = 0; real integral = 0; real derivative = 0; // values real measured, controlvalue, diff; real samplingrate; while {;;}{ get_sensor_value(measured); diff = setpoint – measured; integral = integral + diff*samplingrate; derivative = (diff - previous)/samplingrate; controlvalue= P*diff + I*integral + D*derivative; write_actuator_value(controvalue); previous = diff; wait(samplingrate); } H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 3 Generelles Schema • Ausführungsschema für das Modell  für die Simulation erforderlich • (operationale) Semantik des Modells  Nutzung auch zur Erzeugung von Code? H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 4 Codegenerierung • Codegenerierung aus Scicos • Codegenerierung aus SysML • 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 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 5 Prinzip je Leitung eine Variable je Block eine Funktion Beispiel Simulink: • mehrere kommerzielle Produkte verfügbar  Real Time Workshop (MathWorks, discontinued)  Embedded Coder (MathWorks)  TargetLink (dSPACE GmbH) Quelle: dSPACE GmbH H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 6 Schleifen • Numerisches Lösen von Differentialgleichungen • Anfangswertproblem 1. Ordnung  x´=f(x), Anfangswert x0  x´(t)=f(x(t)), x(0)=x0 • z.B. Euler-Verfahren  Approximation der DGL mittels Diskretisierung  h=Schrittweite  xn+1 = xn + h*f(xn) • z.B. Runge-Kutta-Verfahren  xn+1 = xn + h*(k1/6 + 4k2/6 + k3/6) k1=f(xn) k2=f(xn + h/2k1) k3=f(xn - hk1 + 2hk2) H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 7 Scicos Solver H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 8 Weitere Bestandteile • Aufbau des generierten Codes  Vorspann, Header, …  int main(int argc, char *argv[]){ … /* call simulation function */ ierr = Modell_sim(params,typin,inptr,typout,outptr); } int Modell_sim(params_struct params, …){ … /* Blockdeklarationen*/ /* Simulationsparameter */ /* Blockverbindungen */ /* Initialisierung der Blöcke und Verbindungen */ /* loop on time */ while (told < tf) { /* Aufruf aller Blöcke zur Aktualisierung der Variablenwerte*/ } } H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 9 Workflow Physical Model (floating-point) Compiler (Linker) Host PC Code generator C Code Implementation Model Target Cross-compiler (fixed-point) (Linker / Loader) Thanks for the slides: Daniela Weinberg H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 10 Festkommaarithmetik • Mikroprozessoren in Steuergeräten beschränken sich aus Kostengründen auf Festkommadarstellung (oft: 8-bit) Quelle: Schäuffele/Zurawka, Automotive SW Engineering H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 11 Quelle: Mosterman, Automatic Code Generation H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 12 Optimierungen • Automatische Code-Optimierungen  Vereinfachen boolescher und algebraischer Formeln  Zusammenfassen von Blöcken  Sinnvolle automatische Zuweisung der Datentypen  Eliminierung von unerreichbaren Pfaden  Wiederverwendung von gespeicherten Signalen  Üblicherweise erreicht der automatisch generierte Code eine ähnliche Performance wie handgeschriebener Code, hat aber weniger Fehler und Anomalien  In vielen Fällen ist der Auto-Code etwas speicherschonender; die tatsächliche Leistung hängt aber sehr von den gewählten Einstellungen ab * http://www.mathworks.com/mason/tag/proxy.html?dataid=5442&fileid=22827 ** http://www.mathworks.com/mason/tag/proxy.html?dataid=5961&fileid=24637 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 13 Vor- und Nachteile Vorteile der Code Generierung Nachteile der Code Generierung • Deutliche Reduktion der Entwicklungszeit • Generierter Code ist schlecht lesbar und dadurch auch schwer manuell • Bessere Handhabbarkeit des Projekts verifizierbar durch bessere Übersicht und geringere Komplexität • Der generierte Code ist bei einfachen Algorithmen deutlich größer als • Leichtere Interpretierbarkeit des handgeschriebener Code Modells im Vergleich zu reinem Code • Teilweise hohe Lizenzkosten • Einfache Wiederverwendbarkeit von und viele zusätzlich erforderliche Legacy Code Plugins/Toolboxes • Relativ breite Palette an unterstützten • Keine Möglichkeit der Einflussnahme Plattformen inkl. der Möglichkeit auf den verwendeten Sprachumfang Hardware generieren zu lassen • Hohe Einarbeitungszeit bis guter Code • Automatisch generierter Code ist generiert werden kann weniger anfällig für Implementierungs- fehler Folie thanks M. Werner, 2008 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 14 Codeabsicherung Wie kann man sicherstellen, dass der generierte Code das Erwartete leistet? (c) generierter (a) Modell (b) Code- (d) Code Code Generator Ausführung Physical Model (floating - point) Compiler (Linker) Host PC Code generator C Code Implementation Model Target (fixed - point) Cross-compiler (Linker / Loader) • Qualitätssicherung auf jeder Ebene notwendig! H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 15 Techniken • Modellebene  Simulation des Modells - funktionale Korrektheit - Diskretisierungsfehler  Modell-Review  Modellierungsrichtlinien • Codegenerator Fehler des Code & Kommentare Strukturelle Codegenerators Verständlichkeit Umsetzung Externe Dokumentation  sichere Teilsprache  Tool-Qualifikation Erste Phase 22.04.2004 - v 21 Namenskonventionen  Codegenerator-Tests Modularisierung Schnittstellen Testbarkeit Struktur & Form Kopplung  formale Beweise Initialisierung • generierter Code Parameter  SiL-PiL-HiL Tests mit struktureller Überdeckungsmessung  Statische Analyse  Autocode-Review H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Folie 16
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks