Foundations of Systems Development

Größe: px
Ab Seite anzeigen:

Download "Foundations of Systems Development"

Transkript

1 Foundations of Systems Development Vergleich und Zusammenfassung Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer WS 2007/08

2 2 Ziele Wichtige Aspekte von algebraischen Spezikationen Termersetzungssystemen Prozessalgebra Temporaler Logik zusammenfassen. Maude, CCS und TLA am Beispiel der Uhr vergleichen.

3 1. Algebraische Spezifikation der Uhr in Maude Ein algebraische Spezifikation des Datentyps der Uhr in Maude: fmod CLOCK is protecting NAT. sort State. op init : -> State [ctor]. op tick : State -> State [ctor]. op hr : State -> Nat. op min : State -> Nat. var s : State. eq min(init) = 0. eq min(tick(s)) = if min(s) < 59 then min(s) + 1 else 0 fi. eq hr(init) = 0. eq hr(tick(s)) = if min(s) < 59 then hr(s) else if hr(s) < 23 then hr(s) + 1 else 0 fi fi. endfm 3 Jeder Zustand hat die Form: tick( tick(init) ) M-mal Strukturelle Rekursion über init und tick

4 1. Algebraische Spezifikation 4 Algebraische Spezifikationen dienen zur formalen Modellierung von Datentypen (Domainmodell) und von funktionalen Eigenschaften. Eine algebraische Spezifikation (Σ, E) besteht aus einer Signatur Σ zur Angabe der Datentypen und Operationen einer Schnittstelle einer Menge E von Σ-Formeln zur Spezifikation der Eigenschaften der Operationen von Σ ; meist schränkt man sich auf Gleichungen oder bedingte Gleichungen ein. Durch Konstruktoren zeichnet man die Menge der Datenelemente aus; in zustandsbasierten Systemen beschreibt man mit Konstruktoren die Menge der möglichen Zustände. Beziehungen zwischen den Konstruktoren beschreibt man durch Gleichungen; typische Beziehungen sind Kommutativität, Assoziativität, neutrales Element, Idempotenz und Distributivität.

5 1. Algebraische Spezifikation 5 Nichtkonstruktor-Operationen definiert man typischerweise (wie in funktionalen Sprachen) mittels struktureller Rekursion über den Konstruktoren. Die Sprache Maude unterstützt die Implementierung und Simulation von ordnungssortierten Gleichungsspezifikationen.

6 6 1. Testen der algebraischen Spezifikation der Uhr in Maude Hilfsfunktion zum Generieren des Zustands gentick(s, M) generiert den Zustand nach M ticks : op gentick : State Nat -> State. var S : State. var M : Nat. eq gentick(s, 0) = S. eq gentick(s, s M) = tick(gentick(s, M)). Testbeispiele Beobachtung des Zustands nach 112 ticks ) reduce in CLOCK : min(gentick(init, 112)). rewrites: 561 in 9287ms cpu (4ms real) (60 rewrites/second) result NzNat: 52 ========================================== reduce in CLOCK : hr(gentick(init, 112)). rewrites: in ms cpu (244ms real) (0 rewrites/second) result NzNat: 1

7 7 2. Termersetzungssystem für die Uhr in Maude mod CLOCK-MACHINE is protecting NAT. including CONFIGURATION. op CLOCK : -> Cid. op min :_ : Nat -> Attribute. op hr :_ : Nat -> Attribute. op tick : -> Msg. var C : Oid. vars M M1 H H1 : Nat. crl [tick] : tick < C : CLOCK hr : H, min : M > => < C : CLOCK hr : H1, min : M1 > if M1 := (if M < 59 then M + 1 else 0 fi ) /\ H1 := (if M < 59 then H else if H < 23 then H + 1 else 0 fi fi). Gleichungsspezifikation: Beschreibt den Zustandsraum als Multimenge von Nachrichten (Msg) und Objekten <c: ClassName attribute : value > Termersetzungsregel konsumiert die Nachricht tick endm Das Ersetzungssystem spezifiziert alle möglichen Zustandsübergange der Uhr.

8 8 2. Termersetzungssysteme Termersetzungssysteme werden eingesetzt zur operationellen Beschreibung von Datenstrukturen und zur operationellen Modellierung zustandsbasierter nebenläufiger Systeme. Rewriting Logic bildet eine mathematische wohldefinierte Grundlage zur Modellierung nebenläufiger verteilter Systeme, einschließlich objektorientierter Systeme. Dynamisches Verhalten und insbesondere nebenläufige Transitionen werden mittels Termersetzungsregeln (rewrite rules) definiert. Eine Rewrite Theory (Σ, E, R) besteht aus einer Gleichungspezifikation (Σ, E) der Zustandsmenge und der Grundoperationen sowie einer Menge R von Termersetzungsregeln der Form l: t -> t if cond Verteilte Konfigurationen werden durch Terme dargestellt, wobei die Verteilungsstruktur algebraisch durch die initialen Algebren einer Gleichungstheorie definiert wird.

9 9 2. Testen des Maude Termersetzungssystems der Uhr Hilfsfunktion zum Generieren von tick op gentick : Nat -> Configuration. eq gentick(0) = none. eq gentick(s M) = tick gentick(m). Testbeispiel rewrite in CLOCK-MACHINE : gentick(137) < C : CLOCK min : 10, hr : 7 >. rewrites: 827 in ms cpu (23ms real) (0 rewrites/second) result Object: < C : CLOCK min : 27, hr : 9 >

10 10 3. Prozessalgebra Der Prozessalgebra-Ansatz dient zur Modellierung des dynamischen Verhaltens reaktiver (nebenläufiger, verteilter, mobiler) Systeme: Alles wird als Prozess aufgefasst: Die Grundoperatoren sind Konstruktoren zum Bilden von Prozessen. Der aktuelle Zustand eines Systems wird durch einen Prozess(term) beschrieben. Das Verhalten wird ebenfalls durch einen Prozess(term) (bzw. eine Menge kooperierender Prozesse) beschrieben. Systemevolution basiert auf Prozesstransformation: Ein Prozess führt eine Aktion durch und wird zu einem anderen Prozess. Die Semantik von Prozessen wird durch markierte Transitionssysteme beschrieben, die mittels strukturierter operationeller Semantik spezifiziert werden. Wichtige Prozesskalküle sind CCS (Calculus of Communicating Systems), CSP (Communicating Sequential Processes), ACP (Algebra of Communicating Processes), LOTOS (Language Of Temporal Ordering Specification) π-calculus

11 11 3. Uhr in CCS In value passing CCS wird eine einfache Uhr spezifiziert durch ein System von 3660 Prozessen; jeder dieser Prozesse ist mit einem Zeitpunkt (h,m) indiziert und gibt diesen auf dem Kanal tick aus. Zeit wird hier gesehen als logische Zeit : Immer wenn ein tick gesendet wird (bzw. mit tick interagiert wird), schreitet die Zeit voran. In value passing CCS spezifizieren wir die Menge aller möglichen (unendlichen) Abläufe der Uhr. Stottern ist nicht erlaubt.

12 Temporale Logik 4. Temporale Logik ist eine Erweiterung der mathematischen Logik um Aussagen, deren Wahrheitswert zu verschiedenen Zeitpunkten unterschiedlich sein kann Linear Temporal Logic LTL verwendet diskrete lineare Zeit und hat als grundlegende Operatoren next (X), always (G), sometime (F) und until. Model Checking von PLTL ist PSPACE-vollständig. Computational Tree Logic CTL* verwendet diskrete Zeit mit Bäumen zur Darstellung der möglichen Entwicklungen der Zukunft Hat zusätzliche Pfadquantoren für alle Pfade, es gibt einen Pfad. CTL beschränkt Quantoren auf Form EX φ, EF φ, E[φ until ψ], AX φ, Model Checking von PCTL ist polynomial (bzgl. Zeit). 12

13 13 4. TLA TLA (Temporal Logic of Actions) erweitert LTL um spezielle Formeln zur Beschreibung von Zustandsübergängen (Aktionen). Eine Aktionsformel hat typischerweise die Form [A] v ( Wenn sich eines der v ändert, wird die Aktion A ausgeführt ), wobei v eine Liste von flexiblen Variablen ist, die (globale) Zustandskomponenten repräsentieren. Eine Systemspezifikation hat i.a. die Form wobei Init die Menge der Anfangszustäde spezifiziert und Next eine Disjunktion von Aktionen und L eine Konjunktion von Fairnessbedingungen ist. Verfeinerung und Strukturierung werden in TLA durch logische Operatoren ausgedrückt: Verfeinerung entspricht der Implikation, parallele Komposition der Konjunktion und die Kapselung der Existenzquantifizierung über flexible Variable. Eine wesentliche Voraussetzung dafür ist die Stotterinvarianz von TLA-Formeln.

14 4. Uhr in TLA 14 TLA spezifiziert die Menge aller möglichen (unendlichen) Abläufe der Uhr. Dabei ist Stottern erlaubt!

15 15 Zusammenfassung der Beispiele: Maude, CCS, TLA Algebraische Spezifikation in Maude Spezifikation der möglichen Zustände der Uhr Ablesen der Zeit durch Beobachtungsfunktionen (min, hr) Verfeinerung als Wechsel der Datenstruktur Dynamisches Verhalten in Maude Spezifikation der Zustandsübergange der Uhr Testen endlicher Abläufe CCS Calculus of Communicating Systems Spezifikation eines Systems von Prozessen; jeder dieser Prozesse gibt einen Zeitpunkt auf dem Kanal tick aus. Spezifikation der unendlichen nicht-stotternden Abläufe der Uhr Prozessäquivalenz durch Bisimulation oder Trace-Äquivalenz (oder weitere Äquivalenzbegriffe) TLA Temporal Logic of Actions Spezifikation der Menge aller möglichen stotternden unendlichen Abläufe der Abläufe der Uhr Verfeinerung als Implikation

16 16 Vielen Dank für Ihre Aufmerksamkeit und Mitarbeit! Moritz Hammer, Axel Rauschmayer und ich wünschen Ihnen viel Erfolg in der Prüfung und eine angenehme vorlesungsfreie Zeit!

Foundations of System Development

Foundations of System Development Foundations of System Development Martin Wirsing in cooperation with Axel Rauschmayer WS 05/06 Vergleich am Beispiel der Uhr: Maude und TLA 2 1. Uhr in TLA TLA spezifiziert die Menge aller möglichen (unendlichen)

Mehr

Motivation. Motivation

Motivation. Motivation Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten

Mehr

Foundations of System Development

Foundations of System Development Foundations of System Development Martin Wirsing in cooperation with Axel Rauschmayer WS 05/06 Verfeinerung und Strukturierung 2 Verfeinerung und Strukturierung Bisher haben wir einfache ( flache ) TLA-Spezifikationen

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

Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit

Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit 18:13:55 2015-07-14 1 [16] Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit Christoph Lüth & Martin Ring Universität Bremen Sommersemester 2015 2 [16] Organisatorisches

Mehr

Funktional-logische Programmierung in Maude

Funktional-logische Programmierung in Maude Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion Institut für Informatik Christian-Albrechts-Universität zu Kiel Betreuer: Prof. Dr. Michael Hanus Seminararbeit Funktional-logische Programmierung

Mehr

Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Korrektheit durch modulare Konstruktion Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Ansatz: Durch systematische Konstruktion (Schlagwort: strukturierte Programmierung für parallele Programmiersprachen)

Mehr

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

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

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

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 05 -Kommunizierende Prozesse PD Dr. Bernhard Schätz Lehrstuhl für Software und Systems Engineering, Fakultät für Informatik

Mehr

Egon Börger (Pisa) S-BPM. Über den praktischen Gewinn. einer wissenschaftlichen Fundierung

Egon Börger (Pisa) S-BPM. Über den praktischen Gewinn. einer wissenschaftlichen Fundierung Egon Börger (Pisa) S-BPM Über den praktischen Gewinn einer wissenschaftlichen Fundierung Dipartimento di Informatica, Università di Pisa, Pisa (Italia) boerger@di.unipi.it Copyright c Egon Börger, Dipartimento

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

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

Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis

Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis Begriffsklärung: Prozess Prozess = Abfolge von Aktionen = Aufeinanderfolge von Zuständen Äussere Eigenschaften sequentiell oder parallel? kooperierend

Mehr

Verträge für die funktionale Programmierung Design und Implementierung

Verträge für die funktionale Programmierung Design und Implementierung 1 Verträge für die funktionale Programmierung Design und Implementierung RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: ralf@informatik.uni-bonn.de

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Kapitel 3: Petrinetze und Workflow Modellierung

Kapitel 3: Petrinetze und Workflow Modellierung Kapitel 3: Petrinetze und Workflow Modellierung 1. Modellierung 1. Ziel: Analyse 2. Modellierungssprachen: Perspektiven und Anforderungen 2. Petrinetze 1. Geschichtliches 2. Gründe und Bestandteile 3.

Mehr

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Was bisher geschah Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Syntax: Signatur Semantik: Axiome (FOL-Formeln, meist

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr

Beschreibungslogiken. Daniel Schradick 1schradi@informatik.uni-hamburg.de

Beschreibungslogiken. Daniel Schradick 1schradi@informatik.uni-hamburg.de Beschreibungslogiken Daniel Schradick 1schradi@informatik.uni-hamburg.de Was sind Beschreibungslogiken? Definition: Formalisms that represent knowledge of some problem domain (the world ) by first defining

Mehr

Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen

Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Rev. 1152 1 [23] Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Christoph Lüth & Dennis Walter Universität Bremen Wintersemester 2010/11

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

Wissensbasierte Systeme 5. Constraint Satisfaction Probleme

Wissensbasierte Systeme 5. Constraint Satisfaction Probleme Wissensbasierte Systeme 5. Constraint Satisfaction Probleme Michael Beetz Vorlesung Wissensbasierte Systeme 1 Inhalt 5.1 Begriffe 5.2 Constraint Satisfaction in Linienbildern 5.3 Beispielanwendungen 5.4

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Robert Mattmüller Betreuer: Prof. Dr. Stefan Leue Wintersemester 2003/2004 1. Dezember 2003 1 Software Model Checking Predicate

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

Kapitel 4: (Einige) Andere Logiken

Kapitel 4: (Einige) Andere Logiken Kapitel 4: (Einige) Andere Logiken 4.1: Modale Logiken Grundgedanke Nicht alles stimmt unabhängig vom Zeitpunkt es schneit unabhängig vom Ort man kann das Meer sehen unabhängig vom Sprecher ich bin müde

Mehr

Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen

Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen Diplomarbeit Martin Pitt martin@piware.de Technische Universität Dresden 11. November 2004 1 Aufgabenstellung

Mehr

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

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

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Formale Techniken in der Software-Entwicklung

Formale Techniken in der Software-Entwicklung Formale Techniken in der Software-Entwicklung Christian Prehofer in Zusammenarbeit mit Christian Kroiß unter Verwendung von Materialien von Martin Wirsing SS 2009 Die Lehrenden Christian Prehofer LMU München

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Temporale Logiken: CTL und LTL

Temporale Logiken: CTL und LTL Westfälische Wilhelms-Universität Münster usarbeitung Temporale Logiken: CTL und LTL im Rahmen des Seminars Formale Spezifikation im WS 2005/06 Thorsten Bruns Themensteller: Prof. Dr. Herbert Kuchen Betreuer:

Mehr

Formale Methoden: Ein Überblick

Formale Methoden: Ein Überblick Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 1 Formale Methoden: Ein Überblick Heinrich Rust Lehrstuhl für Software-Systemtechnik BTU Cottbus 2004-09-16

Mehr

Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation

Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation Grundlagen der Programm- und Systementwicklung Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation Technische Universität München Institut für Informatik Software &

Mehr

Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme

Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,

Mehr

Fragenkatalog Software Engineering I & II 25 Februar 1997 Bernd Thomas Ich habe mal eine kleine Liste der Fragen, die ich so in den Prufungsprotokollen gefunden habe, zusammengetragen. Im groen und ganzen

Mehr

Schulinternes Curriculum im Fach Informatik

Schulinternes Curriculum im Fach Informatik Schulinternes Curriculum im Fach Informatik Unterricht in EF : 1. Geschichte der elektronischen Datenverarbeitung (3 Stunden) 2. Einführung in die Nutzung von Informatiksystemen und in grundlegende Begriffe

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

Semestralklausur zu Modellierung verteilter Systeme

Semestralklausur zu Modellierung verteilter Systeme Name: Vorname: Matr.Nr: Technische Universität München WS 2010/2011 Institut für Informatik Prof. Manfred Broy 09.02.2011 Semestralklausur zu Modellierung verteilter Systeme Allgemeine Hinweise: Schreiben

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

2. Automatische Codegenerierung mittels dynamischer Spezialisierung

2. Automatische Codegenerierung mittels dynamischer Spezialisierung 2 Automatische Codegenerierung mittels dynamischer Spezialisierung 1/16 Quelle: Vicente Pelechano, Oscar Pastor, Emilio Insfran Automated code generation of dynamic specializations: An approach based on

Mehr

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Einleitung Was ist Informatik? 5 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Programmierung 13 2 Vom Problem über den Algorithmus zum Programm 15 2.1 Vorgehensweise bei der

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

The TLC Model Checker

The TLC Model Checker The TLC Model Checker Theorie Verteilter Systeme: Fehlertolerante Systeme Sommersemester 2006 : Features Fazit : Features Motivation Bisher (TVS2) u. a.: Reine Spezifikationen TLA+ Syntax Temporale Formeln

Mehr

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

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 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke

Mehr

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion Was bisher geschah Daten, Information, Wissen explizites und implizites Wissen Wissensrepräsentation und -verarbeitung: Wissensbasis Kontextwissen Problemdarstellung fallspezifisches Wissen repräsentiert

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 7: Einführung Aussagenlogik schulz@eprover.org Logisches Schließen 2 gold +1000, 1 per step, Beispiel: Jage den Wumpus Performance measure death 1000 10

Mehr

Seminar Timed Automata

Seminar Timed Automata Einführungsveranstaltung Thomas Noll Henrik Bohnenkamp Software Modeling and Verification Group 17. Juli 2008 Zielsetzung Einführung Termine Themen Inhalt des Seminars Methoden zur Gewährleistung der Korrektheit

Mehr

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik WS 2013/14 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 21. Oktober 2013 1/33 1 Boolesche

Mehr

Formale Methoden III - Tutorium

Formale Methoden III - Tutorium Formale Methoden III - Tutorium Daniel Jettka 19.06.06 Inhaltsverzeichnis 1. Logische Eigenschaften von Merkmalsstrukturen 1. Logische Eigenschaften von MS Ausgangspunkt: Unterscheidung von: Linguistische

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 3 30.04.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Letztes Mal Aussagenlogik Syntax: welche Formeln? Semantik:

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

7.2 Conjoining Specifications

7.2 Conjoining Specifications Seminar: Spezifikation und Verifikation verteilter Systeme 7.2 Conjoining Specifications Teil 2: Das Kompositions-Theorem Dirk Fahland 1 TLA & Komposition in TLA Jede TLA-Formel Mi lässt sich in eine äquivalente

Mehr

Fachgebiet. Theorie der Programmierung

Fachgebiet. Theorie der Programmierung Fachgebiet Theorie der Programmierung Ansprechpartner Prof. Franz Baader, Prof. Christel Baier, Prof. Heiko Vogler (Stand: Juli 2010) 1 Theorie der Programmierung In den Lehrveranstaltungen werden nicht

Mehr

5.1 Operationen 5.2 Boolsche Algebren 5.3 Monoide, Gruppen, Ringe, Körper 5.4 Quotientenalgebren

5.1 Operationen 5.2 Boolsche Algebren 5.3 Monoide, Gruppen, Ringe, Körper 5.4 Quotientenalgebren 5. Algebra 5.1 Operationen 5.2 Boolsche Algebren 5.3 Monoide, Gruppen, Ringe, Körper 5.4 Quotientenalgebren 5. Algebra GM 5-1 Black Box Allgemein ist eine Black Box ein Objekt, dessen innerer Aufbau und

Mehr

1. Einleitung: Systementwicklung und Formale Spezifikationen

1. Einleitung: Systementwicklung und Formale Spezifikationen Grundlagen der Systementwicklung Seite 1 Einführung: Systementwicklung und formale Methoden 1. Einleitung: Systementwicklung und Formale Spezifikationen Ziele: * Phasenmodell der Systementwicklung und

Mehr

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving) Universität Paderborn Die Universität der Informationsgesellschaft Analyse, Entwurf und Implementierung zuverlässiger Software und (inkl., Model-Checking, Theorem Proving) Torsten Bresser torbre@uni-paderborn.de

Mehr

Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata]

Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata] Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata] Formalismus zur Behandlung von Dense Time unterstützt durch Verifikationstools, z.b. UPPAAL Transitionssysteme (Automaten) mit Zeitbeschriftungen

Mehr

3. Logik 3.1 Aussagenlogik

3. Logik 3.1 Aussagenlogik 3. Logik 3.1 Aussagenlogik WS 06/07 mod 301 Kalkül zum logischen Schließen. Grundlagen: Aristoteles 384-322 v. Chr. Aussagen: Sätze, die prinzipiell als ahr oder falsch angesehen erden können. z. B.: Es

Mehr

Source: Stephan. Werner Stephan

Source: Stephan. Werner Stephan Werner Stephan Software-Krise 1969 NATO Konferenz: Software-Engineering Phasen-Modelle Projektmanagement Qualitaetssicherung Requirements-Engineering Case-Tools UML Softwarekrise 1999 Bedarf (1) an sicherer

Mehr

Übung 4: Aussagenlogik II

Übung 4: Aussagenlogik II Übung 4: Aussagenlogik II Diskrete Strukturen im Wintersemester 2013/2014 Markus Kaiser 8. Januar 2014 1/10 Äquivalenzregeln Identität F true F Dominanz F true true Idempotenz F F F Doppelte Negation F

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung Block R (Rahmen): SE Aktivitäten 21.10.04 1 Vorlesung Methoden des Software Engineering Block R Rahmen Aktivitäten der Software-Entwicklung Martin Wirsing Einheit R.2, 21.10.2004 Block R (Rahmen): SE Aktivitäten

Mehr

Architekturbeschreibung im C2-Stil

Architekturbeschreibung im C2-Stil Architekturbeschreibung im C2-Stil Architekturbeschreibungssprachen Tobias Melzner Fachgruppe Spezikation und Modellierung von Softwaresystemen Fakultät für Elektrotechnik, Informatik und Mathematik Universität

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive

Mehr

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Zusammenhänge präzisieren im Modell

Zusammenhänge präzisieren im Modell Zusammenhänge präzisieren im Modell Dr. Roland Poellinger Munich Center for Mathematical Philosophy Begriffsfeld Logik 1 Mathematik und Logik Die Mathematik basiert auf logisch gültigen Folgerungsschritten

Mehr

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

5. Aussagenlogik und Schaltalgebra

5. Aussagenlogik und Schaltalgebra 5. Aussagenlogik und Schaltalgebra Aussageformen und Aussagenlogik Boolesche Terme und Boolesche Funktionen Boolesche Algebra Schaltalgebra Schaltnetze und Schaltwerke R. Der 1 Aussagen Information oft

Mehr

Test-Suite zum Testen eines zustandsbasierten Systems

Test-Suite zum Testen eines zustandsbasierten Systems Übungen zur Vorlesung Testautomatisierung Sommersemester 2004 AG BS Jan Peleska, Stefan Bisanz, Aliki Tsiolakis Blatt 4 Revision: 1.10 Test-Suite zum Testen eines zustandsbasierten Systems Diese Aufgabenserie

Mehr

DSL Entwicklung und Modellierung

DSL Entwicklung und Modellierung DSL Entwicklung und Modellierung Dipl. Inform. Rolf Hänisch Übersicht DSL, was bedeutet das für uns? Eine Anwendung aus der Automatisierungstechnik Sprachen und Werkzeuge Ergebnisse und Erfahrungen GI

Mehr

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese Zeit in Prozeßalgebra Synchroniehypothese: Aktionen des Systems brauchen keine Zeit. Einbau einer diskreten Uhr. 1 Beispiel Doppelte Maus-Clicks Angenommen, wir wollen ein Programm schreiben, das doppelte

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

M. Sc. Mirjana Jakšić Dipl.-Inf. Christian Schönberg Dipl.-Inf. Franz Weitl

M. Sc. Mirjana Jakšić Dipl.-Inf. Christian Schönberg Dipl.-Inf. Franz Weitl Spezifikationsmuster für Web Dokumente M. Sc. Mirjana Jakšić Dipl.-Inf. Christian Schönberg Dipl.-Inf. Franz Weitl Verdikt Übersicht Formale Wissensrepräsentation Model Checking Formale Spezifikation Introduction

Mehr

Der λ-kalkül. Frank Huch. Sommersemester 2015

Der λ-kalkül. Frank Huch. Sommersemester 2015 Der λ-kalkül Frank Huch Sommersemester 2015 In diesem Skript werden die Grundlagen der Funktionalen Programmierung, insbesondere der λ-kalkül eingeführt. Der hier präsentierte Stoff stellt einen teil der

Mehr

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6. 6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information

Mehr

Logische Programmierung

Logische Programmierung Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

Mehr

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung 1/17 2010-04-14 Inhalt Entwurfsebenen und -sichten

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

Schulinternes Curriculum für Informatik (Q2) Stand April 2015

Schulinternes Curriculum für Informatik (Q2) Stand April 2015 Schulinternes Curriculum für Informatik (Q2) Stand April 2015 Unterrichtsvorhaben Q2-I Thema: Modellierung und Implementierung von Anwendungen mit dynamischen, nichtlinearen Datenstrukturen Modellieren

Mehr

Kapitel 1.0. Aussagenlogik: Einführung. Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1

Kapitel 1.0. Aussagenlogik: Einführung. Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1 Kapitel 1.0 Aussagenlogik: Einführung Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1 Ziele der Aussagenlogik In der Aussagenlogik analysiert man die Wahrheitswerte zusammengesetzter

Mehr

Grundlegende Datentypen

Grundlegende Datentypen Foliensatz 4 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 50 Grundlegende Datentypen TU Ilmenau Seite 2 / 50 Atomare Datentypen

Mehr

Informatik A ( Frank Hoffmann)

Informatik A ( Frank Hoffmann) Teillösungen zum 1. Aufgabenblatt zur Vorlesung Informatik A ( Frank Hoffmann) 1. Improvisieren Stellen Sie die Zahl 6 dar durch einen Ausdruck, der genau dreimal die Ziffer i enthält und ansonsten neben

Mehr

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Kontrakte, Abstrakte Datentypen und Verfeinerung

Kontrakte, Abstrakte Datentypen und Verfeinerung Kontrakte, Abstrakte Datentypen und Verfeinerung 229 Kontrakte 230 Vor- und Nachbedingungen, Kontrakte Ein Kontrakt für eine Prozedur p (oder auch für eine Methode) besteht (mindestens) aus einer Vorbedingung

Mehr

Kapitel 11: Wiederholung und Zusammenfassung

Kapitel 11: Wiederholung und Zusammenfassung Wiederholung und Zusammenfassung 1: Begriff und Grundprobleme der Informatik Begriff Informatik Computer als universelle Rechenmaschine Grenzen der Berechenbarkeit Digitalisierung Problem der Komplexität

Mehr

Kapitel 1. Aussagenlogik

Kapitel 1. Aussagenlogik Kapitel 1 Aussagenlogik Einführung Mathematische Logik (WS 2012/13) Kapitel 1: Aussagenlogik 1/17 Übersicht Teil I: Syntax und Semantik der Aussagenlogik (1.0) Junktoren und Wahrheitsfunktionen (1.1) Syntax

Mehr

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches... Inhaltsverzeichnis Vorwort...XIII Aufbau des Buches............................................... XV 1 Von der Idee zur Software..................................... 1 1.1 Beispielanwendung... 1 1.2 Schritte

Mehr

Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit C.3, 9.12.2004

Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit C.3, 9.12.2004 Block C (Formale Methoden): Petrinetze 9.12.04 1 Vorlesung Methoden des Software Engineering Block C Formale Methoden Petrinetze Martin Wirsing Einheit C.3, 9.12.2004 Block C (Formale Methoden): Petrinetze

Mehr