• Keine Ergebnisse gefunden

oder per email an c.markmann@uni-wuppertal.de

N/A
N/A
Protected

Academic year: 2022

Aktie "oder per email an c.markmann@uni-wuppertal.de"

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

WS 2005/2006 – ¨ Ubungsblatt 6 Ausgabe: 1. Dezember 2005

Abgabe: bis sp¨atestens 8. Dezember 2005 in der Vorlesung

oder per email an c.markmann@uni-wuppertal.de

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

e-mail: Hans-Juergen.Buhl@math.uni-wuppertal.de WWW: http://www.math.uni-wuppertal.de/buhl

Aufgabe 1. Kindklassen

K¨onnen in C++ Kindklassen einzelne Attribute oder Methoden der Elternklasse nicht besitzen? Wenn ja: Wie kann das realisiert werden, und ist es sinnvoll?

Aufgabe 2. Subcontracting

Geben Sie an, wie sich die Vorbedingungen, die Nachbedingungen und die Invarianten in einer Kindklasse relativ zu denjenigen einer Eltern- klasse verhalten sollten, wenn eine ”is-a”-Vererbung benutzt wird.

Schildern Sie jeweils auch kurz ein Beispiel.

Aufgabe 3. Umgangssprachliche Spezifikation

Zeigen Sie, dass das Parkplatzproblem genau eine L¨osung der in der Vorlesung spezifizierten Art f¨ur alle Eingabegr¨oßen besitzt, die die Vorbedingungen erf¨ullen. Warum sollte der Auftraggeber der Software Parkplatzproblem mit den Vorbedingungen einverstanden sein? Wie k¨onnte eine Softwarel¨osung aussehen, die ohne den obigen Beweis die Einhaltung des Contracts f¨ur sich in Anspruch nimmt?

Aufgabe 4. newmat10

Besorgen Sie sich die Bibliothek newmat10 aus dem Internet:

http://www.robertnz.net/download

Lesen Sie die Installationsanweisung, installieren Sie sie auf einem Rechner des Ausbildungsclusters und bringen Sie dann mit Hilfe dieser Bibliothek ein Beispielprogramm zum Laufen.

Welche Software-G¨utekriterien kann man bei Benutzung dieser Biblio- thek besonderes gut erf¨ullen?

1

(2)

Aufgabe 5. enum als Klasse

Ubersetzen Sie das Beispielprogramm¨ enum-Day5.ccder Vorlesung und f¨uhren Sie ausreichend viele Tests durch.

Andern Sie den Input-Operator so ab, dass er auch die Zeichenkette¨

"Sonnabend" akzeptiert und testen Sie erneut.

Welche Software-G¨utekriterien sind durch diese ¨Anderung verbessert worden?

Erweitern Sie die Klasse um Methoden istWochenendtag(), Addition einer ganzen Zahl zu einem Day-Exemplar, Subtraktion zweier Day- Exemplare und testen Sie.

Welche Bedeutung k¨onnte der genannten Addition bzw. Subtraktion zugrunde liegen? Spezifizieren Sie diese ausreichend genau.

Welche Vorteile hat die KlasseDaygegen¨uber einer reinenenum-L¨osung mit eigenen Operatoren?

2

Referenzen

ÄHNLICHE DOKUMENTE

Dürfen Eltern vorschreiben, welche Freunde das Kind haben darf? .. Dürfen Eltern den Freund der Tochter bei ihr über-

Geben Sie in eigenen Worten an, wie sich die Vorbedingungen, die Nachbedingungen und die Invarianten in einer Kindklasse relativ zu denjenigen einer Elternklasse verhalten sollten,

http://en.wikipedia.org/wiki/Object Constraint Language Auf welchem Level kann sie als formale Methode eingeordnet

Welche Software-G¨ utekriterien verletzt das hard coding (http://en.wikipedia.org/wiki/Hard code).

Ordnen Sie die folgenden Anti-Pattern in Bezug auf die in der Vorlesung besprochenen SW-G¨ utekriterien ein:.

Erl¨autern Sie, die Mißachtung welcher Software-G¨ utekriterien zum Pro- blem ” Ein sahniger Brocken“ (Seite 5 der Materialsammlung) gef¨ uhrt hat (Erstellung einer

Erg¨anzen Sie dann im gcd-Algorithmus (Seite 13f. der Materialsamm- lung) alle auftretenden Hoare-Tripel, indem Sie diese einzeln jeweils in drei Zeilen niederschreiben und

Erg¨anzen Sie simple stack.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