Aufgabe 4.1 (10 Punkte)
Manche Programmiersprachen erlauben spezifikationsbezogene Angaben im Programmtext:
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.
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.