Klausur "OOAD" im SS 009 Name, Vorname: Matrikel-Nr:.... Bitte tragen Sie zuerst Ihren Namen und Ihre Matrikelnummer ein. Lesen Sie jeweils vor Erarbeitung der Lösung die ganze Aufgabenstellung durch. Halten Sie sich an den Standard der UML und zeichnen Sie möglichst vollständige Diagramme. Sie haben zur Lösung der Aufgaben 90 Minuten Zeit. Sie können die leeren Seiten als Schmierblatt verwenden aber bitte streichen Sie falsche Lösungen durch, so dass die zu wertende Lösung eindeutig erkannt wird. Sie können auch die gegenüberliegenden Seiten beschreiben, verweisen Sie aber, falls die Lösung nicht direkt hinter der Aufgabenstellung steht, auf die Lösung (z. B. siehe gegenüber oder siehe S. 5 ). Falls Sie noch zusätzliche Blätter benötigen, bekommen Sie welche bitte verwenden Sie keine eigenen Blätter. Als Hilfsmittel ist lediglich ein von Hand beschriebenes DIN A4-Blatt zugelassen. Auf Ihrem Arbeitsplatz liegen nur die Klausur, Ihr selbst beschriebenes DINA4-Blatt und ein Stift. Alle anderen Dinge incl. Handys sind in die Taschen zu packen, die Taschen sind auf dem Boden abzustellen. Aufgabe 1 3 4 5 6 Summe Note Ma. Punkte 5 10 8 10 1 15 60 Erreichte Punkte Aufgabe 1 (5 Punkte): Quiz Welche Aussagen sind richtig? Kreuzen Sie richtig bzw. falsch an. Richtige Antworten geben 0,5 Punkte, falsche Antworten -0,5 Punkte und unbeantwortete Fragen keinen Punkt. Frage Eine Aggregation (manchmal auch shared Aggregation genannt) stellt eine Beziehung zwischen einem Ganzen und mehreren Teilen dar, die dadurch charakterisiert ist, dass die Teile ebenfalls zerstört werden wenn das Ganze zerstört wird. Das UML-Klassendiagramm stellt die Interaktion zwischen Lebenslinien dar. In einem UML-Use Case-Diagramm kann auch mehr als ein Akteur an einem Anwendungsfall beteiligt sein. UML-Sequenzdiagramme werden zur Beschreibung von Verhalten verwendet. In einem UML Klassendiagramm ist ein mit + markiertes Attribut öffentlich sichtbar. In UML Use-Case-Diagrammen wird die include-beziehung dann verwendet, wenn das Verhalten eines Anwendungsfalls für einen anderen Anwendungsfall wiederverwendet werden soll. UML bedeutet Unified Modelling Layer. Wenn beim Forward-Engineering keine Fehlermeldung erscheint, dann entspricht das UML Modell den Anforderungen. Eine Komposition wird durch eine leere Raute dargestellt. Wenn in einem UML Klassendiagramm das Schlüsselwort {abstract} unter dem Klassennamen steht (oder der Klassenname kursiv geschrieben ist), dann kann von dieser Klasse keine Instanz erzeugt werden. Richtig Falsch 10.07.009, Seite 1/7
Aufgabe (10 Punkte): Begriffe Erklären Sie die nachfolgenden Begriffe. Nennen Sie jeweils (möglichst genau) das Umfeld, in dem der Begriff auftritt (z.b. Klassendiagramm ), und erläutern Sie kurz, was er bedeutet. Lösung: Kann in Skript nachgeschlagen werden. Attribut Reverse Engineering Assoziationsklasse Leserichtung Verallgemeinerung (Generalisierung) 10.07.009, Seite /7
Aufgabe 3 (8 Punkte): Use Case Diagramm Erstellen Sie ein UML Use Case Diagramm zu folgenden Sachverhalt: Es soll ein Anwendungssystem zur Unterstützung der Geschäftsprozesse in einem Krankenhaus entwickelt werden. Das System soll folgende Aufgaben erledigen: Herr Müller und Herr Maier seien in der Verwaltung angestellt. Herr Müller soll Mitarbeiter einstellen und entlassen können. Sowohl Herr Müller als auch Herr Maier kann Patienten aufnehmen und entlassen. Sowohl bei der Einstellung von Mitarbeitern, als auch bei der Aufnahme von Patienten müssen Name und Adresse erfasst werden. Um redundante Use-Case-Beschreibungen zu verhindern wird diese Tätigkeit in einen gesonderten Use-Case ausgelagert. Falls der einzustellende Mitarbeiter bzw. der aufzunehmende Patient seinen Wohnsitz am Ort des Krankenhauses hat, wird geprüft, ob die angegebene Adresse am Wohnort eistiert. Lagern Sie auch diesen Use-Case aus. Hinweise: Beachten Sie: Aktoren werden mit Rollen bezeichnet! Falls Conditions oder Etensionpoints eistieren, geben Sie diese bitte an. eine Lösung: Mitarbeiter einstellen Mitarbeiter entlassen include Name und Adr. erfassen Et.P.: A.e Personal- Sachbearbeiter Patient aufnehmen include etend Adresse prüfen {falls Wohnsitz == Krankenhaus-Ort} Et.P:Ae Patient entlassen Patienten- aufnahme- Sachbearbeiter 10.07.009, Seite 3/7
Aufgabe 4 (10 Punkte): Sequenzdiagramm Zeichnen Sie ein Sequenzdiagramm in UML, das den folgenden Ablauf darstellt. Anwendungsfall Fernausleihe Achtung: Sie sollen nicht den Sinn der Vorgaben interpretieren, sondern lediglich die Informationen ausdrücken! Es gibt die Klassen Warenkorb, BibliothekServer und BibliothekClient und Ausleihe. Der Benutzer wählt am BibliothekClient das Buch UML Glasklar für die Ausleihe aus. Der BibliothekClient ruft nun bei dem BibliothekServer die Methode gibwarenkorb() auf. Daraufhin erzeugt der BibliothekServer eine neue Instanz eines Warenkorb -Objekts und reicht diese an den BibliothekClient weiter. Der BibliothekClient ruft bei dem Warenkorb nun die Methode hinzufügen( UML Glasklar ) auf. Anschließend ruft der BibliothekClient beim BibliothekServer die Methode ausleihen() mit dem Warenkorb auf. Daraufhin erzeugt der BibliothekServer eine neue Instanz von Ausleihe, zerstört das Warenkorb-Objekt und liefert an den BibliothekClient ok zurück. Der BibliothekClient gibt dem Benutzer nun ebenfalls ok zurück. 10.07.009, Seite 4/7
Lösen Sie bitte hier Aufgabe 5 Use Case Name Prüfung der Frankierung eines Paketes Primary Actor Paketsortierer Further Actors keine Stakeh & Inter Postunternehmen hat Interesse an kostengünstiger Frankierungsprüfung,... Success Guar. Das Paket ist richtig frankiert oder mit einer Gebührennachberechnung Versehen. (und hat die Anlage verlassen) Minimal Guar. Alle Transaktionen wurden protokolliert Trigger Basic Course (Main Success Scenario) Paket auf Förderband legen. 1. Paketsortierer legt ein Paket auf das Förderband.. System misst Länge, Breite, Höhe und Gewicht. 3. System liest die Frankierung. 4. (System berechnet das Volumen.) 5. System prüft, dass die Größe des Pakets und das Gewicht zur Frankierung passen. 6. System schiebt Paket raus Alternative Courses a. Das Förderband ist nicht leer a1. Das System stoppt die Anlage a. Das System lässt das Licht blinken a3. Der Paketsortierer entfernt das Paket a4. Das System lässt das Förderband wieder laufen a5. Das System stoppt das Blinken des Lichts. a6. abort 5a. Wegen der Größe oder dem Gewicht ist zu wenig frankiert 5a1. System schreibt eine Gebührennachberechnung 5a. System klebt Gebührennachberechnung automatisch auf das Paket 5a3. Goto 6. 10.07.009, Seite 5/7
Aufgabe 5 (1 Punkte): Tetuelle Beschreibung von Use Cases In einer Frankierprüfanlage soll geprüft werden, ob ein Paket entsprechend seiner Maße und seinem Gewicht frankiert ist. Diesen Use Case sollen Sie anhand des unten bereitgestellten Templates beschreiben. Technischer Ablauf: Die Frankierprüfanlage enthält ein Förderband, auf das ein Paket gelegt wird. Dieses Förderband transportiert das Paket an Sensoren vorbei, die Höhe, Breite, Länge und das Gewicht des Pakets feststellen. Außerdem wird über ein Lesegerät die Frankierung ausgelesen. Das System prüft an Hand der durch die Sensoren und Leser gewonnenen Angaben, ob richtig frankiert ist. Falls wegen zu großem Volumen oder zu hohem Gewicht zu wenig frankiert ist, wird eine Gebührennachberechnung geschrieben und automatisch auf das Paket geklebt. Nach der Prüfung verlassen die Pakete die Frankierprüfanlage. Aus technischen Gründen darf sich zum Zeitpunkt der Sensormessung nur ein einziges Paket in der Frankierprüfanlage befinden, d. h. der Bediener darf erst das nächste Paket auflegen, wenn das vorhergehende Paket vermessen wurde. Falls gegen diese Vorschrift verstoßen wird, bleibt das Förderband stehen und ein Blinklicht macht den Bediener darauf aufmerksam, dass das Paket wieder vom Förderband genommen werden muss. Erst wenn das neue Paket entfernt wurde, wird das Blinken beendet und das Förderband läuft weiter. 10.07.009, Seite 6/7
Aufgabe 6 (15 Punkte): Klassendiagramm Entwerfen Sie ein vollständiges Klassendiagramm. Allgemeine Infos zum Aufgabenumfeld: Sie entwickeln Software für ein Computer-Schachspiel. Ihre Aufgabe ist der Entwurf des Spielbretts mit den Figuren. Zeigen Sie bei Assoziationen die Richtung des Zugriffs durch Pfeile an Die folgenden Informationen sollen darstellt werden: Ein Schach-Spiel besteht aus einem Schachbrett und Mannschaften. Das Schachbrett besteht aus 64 Feldern, die jeweils eine - und eine y-koordinate haben. Die Mannschaften unterscheiden sich durch die Farbe. Jede Mannschaft besteht aus insgesamt 16 Figuren. Das sind 8 Bauern, Türme, Läufer, Springer, 1 Dame und 1 König. Sorgen Sie dafür, dass die folgenden Informationen im Modell enthalten sind: Jede Figur steht entweder auf einem Feld oder wurde bereits geschlagen Jede Figur weiß, zu welcher Mannschaft sie gehört Umgekehrt kennt auch jede Mannschaft ihre Figuren Stellen Sie im Klassendiagramm dar, dass eine Figur nicht gleichzeitig z. B. Bauer und Läufer sein darf. Eine Figur ist entweder ein Bauer, eine Dame, ein Turm, oder... Jedes Feld weiß, ob es durch eine Figur besetzt ist und wenn ja mit welcher Jede Figur soll eine Methode moveto bieten, die es erlaubt die Figur auf ein anderes Zielfeld zu bewegen. Bemerkung zu Lösung: Statt müsste stehen. Schachspiel Schachbrett Name Mannschaft Farbe 1 Feld 64 0..1 0..1 Figur {abstract} int int y steht moveto() Bauer Turm Springer Laeufer Dame Koenig 8 1 1 10.07.009, Seite 7/7