13.6.2009
Eingebettete SystemeQualität und Produktivität
Prof. Dr. Holger SchlingloffInstitut für Informatik der Humboldt Universität
und
Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik
13.6.2009 Folie 2H. Schlingloff, Eingebettete Systeme
War wir bislang hatten
1. Einführungsbeispiel (Mars Polar Lander)2. Automotive Software Engineering
• Domänen-Engineering• Modellbasierte Entwicklung
3. Anforderungsdefinition und -artefakte• Lastenheft TSG• Ziele und Szenarien• Strategien
4. Modellierung• physikalische Modellierung• Anwendungs- und Verhaltensmodellierung• Berechnungsmodelle, zeitabhängige & hybride Automaten• Datenflussmodelle
13.6.2009 Folie 3H. Schlingloff, Eingebettete Systeme
Beispiel Füllstandsregelung
FüllstandsanzeigerZulauf
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
f<h /
f.= k1z – k2a
f>0 /
f.= k1z – k2a
f=h /
f.= – k2a
f=0 /
f.= k1z
ok
high
low
f<max
f>min
fmax /z=0
fmin /z=1
Strecke Regelung
mid
full
emty
13.6.2009 Folie 4H. Schlingloff, Eingebettete Systeme
Katze-und-Maus-Problem
• fängt die Katze die Maus oder nicht?(trifft die Abwehrrakete das Projektil oder nicht?)
13.6.2009 Folie 5H. Schlingloff, Eingebettete Systeme
Modellierung
• Differentialgleichungssystem für diese Variablen
Ziel (xz,yz)
Katze
Geschwindigkeit vk
Position (xk(t),yk(t))
Konstante:vk, vm, xz, yz, xm(0), ym(0), xk(0), yk(0)
Geschwindigkeitsvektor Maus vm
2 = xm
2+ym2
xm = xz-xm(0) , ym = yz-ym(0) dmz= sqrt(xm
2+ ym2)
xm/ vm= xm/ dmz , ym/vm = ym/ dmz
Geschwindigkeitsvektor Katze vk
2 = xk
2+yk2
xk = xm-xk , yk = ym-yk dkm= sqrt(xk
2+ yk2)
xk/ vk= xk/ dkm , yk/ vk = yk/ dkm
Maus
Geschw. vm
Pos. (xm(t),ym(t))
13.6.2009 Folie 6H. Schlingloff, Eingebettete Systeme
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
start jagd
nahrung
rettung
*(xm,ym)=(xk,yk)
(xm,ym)=(xz,yz)
*:xm=xm(0), ym=ym(0),xk=xk(0), yk=yk(0),xm = …, ym=…xk=… yk=…
13.6.2009 Folie 7H. Schlingloff, Eingebettete Systeme
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 Folie 8H. Schlingloff, Eingebettete Systeme
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 Folie 9H. Schlingloff, Eingebettete Systeme
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 Folie 10H. Schlingloff, Eingebettete Systeme
13.6.2009 Folie 11H. Schlingloff, Eingebettete Systeme
Simulationsergebnis
13.6.2009 Folie 12H. Schlingloff, Eingebettete Systeme
13.6.2009 Folie 13H. Schlingloff, Eingebettete Systeme
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 Folie 14H. Schlingloff, Eingebettete Systeme
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 Codedas Erwartete leistet?
Quelle: dSPACE GmbHThanks for the slides: Daniela Weinberg
13.6.2009 Folie 15H. Schlingloff, Eingebettete Systeme
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
resultcomparison
physical model
implementation model
test stimuli
C code (target)
ECU
MiL (physical model)
MiL (impl. model)
SiL
PiL
C code (host)
13.6.2009 Folie 16H. Schlingloff, Eingebettete Systeme
Szenarien für Testautomatisierung
Requirements
Modell
Code
Testsuite
Requirements
Modell Code
Testsuite
UseCases