1. Aufgabe - UML a) Use-Case-Diagramm erstellen 3P Kunde kann Zugfahrten auflisten lassen und Tickets buchen. Die Tickets lassen sich direkt bei der Auflistung der Fahrten mitbuchen. Tickets können außerdem storniert werden, dies ist jedoch nur durch einen Kundenbetreuer möglich. b) Klassendiagramm mit den Klassen "Kunde", "Aboticket", "Einzelticket", "Zugfahrt" Ergänze Assoziationen entsprechend des Textes. c) Klassendiagramm mit den Klassen "Kunde", "Aboticket". Ergänze Diagramm entsprechend des Textes. "Ein Kunde kann höchstens ein aktuelles Aboticket haben, aber es können noch bis zu 3 abgelaufene Tickets auf ihn ausgestellt sein. Ein aktuelles oder abgelaufenes Aboticket kann höchstens einem Kunden zugewiesen sein." 2. Aufgabe - UML Java-Klasse "ZahlController" (oder so ähnlich) mit Funktionen zu Bezahlvorgängen gegeben. a) Klassendiagramm mit den Klassen "ZahlController", "Kunde", "Transaktion", "Zahlung" gegeben. Ergänze Attribute, Operationen, Assoziationen (mit vollständigen Mulitplizitäten) entsprechend der Java-Klasse. 6,5P b) Ergänze internes Sequenzdiagramm zur Funktion "bezahlen(int preis, bool favZ)" entsprechend der Java-Klasse. 3,5P 3. Aufgabe - OCL a) Klassendiagramm mit folgenden Klassen gegeben: "Kunde"(Attr: ...) "Bahnhof"(Attr: gleise, ...) [Assoziation auf sich selbst] | | | | "Zugfahrt"(Attr: ...)-------------------------------"Halt"(Attr: gleis, ankunft, abfahrt) Formuliere Invarianten entsprechend der Textvorgabe: "Jeder Bahnhof muss mindestens ein Gleis haben." "Jede Verbindung zwischen Bahnhöfen ist symmetrisch." "Für jeden Halt gilt, dass die Abfahrt nach der Ankunft stattfindet und ..." b) Tabelle mit 3 textuellen Anforderungen, jeweils 4 OCL-Ausdrücke. Kreuze an, ob diese korrekt oder falsch sind. 6P c) Formuliere Contracts zu Funktionen. 4. Aufgabe - Hoare