Theoretische Grundlagen des Software Engineering

Ähnliche Dokumente
Grundlagen der Künstlichen Intelligenz

Informationsblatt Induktionsbeweis

1 Mathematische Grundlagen

Formale Sprachen und Grammatiken

Grundlagen der Theoretischen Informatik, SoSe 2008

Primzahlen und RSA-Verschlüsselung

Logische Folgerung. Definition 2.11

Theoretische Grundlagen des Software Engineering

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Theoretische Grundlagen des Software Engineering

Grammatiken. Einführung

Mathematische Grundlagen

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Übung Theoretische Grundlagen

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Beweisbar sichere Verschlüsselung

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Einführung in. Logische Schaltungen

Programmiersprachen und Übersetzer

Grundbegriffe der Informatik

2. Vorlesung. Slide 40

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Binäre Suchbäume (binary search trees, kurz: bst)

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

BERECHNUNG DER FRIST ZUR STELLUNGNAHME DES BETRIEBSRATES BEI KÜNDIGUNG

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Theoretische Grundlagen der Informatik

Semantik von Formeln und Sequenzen

Evident VDDS-Anbindung von MIZ

Theorie der Informatik

Zwischenablage (Bilder, Texte,...)

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1 topologisches Sortieren

Projekt- und Personalplanung

Theoretische Informatik I

AutoTexte und AutoKorrektur unter Outlook verwenden

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

IT-Basics 2. DI Gerhard Fließ

Mathematische Grundlagen der Informatik 2

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Erfüllbarkeit und Allgemeingültigkeit

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Rhetorik und Argumentationstheorie.

Grundbegriffe der Informatik

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Software-Engineering SS03. Zustandsautomat

mobifleet Beschreibung 1. Terminverwaltung in der Zentrale

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Prodanet ProductManager WinEdition

Bedienungsanleitung GYMplus

Dokumentenverwaltung im Internet

QTrade GmbH Landshuter Allee München Seite 1

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

MARCANT - File Delivery System

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Einführung in die Informatik

MS Access 2010 Kompakt

So gehts Schritt-für-Schritt-Anleitung

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Wissenschaftliche Grundlagen des Mathematischen Schulstoffs IV. Die erste Stunde. Die erste Stunde

BENUTZERHANDBUCH für. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen

Modellbildungssysteme: Pädagogische und didaktische Ziele

Synchronisations- Assistent

Info zum Zusammenhang von Auflösung und Genauigkeit

Installationsanleitung FRITZ!BOX Fon 7270

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

Wie lässt sich die Multiplikation von Bruchzahlen im Operatorenmodell und wie im Größenmodell einführen?

Logik für Informatiker

Deutliche Mehrheit der Bevölkerung für aktive Sterbehilfe

s aus -Programm sichern Wählen Sie auf der "Startseite" die Option " s archivieren" und dann die entsprechende Anwendung aus.

Analysis I für Studierende der Ingenieurwissenschaften

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Dokumentation zur Versendung der Statistik Daten

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Repetitionsaufgaben Wurzelgleichungen

Logik für Informatiker

L&S Emotion App - ios

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

7 Rechnen mit Polynomen

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

CONTInuität und Leistung seit 1970

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Outlook Web App Kurzanleitung. Zürich, 09. Februar Eine Dienstabteilung des Finanzdepartements

Guide DynDNS und Portforwarding

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Grundlagen der Theoretischen Informatik

Erster Schritt: Antrag um Passwort (s. Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Transkript:

Theoretische Grundlagen des Software Engineering 0: Organisatorisches & Einführung schulz@eprover.org Software Systems Engineering

Kurzvorstellung Studium der Informatik in Kaiserslautern Promotion an der TU München Forschung: Automatische Deduktion Lehre: U. Miami, U. West Indies Nebenberuf: Projektleiter COMSOFT Entwicklungsprojekte Flugsicherung 2

Veranstaltungstermine Montag Dienstag Mittwoch Donnerstag Freitag 10.15-11.45 TGSE VL (C-213) 12.00-12.45 TGSE Übung (C-213) 14.15-15.45 TGSE VL (C-213) 16.00-16.45 TGSE Übung (C-213) Oktober 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 November 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Dezember 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Januar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Kurzfristige Änderungen möglich, aber nicht erwartet 3

Unterlagen Vorlesungsskript und Übungen: Hoffentlich bald per LernWeb/Moodle Vorläufig unter http://www.eprover.org/teaching/tgse2009.html 4

Übungen Initial Präsenzübungen Aufgaben werden in der Stunde gestellt, bearbeitet, und diskutiert Regelmäßige aktive Teilnahme ist Voraussetzung für die Zulassung zur Prüfung! 5

Leistungsbewertung Je nach Anzahl der Teilnehmer Klausur oder mündliche Prüfung Ca. eine Woche nach Abschluss der Vorlesung Geplanter Termin: 1. Februar 2010 Bewertungskriterien: Reproduktion (30%) Verständnis (40%) Transfer und Anwendung (30%) 6

Ziele der Vorlesung Vokabular der Domäne bereitstellen Unverzichtbare Voraussetzung Methoden Wesentliches Ziel Ergebnisse Nett zu wissen, besser herzuleiten! 7

Erschließt die Literatur Effizienterer Gedankenaustausch Vokabular Höheres Abstraktionsniveau Weiterdenken Image credit: Stanislav Doronenko via the Wikimedia Commons 8

Definition Eine Definition ist eine genaue Beschreibung eines Objektes oder Konzepts. Definitionen können einfach oder komplex sein Definitionen müssen präzise sein - es muss klar sein, welche Objekte oder Konzepte beschrieben werden Oft steckt hinter einer Definition eine Intuition - die Definition versucht, ein reales Konzept formal zu beschreiben Hilfreich für das Verständnis - aber gefährlich! Nur die Definition an sich zählt für formale Argumente 9

Methoden Wie beweist man... dass alle C-Programme gleich oft ( und ) enthalten? dass es keinen regulären Ausdruck für C-Programme gibt? Wie findet man... alle Treffer für einen regulären Ausdruck? alle Modelle einer aussagenlogischen Formel? Wie beschreibt man... eine domänenspezifische Sprache? eine Vorbedingung für eine Prozedur? 10

Mathematische Beweise Ein Beweis ist ein Argument, das einen verständigen und unvoreingenommenen Empfänger von der unbestreitbaren Wahrheit einer Aussage überzeugt. Oft mindestens semi-formell Aussage ist fast immer ein Konditional...aber die Annahmen sind für semi-formelle Beweise oft implizit 11

Ergebnisse Kein endlicher Automat kann die Menge aller C-Programme erkennen Die Menge der kontextfreien Sprachen ist eine echte Obermenge der rechtslinearen Sprachen Aussagenlogik ist entscheidbar Lokale Konfluenz und Termination implizieren Konvergenz 12

Ihre Erwartungen? 13

Inhalte Formale Sprachen, Automaten und Grammatiken Aussagenlogik und Prädikatenlogik Reduktionssysteme/Rewriting 14

Einführung Sprachen+Automaten 15

Endliche Automaten: Einfaches Beispiel Startzustand Übergänge klick Aus An klick Zustände 16

Endliche Automaten: Einfaches Beispiel Formaler: Q={Aus, Ein} ist die Menge der Zustände Σ={klick} ist das Alphabet Übergangsfunktion Aus ist der Startzustand δ Aus An klick An Aus Es gibt keine akzeptierenden Zustände 17

Beispiel: Redundanzmanagement Aggregator ATC Center (Fluglotsen) 18

Beispiel: Redundanzmanagement Aktiver Server: - Nimmt Daten entgegen - Liefert aktives Luftbild - Schickt regelmäßig alive Meldungen ATC Server A Server B Passiver Server: - Überwacht alive Meldungen - Übernimmt bei Ausfall Sensoren 19

Zustandsdiagramm Zwei Eingaben ( Buchstaben ) alive alive alive q0 q1 q2 q3 timeout timeout timeout timeout: 0.1 Sekunden sind vergangen alive: Andere Server ist aktiv q0, q1, q2: Server ist passiv Keine Verarbeitung, keine alives Wenn q3 erreicht wird: Übername als aktiver Server (schicke alives) 20

Formale Sprachen Mengen von Worten über definierten Alphabeten Alle Namen im Telefonbuch von Hamburg Fließkommazahlen in wissenschaftlicher Notation: 1.3E+17, 1.0, 2e-13... Korrekt geklammerte Arithmetische Ausdrücke über *, +, x,y,z: 1+2, 1*(2+3), ((2+2)+2)+3... Worte der Form a...a, wobei die Anzahl der Wiederholungen von a eine Primzahl ist Alle (C-)Programme, die jemals terminieren Alle C-Programme, die niemals terminieren 21

Formale Sprachen Beschreibung von Sprachen: Generierend Formale Grammatiken - Praktische Ausprägungen: BNF, EBNF Akzeptierend: Automaten - Praktische Ausprägungen: Lexer, Parser Reguläre Ausdrücke 22

Noam Chomsky (*1928) Idee: Universelle Grammatik (1950er) Vermutung: Beschreibt Gemeinsamkeiten aller menschlichen Sprachen Bis heute diskutiert Aber: Massiven Einfluss im Bereich der Informatik Nahezu jede Sprache von XML über SQL und Scheme bis C und JAVA wird mit formalen Grammatiken beschrieben 23

Einführung Logik 24

Beispiel Flugsicherung Kontrollierter Luftraum Unkontrollierter Luftraum Überwachungss ystem Luftlagebild Anweisungen Anfragen ATC Center (Fluglotsen) Flughafen 25

Luftlagebild 26

Luftlagebild Wegpunkt Sektorgrenze Label: Kennung Flughöhe Geschwindigkeit Flugzeug Sperrgebiet Übungsgebiet 27

Filterung vermeidet Überlastung Ziel: Fluglotse sieht nur relevanten Verkehr Beispiel: Alle Flugzeuge im kontrollierten Luftraum Alle Flugzeuge in der Nähe eines Flughafens Ansonsten: Flugzeuge ab Flughöhe FL 100 Ausnahme: Militärflugzeuge im Übungsgebiet Sehr variable Forderungen der Lotsen Hart-kodierte Lösungen ungeeignet 28

Lösung: Symbolische Logik Filter wird durch logischen Ausdruck beschrieben Elementarfilter (Auswertung nach Luftlage): Höhenband Id-Code (Mode-3/A) in Liste Geographische Filter (Polygon) Kombinationen durch logische Operatoren Flugzeug wird genau dann angezeigt, wenn der Filterausdruck zu wahr ausgewertet wird 29

Luftraum UAE (Beispiel) Spezialisierte Einzelfilter: X:a-d-app(X) inregion(x, [abu-dhabi-koord]) X: dub-app(x) inregion(x, [dubai-koord]) X: milregion(x) inregion(x, [training-koord]) X: lowairspace(x) altitude(x,0,100) X: uppairspace(x) altitude(x,100,900) X: military(x) modea(x, [mil-code-list]) 30

Luftraum UAE (II) Filterlösung: Stelle Flugzeug X genau dann da, wenn ((a-d-app(x) lowairspace(x)) (dub-app(x) lowairspace(x)) uppairspace(x)) ( milregion(x) military(x)) mit den gegebenen Definitionen und der durch die aktuelle Luftlage definierte Interpretation zu wahr evaluiert wird. 31

Optimierung Implementierungsdetails: Höhenfilter sind billig (2 Vergleiche) ID-Filter: Zugriff auf große Tabelle Geographische Filter: Teuer, sphärische Geometrie Auswertung erfolgt nur, wenn notwendig Optimierte Version: ((uppairspace(x) dub-app(x) a-d-app(x)) ( military(x) milregion(x)) 32

Gleichwertig? ((a-d-app(x) lowairspace(x)) (dub-app(x) lowairspace(x)) uppairspace(x)) ( milregion(x) military(x)) gegen ((uppairspace(x) dub-app(x) a-d-app(x)) ( military(x) milregion(x)) 33

Verifikation Frage: Sind ursprüngliche und optimierte Version äquivalent? Automatischer Beweisversuch schlägt fehl (nach 1664 Schritten/0.04 s) Analyse: lowairspace(x) oder uppairspace(x) sind die einzigen Möglichkeiten - aber das ist nicht spezifiziert! Mit ergänzter Spezifikation ist automatischer Beweisversuch erfolgreich (229 Schritte/0.038 s) 34

Fazit Problem: Flexible Filterspezifikation mit klarer Semantik für Darstellung von Flugzeugen Lösung: Spezifikation mit symbolischer Logik Mächtig Dynamisch konfigurierbar Wohlverstandene Semantik Automatische Verifikation möglich 35

Einführung Rewriting 36

Beispiel Compiler-Optimierungen Vereinfachung arithmetischer Ausdrücke: Äquivalenzen: Problem: 1. x+0=0 2. x*0=0 3. x*1=x 4. x+y=y+x 5. x*y=y*x (4) (1*0)+0 1*0 (2) (1) 0+(1*0) 0+0 (2) (5) (1) (5) 0 0*1 0 0+(0*1)... (5) 1*0... 6. x+(y+z)=(x+y)+z 7. x*(y*z)=(x*y)*z 37

Beispiel fortgesetzt Möglichkeit 1:Gleichungen dürfen beliebig eingesetzt werden Problem: Unendliche Ableitungen (1+2=2+1=1+2=2+1...) Möglichkeit 2: Nur, wenn das Ergebnis kleiner ist Problem: Nicht unbedingt eindeutiges Ergebnis Was tun? 38

Vervollständigung Fakt: Wir können das Gleichungssystem vervollständigen: x*0=x x*1=x x*0=0 0+x=x 1*x=x 0*x=0 (x+y)+z=x+(y+z) (x*y)*z=x*(y*z) x+y=y+x x*y=y*x x+(y+z)=z+(x+y) x+(y+z)=y+(x+z) x*(y*z)=z*(x*y) x*(y*z)=y*(x*z) x+(y+z)=z+(y+x) x*(y*z)=z*(y*x) Für dieses System gilt: Es ist äquivalent zum Ausgangssystem Es ist grund-konvergent Also: Es gibt eindeutige Normalformen für alle Grundterme Es gibt eine Ordnung, mit der das System auf Grundtermen immer terminiert 39

Ende der Einführung 40

Übungsaufgaben Zeigen oder widerlegen Sie: n Für alle n N0 gilt: i 2 = i=1 n(n + 1)(2n + 1) 6 Die Menge aller Primzahlen ist endlich Es gibt keine a,b N so dass a mod b = b mod a a mod b ist der ganzzahlige Divisionsrest von a/b Hinweis: Formulieren Sie, falls nötig, geeignete Definitionen 41