• 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 12 (optional) Ausgabe: 2. Februar 2004

Aufgabe 1. Contracts in Kindklassen, Forts.

Das Beispiel

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

demonstriert den Einsatz von Nana bei der Vererbung (wie werden Vor- und Nachbedingungen sowie Invarianten der Elternklasse in der Kindklasse ber¨ucksichtigt?).

Listen Sie alle erw¨ahnenswerten Implementierungshinweise f¨ur diese Anwendung tabellarisch in Form von

”Hilfestellungen“ (getrennt jeweils f¨ur Elternklasse und Kindklasse) auf und erl¨autern Sie sie in eigenen Worten.

Aufgabe 2. Quicksort-Frame-Regeln

Stellen Sie die in der Vorlesung besprochenen alternativen M¨oglich- keiten der Frame-Regel-Spezifikation der Funktion quicksort() ge- gen¨uber und diskutieren Sie jeweils Vor- sowie Nachteile.

Aufgabe 3. Konzeption einer Klasse mit Contracts

Konzipieren Sie eine (C++-)Klasse SIMPLE QUEUE mit den Attribu- ten/Methoden Konstruktor(en), basic queries, ... im Funkti- onsumfang number of items, capacity, is empty, is full, first, put, remove, invariant und spezifizieren Sie vollst¨andig (auch die Frame-Regeln).

Aufgabe 4. Copy-Konstruktor

Erg¨anzen Sie mydictionary aus dictionary.cc um einen Copy- Konstruktor. Spezifizieren Sie diesen

”vollst¨andig“ und implementieren Sie. Planen Sie auskommentierte Testanweisungen, die die Verletzung der Nachbedingungen mindestens je einmal ausl¨osen.

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!.

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]

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