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 11.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, Time Petri Nets 11.11.2005
Requirements-Management Aufgabe: Verwaltung der spezifizierten Anforderungen Erfassung von Anforderungen aus Dokumenten (capturing) Verknüpfung zu Modulen und Testfällen (linking) Verfolgbarkeit (tracing) Analyse, Verifikation, Transformation Lebenszyklus von Anforderungen, Groupware Dokumentationsunterstützung RM-Tools können nicht die Qualität der Anforderungen (Präzision, Vollständigkeit, Eindeutigkeit etc.) verbessern! INCOSE Requirements Management Tools Survey: http://www.paper-review.com/tools/rms/read.php 11.11.2005
Beispiel: DOORS® von Telelogic® 11.11.2005
Beispiel: DOORS® von Telelogic® 11.11.2005
Beispiel: DOORS® von Telelogic® 11.11.2005
Modellierung Realzeitkonzepte in UML Zustandsdiagrammen after (time) als Trigger absoluter Zeitpunkt als Trigger Informelle Semantik die Transition wird t Zeiteinheiten nach dem Zeitpunkt zu dem sie aktiv wird ausgeführt die Transition wird zur angegebenen Uhrzeit ausgeführt Vielfach nicht ausreichend keine Mindest- / Höchstwartezeiten keine Möglichkeit mehrere Uhren zu verwenden Zustand 1 Zustand 2 after (5 ms) / Aktivität 11.11.2005
Timed Automata Timed Automata (zeitbeschriftete Automaten) erweitern das Konzept klassischer endlicher Automaten um (Stopp-)Uhren Uhren laufen ständig (kein Anhalten) alle Uhren laufen mit der selben Geschwindigkeit (perfekte Uhren, t´=1) Uhren können durch Transitionen auf 0 zurückgesetzt werden Uhren können das Schalten von Transitionen beeinflussen Eine Uhr x. Keine Invariante an s1, also kann das System beliebig lang in s1 bleiben. Beim Übergang zu s2 mit a wird die Uhr auf 0 zurückgesetzt. In s2 läuft die Uhr. Frühestens 1 Zeiteinheit später ist der Übergang zu s möglich, spätestens 2 Zeiteinheiten später muss er stattfinden. S1 S2 x<2 a, x:=0 x>1, b 11.11.2005
Anwendungsbeispiel Doppelklick-Schalter Zusatzanforderung Klick an, klick aus Wenn zweimal hintereinander schnell geklickt wird, heller Zusatzanforderung Schalte nach spätestens 300 s wieder dunkler Mehr über timed automata: Rajeev Alur, Tom Henzinger R. Alur and T.A. Henzinger. Real-time logics: complexity and expressiveness. Information and Computation 104(1):35-77, 1993 R. Alur and D.L. Dill. A theory of timed automata. Theoretical Computer Science 126:183-235, 1994 http://www.cis.upenn.edu/~alur/Talks/sfm-rt-04.ppt (lesen!) off low bright klick x:=0 x>3 x 3 y300 y>300 y:=0 11.11.2005
Und nun etwas formaler Gegeben eine Menge von Zeitvariablen X. Eine zeitabhängige Bedingung ist eine boolesche Kombination von Formeln der Art x<c, xc (rationales c) Ein zeitbeschrifteter Automat ist ein Tupel bestehend aus endlicher Menge L von Orten oder Plätzen (locations) Teilmenge L0 von Anfangsorten endliches Alphabet von Ereignissen endliche Menge von Uhren (-variablen) Invariante Inv(s) für jeden Ort (zeitabhängige Bedingung, optional) endliche Menge E von Transitionen bestehend aus Quelle, Zielort Ereignis aus dem Alphabet (optional) zeitabhängige Bedingung (optional) Menge von Uhren die zurückgesetzt werden (optional) 11.11.2005
Semantik Jedem zeitbeschrifteten Automaten wird ein zustandsunendliches Transitionssystem zugeordnet Zustände: (l, v) wobei l ein Ort und v eine Belegung der Uhren mit reellen Werten ist die Inv(l) erfüllt Anfangszustände: (l0,(0,…,0)) Zustandsübergänge Kontrollschritt: (l,v) –a–>(l´,v´) falls ein Übergang (l,a,g,r,l´) existiert mit v erfüllt g und v´=v[r:=0] Zeitschritt: (l,v) –d–>(l´,v´) falls l´=l und v´=v+d und sowohl v als auch v´ erfüllen Inv(l) Jeder Pfad durch das Transitionssystem ist ein Ablauf des Automaten Achtung: z.B. bei inkonsistenten Bedingungen leere Menge 11.11.2005
Erweiterungen zusätzliche Variable v1,…,vn über endlichem Wertebereich W1,…,Wn Ort = (Platz, Werte (w1,…,wn)) Input / Output – Events Partitionierung der Menge in Eingaben (i?), Ausgaben (o!), und interne Ereignisse Jede Transition darf mit einer Eingabe oder einem internen Ereignis und gleichzeitig mit mehreren Ausgaben beschriftet sein Parallele Automaten übliches Automatenprodukt (interleaving) Aufgabe geben Sie eine formale Definition an zeigen Sie dass dies keine echte Erweiterung des Modells ist 11.11.2005
11.11.2005
Verifikation In wie weit sind zeitbeschriftete Automaten analysierbar? Kann man entscheiden ob ein bestimmter Zustand erreichbar ist? 11.11.2005
Idee: Äquivalenzklassenbildung Partitionierung des unendlichen Zustandsraumes in endlich viele „Regionen“ alle Zustände einer Region weisen „ähnliches“ Verhalten auf 11.11.2005
Quotienten Def. Quotientenautomat bezüglich einer Partitionierung der Zustandsmenge Abstraktion von gewissen Variablen (kleinerer Wertebereich oder ganz weglassen) Zustände im Quotientenautomat sind Äquivalenzklassen von Zuständen im ursprünglichen Vergröberung der Verhaltensbeschreibung: Menge aller möglichen Abläufe (akzeptierter Wortschatz) wird größer Gesucht: Abstraktion die die Sprache nicht vergrößert Bei Zeitautomaten Abstraktion der Uhrenvariablen? Reduktion des Wertebereichs der Uhren? 11.11.2005