3.1 Synchron kommunizierende Automaten. 3. Modelchecking mit Timed Automata und Uppaal

Größe: px
Ab Seite anzeigen:

Download "3.1 Synchron kommunizierende Automaten. 3. Modelchecking mit Timed Automata und Uppaal"

Transkript

1 3 Modelchecking mit Timed Automata und Uppaal 31 Synchron kommunizierende Automaten 31 Synchron kommunizierende Automaten 32 Spezifikationen mit Zeit 33 Nutzung von Uppaal 34 Timed Computation Tree Logic und Verifikation 35 Beispiele Automaten mit Kommunikationen bedingte Transitionen parametrisierte Transitionen parametrisierte Automaten Zustandsinvarianten Graphische Spezifikation //global chan a; chan b; chan c; Automaten mit lokalen Variablen Jeder Automat kann zusätzlich lokale Variablen haben, die auf Transitionen geändert werden können weiterhin können Funktionen zur Änderung spezifiziert werden Parameter: int x (Call by Value) int& x (Call by Reference) Template A c? a! Template A b! a? c! b? Template B Template C // lokale Variablen int x:=0; void sub (int int& v){ v:=v-1; } c? sub(x) a! x:=x+1 system A,B,C;

2 Transitionen mit Bedingungen //global chan c,d,e,q; //system system A,B; // A local int[0,255] v:=0; Template A v%2==1 q? d! c! e! v:=(v+1)%256 Template B 174 q! d? v%2==0 v:=v+1 e? q! c? v%4==0 v:=v+1 Parametrisierte Transition und Automaten //global Template V const int N=4; chan c[n]; chan d[n]; bool gesendet[n]; i: int[0,n-1] i:int[0,n-1]!gesendet[i] // template instantiations d[i]? c[i]! E0 = Emp(0); E1 = Emp(1); check() sum:=sum+i, E2 = Emp(2); gesendet[i]:=true E3 = Emp(3); // processes composed to system system V,E0,E1,E2,E3; Template Emp // local V int sum:=0; Parameter: int name void check(){ bool allegesendet:=true; for(i: int[0,n-1]) allegesendet:=allegesendet && gesendet[i]; c[name]? d[name]! if(allegesendet) for(i: int[0,n-1]) gesendet[i]:=false; } 175 Variante: Visualisierter Ablauf // local V int sum:=0; int[0,n] tmp; bool allegesendet; tmp<n gesendet[tmp]:=false, tmp:=tmp+1 tmp==n && allegesendet tmp:=0 tmp<n allegesendet:= allegesendet && gesendet[tmp], tmp:=tmp+1 Statt C-artige Funktionen zu nutzen, kann Ablauf visualisiert werden Vorteil: bessere Debug-Möglichkeit Nachteil: wesentlich mehr Zustände auch in der Verifikation tmp==n tmp==n &&!allegesendet i: int[0,n-1] d[i]? tmp:=0, allegesendet:=true i: int[0,n-1]!gesendet[i] c[i]! sum:=sum+i, gesendet[i]:=true Kommunikation mit Werten Da Kanäle keine Parameterlisten haben, müssen diese mit globalen Variablen simuliert werden Übertragen der Werte von 1 bis 10 // global const int max:=10; int[0,max] senden:=0; chan c; //Empfaenger int summe:=0; system Sender, Empfaenger Template Sender senden<max c! senden:=senden+1 Template Empfaenger c? summe:=summe+senden

3 Berücksichtigung von Zustandsinvarianten Zustände können Namen haben Transitionen ausgehend von z1 nur abwechselnd nutzbar In Zuständen stehen Invarianten int x:=0 x:=x+1 z2 z1 x:=x+1 z3 32 Spezifikationen mit Zeit typische Anforderungen mit Zeitbezug Einführung von Uhren Semantik von Uhren Datentypen Deadlocks durch Zeitbedingungen Urgent und Committed x%2==1 x%2== Spezifikation mit Zeit Zeit spielt bei verteilten und eingebetteten Systemen häufig eine wichtige Rolle für die Korrektheit, es sollen Fragen beantwortet werden, wie läuft das Protokoll, wenn man Verzögerungen durch Laufzeiten berücksichtigt? welche neuen Situationen entstehen, wenn man die Dauer einer Aktion berücksichtigt? welche minimalen Reaktionszeiten kann man erhoffen? welche maximalen Reaktionszeiten sind zu befürchten? wann kann ein Zustand erreicht werden? Diese Fragen können neben den schon bekannten Fragen eine wichtige Rolle spielen 180 Timed Automata (zeitbehaftete Automaten) Idee: Parallelkomposition von Automaten, die um spezielle Variablen für Zeit (sogenannte Uhren) erweitert werden In den Zuständen kann Zeit vergehen, Zustände können abhängig von Zeitbedingungen verlassen werden (Zustände besser als Locations, Lokationen, Aufenthaltsbereiche bezeichnen) Anforderungen können in einer temporalen Logik TCTL (Timed Computation Tree Logic) formuliert werden; dazu existiert Modelchecking-Ansatz Realisiert im Werkzeug Uppaal, entwickelt in Uppsala (Schweden) und Aalborg (Dänemark) clock x; z1 x<=5 Invariante fordert, dass z1 nach höchstens 5 Einheiten verlassen wird Bedingung der Transition fordert, dass mindestens 2 Einheiten vergangen sind x>=2 181

4 Invarianten in Zuständen Zustandsinvarianten geben Regeln für die Zustände an x<=2: Der Zustand muss spätestens dann verlassen werden, wenn die Uhr x mehr als zwei Zeiteinheiten (2 E) hat Uhren laufen kontinuierlich weiter Invarianten haben die Form <clock> op <Ausdruck> mit op {<,<=,=}, Ausdruck darf Uhren, Integer-Variablen und Konstanten enthalten, keine oder-verknüpfung von Uhren Auf den Transitionen wird keine Zeit verbraucht Automat verlässt nach maximal 2 E start, da Uhr weiterläuft, und versucht nach maximal 3E wieder nach start zurück zu kehren Theoretisch können Zustände beliebig oft gewechselt werden Läuft die Uhr im Zustand weiter über 2 E hinaus, ist Rückkehr nach start nicht mehr möglich, da Invariante verletzt würde Transitionswächter (Guard) Wächter ist Boolesche Bedingung, kann Uhren, Integer-Variablen und Konstanten enthalten Uhren und Differenzen zwischen Uhren werden nur mit Integer-Ausdrücken verglichen Uhren-Bedingungen können nur mit Konjunktionen verknüpft werden Ausgangstransition von start kann nach einer Zeiteinheit verlassen werden, es folgt: start wird im Intervall (1,2] verlassen ( ( offen, [ geschlossen) weiter kann erst nach 2 E verlassen werden; dies verstößt gegen Invariante von start, d h deadlock (bzw nicht wohldefinierter Zustand) x>2 start weiter x<=2 x>1 x<= Zuweisungen, Nichtdeterminismus, Variablen Visualisierung als Zeitdiagramm clock x; clock y; int [0,5] zwei:=0; int [0,5] drei:=0; x:=0 start x<=4 x>2 && zwei<5 zwei:=zwei+1 x>3 && drei<5 drei:=drei+1 x:=0 start x<=4 x>2 && zwei<5 zwei:=zwei+1 x>3 && drei<5 drei:=drei+1 weiter nach 3 E kann nichtdeterministisch eine ausgehende Kante gewählt werden Integer-Variablen erlaubt, können in Wächtern gelesen und bei Transitionsnutzung verändert werden Uhren können zurückgesetzt werden System kann jede von start ausgehende Transition 5-mal nutzen Uhr y zur Beobachtung; Analysefrage: Welchen Wert nimmt y minimal bis Deadlock (genauer: Inkonsistenz in start) an? 184 weiter zwei drei 0 1 start weiter x Gesamtzeit y Zeit

5 Variablenarten Definition von Konstanten: const <Typ> <name> = <wert>; Variable im Wertebereich min bis max int[<min>,<max>] <Variablenname>; ohne min max [ bis 32767] Boolesche Variablen: bool <Variablenname>; Definition von Uhren: clock <Uhrenname>; Kanal, über den synchron (Paar Sender, Empfänger) kommuniziert wird: chan <Kanalname>; ein Sender kann mit beliebig vielen Empfängern synchronisiert werden (auch null): broadcast chan <Kanalname>; Kanal wird für unmittelbare Kommunikation ohne Zeitverbrauch genutzt, Transition darf keinen Zeitwächter haben urgent <Kanaldeklaration wie vorher>; Felddeklarationen für alle Typen, zb clock x[4]; Initialisierungen sind bei Integer-Variablen möglich, zb int i:=3; int[2,5] j[3]:={2,3,4}; 186 Doppelklick clock x; int[0,2] modus:=0; chan klick; modus:=1 einfach start klick? x:=0 x<=3 klick? modus:=2 doppelt In modus wird Auswahlart codiert (=1 einfach, =2 doppelt) doppelt ist committed Zustand; d h in diesem Zustand darf keine Zeit verbracht werden, er wird sofort verlassen (für einen Automaten entspricht dies atomarem Schritt, Ausnahme wenn mehrere Automaten interleavt committed Zustände durchlaufen) 187 Deadlocks durch Zeit Urgent- und Committed-Zustände clock x; wegen Zeitbedingung nicht ausführbare Transition (a) Deadlock mit Committed (und Urgent) c! x>=2 c? (b) Urgent: c und d ausführbar c! c? d! wegen Zeitbedingung nicht betretbarer Zustand d? (c) Committed: nur c ausführbar c! c? d! d?

6 Zusammenfassung typischer Zeitnutzungen 33 Nutzung von Uppaal z z Der Zustand z wird nach weniger als 3 E verlassen Der Zustand z kann zwischen 3 und 5 E verlassen werden, Zustand muss aber nicht verlassen werden Beispiel: Weiterleitungsmodul Eingabe von Timed Automata Nutzung des Simulators z Der Zustand z wird garantiert zwischen 3 und 5 E verlassen Weiterleitung (1/7) Zu untersuchen ist die Verzögerung, die durch ein Weiterleitungsmodul TM (transmission module) entstehen kann Das Modul übernimmt eine Nachricht, liefert diese weiter, wartet auf eine Bestätigung und leitet dann diese weiter Weiterleitung (2/7) Zustandseingabe Transitionseingabe Kanteneckpunkte (Nails) Uppaal erlaubt die Erzeugung von Systemen durch so genannte Templates (einzelne Prozesse als Timed Automata), dabei können Parameter an eine Spezifikation übergeben werden Dies wird im folgenden zusammen mit der Nutzung von Uppaal erklärt Sender (Send) Trans1 (TM) Trans2 (TM) Trans3 (TM) Empfaenger (Emp) Prozessname Prozessparameter (Templateparameter)

7 Weiterleitung (3/7) Weiterleitung (4/7) Empfängerprozess Emp Doppelklick auf Zustand ermöglicht Eingabe von Invarianten und Zustandsart System Editor zur Eingabe Declarations : Eingabefenster für lokale Variablen Syntaxprüfung mit F7 (oder File->Check Syntax), Ergebnis wird unten angezeigt (von Hand vergrößern) Weiterleitung (5/7) Weiterleitung (6/7) Spezifikation von TM Durch Doppelklick auf eine Kante können deren Eigenschaften parametrisiert, Wächter, Kommunikation und veränderte Variablen angegeben werden

8 Weiterleitung (7/7) Überblick Simulator (1/7) Ausführbare Aktionen bisher ausgeführte Aktionen aktuelle Variabenwerte (mit Uhren) Prozesse in ihren aktuellen Zuständen Hier müssen globale Variablen stehen, direkte Angaben wie 2 als Parameter sind nicht möglich Simulationssteuerung ausgeführte Aktionen als Message Sequence Chart Überblick Simulator (2/7) Überblick Simulator (3/7) mögliche Transition anwählen (hier nur eine möglich) dann Next drücken Neuanfang mit Reset (gewählte Transition hat Einfluss auf andere Fenster) zuletzt ausgeführte Aktionen (auswählbar) in der Form (Zustände) (Transition) (Auswahl hat Einfluss auf andere Fenster)

9 Überblick Simulator (4/7) Überblick Simulator (5/7) Simulationssteuerung: Simulationen können geladen, gespeichert und wiederholt werden Anzeige der Werte aller Variablen und Uhren, für die Uhren und die angewählte Aktion werden die Intervalle der Uhren angezeigt Bei Random läuft die Simulation automatisch ab, dazu kann die Geschwindigkeit eingestellt werden (Ist Togglebutton, bleibt also gedrückt) Überblick Simulator (6/7) Überblick Simulator (7/7) Prozessnamen aktuelle Zustände Kommunikationen (immer synchron) Prozesse

10 34 Timed Computation Tree Logic und Verifikation Syntax und Semantik von Timed Computation Tree Logic (TCTL) typische Anforderungen in TCTL Fairnessuntersuchung in Timed Automata Nutzung der Verifikationskomponente in Uppaal Interpretation von Verifikationsergebnissen Ansatz von CTL LTL betrachtet alle möglichen Ausführungssequenzen CTL (Computation Tree Logic) betrachtet alle möglichen Folgezustände und macht Aussagen, was in diesen Folgezuständen gilt Ausgangszustand alle möglichen Folgezustände wieder unendliche Abläufe betrachtet Es gibt Anforderungen, die man in LTL und nicht in CTL und Anforderungen, die man in CTL und nicht in LTL ausdrücken kann Syntax von TCTL in Uppaal Einfache Prädikate der Form <Integer-Ausdruck> <op> <Integer-Ausdruck> <Uhr-Variable> <op> <Integer-Ausdruck> In <Integer-Ausdruck> können außer Uhren beliebige Variablen vorkommen Sind p und q Prädikate, dann auch p and q, p or q, not p, p imply q, (p) (Logik wird ausgeschrieben, oder &&, sowie! ) A p (all pathes always, immer ) A p (all pathes sometimes, immer irgendwann ) E p (exists a path always, für einen Weg immer ) E p (exists a path sometimes, kann garantiert irgendwo ) p q (p leads to q, wenn p dann irgendwann q ) Spezielle Formel: deadlock; erfüllt, wenn kein Prozess weiter kann man beachte: Keine Schachtelungen erlaubt E A p (wäre in CTL möglich, erhöht aber Modelcheck-Aufwand drastisch) A: für alle Pfade E: es gibt einen Pfad 208 Veranschaulichung der Formeln (1/3) A p A[] p : genau hier gilt p E p E[] p Anmerkung: Knoten müssen nicht immer zwei Blätter haben 209

11 Veranschaulichung der Formeln (2/3) Veranschaulichung der Formeln (3/3) A p A<> p E p E<> p 210 q p Rechenregeln: A p A p q p q q q E p E p p q p leads to q p --> q (nicht mit unserer eingeschränkten Version von CTL, aber im normalen CTL formulierbar) p q A (p imply (A q)) 211 Typische Formeln Sicherheit: A[] p (Invariante) Sicherheit: E[] p (Es gibt einen sicheren Pfad) Analyse von Fairness in Uppaal Automat Fairness int i:=0; Lebendigkeit: A<> p (Zustand muss erreicht werden) Lebendigkeit: p --> q (p führt irgendwann zu q) Erreichbarkeit = Mix aus Sicherheit und Lebendigkeit: E<> p (p kann irgendwann eintreten) Anmerkung: In Uppaal nie Leerzeichen zwischen A (E) und [] (<> <>)

12 Nutzung der Verifikationskomponente (1/2) Ansicht der Formeln (keine Änderung) Formeln werden durch Anklicken selektiert (mehrere mit gedrückter Hochstelltaste) Nutzung der Verifikationskomponente (2/2) Achtung! Formeln (Queries) können getrennt gespeichert und geladen werden Modelchecking starten, unten wird Ergebnis angezeigt Formelverwaltung Eingabe von Formeln informeller Kommentar 214 Weitere Einstellungen werden hier nicht im Detail betrachtet Um Trace zum Fehler (A) oder Erfolg (E) zu bekommen, muss eine Diagnostic Trace gewählt werden 215 Analyse des Verifikationsverhaltens (1/3) Analyse des Verifikationsverhaltens (2/3) Automat P int i:=0; clock x; Es wird immer s3 durchlaufen A<> Ps3 Es wird Gegenbeispiel erzeugt, das schrittweise mit Next im Simulator durchlaufen werden kann Achtung, Ausgaben hängen von Verifikationseinstellungen (Options) ab, hier: - Breadth First - State Space Reduction: none - State Diagnostic Representation: DBM - Diagnostic Trace: shortest

13 Analyse des Verifikationsverhaltens (3/3) 35 Beispiele i hat nie den Wert 42 A[] Pi!=42 (erzeugt Trace mit Gegenbeispiel) i hat irgendwann den Wert 5 E<> Pi==5 (Verifikation scheitert, kein Gegenbeispiel [!?]) möglich, dass i nie einen Wert größer-gleich 7 annehmen wird E[] Pi<7 (Verifikation scheitert, kein Gegenbeispiel) Anmerkung: Ohne Uhren ist Beweis erfolgreich [!]) Möglich, dass i nie einen Wert größer 8 annimmt E[] Pi<8 (Verifikation erfolgreich, Trace wird konstruiert mit Deadlock in s3) 218 Timeout Systemstart Modellierung von Arbeitsabläufen Verifikation deterministischer Programme (sortieren) Telefonsystem 219 Timeout (1/2) Reaktive Systeme haben oft einen Timer, der Aktionen abbrechen kann oder Alarm auslöst; dies kann auch in Uppaal spezifiziert werden chan reset; chan abort; Automat Timer const int grenze:=10; clock timer; clock x; timer<grenze abbruch start reset? timer:=0 timer==grenze abort! x<4 s0 abort? abort? reset! x:=0 220 x:=0 s1 x<5 s3 x:=0 abort? x<6 s2 Timeout (2/2) const int grenze:=10; clock timer; timer<grenze abbruch start reset? timer:=0 timer==grenze abort! chan reset; chan abort; x<4 s0 clock x; abort? abort? reset! x:=0 221 x:=0 s1 x<5 s3 x:=0 abort? Ist es möglich, dass nie ein Abbruch passiert? (ja) E[]!Timerabbruch Ist es garantiert, dass kein Abbruch passiert? (nein) A[]!Timerabbruch x<6 s2

14 Systemstart und Invarianten Häufig sollen Invarianten erst gelten, wenn eine Initialisierung durchlaufen wurde Ansatz: Definiere Boolesche Variable ok:=false, die nach der Initialisierung auf true gesetzt wird und den Wert behält Beispiel: Nach Initialisierung liegt der Wert von i immer zwischen 10 und 20 Folgende Anforderung ist erfüllt: A[] Pok imply (Pi>10 && Pi<20) Automat P int[0,30] i:=0; bool ok:=false; 222 Modellierung von Arbeitsabläufen (1/2) Modelle werden nicht nur für HW- und SW-Systeme zur Prüfung genutzt, sie können auch zur Analyse von Geschäftsprozessen dienen; dazu bietet auch Uppaal Möglichkeiten Anmerkung: Natürlich kann man solche Modellierungsansätze auch mit SPIN verfolgen; es gibt kommerzielle Ansätze, um hier mit (linearen) Optimierungen zu arbeiten Spezifikation: Es gibt zwei Möglichkeiten, ein Gesamtergebnis herzustellen, einmal in zwei Teilschritten, die etwas zeitintensiver, aber kostengünstiger sind, der andere Ansatz besteht aus einem Schritt, der kostenintensiver, aber schneller ist 223 Modellierung von Arbeitsabläufen (2/2) Automat P clock x; clock y; int i:=0; bool fertig:=false; x misst die Gesamtzeit fertig gesetzt, wenn Arbeit abgeschlossen (alternativ Ps3) i steht für Kosten Gibt es kostengünstigen (i<3) Weg in maximal 7 E (nein) E<> Pfertig && Pi<3 && Px<=7 Gibt es Weg in maximal 7 E (ja) E<> Pfertig && Px<=7 Gibt es kostengünstigen Weg in maximal 8 E (ja) E<> Pfertig && Pi<3 && Px<=8 Verifikation deterministischer Programme Sortierverfahren, informelle Spezifikation: Laufe mit dem Zähler i von 0 bis zur Arraygröße-1 Laufe mit dem Zähler j von i+1 bis zur Arraygröße falls das j-te Element kleiner als das i-te Element ist, vertausche diese

15 Sortierer (1/4) Sortierer (2/4) mit kleinem Fehler const int N:=5; const int MAX:=3; int[0,max] array[n]; int[0,max] save[n]; int count:=0; int[0,n] count2:=0; int[0,n] j:=0; int[0,max] tmp; int[0,n] anzahl1; int[0,n] anzahl2; Sortierer (3/4) Sortierer (4/4) Gleiche Elemente A[]!deadlock Processok Processarray[0] = 0 Processarray[1] = 0 Processarray[2] = 0 Processarray[3] = 1 Processarray[4] = 0 Processsave[0] = 0 Processsave[1] = 0 Processsave[2] = 0 Processsave[3] = 1 Processsave[4] = 0 Processcount = 3 Processj = 4 Processtmp = 0 (alternativ: A<> Processok) Ergebnis nach Ausführung fehlerhafter Trace (Korrekt im Sortieren: j>n-1 und jeweils j<=n-1 && ) alternativ e Formel: A<> Processok

16 Beispiel: Telefonsystem (1/8) Informelle Beschreibung: Zu entwickeln ist eine Timed Automata-Spezifikation für ein Telefonsystem mit N Teilnehmern Dabei besteht das System aus den Teilnehmern und dem Vermittlungssystem Zur Kommunikation zwischen den Teilnehmern und dem Vermittlungssystem werden folgende Kommunikationen (Synchronisationen) genutzt Kommunikation dial, x busy connect dialled disconnect disconnected Bedeutung Teilnehmer wählt Nummer x Teilnehmer erhält die Information gewählte Nummer besetzt Teilnehmer erhält die Information gewählte Nummer erreicht Teilnehmer erhält die Information, dass er von einem anderen Teilnehmer angerufen wurde Teilnehmer beendet das Gespräch verbundener Teilnehmer hat Gespräch beendet Vereinfachend wird angenommen, dass ein erfolgreich angerufener Teilnehmer immer das Gespräch annimmt und dass der Telefonhörer unmittelbar mit busy, disconnect und disconnected aufgelegt wird 230 Beispiel: Telefonsystem (2/8) alternativ kann Teilnehmer 1 auflegen Teilnehmer 1 dial,2 connect disconnected Teilnehmer 1 Vermittlungssystem dial,2 busy dialled disconnect Vermittlungssystem Teilnehmer Beispiel: Telefonsystem (3/8) Anforderungen: Die zentrale funktionale Anforderung ist, dass jeder Teilnehmer immer wieder die Möglichkeit hat, jeden anderen Teilnehmer zu erreichen Weiterhin soll das System folgende Zeitrandbedingungen berücksichtigen: Es werden minimal 3 und maximal 7 Zeiteinheiten benötigt, um festzustellen, dass ein Teilnehmer nicht erreichbar ist Es werden minimal 4 und maximal 10 Zeiteinheiten benötigt, um die Verbindung (dialled) zu einem erreichbaren Teilnehmer aufzubauen Ein Telefonat (zwischen connect und disconnect, bzw dialled und disconnect) dauert minimal 20 und maximal 40 Zeiteinheiten (z B Werbung + echtes Gespräch) Wie lange kann es maximal dauern, bis ein Telefonat(sversuch) beendet wurde? 232 Beispiel: Telefonsystem (4/8) Verwaltungsdaten: const int N := 5; // für vier Teilnehmer, mit // Nummern 1,2,3,4 // Teilnehmer 0, bzw Wert 0 für keine Verbindung chan dial[n]; chan connect[n]; chan busy[n]; chan disconnect[n]; chan disconnected[n]; chan dialled[n]; int[0,n] anrufen[n]; // Nummer, die Teilnehmer i // anruft int[0,n] aktiv[n]; // mit wem ist i verbunden? 233

17 Beispiel: Telefonsystem (5/8) Beispiel: Telefonsystem (6/8) Teilnehmer Parameter: int[1,n] ich clock y; clock dauer; int[1,n] caller; int[1,n] calling; int[1,n] tmp; clock x; Telefonsystem Beispiel: Telefonsystem (7/8) // Komposition unter Nutzung eines // Verbindungsknotens Tel1 = Teilnehmer(1); Tel2 = Teilnehmer(2); Tel3 = Teilnehmer(3); Tel4 = Teilnehmer(4); Verbindung = Telefonsystem() system Tel1, Tel2, Tel3, Tel4, Verbindung; System hat kein Deadlock A[]!deadlock Property is satisfied 236 Beispiel: Telefonsystem (8/8) Analyse der maximalen Gesprächsdauer (Grenzen durch try and error) A[] ((!Tel2start) imply Tel2dauer<47) Property is not satisfied A[] ((!Tel2start) imply Tel2dauer<48) Property is satisfied Annäherung an: Jeder kann jeden anrufen E<> (aktiv[1]==2 && aktiv[2]==1) Property is satisfied Prüfung: alle gleichzeitig aktiv E<> (Tel1verbunden && Tel2verbunden && Tel3verbunden && Tel4verbunden) Property is not satisfied Spezifikation zusätzlicher Leitungen (Verbindungsknoten) Verbindung2 = Telefonsystem() system Tel1, Tel2, Tel3, Tel4, Verbindung, Verbindung2; 237

18 Grenzen von Timed Automata Alle Uhren laufen synchron, dh es ist keine Clock- Drift einfach spezifizierbar (Uhren weichen mit der Zeit leicht voneinander ab) Anforderungssprache TCTL nicht sehr mächtig, weniger als CTL oder CTL* (hauptsächlich Performancegründe) Umgang mit Uhren nur sehr eingeschränkt in Bedingungen möglich; keine Zuweisungen an Uhren; keine Nutzung im Zusammenhang mit Variablen (Problem: Logik wird sonst schnell unentscheidbar) 238

3.2 Spezifikationen mit Zeit

3.2 Spezifikationen mit Zeit 32 Spezifikationen mit Zeit typische Anforderungen mit Zeitbezug Einführung von Uhren Semantik von Uhren Datentypen Deadlocks durch Zeitbedingungen Urgent und Committed 178 Spezifikation mit Zeit Zeit

Mehr

1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0;

1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0; 1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0; Weiterhin hat der Prozess folgende lokale Deklaration. void

Mehr

1. Einführung in Temporallogik CTL

1. Einführung in Temporallogik CTL 1. Einführung in Temporallogik CTL Temporallogik dient dazu, Aussagen über Abläufe über die Zeit auszudrücken und zu beweisen. Zeit wird in den hier zunächst behandelten Logiken als diskret angenommen

Mehr

1. Motivation. Modelchecking. NuSMV. NuSMV und SMV. 2. Modellierung. Erinnerung (Kapitel II)

1. Motivation. Modelchecking. NuSMV. NuSMV und SMV. 2. Modellierung. Erinnerung (Kapitel II) 1. Motivation Modelchecking V. Ein Modelchecker: NuSMV Motivation und Hintergrund Modellierung Eigenschaften Anwendung Wir kennen jetzt die Grundlagen des Modelcheckings, auch wenn uns noch ganz wesentliche

Mehr

Werkzeuggestützte Softwareprüfungen: Model Checking I - CTL. Vortrag von Florian Heyer

Werkzeuggestützte Softwareprüfungen: Model Checking I - CTL. Vortrag von Florian Heyer Werkzeuggestützte Softwareprüfungen: Vortrag von Florian Heyer Gliederung Wiederholung Einführung CTL im Detail Anwendungsbeispiele Abschluss 2 Model Checking (Wiederholung) Überprüfung einer Systembeschreibung

Mehr

MODEL CHECKING 3 TEMPORALE LOGIKEN

MODEL CHECKING 3 TEMPORALE LOGIKEN MODEL CHECKING 3 TEMPORALE LOGIKEN Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Kripke-Struktur 2 Definition: Sei A eine Menge von Aussagevariablen. Eine Kripke-Struktur M über A ist ein

Mehr

Model Checking I. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Model Checking I. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Model Checking I Yi Zhao Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Zhao, Spisländer FAU Erlangen-Nürnberg Model Checking I 1 / 22 1 Inhalt 2 Model

Mehr

LTL und Spin. Stefan Radomski

LTL und Spin. Stefan Radomski LTL und Spin Stefan Radomski sr@oop.info Gliederung Wiederholung Grundlagen Vorstellung LTL Syntax Semantik Beispiele Model Checking mit Spin Fallbeispiele Einführung in Promela Vorführung Zusammenfassung

Mehr

Analyse von Echtzeit-Systemen mit Uppaal. Dr. Carsten Weise Ericsson Deutschland GmbH

Analyse von Echtzeit-Systemen mit Uppaal. Dr. Carsten Weise Ericsson Deutschland GmbH Analyse von Echtzeit-Systemen mit Uppaal Dr. Carsten Weise Ericsson Deutschland GmbH Zur Person Ericsson Dänemark Übersicht Was ist Uppaal? Eine Einführung Grundlagen: Timed Automata Uppaal s Query-Language

Mehr

4. Alternative Temporallogiken

4. Alternative Temporallogiken 4. Alternative Temporallogiken Benutzung unterschiedlicher Temporallogiken entsprechend den verschiedenen Zeitbegriffen LTL: Linear Time Logic Ähnlich der CTL, aber jetzt einem linearen Zeitbegriff entspechend

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Marc Spisländer Josef Adersberger Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 10. November 2008 Inhalt Nachlese

Mehr

Model Checking. Timed Computation Tree Logic TCTL. Michael Hess

Model Checking. Timed Computation Tree Logic TCTL. Michael Hess Model Checking Timed Computation Tree Logic TCTL Michael Hess Gliederung Einführung Motivation Kripkestrukturen mit Zeitbedingungen TCTL Model Checking Regionenautomaten Komplexität Demonstration 2 Einführung

Mehr

An Overview of the Signal Clock Calculus

An Overview of the Signal Clock Calculus An Overview of the Signal Clock Calculus, Jennifer Möwert Inhaltsverzeichnis Synchrone Programmiersprachen Clock Calculus Synchrone Paradigmen SLTS Clocks SIGNAL Definitionen Endochrony Bäume, Jennifer

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

23. Behavioral Model Checking (Prüfung von Verhaltensmodellen)

23. Behavioral Model Checking (Prüfung von Verhaltensmodellen) 23. Behavioral Model Checking (Prüfung von Verhaltensmodellen) 1 Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 13-1.0,

Mehr

Kurzeinführung in SAL

Kurzeinführung in SAL Kurzeinführung in SAL Holger Pfeifer Institut für Künstliche Intelligenz Fakultät für Ingenieurwissenschaften und Informatik Universität Ulm 2. Mai 2007 H. Pfeifer Comp.gest. Modellierung u. Verifikation

Mehr

Modellierung verteilter Systeme

Modellierung verteilter Systeme Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 10 Erweiterungen Dr. Sebastian Voss fortiss GmbH Kompetenzfeldleiter Model-based Systeme Engineering Themenübersicht

Mehr

Formale Verifikation von Software. 10. Juli 2013

Formale Verifikation von Software. 10. Juli 2013 Formale Verifikation von Software 10. Juli 2013 Überblick Wann ist formale Softwareverifikation sinnvoll? Welche Techniken gibt es? Was ist Model Checking und wie kann man es zur Verifikation einsetzen?

Mehr

Sequenzgenerierung aus Klassifikationsbäumen

Sequenzgenerierung aus Klassifikationsbäumen Sequenzgenerierung aus Klassifikationsbäumen Peter M. Kruse, 24.01.2011 PMK, 24.01.2011 Inhalt Einleitung Stand von Wissenschaft und Technik Generierung von Testsequenzen mit der Klassifikationsbaum-Methode

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante

Mehr

Kapitel 4: Analyse von Petrinetzen

Kapitel 4: Analyse von Petrinetzen Kapitel 4: Analyse von Petrinetzen 1. Beispiele 2. Analyseansatz 3. Markierungsgraph 4. Beschränktheit 5. State Space Explosion: Beispiel 6. Komplementbildung 7. Zusammenhängend 8. Tot, lebendig, verklemmungsfrei

Mehr

Korrektheit und Hoare-Kalkül für Imperative Programme

Korrektheit und Hoare-Kalkül für Imperative Programme Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Formale Verifikation von Software. 8. Juli 2015

Formale Verifikation von Software. 8. Juli 2015 Formale Verifikation von Software 8. Juli 2015 Überblick Wann ist formale Softwareverifikation sinnvoll? Welche Techniken gibt es? Was ist Model Checking und wie kann man es zur Verifikation einsetzen?

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker Wintersemester 2007/08 Thomas Schwentick Teil C: Nichtklassische Logiken 9. Temporallogiken Version von: 4. Februar 2008(11:55) Inhalt 9.1 Vorüberlegungen 9.2 Lineare Zeit: LTL 9.3

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

GPS: Realzeit-Systeme Realzeit-Automaten 209. Motivation

GPS: Realzeit-Systeme Realzeit-Automaten 209. Motivation 7) Realzeit-Systeme GPS: Realzeit-Systeme Realzeit-Automaten 209 Motivation Modellierung von Systemen benutzte bisher diskrete Zeit, die schrittweise, gleichmäßig und einheitslos voranschreitet manchmal

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

KONFIGURATOR-SOFTWARE (S009-50) Kurzanleitung

KONFIGURATOR-SOFTWARE (S009-50) Kurzanleitung S e i t e 1 KONFIGURATOR-SOFTWARE (S009-50) Kurzanleitung 1. Laden Sie die Konfigurator-Software von unserer Internetseite herunter http://www.mo-vis.com/en/support/downloads 2. Schließen Sie den mo-vis

Mehr

Software Engineering Praktikum

Software Engineering Praktikum Dipl-Inf Martin Jung Seite 1 Software Engineering Praktikum Formale Verifikation nebenläufiger Systeme mittels s 0 s 1 s 2 s 3 s 4 s 5 Dipl-Inf Martin Jung Seite 2 mit NuSMV Ziel: Frühe Fehlererkennung

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Abgeschlossenheit (Definition)

Mehr

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie. Einführung (1/3) 3 Wir verfolgen nun das Ziel, Komplexitätsklassen mit Hilfe von charakteristischen Problemen zu beschreiben und zu strukturieren Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit

Mehr

Tableaukalkül für Aussagenlogik

Tableaukalkül für Aussagenlogik Tableaukalkül für Aussagenlogik Tableau: Test einer Formel auf Widersprüchlichkeit Fallunterscheidung baumförmig organisiert Keine Normalisierung, d.h. alle Formeln sind erlaubt Struktur der Formel wird

Mehr

Bounded Model Checking mit SystemC

Bounded Model Checking mit SystemC Bounded Model Checking mit SystemC S. Kinder, R. Drechsler, J. Peleska Universität Bremen {kinder,drechsle,jp}@informatik.uni-bremen.de 2 Überblick Motivation Formale Verifikation Äquivalenzvergleich Eigenschaftsprüfung

Mehr

1.1 Transitionssysteme Produkte von Transitionssystemen Kripkestrukturen Verifikation und Model-Checking...

1.1 Transitionssysteme Produkte von Transitionssystemen Kripkestrukturen Verifikation und Model-Checking... Transitionssysteme und Verifikation 3. Transitionssysteme.................................. 3. Produkte von Transitionssystemen......................... 9.3 Automaten und reguläre Sprachen.........................

Mehr

Motivation und Einführung

Motivation und Einführung Motivation und Einführung H. Peter Gumm Philipps-Universität Marburg Sommersemester 2007 hat nichts zu tun mit... n... Schiffsmodellen n Modelleisenbahnen n solchen Modellen Beim Model checking geht es

Mehr

Aussagenlogische Testspezifikation

Aussagenlogische Testspezifikation Seminar Spezifikationsbasierter Softwaretest Aussagenlogische Testspezifikation Peer Hausding (10.06.2006) 1 Gliederung Einführung Begriffe Test Modellspezifikation AutoFocus Transformation Spezifikation

Mehr

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP 12 Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP 12 Woche: Verifizierer, nicht-deterministische Turingmaschine, NP 254/ 333 Polynomielle Verifizierer und NP Ḋefinition Polynomieller

Mehr

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung Theoretische Informatik und Logik Übungsblatt (26S) en Aufgabe. Sei L = {w#w r w {, } }. Geben Sie eine deterministische Turingmaschine M an, welche die Sprache L akzeptiert. Wählen Sie mindestens einen

Mehr

Modul 7: Automatische Validierung von Sicherheitsprotokollen - Einführung Model-Checking. Prof. Dr. Martin Leischner Netzwerksysteme und TK

Modul 7: Automatische Validierung von Sicherheitsprotokollen - Einführung Model-Checking. Prof. Dr. Martin Leischner Netzwerksysteme und TK Modul 7: Automatische Validierung von Sicherheitsprotokollen - Einführung Model-Checking 11.12.2018 12:11:59 M. Leischner Sicherheit in Netzen Folie 1 Automatische Validierung von Protokollen - Lehrkonzept

Mehr

Formale Modelle der Software-Entwicklung

Formale Modelle der Software-Entwicklung Vorbereitung Generell sind Spin und ISPIN auf den Hochschulrechnern installiert, da ISPIN allerdings Schreibrechte in dem Verzeichnis benötigt, in dem es installiert ist ( umbiegen ist recht aufwändig),

Mehr

Modellierung verteilter Systeme

Modellierung verteilter Systeme Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 09 Eigenschaften Dr. Sebastian Voss fortiss GmbH Kompetenzfeldleiter Model-based Systeme Engineering Themenübersicht

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Verifizierende Testverfahren

Verifizierende Testverfahren Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten

Mehr

Informatik. Strukturen und Aufzählungstypen. Vorlesung

Informatik. Strukturen und Aufzählungstypen. Vorlesung Informatik Vorlesung 06 Strukturen und Aufzählungstypen 03. Dezember 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Datentypen Die bisher benutzten Datentypen waren

Mehr

abgeschlossen unter,,,, R,

abgeschlossen unter,,,, R, Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen

Mehr

Logik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14

Logik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14 Logik Logik Vorkurs Informatik Theoretischer Teil WS 2013/14 30. September 2013 Logik > Logik > logische Aussagen Logik Logik > Logik > logische Aussagen Motivation Logik spielt in der Informatik eine

Mehr

Thomas Schirrmann Nebenläufigkeit. Nebenläufigkeit. Vortrag Thomas Schirrmann. Seminar Systementwurf Dozentin Daniela Weinberg

Thomas Schirrmann Nebenläufigkeit. Nebenläufigkeit. Vortrag Thomas Schirrmann. Seminar Systementwurf Dozentin Daniela Weinberg Nebenläufigkeit Vortrag Seminar Systementwurf Dozentin Daniela Weinberg 1 Gliederung 1. Einführung 2. Modellierung 2.1. POMSET 2.2. Transitionssystem 2.3. Petrinetz 2.4. abstraktes nebenläufiges Programm

Mehr

Formale Systeme. Die Sprache PROMELA. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Die Sprache PROMELA. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS 29/2 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association

Mehr

Logik Vorlesung 4: Horn-Logik und Kompaktheit

Logik Vorlesung 4: Horn-Logik und Kompaktheit Logik Vorlesung 4: Horn-Logik und Kompaktheit Andreas Maletti 14. November 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen

Mehr

Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P)

Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P) Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P) Syntax Semantik Signatur, Variablen Terme (induktive Definition, Baumform) Atome

Mehr

16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen

16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen 491 16. Structs und Klassen I Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen Rechnen mit rationalen Zahlen 492 Rationale Zahlen (Q) sind von der Form n d mit n

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern

Mehr

Model Checking mit SPIN

Model Checking mit SPIN Model Checking mit SPIN Sabine Bauer 15.08.2005 2 Gliederung 1. Teil: Grundlagen des Model Checking - Abgrenzung zur deduktiven Verifikation - Das Model Checking-Problem - Kripke-Struktur - LTL - Arbeitsweise

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf

Mehr

Imperative Programmierung in Java: Kontrollfluß II

Imperative Programmierung in Java: Kontrollfluß II 2 Imperative Programmierung in va: Kontrollfluß II Martin Wirsing Ziele Lernen imperative Programme in va mit Zuweisung, Block, Fallunterscheidung, Iteration zu schreiben Lernen Kontrollflußdiagramme zur

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 23.06.2014 1 / 26 Überblick 1 Zero-Knowledge-Protokolle Erinnerung Beispiel für Zero-Knowledge-Protokoll Analyse des Beispiel-Zero-Knowledge-Protokolls Proof-of-Knowledge-Eigenschaft

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointer, Parameterbergabe Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vectoren) 2 Arrays: Motivation Gegeben:

Mehr

Bisher. Wiederholung NFA Modellierung durch NFA Kripke-Struktur

Bisher. Wiederholung NFA Modellierung durch NFA Kripke-Struktur Bisher Wiederholung NFA Modellierung durch NFA Kripke-Struktur Model-Checking Modell beschrieben durch Kripke-Struktur A Spezifikation ϕ in einer Temporallogik Verifikation: Nachweis, dass die Struktur

Mehr

Zusammenfassung. Definition. 1 (x i ) 1 i n Sequenz von Registern x i, die natürliche Zahlen beinhalten. 2 P ein Programm. Befehle: 1 x i := x i + 1

Zusammenfassung. Definition. 1 (x i ) 1 i n Sequenz von Registern x i, die natürliche Zahlen beinhalten. 2 P ein Programm. Befehle: 1 x i := x i + 1 Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither Eine Registermaschine (RM)

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten.

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. 4.5.5 Rekursive Typen Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. datatype IntList = Nil Cons o f ( i n t IntList ) ; Damit

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Automaten, Spiele und Logik

Automaten, Spiele und Logik Automaten, Spiele und Logik Woche 13 11. Juli 2014 Inhalt der heutigen Vorlesung Linearzeit Temporale Logik (LTL) Alternierende Büchi Automaten Nicht-Determinisierung (Miyano-Ayashi) Beschriftete Transitionssysteme

Mehr

Kapitel 3 Ereignisdiskrete Systeme (III)

Kapitel 3 Ereignisdiskrete Systeme (III) Systemmodellierung Teil 1: Ereignisdiskrete Systeme Kapitel 3 Ereignisdiskrete Systeme (III) Modellierung mit E/A-Automaten Modellbildung mit Automaten Verfeinerte Modellbildung Beispiel: Fahrstuhltür

Mehr

Scheduling for Time-Triggered Network Communication

Scheduling for Time-Triggered Network Communication Scheduling for Time-Triggered Network Communication Jan Kamieth jan.kamieth@informatik.haw-hamburg.de Hochschule für Angewandte Wissenschaften Hamburg 14. Juni 2012 Agenda (1)Rückblick (2)Verwandte Arbeiten

Mehr

How To Prove A Propositional Logic

How To Prove A Propositional Logic Klausur Formale Systeme Fakultät für Informatik SS 2015 Prof. Dr. Bernhard Beckert 31. Juli 2015 Vorname: Matrikel-Nr.: Die Bearbeitungszeit beträgt 60 Minuten. A1 (10) A2 (8) A3 (6) A4 (7) A5 (9) A6 (11)

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 11: Korrektheit von imperativen Programmen Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Maximilian Haslbeck Fabian Mitterwallner Georg Moser David Obwaller cbr.uibk.ac.at Zusammenfassung der letzten LVA Definition Eine Registermaschine (RM) R ist

Mehr

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen

Mehr

Einführung in LTL unter MAUDE. Maschine!es Beweisen Einführung in LTL Seit# 1

Einführung in LTL unter MAUDE. Maschine!es Beweisen Einführung in LTL Seit# 1 Einführung in LTL unter MAUDE Mashine!es Beweisen Einführung in LTL Seit# 1 Verifikation eines Systems System- Verhalte% System- Spezifikatio% Mashine!es Beweisen Einführung in LTL Seit# 2 Verifikation

Mehr

2.2 Syntax, Semantik und Simulation

2.2 Syntax, Semantik und Simulation 2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische Programmanalyse der Scanner Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung

Mehr

Formale Modellierung Vorlesung 13 vom : Rückblick und Ausblick

Formale Modellierung Vorlesung 13 vom : Rückblick und Ausblick Rev. 2226 1 [19] Formale Modellierung Vorlesung 13 vom 01.07.13: Rückblick und Ausblick Serge Autexier & Christoph Lüth Universität Bremen Sommersemester 2013 2 [19] Fahrplan Teil I: Formale Logik Teil

Mehr

Hochschule Bonn-Rhein-Sieg. Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Modul 5: IPv6. Netze, BCS, 2.

Hochschule Bonn-Rhein-Sieg. Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Modul 5: IPv6. Netze, BCS, 2. Modul 5: IPv6 Folie 1 IPv6 Motivation: Adressknappheit durch starkes Abwachsen des Internet (abgemildert durch verschiedene kurzfristige Lösungsansätze) in wesentlichen Teilen seit 1998 standardisiert

Mehr

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein n-ärer

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.2 Modelle für Typ-0 & Typ-1 Sprachen 1. Nichtdeterministische Turingmaschinen 2. Äquivalenz zu Typ-0 Sprachen 3. Linear beschränkte Automaten und Typ-1 Sprachen Maschinenmodelle

Mehr

Stefan Schröder Hard- und Softwareentwicklungen. Anleitung TSImport. Zum Neetzekanal Brietlingen

Stefan Schröder Hard- und Softwareentwicklungen. Anleitung TSImport. Zum Neetzekanal Brietlingen Stefan Schröder Hard- und Softwareentwicklungen Anleitung TSImport Stefan Schröder Hard- und Softwareentwicklungen Zum Neetzekanal 19 21382 Brietlingen e-mail: schroeder@sshus.de Internet: http://www.sshus.de

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Sommersemester 2012 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. M. Spichkova, J. Mund, P. Neubeck Lehrstuhl Software

Mehr

ADT: Verkettete Listen

ADT: Verkettete Listen ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren

Mehr

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009 Theoretische Informatik Rainer Schrader nichtdeterministische Turingmaschinen Zentrum für Angewandte Informatik Köln 29. April 2009 1 / 33 2 / 33 Turingmaschinen das Konzept des Nichtdeterminismus nahm

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH)

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH) Formale Systeme Prof. Dr. Bernhard Beckert Fakultät für Informatik Universität Karlsruhe (TH) Winter 28/29 Prof. Dr. Bernhard Beckert Formale Systeme Winter 28/29 / Beschreibung endlicher Automaten Die

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Prüfung A Informatik D-MATH/D-PHYS :15 14:55

Prüfung A Informatik D-MATH/D-PHYS :15 14:55 Prüfung A Informatik D-MATH/D-PHYS 17. 12. 2013 13:15 14:55 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen

Mehr

Einige Grundlagen der Komplexitätstheorie

Einige Grundlagen der Komplexitätstheorie Deterministische Polynomialzeit Einige Grundlagen der Komplexitätstheorie Ziel: NP-Vollständigkeit als ressourcenbeschränktes Analagon zur RE-Vollständigkeit. Komplexitätstheorie untersucht den Ressourcenbedarf

Mehr