• Keine Ergebnisse gefunden

5.2 Die Implementierung 15 Punkte

N/A
N/A
Protected

Academic year: 2022

Aktie "5.2 Die Implementierung 15 Punkte"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

15:20:26 29. Juni 2015 Christoph Lüth

Formale Modellierung SoSe 15

5. Übungsblatt

Ausgabe: 29.06.15 Abgabe: 16.07.15

In diesem Übungsblatt werden wir die Techniken, die wir in dieser Verstaltung kennengelernt haben, nutzen, um eine einfach Problemstellung formal zu modellieren, eine Lösung zu implementieren, und die Korrektheit nachzuweisen. Das zu implementierende System ist eine stark vereinfachte Form des Flugbuchungssystems aus Vorlesung 4.

5.1 Die Anforderungen 5 Punkte

Wir formulieren zuerst dieAnforderungsspezifikationals algebraische Spezifikation (d.h. eine axiomatische Spe- zifikation in Isabelle).

Konkret soll das System folgende Typen kennen:

• die Datenbank;

• Flugnummern, die eindeutige Verweise in die Datenbank erlauben; und

• die Flugdaten, welche hier einfach nur Freitext sein sollen (um die Beweise handhabbar zu gestalten).

Das System soll folgende Operationen unterstützen:

• zu der Datenbank kann ein Flug mit Flugnummer und Flugdaten hinzugefügt werden (das Ergebnis ist eine neue Datenbank);

• in der Datenbank kann ein Flug unter Angabe der Flugnummer abgerufen werden (das Ergebnis enthält entweder die Daten zu diesem Flug, oder nichts, falls es die Flugnummer nicht gibt);

• es kann ein Flug unter der Angabe der Flugnummer gelöscht werden (das Ergebnis ist eine neue Daten- bank);

• es gibt eine leere Datenbank, die keine Flüge enthält;

• es kann in der Datenbank unter der Angabe der Flugdaten nach Flügen gesucht werden (das Ergebnis ist eine Menge von Flugnummern).

Formulieren Sie eine Signatur für diese Operationen, und formulieren Sie axiomatisch (in Isabelle), wie sich Hinzufügen, Löschen, Abfragen, und Suchen zueinander verhalten.

Geben Sie diese Aufgabe zum 02.07.2015 ab, so dass sie in der Übung besprochen werden kann.

5.2 Die Implementierung 15 Punkte

Für die Implementierung wählen wir implementierende Typen für Datenbank, Flugnummer und Flugdaten.

Die Flugnummer könnnen natürliche Zahlen sein, die Flugdaten Text, und die Datenbank wird der Einfachheit halber als Assoziativliste implementiert.

Geben Sie Implementierungen für die oben spezifiziertenOperationen(als rekursiv definierte Funktionen) an, undbeweisenSie dieEigenschaftenaus Aufgabe 5.1 als Theoreme in Isabelle.

Hinweise:Für den Beweis der Korrektheit der Suche ist es zweckmäßig, eine Invariante auf dem implementie- renden Datentyp einzuführen, die besagt, dass in der Assoziativliste keine doppelten Schlüssel enthalten sind.

Formulieren Sie diese Invariante rekursiv — das erleichtert den Beweis — und zeigen Sie, dass die Operatio- nen Hinzufügen und Löschen die Invariante erhalten. Sie können dann für den Beweis der Korrektheit der Suche die Invariante als zusätzliche Eigenschaft annehmen.

1

Referenzen

ÄHNLICHE DOKUMENTE

2009

[r]

Falter / Falle / Woche. Einbindiger Tw 09 Bekreuzter Tw 09 Einbindiger Tw 08 Bekreuzter

[r]

Einbindiger Tw 06 Bekreuzter Tw 06 Einbindiger Tw 05 Bekreuzter

Unser vorläufiges Fazit: Muss ein Arzt – nach reiflicher Abwägung – annehmen, dass sein Patient/Pilot eine erhebliche Gefahr für an- dere Menschen darstellt, sollte er sich an den

Die Familie zwischen Recht, Vorstellung und Wirklichkeit Rechtsprechung als Interpretation der Wirklichkeit.. - Methodische Aspekte der Rechtsgewinnung im

Auch in diesem Jahr können sich Teilnehmer und Besucher auf besondere Highlights der US-Car Szene freuen.. Der von Beginn an heiß