Studientag in Hagen Kurs 1793 11.01.2014 Aufgabe 1 (Anwendungsfalldiagramm) In dieser Aufgabe soll ein Anwendungsfalldiagramm für die im Folgenden beschriebenen Abläufe bei dem Kauf einer Fahrkarte an einem Fahrkartenautomaten erstellt werden. Der Kauf einer Fahrkarte besteht im Wesentlichen aus der Auswahl der Fahrkartenkategorie und der Bezahlung. Kunden können am Automaten Fahrkarten der Kategorien Einzelfahrkarte und Monatskarte kaufen. In beiden Fällen muss eine Altersstufe (z.b. Kind oder Erwachsener) gewählt werden. Während beim Kauf einer Einzelfahrkarte ein Startpunkt und ein Fahrtziel angeben werden muss, ist bei einer Monatskarte eine Tarifzone zu wählen. Die Bezahlung einer Fahrkarte kann in Bar oder per Kreditkarte erfolgen. Bei der Bezahlung per Kreditkarte wird zusätzlich ein Zahlungsbeleg über die Kreditkartentransaktion ausgedruckt. Eine Fahrkartenauswahl kann unter den folgenden Umständen abgebrochen werden: 1) Die Abbruchtaste wird währen der Fahrkartenauswahl gedrückt. 2) Nach der Fahrkartenauswahl erfolgt über einen bestimmten Zeitraum keine Bezahlung (Timeout). 3) Die Bezahlung ist nicht erfolgreich. Neben dem Kaufen von Fahrkarten können Kunden am Fahrkartenautomaten auch Hilfestellungen abrufen. Der Fahrkartenautomat wird des Weiteren von Servicetechnikern zur Wartung bedient. Bei einer Wartung werden optional die Tarife angepasst und der Wechselgeldbehälter gewartet. Haben sich die Tarife geändert, soll der Anwendungsfall Tarife setzen ausgeführt werden. Wenn der Wechselgeldbehälter leer bzw. voll ist, wird der Anwendungsfall Wechselgeldbehälter füllen bzw. Wechselgeldbehälter leeren ausgeführt. Nach einer Wartungsarbeit wird ein Wartungsbeleg über die durchgeführten Arbeiten ausgedruckt. Servicetechniker können zu Prüfzwecken (wie Kunden) Fahrkarten kaufen und Hilfestellungen abrufen. Erstellen Sie ein Anwendungsfalldiagramm, welches die beschriebenen Abläufe unter Angabe aller Akteure, Anwendungsfälle und Beziehungen modelliert.
Aufgabe 2 (Klassen- und Objektdiagramm) Ein Veranstalter großer Sportveranstaltungen möchte ein System entwickeln, dass ihn bei der Durchführung internationaler Sportturniere unterstützt. In dieser Aufgabe geht es darum, die Anforderungen an das System mittels eines Domänenklassenmodells zu modellieren. Dafür stehen die folgenden Informationen zur Verfügung: Der Veranstalter richtet Turniere in verschiedenen Sportarten aus. Die verschiedenen Turniere sollen durch ihre Sportart, ihren Namen und ihr Austragungsjahr voneinander unterschieden werden können. Zu jedem Turnier sind die teilnehmenden Mannschaften mit ihrem Namen und ihrer Nationalität festzuhalten. Ein Turnier wird grundsätzlich in mehreren Runden (z.b. Qualifikationsrunde, Gruppenphase, Viertelfinale, Halbfinale, Finale) ausgetragen. Eine Runde ist entweder eine Gruppenphase oder eine K.o.-Phase. In einer Gruppenphase werden die Mannschaften in verschiedene Gruppen, die durch einen Namen eindeutig bezeichnet werden, eingeteilt. In den Gruppen werden jeweils Gruppenspiele ausgetragen. Eine K.o.-Phase dagegen besteht direkt aus möglicherweise mehreren Spielen. Jedes Spiel wird von genau zwei Mannschaften bestritten. Zu jedem Spiel sind das Datum und das Ergebnis durch die erreichten Punkte der beiden Mannschaften (Tore im Fußball, Punkte beim Basketball usw. inkl. Verlängerungen, Losentscheide o.ä.) zu erfassen. Jede Gruppenphase und jede K.o-Phase mit Ausnahme des Finales hat eine Nachfolgerunde. a) Erstellen Sie ein (Domänen-) Klassendiagramm für die beschriebene Anwendungsdomäne. b) Erstellen Sie ein gültiges Objektdiagramm für die folgende Situation bei der Fußball-WM 2006: Am dritten Spieltag der Gruppe A (20. Juni 2006) trennten sich Ecuador und Deutschland mit einem 0:3.
Aufgabe 3 (Sequenzdiagramm) In dieser Aufgabe sollen Sie ein Sequenzdiagramm erstellen. Gegeben ist ein Ausschnitt eines Analyseklassendiagramms für eine Softwareanwendung zur Verwaltung eines Videoverleihs und die folgende textuelle Spezifikation des Anwendungsfalls Video ausleihen : Zeichnen Sie ein Sequenzdiagramm für das Szenario Video ausleihen ein Kunde entleiht genau ein Video des Anwendungsfalls Video ausleihen. Benutzen Sie dabei die Operation gibausleihensortiert() und beachten Sie, dass es sich bei dem Rückgabetyp um einen Iterator handelt. Hinweise: Der Detaillierungsgrad soll dem des Grobentwurfs entsprechen, wobei das Arbeiten auf Kopien nicht berücksichtigt werden muss. Gehen Sie von der Existenz einer Instanz der Anwendungsfall-Akteur-Schnittstelle MitarbeiterVideoAusleihenAAS sowie von einer Instanz der zugehörigen Kontrollklasse VideoAusleihenK aus und beginnen Sie mit der Selektion des bereits erfassten Kunden durch den Akteur Mitarbeiter. Die Kontrollklasse soll (mindestens) die Operation ausleihen(video,kunde) besitzen. Mit einem Iterator kann durch die Elemente einer Datenstruktur iteriert werden. Der Iterator verfügt über eine Methode next(), die ein Element der Datenstruktur zurückliefert und den Iterator auf das nächste Element der Datenstruktur setzt. Die Iteratormethode hasnext() überprüft, ob die Datenstruktur ein weiteres Element enthält, d.h. mit dieser Methode kann überprüft werden, ob über alle Elemente der Datenstruktur iteriert wurde.
Aufgabe 4 (Zustandsdiagramm) In dieser Aufgabe soll das Verhalten einer Waschmaschine modelliert werden. Die Waschmaschinentür kann geöffnet oder geschlossen sein. Nur wenn die Waschmaschinentür geschlossen ist, kann der Benutzer die Waschmaschine ein- und ausschalten. Solange die Waschmaschine eingeschaltet ist, kann die Tür nicht geöffnet werden. a) Erstellen Sie ein einfaches Zustandsdiagramm, welches das bisher beschriebene Verhalten der Waschmaschine modelliert. Verwenden Sie dazu die Ereignisse {öffnen, schließen, ein, aus}. Über den Zustand, in dem sich die Waschmaschine nach dem Einschalten befindet, sind weitere Details der Steuerung bekannt: Nach dem Einschalten befindet sich die Waschmaschine in einem Programmauswahlmodus. In diesem Modus wartet die Waschmaschine auf eine Programmauswahl. Dem Benutzer stehen die Waschprogramme P1, P2 und P3 zur Verfügung. Jedes Waschprogramm kann über eine entsprechende Taste ausgewählt werden. Standardmäßig ist nach dem Einschalten der Waschmaschine das Waschprogramm P1 eingestellt. Die Waschmaschine wird über die Taste Start gestartet und dadurch wird auch der Programmauswahlmodus verlassen. Wurde das Programm P1 ausgewählt, wechselt die Waschmaschine nach dem Drücken der Starttaste zunächst in den Vorwaschmodus. Beim Übergang in diesen Modus lässt die Waschmaschine grundsätzlich Wasser ein und beim Verlassen des Vorwaschmodus wird das Wasser grundsätzlich abgepumpt. Der Vorwaschmodus dauert 10 Minuten. Nach Ablauf dieser Zeit wechselt die Waschmaschine automatisch in den Hauptwaschmodus. Wie beim Vorwaschmodus lässt die Waschmaschine beim Wechsel in den Hauptwaschmodus grundsätzlich Wasser ein und pumpt beim Verlassen des Modus grundsätzlich Wasser ab. Nach 30 Minuten wechselt die Waschmaschine automatisch in den Schleudermodus. Beim Verlassen des Schleudermodus wird das aus der Wäsche geschleuderte Wasser abgepumpt. Nach 5 Minuten verlässt die Waschmaschine den Schleudermodus und wechselt zurück in den Programmauswahlmodus. Wurde das Programm P2 ausgewählt, wechselt die Waschmaschine nach dem Drücken der Starttaste direkt in den Hauptwaschmodus. Ansonsten soll das Programm P2 dem Programm P1 entsprechen. Wurde das Programm P3 ausgewählt, wechselt die Waschmaschine nach dem Drücken der Starttaste, analog zum Programm P2, direkt in den Hauptwaschmodus. Der Hauptwaschmodus wird ebenfalls nach 30 Minuten verlassen. Allerdings wechselt die Waschmaschine nach dem Hauptwaschmodus nicht in den Schleudermodus, sondern in den Programmauswahlmodus.
Die Waschmaschine kann jederzeit ausgeschaltet werden. Es ist darauf zu achten, dass beim Ausschalten Wasser abgepumpt werden muss, falls sich Wasser in der Maschine befindet. b) Erweitern Sie Ihre Lösung aus Aufgabe a) um das Verhalten nach dem Einschalten. Modellieren Sie die oben beschriebenen Modi in einem zusammengesetzten Zustand. Der zusammengesetzte Zustand soll dem Zustand aus Aufgabe a) entsprechen, in dem sich die Waschmaschine nach dem Einschalten befindet. Verwenden Sie dabei zusätzlich die Ereignisse {start, P1, P2, P3} und das Zeitereignis nach x Minuten. Als Aktionen stehen nur die Funktionen setzeprogramm( ) zum Speichern des gewählten Programms, wassereinlassen() zum Einlassen von Wasser und wasserabpumpen() zum Abpumpen von Wasser zur Verfügung. In Wächterbedingungen darf nur die Funktion gibprogramm() zur Abfrage des gewählten Programms verwendet werden.