• Keine Ergebnisse gefunden

Programming by Contract

N/A
N/A
Protected

Academic year: 2022

Aktie "Programming by Contract"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

BERGISCHE UNIVERSIT ¨AT GESAMTHOCHSCHULE WUPPERTAL

GAUSS-STRASSE 20 42097 WUPPERTAL (Korrespondenzanschrift) 42119 WUPPERTAL (Lieferanschrift) TELEX 8 592 262 bughw TELEFAX (0202) 439-2901 TELEFON (0202) 439-1

Fachbereich 7

MATHEMATIK

Prof. Dr. Hans-J ¨urgen Buhl Praktische Informatik / Numerik

e-mail: Juergen.Buhl@math.uni-wuppertal.de

Programming by Contract

WS 2003/2004 – ¨ Ubungsblatt 7 8. Januar 2004

Ausgabe: 15. Dezember 2003

Aufgabe 1. Ausnahmebedingungen

Konzipieren Sie gem¨aß Seite 38 der Materialsammlung eine eigene Ex- ceptionhierarchie unter der Ahnenklasse exception und benutzen Sie diese Exceptions in geeigneten Methoden der Klasse Day von ¨Ubungs- blatt 3, der Funktion long fakultaet()von ¨Ubungsblatt 4 sowie der Funktion long ackermann(long, long).

Schreiben Sie Benutzeranleitungen f¨ur diese Implementierungen, die den Benutzer genau einweist, wie Ihre Exceptionhierarchie aussieht und wie sie zum Abfangen von Exceptions verwendet werden kann.

Aufgabe 2. Spezifikation von Exceptions

Spezifizieren Sie die Funkionen von Aufgabe 1 mit VDM-errs-Klauseln gem¨aß Kapitel 4.2 der Materialsammlung.

Aufgabe 3. Module in VDM

Erstellen Sie nach dem Muster von Kapitel 4.3 eine vollst¨andige VDM- Spezifikation des Moduls Queue von Seite 13 der Materialsammlung.

Vergessen Sie n¨otige errs-Klauseln nicht. Welche zus¨atzlichen Metho- den sind f¨ur eine KlasseQueue sinnvoll?

Aufgabe 4. nana

Testen Sie das nana-Paket auf dem IT-Cluster des Fachbereichs. Mo- difizieren Sie eigene lokale Kopien der nicht funktionierenden nana- Skripten gem¨aß den Hinweisen der Vorlesung und testen Sie erneut.

1

Referenzen

ÄHNLICHE DOKUMENTE

Erg¨anzen Sie die Contracts der entsprechenden Methoden gem¨aß dem Beispiel auf Seite 25 der Materialsammlung, um die entsprechende Frame-Bedingung (Benutzung von ID() und ENSURE())

• Invarianten einer Komponente sind allgemeine, unver¨anderliche Konsistenzbe- dingungen an den Zustand einer Komponente, die vor und nach jedem Aufruf eines Dienstes gelten..

Geben Sie in Beispielen an, wie sich die Vorbedingungen, die Nach- bedingungen und die Invarianten in einer Kindklasse relativ zu denje- nigen einer Elternklasse verhalten sollten,

Zeigen Sie, dass das Parkplatzproblem genau eine L¨ osung der am Ende von Kapitel 3.1 spezifizierten Art f¨ ur alle Eingabegr¨ oßen besitzt, die die Vorbedingungen erf¨ ullen?.

Gehen Sie analog vor beim Beispiel zur Berechnung einer nichtnega- tiven ganzzahligen Potenz einer ganzen Zahl nach dem Algorithmus von Seite 29 der

Underflow soll nur in dem Falle auftreten d¨ urfen, wenn das (exakte) Ergebnis im Absolutwert kleiner als FLT MIN ist5.

[r]

Testen Sie auch hier das Programm durch vor¨ ubergehendes absichtlich- es Einbauen von Fehlern in die Algorithmen, um die Zusicherungen greifen zu