Modellbasierte Software-Entwicklung eingebetteter Systeme

Slides:



Advertisements
Ähnliche Präsentationen
Simulation komplexer technischer Anlagen
Advertisements

Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
Eingebettete Systeme Qualität und Produktivität
Modellbasierte Software-Entwicklung eingebetteter Systeme
Modellbasierte Software-Entwicklung eingebetteter Systeme
Eingebettete Systeme Qualität und Produktivität
Prof. Dr. Holger Schlingloff
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Eingebettete Systeme Qualität und Produktivität
Qualitätssicherung von Software (SWQS)
Modellbasierte Software-Entwicklung eingebetteter Systeme
Prof. Dr. Holger Schlingloff
Einführung in Berechenbarkeit und Formale Sprachen
1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen.
Seminar Software-Engineering für softwareintensive Systeme
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS : Software Model Checking.
Qualitätssicherung von Software
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Prof. Dr. Holger Schlingloff
Eingebettete Systeme Qualität und Produktivität
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Spezifikation, Verifikation, Testtheorie Prof. Dr. Holger Schlingloff Institut für Informatik und Fraunhofer FIRST.
Prof. Dr. Holger Schlingloff
Management großer Softwareprojekte Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin, Institut für Informatik Fraunhofer Institut für Rechnerarchitektur.
Symbolisches Model Checking mit Binary Decision Diagrams
2.5. Mikrocontroller-Komponenten
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Einführung in Visual C++
Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Zentralübung Automotive Software Engineering – Übungsblatt 5 Sascha Schwind.
Institut für Theoretische Informatik TU Carolo-Wilhelmina zu Braunschweig Teamprojekt in Software Systems Engineering und Theoretischer Informatik Einsatz.
INSTITUT FÜR DATENTECHNIK UND KOMMUNIKATIONS- NETZE 1 Harald Schrom ViEWcon08.
CPLD/FPGA-Programmierung mit E-blocks. Wozu die CPLD/FPGA-Programmierung untersuchen? Zusammenhang zur modernen Digitalen Elektronik Verschwinden der.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Zusammenfassung der Vorlesung
Zentralübung Automotive Software Engineering – Übungsblatt 8
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Hardware / Software Codesign Hardware versus Software.
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Enterprise Achitect (Sparx Systems) Marius Rudolf
AK Simulationswerkzeuge für das RE R. Schmid / Folie 1 Evaluation von simulationsfähigen RE-Werkzeugen Reto Schmid Institut für Informatik,
Algorithmen und Datenstrukturen Übungsmodul 1
Hardware / Software Codesign Hardware vs. Software: Maßnahmen zur Erreichung der Design-Ziele.
Vienna University of Technology Pirker Simon 1. Überblick Definition Motivation Vorteile Entwurf von VP Pirker Simon 2.
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Modellbasierte Software-Entwicklung eingebetteter Systeme
Technische Universität München Zentralübung Automotive Software Engineering – Übungsblatt 6.
Lightning Talk von Andreas Güntzel Model Driven Software Development CODE GENERIERUNG MIT ANY.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Modellierung: MATLAB – Simulink - Stateflow
Parallelising Molecular Dynamics for Message Passing Systems (complete) Martin Gerber
Software Verification 2 Automated Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität and Fraunhofer Institut für.
A. Steininger TU Vienna 1 Multicore eleganter Work-Around um die Design-Crisis Problemverschiebung in die SW (= auf höhere Ebene) ABER: hohe Parallelität.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Differentialgleichungen oder wie beschreibt man Veränderung
Automatische Code-Generierung aus Simulink-Modellen

 Präsentation transkript:

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?

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); }

Generelles Schema Ausführungsschema für das Modell für die Simulation erforderlich (operationale) Semantik des Modells  Nutzung auch zur Erzeugung von Code?

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

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

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)

Scicos Solver

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*/ }

Thanks for the slides: Daniela Weinberg Workflow Thanks for the slides: Daniela Weinberg

Festkommaarithmetik Mikroprozessoren in Steuergeräten beschränken sich aus Kostengründen auf Festkommadarstellung (oft: 8-bit) Quelle: Schäuffele/Zurawka, Automotive SW Engineering

Quelle: Mosterman, Automatic Code Generation

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

Vor- und Nachteile Vorteile der Code Generierung Nachteile der Code Generierung Deutliche Reduktion der Entwicklungszeit Bessere Handhabbarkeit des Projekts durch bessere Übersicht und geringere Komplexität Leichtere Interpretierbarkeit des Modells im Vergleich zu reinem Code Einfache Wiederverwendbarkeit von Legacy Code Relativ breite Palette an unterstützten Plattformen inkl. der Möglichkeit Hardware generieren zu lassen Automatisch generierter Code ist weniger anfällig für Implementierungs- fehler Generierter Code ist schlecht lesbar und dadurch auch schwer manuell verifizierbar Der generierte Code ist bei einfachen Algorithmen deutlich größer als handgeschriebener Code Teilweise hohe Lizenzkosten und viele zusätzlich erforderliche Plugins/Toolboxes Keine Möglichkeit der Einflussnahme auf den verwendeten Sprachumfang Hohe Einarbeitungszeit bis guter Code generiert werden kann Folie thanks M. Werner, 2008

Codeabsicherung Wie kann man sicherstellen, dass der generierte Code das Erwartete leistet? (c) generierter Code (a) Modell (b) Code- Generator (d) Code Ausführung Physical Model (floating - point) Compiler (Linker) Host PC Code generator C Code Target Implementation Model (fixed - point) Cross - compiler (Linker / Loader ) Qualitätssicherung auf jeder Ebene notwendig!

Techniken Modellebene Codegenerator generierter Code Simulation des Modells funktionale Korrektheit Diskretisierungsfehler Modell-Review Modellierungsrichtlinien Codegenerator sichere Teilsprache Tool-Qualifikation Codegenerator-Tests formale Beweise generierter Code SiL-PiL-HiL Tests mit struktureller Überdeckungsmessung Statische Analyse Autocode-Review