Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik 18.11.2005
Übersicht 0. Einleitungsbeispiel (Mars Polar Lander) 1. Eingebettete Systeme 1.1. Definitionen (eingebettetes System, Realzeit, Prozess, Steuerung, …) 1.2. Anforderungsanalyse allgemeine Vorgehensweise Beispiel Türsteuergerät systematische Ansätze; Def. Modus, Kondition, Historie Anwendungsfallbeschreibungen 1.3. Modellierung Timed Automata, UPPAAL Hybride Automaten Datenflussmodelle, SimuLink 18.11.2005
Time Petri Netze Modellierung von Realzeit mit Parallelität Bipartiter Graph aus Stellen und Transitionen; Marken repräsentieren Prozesse Jede Transition hat eine eigene Uhr; zurückgesetzt sobald schaltbar früheste und späteste Schaltzeit (Intervall [0,) Transition kann erst nach Ablauf der frühesten, muss aber nach Ablauf der spätesten Schaltzeit schalten 18.11.2005
Erweiterungen Zeitautomaten sind „fast optimal“ Stoppuhren unentscheidbar reelle Konstante unentscheidbar variable Geschwindigkeiten unentscheidbar Hybride Automaten geringfügige Erweiterungen Spezialprobleme entscheidbar Rechteckautomaten Automaten mit „Uhrenschlupf“ 18.11.2005
Hybride Automaten Anreicherung von Zeitautomaten um kontinuierliche Variablen z.B. doppelte Uhrgeschwindigkeit (multi-slope clocks) x=2 z.B. Stoppuhren (Anhaltemöglichkeit) x=0 z.B. nichtlineare Funktionen (gleichmäßige Beschleunigung) x=1 z.B. allgemeine Differentialgleichungen Zuweisungen in Transitionen Achtung: in Literatur auch „beim Betreten eines Ortes“ Spezialfall Uhrenvariable nur Zuweisungen x=0, globale Konstante x=1 x>2 / x´= 2 klick / x´= 0 18.11.2005
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 18.11.2005
Katze-und-Maus-Problem fängt die Katze die Maus oder nicht? (trifft die Abwehrrakete das Projektil oder nicht?) 18.11.2005
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 18.11.2005
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 18.11.2005
Pause! 18.11.2005
Datenflussmodellierung Beispiel ist stark datenorientiert Kontrollfluss nur zum Abbruch Modellierung durch Datenflussdiagramm jede „Leitung“ entspricht einer Variablen Konstante als spezielle Variable Integratoren Rückkoppelungen 18.11.2005
Simulationsergebnis 18.11.2005