Eingebettete Systeme Qualität und Produktivität Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik 13.6.2009
War wir bislang hatten Einführungsbeispiel (Mars Polar Lander) Automotive Software Engineering Domänen-Engineering Modellbasierte Entwicklung Anforderungsdefinition und -artefakte Lastenheft TSG Ziele und Szenarien Strategien Modellierung physikalische Modellierung Anwendungs- und Verhaltensmodellierung Berechnungsmodelle, zeitabhängige & hybride Automaten Datenflussmodelle 13.6.2009
Beispiel Füllstandsregelung Füllstandsanzeiger Zulauf Ablauf max min Randbedingungen 0 f(t) h 0 < f(t) < h f. (t)= k1*z(t) – k2*a(t) Steuerfunktionalität f(t) min z(t) = 1 f(t) max z(t) = 0 mid full emty ok high low Strecke Regelung f=h / f.= – k2a f=0 / f.= k1z f<h / f.= k1z – k2a f>0 / fmax / z=0 f<max fmin / z=1 f>min 13.6.2009
Katze-und-Maus-Problem fängt die Katze die Maus oder nicht? (trifft die Abwehrrakete das Projektil oder nicht?) 13.6.2009
Modellierung Differentialgleichungssystem für diese Variablen Konstante: vk, vm, xz, yz, xm(0), ym(0), xk(0), yk(0) Geschwindigkeitsvektor Maus vm2 = xm2+ym2 xm = xz-xm(0) , ym = yz-ym(0) dmz= sqrt(xm2+ ym2) xm/ vm= xm/ dmz , ym/vm = ym/ dmz Geschwindigkeitsvektor Katze vk2 = xk2+yk2 xk = xm-xk , yk = ym-yk dkm= sqrt(xk2+ yk2) xk/ vk= xk/ dkm , yk/ vk = yk/ dkm Katze Geschwindigkeit vk Position (xk(t),yk(t)) Ziel (xz,yz) Maus Geschw. vm Pos. (xm(t),ym(t)) Differentialgleichungssystem für diese Variablen 13.6.2009
hybrider Automat Konstante: vk, vm, xz, yz, xm(0), ym(0), xk(0), yk(0) Variable: xm, ym, xk, yk, xk, yk xm = xz-xm(0) , ym = yz-ym(0) dmz= sqrt(xm2+ ym2) xm = xm * vm / dmz ym = ym * vm / dmz xk = xm-xk yk = ym-yk dkm= sqrt(xk2+ yk2) xk= xk * vk/ dkm yk= yk * vk/ dkm nahrung *: xm=xm(0), ym=ym(0), xk=xk(0), yk=yk(0), xm = …, ym=… xk=… yk=… (xm,ym)=(xk,yk) start jagd * (xm,ym)=(xz,yz) rettung 13.6.2009
Analysemöglichkeiten für HA Hybride Automaten sind Turing-mächtig Für eingeschränkte Klassen (B limitiert) sind gewisse Probleme (z.B. Erreichbarkeit für Rechteckautomaten) noch analysierbar Im Allgemeinen ist die Analyse sehr komplex Heuristiken konzentrieren sich auf die internen Datenrepräsentationen (Difference Bound Matrices, Regionengraphen etc.) 13.6.2009
Toolunterstützung HyTech: (eingeschränktes) Model Checking für hybride Automaten PHAVer: Polyhedral Hybrid Automaton Verifyer Interaktive Verifikation mit General-Purpose-Theorembeweiser (z.B. Isabelle) Synthese von Steuerungssoftware gRRT: neuere Arbeiten zur Testgenerierung 13.6.2009
Datenflussmodellierung Beispiel ist stark datenorientiert Kontrollfluss nur zum Abbruch Modellierung durch Datenflussdiagramm jede „Leitung“ entspricht einer Variablen Konstante als spezielle Variable Integratoren Rückkoppelungen 13.6.2009
13.6.2009
Simulationsergebnis 13.6.2009
13.6.2009
Abstraktion Hauptstärke von SimuLink besteht in der Möglichkeit, Blöcke zusammenzufassen Abstraktion von Verhalten baumartige Navigation Parametrisierung Modulbibliotheken externe Erweiterungen Codeanbindung Modelltransformation und –entwicklung! 13.6.2009
Thanks for the slides: Daniela Weinberg Codegenerierung Ziel: automatische Übersetzung von Modellen in ausführbaren (C-) Code zwei kommerzielle Produkte verfügbar Real Time Workshop (The MathWorks) TargetLink (dSPACE GmbH) Codegenerator ist „Compiler für Modelle“ Wiederverwendung schnelle Prototyp- und Produkterstellung erhöhte Zuverlässigkeit gegen Programmierfehler automatische Optimierung des generierten Codes Wie kann man sicherstellen, dass der generierte Code das Erwartete leistet? Thanks for the slides: Daniela Weinberg Quelle: dSPACE GmbH 13.6.2009
modellbasierter Test Simulation /Ausführung des Modells und generierten Codes in verschiedenene Entwicklungsphasen MiL (Model in the Loop) SiL (Software in the Loop) PiL (Processor in the Loop) HiL (Hardware in the Loop) » þ ý test output result comparison physical model implementation model test stimuli C code (target) ECU MiL (physical model) MiL (impl. model) SiL PiL C code (host) 13.6.2009
Szenarien für Testautomatisierung Requirements Modell Code Testsuite Requirements Modell Code Testsuite UseCases 13.6.2009