• 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 11 5. Februar 2004

Ausgabe: 26. Januar 2004

Aufgabe 1. Contracts in Kindklassen

Beschreiben Sie in einer ¨Ubersicht mit nana-Konstrukten, wie Kind- klassen in Beziehung zu ihren Elternklasssen aussehen m¨ussen. Wie sind Klasseninvarianten, Vor- und Nachbedingungen im Kind genau zu spezifizieren?

Aufgabe 2. Implementierung von dictionary in C++

Implementieren Sie die an Kapitel 3 des Buchs von Herrn Mitchell angelehnte C++-Version des Eiffel-Originals

http://www.math.uni-wuppertal.de/buhl/teach/exercises/PgmByContr0304/dictionary.cc

und testen Sie (l¨osen Sie u.a. alle Zusicherungen testweise einmal aus).

Aufgabe 3. Verbesserung von simple stack und dictionary Verbessern Sie die simple stack-

http://www.math.uni-wuppertal.de/∼buhl/teach/exercises/PgmByContr0304/simple stack3.cc

und die dictionary-Versionen (Aufgabe 2) durch Einsatz von const T&-Parametern statt derconst T *const-Parameter sowie

”vollst¨andi- ge“ Nachbedingungen (explizite Spezifikation sowohl der unge¨anderten als auch der ge¨anderten Elemente der betreffenden Objekte) nach dem Muster von:

http://www.math.uni-wuppertal.de/∼buhl/teach/exercises/PgmByContr0304/Quicksort62.cc

Aufgabe 4. Klasse Matrix

Konzipieren Sie eine Klasse matrixanalog zur Klassevektorvon Auf- gabe 4 / ¨Ubungsblatt 9, indem Sie die Klassendeklaration und die le- diglich mit Vor- und Nachbedingungen versehenen Definitionen (kein ausf¨uhrbarer Code) in eine Datei schreiben. Dieses Dokument ist der

”Contract“, mit dem Sie mit Ihrem

”Kunden“ verhandeln. Vergessen Sie z.B. beim Kopierkonstruktor die Nachbedingung der elementweisen Gleichheit, ... nicht!

1

Referenzen

ÄHNLICHE DOKUMENTE

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

Untersuchen Sie die Fallbeispiele der Softwarekatastrophen (Beginn des Kapitels 1 der Materialsammlung) auf Nichteinhalten der in Ab- schnitt 1.1 diskutierten Qualit¨

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

[r]

Konzipieren Sie gem¨ aß Seite 38 der Materialsammlung eine eigene Ex- ceptionhierarchie unter der Ahnenklasse exception und benutzen Sie diese Exceptions in geeigneten Methoden

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

Benutzen Sie das Tool valgrind zur ¨ Uberpr¨ ufung von Zeiger- Dereferenzierungen und zur ¨ Uberpr¨ ufung der richtigen Freigabe von dynamisch allokierten Speicherbereichen am

http://www.math.uni-wuppertal.de/ ∼ buhl/Inf1/ratnum3.cc gem¨ aß der Einteilung basic queries, invariant, derived queries, con- structors, modificators und erg¨ anzen Sie sie