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 19.5.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 19.5.2009
physikalische Modellierung 1. Identifikation der relevanten Umgebungsgrößen 2. Repräsentation durch mathematische Variablen 3. Eigenschaften / Relationen der Variablen festlegen die relevanten Variablen sind im Allgemeinen zeitabhängig Funktionen über der Zeit! Zustand: Wert aller Funktionen zu einem gegebenen Zeitpunkt Trajektorie: Veränderung des Zustandes in der Zeit Festlegung: überwachte und geregelte Variablen („monitorierte“ und „kontrollierte“ Größen) 19.5.2009
Beispiel Sitzkontrolle im TSG Bewegung des Sitzes in einer Achse soll über einen Sitztaster mit drei Tasterstellungen gesteuert werden in einer Achse soll über einen Sitztaster mit drei Tasterstellungen gesteuert werden wird der Taster betätigt, soll der Sitz in die entsprechende Richtung bewegt werden; bei Erreichen der jeweiligen Endposition soll die Bewegung unterbrochen werden eine weitere Bewegung in diese Richtung soll erst wieder möglich sein, nachdem der Sitz per Taster in die entgegen gesetzte Richtung zurückgefahren wurde Modellierung Taster: {vorwärts, losgelassen, rückwärts} Sitzmotor: {enger, aus, weiter} Positionssensor: {minimum, normal, maximum} Fahrer, Sitz Steuerung 19.5.2009
UML Zustandsdiagramme parallele, hierarchische Automaten mit gemeinsamen Variablen synchrone Kommunikation über Ereignisse Transitionsbeschriftungen: (Ereignis, Bedingung, Aktion) s´ s event [condition] / reaction 19.5.2009
19.5.2009
Physikalisches Umgebungsmodell Benutzer kann Taster vorwärts oder rückwärts betätigen (ev_vor, ev_rueck) Taster loslassen (ev_los) Sitz wenn der Sitz „genügend lange“ enger gestellt wird, erreicht er irgendwann die Minimalposition wenn der Sitz „genügend lange“ weiter gestellt wird, erreicht er irgendwann die Maximalposition Sitzposition ist Funktion von Zeit und Motor in reelle Werte mit Zustandsdiagrammen nur unzureichend modellierbar! (nichtdeterministischer Übergang oder globale Variable) 19.5.2009
Modell der Steuerung (später!) überwacht: ev_t_vor, ev_t_rueck, ev_t_los; ev_p_min, ev_p_max gesteuert: ev_weiter, ev_enger, ev_stop; 19.5.2009
Beispiel Füllstandsregelung Füllstandsanzeiger Zulauf Ablauf max min Variable Typ Beschreibung Wertebereich Einheit Bemerkung f m Füllstand 0-100 mm z c Zulauf 0-1 prozentuale Öffnung a Ablauf nicht zugänglich min konstant Minimalfüllstand 86 max Maximalfüllstand 95 informelle Anforderungen: Wenn f < min, Zulauf einschalten Wenn f > max, Zulauf ausschalten Stellvertretend für Heizungsthermostat, Batterieladegerät, Dämmerungslicht, … 19.5.2009
Festlegung in Systemspezifikation Randbedingungen von der Natur oder vom Auftraggeber vorgegeben z.B. physikalische Beschränkungen z.B. Altsysteme, zu beachtende Restriktionen etc. Verantwortlichkeit des Auftraggebers! Steuerfunktionalität Abbildung von überwachten in gesteuerte Größen i.A. mehrdeutig, relational; Definitionsbereich von Randbedingungen eingeschränkt, Wertebereich gibt zulässige Trajektorien an Verantwortlichkeit des Systemingenieurs 19.5.2009
im Beispiel Randbedingungen Steuerfunktionalität 0 f(t) h Füllstandsanzeiger Zulauf Ablauf max min im Beispiel Randbedingungen 0 f(t) h 0 < f(t) < h f´(t)= k1*z(t) – k2*a(t) Steuerfunktionalität als Klauseln f(t) min z(t) = 1 f(t) max z(t) = 0 als partielle Funktion 1 falls f(t) min z(t) = 0 falls f(t) max undef sonst als Abbildung C ={(f(t), z(t)) | (f(t) min z(t) = 1) (f(t) max z(t) = 0)} 19.5.2009
Trajektorienbereiche intendierte, erlaubte und verboten 19.5.2009
Füllstandsanzeiger Zulauf Ablauf max min im Beispiel Zulauf sei kontinuierlich regelbar (0 z(t) 1); der Füllstand sollte möglichst nahe an max gehalten werden intendiertes Verhalten: je näher der Füllstand bei max ist, desto mehr wird der Zulauf geschlossen erlaubtes Verhalten: voller Zulauf bis max erreicht wird, dann zu (ruiniert auf Dauer das Ventil) verboten: max wird irgendwann überschritten und Ventil ist auf 19.5.2009
Parnas‘ 4-Variablen-Modell Die Systemspezifikation darf nur die nach außen sichtbaren Größen (überwachte und gesteuerte Variablen) verwenden! interne Variablen der Regelung versteckt, interne Zustände nicht sichtbar Implementierungsfreiheit 19.5.2009
Modi Wdh.: Zustand = Wert aller relevanten Variablen zu einem gegebenen Zeitpunkt Zustand der Umgebung ist für das System (nur) durch überwachte Variablen gegeben Systemzustand setzt sich aus überwachten, gesteuerten und internen Variablen zusammen Ein Realzeitsystem (Zeit ist überwachte Größe) kehrt niemals in den selben Zustand zurück Modus (engl.: mode) Menge von „äquivalenten“ Zuständen Modalpartitionierung (mode class) Partitionierung der Menge der Zustände in Modi 19.5.2009
diskrete Modellierung statt Zustandsübergängen betrachten wir Übergänge von einem Modus in einen anderen Im Beispiel Umgebungszustand=Füllhöhe f(t) Modalpartitionierung={A:f(t)min, B:min<f(t)<max, C:f(t)max} mögliche Moduswechsel: AB, BC, CB, BA A B C 19.5.2009
propositionale Modellierung In jedem Modus können gewisse Konditionen (engl. Condition: Aussage, Proposition) zutreffen oder auch nicht Def. Kondition (condition): boolesche Funktion über der Zeit, die mit Hilfe von Umgebungsvariablen definiert ist Beispiel: voll(t) = f(t)max, leer(t) = f(t)min Def. Ereignis (event): Umschalten einer oder mehrerer Konditionen , : Schalten auf wahr bzw. auf falsch Beispiel: voll(7): max wird zum Zeitpunkt 7 erreicht Steuerfunktionalität als temporale Formeln leer z voll z 19.5.2009
Ablaufbeschreibung Def. Historie: Folge von Ereignissen Für jeden konkreten Systemablauf gibt es genau eine Historie endliche Variabilität: In jedem endlichen Zeitabschnitt passieren nur endlich viele Ereignisse (non-Zeno-Eigenschaft) Der Modus eines Systems wird durch den Anfangszustand und die Historie eindeutig bestimmt Beispiel: voll(7), voll(9), leer(13), leer(16) Überprüfung solcher Abläufe und Vergleich mit der vorgegebenen Soll-Funktionalität 19.5.2009
Benutzungs- und Umgebungsmodell Ereignisse werden durch (menschliche) Benutzer oder (natürliche) Umgebung ausgelöst Benutzer drückt Aus-Knopf Widerstandssensor zeigt „Maximalwert“ Verschiedene Arten der Modellierung Benutzungsmodell Anwendungsfalldiagramme („Use Cases“) UML Notation zur Beschreibung von Nutzungsverhalten, spezifiziert (Namen von) Akteure und Aktionen sowie deren Aufrufbeziehung Ablauf der Aktionen wird schablonenartig anhand konkreter Szenarien beschrieben (textuell oder mit Sequenz- oder Aktivitätsdiagrammen) Aktionen ≈ Events ≈ Methodenaufrufe Umgebungsmodell verschiedene „Berechnungsmodelle“ 19.5.2009
Marwedel‘s Models of Computation http://ptolemy.berkeley.edu/ 19.5.2009
Your Toy Modelling Language? 19.5.2009