WS 98/99: Softwaretechnik - Übungsblatt 4

Abgabe bis 7.12., 12.15 Uhr


Aufgabe 4.1 (10 Punkte)

Manche Programmiersprachen erlauben spezifikationsbezogene Angaben im Programmtext:

  1. Eiffel bietet die Möglichkeit, bei Klassen eine Invariante und bei Prozeduren Pre/Postconditions anzugeben (vgl. Anlage).
  2. Java sieht vor, daß die Signatur einer Prozedur um Angaben über mögliche Ausnahmemeldungen erweitert wird.

In Unterklassen können diese Angaben modifiziert werden. Diskutiere die dafür gültigen Regeln! Sind sie sinnvoll, könnten sie auch anders lauten, in welcher Beziehung stehen sie zum semantischen Verhältnis zwischen Klasse und Unterklasse?

Aufgabe 4.2 (15 Punkte)

In der Vorlesung waren zwei verschiedene Entwürfe für das System Datenbasis mit Sicherungskopie spezifiziert worden.

  1. Entwirf und spezifiziere eine dritte Konstruktionsvariante, die aus zwei Komponenten besteht: Eine Komponente soll die aktuelle Datenbasis enthalten, die andere die Rückwärtsänderungen zum letzten Schnappschuß.
  2. Beschreibe für jeden der drei Entwürfe seine Vor- und Nachteile, insbesondere für verschiedene Benutzungsprofile!
  3. Implementiere den in der Vorlesung vorgestellten Entwurf Checksys3 als Java-Klasse! Die Komponenten sollen geeignet präzisiert (nicht implementiert) werden, damit der Leser die Semantik des angegebenen Codes nachvollziehen kann. [Führe eine formale Verifikation des Codes durch!]

Aufgabe 4.3 (25 Punkte)

Verwendet Statecharts, um einen Fahrscheinautomaten zu spezifizieren. Genauer: das typische Verhalten eines solchen. Es sollen fünf verschiedene Fahrscheine angeboten werden:

a	Einzelfahrschein	( 3,--)
b	ermäßigter Einzelf.	( 1,50)
c	Kurzstrecke		( 2,--)
d	Monatskarte		(30,--)
e	Regional (1./2. Kl.)	(variabel)

Für a-d sind Tasten vorhanden.

Ziele für (e), nach denen sich die Höhe des Preises richtet, werden als dreistellige Nummern über einen Ziffernblock eingegeben. Anschließend wird ein Nummerncode für die 1. bzw. 2. Klasse eingegeben (z.B. 55 = 1. Klasse, 66 = 2. Klasse)

Die Preise für die Regionalfahrscheine sollen als Abbildung modelliert werden Hinweis: Jeder Automat "weiß", wo er steht.

Zwei Sonderfunktionen - Addition und Korrektur - werden durch zwei weitere Tasten bereitgestellt. Addition (+) erlaubt den Erwerb von mehreren Fahrscheinen. Korrektur löscht alle Eingaben.

Mit der Bezahlung wird die Transaktion abgeschlossen. Als Zahlungsmittel sind Münzen (-,50; 1,--; 2,--; 5,--) und Scheine (20,--; 50,--) erlaubt.

Nachdem alle Kundeneingaben abgeschlossen sind (Geldeinwurf gehört dazu), wird zunächst das Restgeld ausgeworfen und dann die Fahrscheine. Es wird davon ausgegangen, daß immer passendes Restgeld vorhanden ist; also keine Diagramme für den Auswurf von einzelnen Münzen oder Scheinen.