Skript zur Vorlesung Software Engineering I

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Blue J.
Temporale Logiken: LTL und CTL
Vorlesung Compilertechnik Sommersemester 2008
LTL - Modellüberprüfung
Frame-Logik Eine Einführung Andreas Glausch.
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Eingebettete Systeme Qualität und Produktivität
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Default Logiken Zhao Li
Es sei SPEC = (, E) eine Spezifikation mit einer
Finale Semantik und beobachtbares Verhalten
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
Hauptseminar Modellüberprüfung Kathrin Ott
Kapitel 4 Datenstrukturen
Syntax der Aussagenlogik
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Sequenzdiagramm.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Abhängigkeitsbeziehung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
DOM (Document Object Model)
HTML - Eine erste Annäherung
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Symbolisches Model Checking mit Binary Decision Diagrams
Fakten, Regeln und Anfragen
Einführung XML XML Einführung Andreas Leicht.
Beispiele für Ausdrucksalgebren
Gleichungskalkül und Induktion
Lexikalisch-Funktionale-Grammatik
Software-Technik: (fortgeschrittene) Klassendiagramme
Access 2000 Datenbanken.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
UML Begleitdokumentation des Projekts
Der Supermarkt: Eine beispielhafte Erklärung für die fünf untersten Schichten des Semantic Web Protocol Stack Nicola Henze.
Visualisierung objektrelationaler Datenbanken
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
Unified Modeling Language Repetition / Einführung zu UML
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Kapitel 16 Ökonometrische Modelle
UML-Kurzüberblick Peter Brusten.
Software-Technik: (fortgeschrittene) Klassendiagramme
Modellbildung und Simulation
Vorlesung Software Engineering I
Zustandsübergangsdiagramme (1)
Produktvergleich durch Werbung und Fragebogen
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Mensch – Maschine - Kommunikation
7. Formale Sprachen und Grammatiken
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
 Sortigkeit oder Arität
(Wirtschafts-)mathematik I Mathe im Wandel der Zeit Volksschule 1960: Ein Bauer verkauft einen Sack Kartoffeln für 50 DM. Die Erzeugerkosten betragen 40.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Vorlesung Software Engineering I
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
OCL – Object Constraint Language
4. Modellieren und Diagrammarten
 Präsentation transkript:

Skript zur Vorlesung Software Engineering I VE 13: Logische Basiskonzepte I

Agenda Einführung Syllogismen Formale Logik OCL Aussagenlogik Prädikatenlogik Temporale Logik OCL Entscheidungstabellen (VE 14) Regeln (VE 14) Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Basiskonzepte Statik Funktionen Daten Datenstrukturen Architektur Dynamik Kontrollstrukturen Zustände Prozesse Zeitliches Verhalten Logik Abhängigkeiten Entscheidungstabellen Mathematik Regeln Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert. Beschreiben das Verhalten und die Veränderungen während der Laufzeit. Beschreiben die Programmfunktion logisch und mathematisch Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Überblick Logik Syllogismen Aussagenlogik Prädikatenlogik Modale Logik Temporale Logik Intuitionistische Logik …. Beginn in Griechenland: Aristoteles (384{322 v.Chr.) untersucht das Wesen der Argumentation und des logischen Schließens Verschiedene Werke, u.a.: Analytica priora, Analytica posteriora Seither: Weiterentwicklung der Logik, Formalisierung, Verwendung in der Mathematik und Informatik Weitgehend sind für uns die Bereiche der formalen Logik wichtig  Aussagelogik und Prädikatenlogik Version 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Ein Zitat von Edsger W. Dijkstra: Anwendung der Logik in der Informatik Modellierung, Spezifikation Eindeutige Beschreibung von komplexen Systemen Verifikation Beweisen, dass ein Programm wie gewünscht funktioniert Schaltkreisentwurf Optimierung (DMF, KMF) Programmier- und Abfragesprachen SQL Prolog Theorem-Beweiser Computer beweist mathematische Sätze approximative Beweise Ein Zitat von Edsger W. Dijkstra: Informatik = VLSAL (Very large scale application of logics) Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Syllogismen Software Engineering I Version: 25.04.2017 VE 13: Logische Basiskonzepte

Syllogismen A syllogism is discourse in which, certain things being stated, something other than what is stated follows of necessity from their being so. (from The Complete Works of Aristotle) syllogismos = das Zusammenrechnen, logischer Schluss, folgern Katalog von Typen logischer Argumente Kern der antiken Logik des Aristoteles (400 bc) und der traditionellen Logik (1900) Syllogismen sind immer nach dem gleichen Muster aufgebaut. Jeweils zwei Prämissen, Obersatz und Untersatz genannt, führen zu einer Konklusion. Die Prämissen und die Konklusion sind Aussagen von einem bestimmten Typ, in denen jeweils einem Begriff, dem syllogistischen Subjekt, ein anderer Begriff, das syllogistische Prädikat, in bestimmter Weise zu- oder abgesprochen wird. In Abhängigkeit von der Stelle, an der sie im Syllogismus auftreten, werden die vorkommenden Begriffe Oberbegriff, Mittelbegriff und Unterbegriff genannt. Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Syllogismen Hieraus ergeben sich sogenannte Figuren durch Kombination ergeben sich 256 mögliche Kombinationen, von denen 24 gültige Aussagen darstellen Diese werden traditionell mit Merkwörtern bezeichnet man unterscheidet zwischen schwachen und starken Folgerungen 1. Figur 2. Figur 3. Figur 4. Figur erste Prämisse M – P P – M zweite Prämisse S – M M – S Konklusion S – P Figur: Barbara, Celarent, Darii, Ferio, Barbari, Celaront Figur: Baroco, Cesare, Camestres, Festino, Camestrop, Cesaro Figur: Bocardo, Darapti, Datisi, Disamis, Felapton, Ferison Figur: Bamalip, Calemes, Dimatis, Fesapo, Fresison, Calemop Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Syllogismen (Beispiele) Modus Barbara (stark): Alle Münchner sind Bayern, alle Schwabinger sind Münchner. Es folgt: Alle Schwabinger sind Bayern. Modus Barbari (schwach): Alle Münchner sind Bayern, alle Schwabinger sind Münchner. Es folgt: Einige Schwabinger sind Bayern. Modus Celarent (stark): Kein Münchner ist Passauer, alle Schwabinger sind Münchner, es folgt: Kein Schwabinger ist Passauer. Modus Celaront (schwach): Kein Münchner ist Passauer, alle Schwabinger sind Münchner. Es folgt: Einige Schwabinger sind keine Passauer. Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Syllogismen sie liefern die Grundlage für die moderne Logik eignen sich zum Hierarchisieren und Strukturieren von Argumenten lassen sich leicht formulieren und ausdrücken können durch Kombination und Formalisierung für das Entwerfen von regelbasierter Systeme verwendet werden Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Probleme mit natürlicher Sprache zur Beschreibung von Logik bedient man sich formalisierter Syntax und Semantik Warum? Zuordnung von Wahrheitswerten zu natursprachlichen Aussagen ist problematisch Natürliche Sprache ist oft schwer verständlich („analytika priora“ von Aristoteles) Natürliche Sprache ist mehrdeutig Ich sah den Mann auf dem Berg mit dem Fernrohr. Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

        Software Engineering I Version: 25.04.2017 VE 13: Logische Basiskonzepte

Aussagenlogik Software Engineering I Version: 25.04.2017 VE 13: Logische Basiskonzepte

Aussagenlogik Vertiefung in einer bereits stattgefundenen Vorlesung Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Prädikatenlogik Vertiefung in einer bereits stattgefundenen Vorlesung Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Temporale Logik Baut auf der Aussage und Prädikantenlogik auf Drei maßgebliche Zweige LTL (Lineare temporale Logik) beschreibt Abfolgen CTL (Computation Tree Logic) beschreibt verzweigte Systeme CTL* (Mischung aus LTL und CTL) Hat neben dem statischen Verhalten auch einen Zeitbegriff. Dieser ist aber nicht physikalisch als Zeit zu verstehen, sondern als Kausalitätsreihenfolge. Einführung von temporalen Operatoren X im nächsten Schritt F irgendwann G immer U so lange, bis … Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Beispiel Temporale Logik Krippe-Struktur Immer, wenn die Tür geschlossen wird und auf Start gedrückt wird, kann das Essen erhitzt werden. Immer, wenn die Tür nicht geschlossen ist und auf Start gedrückt wird, kann das Essen nicht erhitzt werden oder die Mikrowelle wird eventuell zurückgesetzt. Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Constraints Sie verknüpfen logische Bedingungen (Einschränkungen, Zusicherung) mit Inhalten, Zuständen und semantischen Formulierungen Spezifikation von Invarianten in der OO Bedingungen in Sequenzdiagrammen Vor und Nachbedingungen für Methoden (pre, post) Guards bei Zustandsdiagrammen Contraints immer im Rahmen eines Kontextes Constraints können in ... verfasst sein natürlicher Sprache einer Programmiersprache mathematischen Notationen OCL Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Constraints Typen von Constraints Invariants müssen zu jeder Zeit für eine Instanz oder Assoziation gelten. Preconditions/Postconditions müssen zu dem Zeitpunkt gelten, an dem die Ausführung der zugehörigen Operation beginnt/endet. Initial & derived Values stellen Bedingungen für Ausgangs- und abgeleitete Werte dar Definition: es können Attribute und Operationen definiert werden, die nicht im Modell enthalten sind. Body Definition von Operationen mit is Query = true. Guards müssen gelten, wenn ein Zustandsübergang beginnt. Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

OCL Object Constraints Language Object steht hier für eine Komponente eines beliebigen Systems, diese soll genauer spezifiziert, definiert oder beschrieben werden. Language steht hier nicht für eine formale Computersprache, sondern vielmehr für eine auf jede Implementierung anwendbare, weniger formale Sprache. Ergänzung zu UML um Modellierung noch effizienter zu gestalten (also kein eigener Diagrammtyp) Sie verändern ein Model nicht, sie überwachen es OCL alleine ist ungeeignet zur Modellierung Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Beispiel OCL Text Das Alter einer Person ist nicht negativ. Eine Person ist jünger als ihre Eltern. Nach einem Geburtstag ist eine Person um genau 1 Jahr älter. Eine Person hat genau 2 Eltern. Wenn jemand ein Kind bekommen hat, ist die Menge seiner Kinder nicht leer und die Anzahl seiner Kinder ist größer als vorher. Nur eine erwachsene Person darf ein Auto besitzen. Die Erstzulassung eines Autos liegt nicht vor dem Baujahr. Jede Person, die mindestens ein Auto besitzt, hat mindestens ein Auto, das jünger ist als sie selbst. Niemand kann von sich selbst ein Elternteil sein. Es gibt mindestens eine Person, die ein Auto besitzt (bzw. von allen Personen gibt es mindestens eine Person, die mindestens ein Auto besitzt). Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

OCL Klassendiagramm Software Engineering I Version: 25.04.2017 VE 13: Logische Basiskonzepte

OCL Constraints context Person inv: self.Alter >=0 context Person inv: self.Eltern->forAll(e|e.Alter>self.Alter) context Person::hatGeburtstag() post: self.Alter=self.Alter@pre+1 context Person inv: self.Eltern->size()=2 context Person::bekommtKind() post: self.Kinder->notEmpty() and self.Kinder->size() > self.Kinder@PRE->size() context Person inv: self.Alter<18 implies autos->size()=0 context Auto inv: self.Erstzulassung>=self.Baujahr context Person inv: self.autos->size()>0 implies self.autos->exists( a | Calendar.YEAR - a.baujahr < self.alter) context Person inv: not self.eltern->includes(self) context Person inv: Person.allInstances->exists(p | p.autos->size() > 0 Weiteres Beispiel und Operantenübersicht: Balzert Seite 382 - 385 Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte

Zusammenfassung Formale Logik … hilft uns, Programme eindeutig und präzise zu beschreiben basiert auf den mathematischen Grundsätzen der boolschen Algebra und der Mengenlehre kann Wahrheitsaussagen, Beziehungen von Objekten und zeitliche Abfolgen beschreiben OCLs erweitern die bestehenden UML Diagramme um eine Beschreibung für die Beschaffenheit und Grenzen von Objekten Version 25.04.2017

Fragen? Software Engineering I Version: 25.04.2017 VE 13: Logische Basiskonzepte

Übung Modellieren Sie ein Code-Schloss, das mit einer Ziffern-Tastatur bedient wird. Um das Schloss zu öffnen, müssen drei Ziffern in korrekter Reihenfolge eingegeben werden. Zeichnen Sie a ein Zustandsdiagramm und b eine Zustandstabelle des entsprechenden Mealy-Automaten. 2. Entwickeln Sie eine Stoppuhr für den Sportbereich, die folgende Eigenschaften besitzt: 1. Die Stoppuhr kann ein- und ausgeschaltet werden. 2. Die Stoppuhr kann gestartet und gestoppt werden. Nach dem Stopp wird die vergangene Zeit zwischen Start und Stopp angezeigt. 3. Nach dem Start kann eine Zwischenzeit angezeigt werden. Die Uhr läuft im Hintergrund weiter. Nun kann entweder die Anzeige von der Zwischenzeit auf die Anzeige der aktuell verbrauchten Gesamtzeit gewechselt werden oder die im Hintergrund laufende Uhr kann angehalten werden, ohne dass sich die Anzeige ändert. Im letzten Fall wird nach einem weiteren Knopfdruck die vergangene Gesamtzeit angezeigt. 4. Die zwischen Start und Stopp vergangene Zeit kann bei stehender Uhr und Anzeige der vergangenen Gesamtzeit auf Null zurückgesetzt werden. 5. Die Uhr besitzt zwei Druckknöpfe (die nicht gleichzeitig gedrückt werden können). a. Zeichnen Sie das Zustandsübergangsdiagramm eines Mealy-Automaten für die oben beschriebene Stoppuhr. b. Integrieren Sie den Automaten für die Normalzeit und den Automaten für die Stoppuhr zu einem hierarchischen Automatenmodell einer digitalen Armbanduhr mit drei Druckknöpfen. Version: 25.04.2017 Software Engineering I VE 13: Logische Basiskonzepte