• Keine Ergebnisse gefunden

SS2009–¨Ubungsblatt9Ausgabe:30.Juni2009Abgabe:bissp¨atestens8.Juli2009inderVorlesung ProgrammingbyContract

N/A
N/A
Protected

Academic year: 2022

Aktie "SS2009–¨Ubungsblatt9Ausgabe:30.Juni2009Abgabe:bissp¨atestens8.Juli2009inderVorlesung ProgrammingbyContract"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

BERGISCHE UNIVERSIT ¨ AT WUPPERTAL

GAUSS-STRASSE 20 42119 WUPPERTAL TELEFAX (0202) 439-2901 TELEFON (0202) 439-0 WWW www.uni-wuppertal.de

Fachbereich C

MATHEMATIK UND NATURWISSENSCHAFTEN Fachgruppe Mathematik und Informatik

Programming by Contract

SS 2009 – ¨ Ubungsblatt 9 Ausgabe: 30. Juni 2009

Abgabe: bis sp¨atestens 8. Juli 2009 in der Vorlesung

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

E-Mail: buhl@math.uni-wuppertal.de

WWW: http://www.math.uni-wuppertal.de/∼buhl

Aufgabe 1. nana-dir

Benutzen Sie nana-dir, um alle Quelldateien im src-Verzeichnis in dokumentierende ShortForm (Deklarationen inklusive Contracts) um- zuwandeln.

Schreiben Sie eine kurze Dokumentation zur Konfiguration von eclipse mit zwei make Targets

– nana-dir – clean

nana-sfg ist nur f¨ur unter sehr restriktiven Stil-Richtlinien erzeugten Quellcode nutzbar:

– Funktionsdefinitionen m¨ussen direkt am Zeilenbeginn starten – ...

Vervollst¨andigen Sie diese Stilrichtlinien. Sollte Ihr Programmierstil nicht dem von nana-sfgerwarteten Stilrichtlinien entsprechen, so ha- ben Sie das Shell-Skript nana-sfg entsprechend anzupassen:

”keep a version of this file and modify it for local taste.“

Aufgabe 2. relative/absolute Abweichung

Beim Arbeiten mit Gleitkommazahlen ist die Benutzung der relativen Abweichung empfehlenswert. Warum? (Lesen Sie dazu die auf Seite 54 der Materialsammlung zitierten Quellen.)

Wie ist die Maschinengenauigkeit ǫ f¨ur z.B. den Datentyp double de- finiert? Und wie f¨ur den Datentyp long double? ( ¨Uberpr¨ufen Sie die Werte in einem kurzen C++-Programm.)

1

(2)

In der Technik ist die alleinige Benutzung der relativen Abweichung als Kleinheitskriterium nicht immer geeignet. Warum? Was sollte gem¨aß http://realtimecollisiondetection.net/blog/?p=89

als Alternative benutzt werden? Wie ist dazu die Hilfsfunktion approximatelyEqualTo() abzu¨andern?

Aufgabe 3. Vervollst¨andigung der Wuerfel-Contracts

Die Contracts der Klasse Wuerfel verbieten den Methoden Oberflaeche(), ... nicht, den Wert des Attributs Laenge zu ¨andern.

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

Aufgabe 4. const-Methoden

Andern Sie die Klasse¨ Wuerfel des letzten ¨Ubungsblatts alternativ zu Aufgabe 3 dadurch ab, dass Sie die abgeleiteten Abfragen zu const- Methoden machen und testen Sie wiederum.

Warum ist diese Vorgehensweise sinnvoller? Warum sollte auch in const-Methoden die G¨ultigkeit der Klassen-Invariante bei Methoden- beginn ¨uberpr¨uft werden?

2

Referenzen

ÄHNLICHE DOKUMENTE

– Falls eine Invariante die Attribute mehr als einer Klasse einschr¨ ankt, kann jede dieser Klassen als Kontext gew¨ ahlt werden. Eventuell kann man einer dieser Klassen

Eine formale Spezifikation ist auch nicht um jeden Preis und f¨ur alle Teile eines Systems sinnvoll. Nicht- sicherheitskritische Teile m¨ussen nicht unbedingt formal

Eine formale Spezifikation ist auch nicht um jeden Preis und f¨ur alle Teile eines Systems sinnvoll.. Nicht- sicherheitskritische Teile m¨ussen nicht unbedingt formal

Spezifikation durch Vertrag — eine Basistechnologie f¨ur eBusiness und beantworten Sie die folgenden Fragen ¨uber die dort vorgestellten Beispiel-Contracts:.. – Welches Attribut

Erg¨anzen Sie simple stack0.cc durch einen weiteren Konstruktor mit zwei Parametern, einem Feld G[] und einem int f¨ur die L¨ange dieses Feldes. Das durch diesen Konstruktor

Spezifizieren Sie f¨ur die Klasse Polarkoordinaten eine Me- thode void set_x_y(double x, double y) sowie eine Methode void double_vector(), die die L¨ange des Exemplar-Vektors

• Anmerkung: Der Stereotyp << history >> erkl¨ahrt den Zeitaspekt der Bezie- hung: Er besagt, dass eine Person ¨uber die Zeit f¨ur viele Firmen arbeiten kann, aber zu

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