03.01.2013 Aufrufe

Klausur "OOAD" im SS 2009 - Hochschule Darmstadt

Klausur "OOAD" im SS 2009 - Hochschule Darmstadt

Klausur "OOAD" im SS 2009 - Hochschule Darmstadt

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Prof. Dr. R. Hahn, Prof. Dr. W.Weber<br />

<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Name, Vorname: ……………………………………………………..<br />

Matrikel-Nr: ……………………………………………………..<br />

Bitte tragen Sie zuerst Ihren Namen und Ihre Matrikelnummer ein. Lesen Sie jeweils vor Erarbeitung<br />

der Lösung die ganze Aufgabenstellung durch. Halten Sie sich an den Standard der UML2 und zeichnen<br />

Sie möglichst vollständige Diagramme. Sie haben zur Lösung der Aufgaben 90 Minuten Zeit.<br />

Sie können die leeren Seiten als Schmierblatt verwenden – aber bitte streichen Sie falsche Lösungen<br />

durch, so dass die zu wertende Lösung eindeutig erkannt wird. Sie können auch die gegenüberliegenden<br />

Seiten beschreiben, verweisen Sie aber, falls die Lösung nicht direkt hinter der Aufgabenstellung<br />

steht, auf die Lösung (z. B. „siehe gegenüber“ oder „siehe S. 5“). Falls Sie noch zusätzliche Blätter<br />

benötigen, bekommen Sie welche – bitte verwenden Sie keine eigenen Blätter.<br />

Als Hilfsmittel ist lediglich ein von Hand beschriebenes DIN A4-Blatt zugelassen. Auf Ihrem Arbeitsplatz<br />

liegen nur die <strong>Klausur</strong>, Ihr selbst beschriebenes DINA4-Blatt und ein Stift. Alle anderen<br />

Dinge incl. Handys sind in die Taschen zu packen, die Taschen sind auf dem Boden abzustellen.<br />

Aufgabe 1 2 3 4 5 6 Summe Note<br />

Max.<br />

Punkte<br />

Erreichte<br />

Punkte<br />

5 10 8 10 12 15 60<br />

Aufgabe 1 (5 Punkte): Quiz<br />

Welche Aussagen sind richtig? Kreuzen Sie „richtig“ bzw. „falsch“ an. Richtige Antworten geben 0,5<br />

Punkte, falsche Antworten -0,5 Punkte und unbeantwortete Fragen keinen Punkt.<br />

Frage<br />

Eine Aggregation (manchmal auch „shared Aggregation“ genannt) stellt eine Beziehung<br />

zwischen einem Ganzen und mehreren Teilen dar, die dadurch charakterisiert<br />

ist, dass die Teile ebenfalls zerstört werden wenn das Ganze zerstört wird.<br />

Das UML-Klassendiagramm stellt die Interaktion zwischen Lebenslinien dar.<br />

In einem UML-Use Case-Diagramm kann auch mehr als ein Akteur an einem<br />

Anwendungsfall beteiligt sein.<br />

UML-Sequenzdiagramme werden zur Beschreibung von Verhalten verwendet.<br />

In einem UML Klassendiagramm ist ein mit „+“ markiertes Attribut öffentlich<br />

sichtbar.<br />

In UML Use-Case-Diagrammen wird die include-Beziehung dann verwendet,<br />

wenn das Verhalten eines Anwendungsfalls für einen anderen Anwendungsfall<br />

wiederverwendet werden soll.<br />

UML bedeutet „Unified Modelling Layer“.<br />

Wenn be<strong>im</strong> Forward-Engineering keine Fehlermeldung erscheint, dann entspricht<br />

das UML2 Modell den Anforderungen.<br />

Eine Komposition wird durch eine leere Raute dargestellt.<br />

Wenn in einem UML2 Klassendiagramm das Schlüsselwort {abstract} unter dem<br />

Klassennamen steht (oder der Klassenname kursiv geschrieben ist), dann kann von<br />

dieser Klasse keine Instanz erzeugt werden.<br />

10.07.<strong>2009</strong>, Seite 1/7<br />

Richtig Falsch<br />

x<br />

x<br />

x<br />

x<br />

x<br />

x<br />

x<br />

x<br />

x<br />

x


<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Prof. Dr. R. Hahn, Prof. Dr. W.Weber<br />

Aufgabe 2 (10 Punkte): Begriffe<br />

Erklären Sie die nachfolgenden Begriffe. Nennen Sie jeweils (möglichst genau) das Umfeld, in dem<br />

der Begriff auftritt (z.B. „Klassendiagramm“), und erläutern Sie kurz, was er bedeutet.<br />

Lösung: Kann in Skript nachgeschlagen werden.<br />

Attribut Umfeld:<br />

Erläuterung:<br />

Reverse Engineering Umfeld:<br />

Erläuterung:<br />

Assoziationsklasse Umfeld:<br />

Erläuterung:<br />

Leserichtung Umfeld:<br />

Erläuterung:<br />

Verallgemeinerung (Generalisierung) Umfeld:<br />

Erläuterung:<br />

10.07.<strong>2009</strong>, Seite 2/7


<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Prof. Dr. R. Hahn, Prof. Dr. W.Weber<br />

Aufgabe 3 (8 Punkte): Use Case Diagramm<br />

Erstellen Sie ein UML Use Case Diagramm zu folgenden Sachverhalt:<br />

Es soll ein Anwendungssystem zur Unterstützung der Geschäftsprozesse in einem<br />

Krankenhaus entwickelt werden.<br />

Das System soll folgende Aufgaben erledigen:<br />

− Herr Müller und Herr Maier seien in der Verwaltung angestellt.<br />

− Herr Müller soll Mitarbeiter einstellen und entlassen können. Sowohl Herr Müller als<br />

auch Herr Maier kann Patienten aufnehmen und entlassen.<br />

− Sowohl bei der Einstellung von Mitarbeitern, als auch bei der Aufnahme von Patienten<br />

müssen Name und Adresse erfasst werden. Um redundante Use-Case-Beschreibungen zu<br />

verhindern wird diese Tätigkeit in einen gesonderten Use-Case „ausgelagert“.<br />

− Falls der einzustellende Mitarbeiter bzw. der aufzunehmende Patient seinen Wohnsitz am<br />

Ort des Krankenhauses hat, wird geprüft, ob die angegebene Adresse am Wohnort existiert.<br />

Lagern Sie auch diesen Use-Case aus.<br />

Hinweise:<br />

− Beachten Sie: Aktoren werden mit Rollen bezeichnet!<br />

− Falls Conditions oder Extensionpoints existieren, geben Sie diese bitte an.<br />

eine Lösung:<br />

Personal-<br />

Sachbearbeiter<br />

Patientenaufnahme-<br />

Sachbearbeiter<br />

Mitarbeiter<br />

einstellen<br />

Mitarbeiter<br />

entlassen<br />

Patient<br />

aufnehmen<br />

Patient<br />

entlassen<br />

include<br />

include<br />

Name und<br />

Adr. erfassen<br />

Ext.P.: A.e<br />

extend<br />

Adresse<br />

prüfen<br />

10.07.<strong>2009</strong>, Seite 3/7<br />

{falls Wohnsitz == Krankenhaus-Ort}<br />

Ext.P:Ae


<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Prof. Dr. R. Hahn, Prof. Dr. W.Weber<br />

Aufgabe 4 (10 Punkte): Sequenzdiagramm<br />

Zeichnen Sie ein Sequenzdiagramm in UML 2, das den folgenden Ablauf darstellt.<br />

Anwendungsfall „Fernausleihe“<br />

Achtung: Sie sollen nicht den Sinn der Vorgaben interpretieren, sondern lediglich die<br />

Informationen ausdrücken!<br />

− Es gibt die Klassen „Warenkorb“, „BibliothekServer“ und „BibliothekClient“ und<br />

„Ausleihe“.<br />

− Der Benutzer wählt am „BibliothekClient“ das Buch „UML Glasklar“ für die Ausleihe<br />

aus.<br />

− Der BibliothekClient ruft nun bei dem „BibliothekServer“ die Methode „gibWarenkorb()“<br />

auf. Daraufhin erzeugt der BibliothekServer eine neue Instanz eines „Warenkorb“-Objekts<br />

und reicht diese an den BibliothekClient weiter.<br />

− Der BibliothekClient ruft bei dem Warenkorb nun die Methode hinzufügen(„UML<br />

Glasklar“) auf.<br />

− Anschließend ruft der BibliothekClient be<strong>im</strong> BibliothekServer die Methode „ausleihen()“<br />

mit dem Warenkorb auf. Daraufhin erzeugt der BibliothekServer eine neue Instanz<br />

von Ausleihe, zerstört das Warenkorb-Objekt und liefert an den BibliothekClient<br />

„ok“ zurück“.<br />

− Der BibliothekClient gibt dem Benutzer nun ebenfalls „ok“ zurück.<br />

10.07.<strong>2009</strong>, Seite 4/7


<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Prof. Dr. R. Hahn, Prof. Dr. W.Weber<br />

Lösen Sie bitte hier Aufgabe 5<br />

Use Case Name Prüfung der Frankierung eines Paketes<br />

Pr<strong>im</strong>ary Actor Paketsortierer<br />

Further Actors keine<br />

Stakeh & Inter Postunternehmen – hat Interesse an kostengünstiger Frankierungsprü-<br />

fung, ...<br />

Success Guar. Das Paket ist richtig frankiert oder mit einer Gebührennachberechnung<br />

Versehen.<br />

(und hat die Anlage verlassen)<br />

Min<strong>im</strong>al Guar. Alle Transaktionen wurden protokolliert<br />

Trigger Paket auf Förderband legen.<br />

Basic Course<br />

(Main Success Scenario)<br />

1. Paketsortierer legt ein Paket auf das Förderband.<br />

2. System misst Länge, Breite, Höhe und Gewicht.<br />

3. System liest die Frankierung.<br />

4. (System berechnet das Volumen.)<br />

5. System prüft, dass die Größe des Pakets und das Gewicht zur<br />

Frankierung passen.<br />

6. System schiebt Paket raus<br />

Alternative Courses 2a. Das Förderband ist nicht leer<br />

2a1. Das System stoppt die Anlage<br />

2a2. Das System lässt das Licht blinken<br />

2a3. Der Paketsortierer entfernt das Paket<br />

2a4. Das System lässt das Förderband wieder laufen<br />

2a5. Das System stoppt das Blinken des Lichts.<br />

2a6. abort<br />

5a. Wegen der Größe oder dem Gewicht ist zu wenig frankiert<br />

5a1. System schreibt eine Gebührennachberechnung<br />

5a2. System klebt Gebührennachberechnung automatisch auf das<br />

Paket<br />

5a3. Goto 6.<br />

10.07.<strong>2009</strong>, Seite 5/7


<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Prof. Dr. R. Hahn, Prof. Dr. W.Weber<br />

Aufgabe 5 (12 Punkte): Textuelle Beschreibung von Use Cases<br />

In einer Frankierprüfanlage soll geprüft werden, ob ein Paket entsprechend seiner Maße und<br />

seinem Gewicht frankiert ist. Diesen Use Case sollen Sie anhand des unten bereitgestellten<br />

Templates beschreiben.<br />

Technischer Ablauf:<br />

Die Frankierprüfanlage enthält ein Förderband, auf das ein Paket gelegt wird. Dieses Förderband<br />

transportiert das Paket an Sensoren vorbei, die Höhe, Breite, Länge und das Gewicht des<br />

Pakets feststellen. Außerdem wird über ein Lesegerät die Frankierung ausgelesen. Das System<br />

prüft an Hand der durch die Sensoren und Leser gewonnenen Angaben, ob richtig frankiert<br />

ist. Falls wegen zu großem Volumen oder zu hohem Gewicht zu wenig frankiert ist, wird<br />

eine Gebührennachberechnung geschrieben und automatisch auf das Paket geklebt. Nach der<br />

Prüfung verlassen die Pakete die Frankierprüfanlage.<br />

Aus technischen Gründen darf sich zum Zeitpunkt der Sensormessung nur ein einziges Paket<br />

in der Frankierprüfanlage befinden, d. h. der Bediener darf erst das nächste Paket auflegen,<br />

wenn das vorhergehende Paket vermessen wurde. Falls gegen diese Vorschrift verstoßen<br />

wird, bleibt das Förderband stehen und ein Blinklicht macht den Bediener darauf aufmerksam,<br />

dass das Paket wieder vom Förderband genommen werden muss. Erst wenn das neue<br />

Paket entfernt wurde, wird das Blinken beendet und das Förderband läuft weiter.<br />

10.07.<strong>2009</strong>, Seite 6/7


<strong>Klausur</strong> "OOAD" <strong>im</strong> <strong>SS</strong> <strong>2009</strong><br />

Prof. Dr. R. Hahn, Prof. Dr. W.Weber<br />

Aufgabe 6 (15 Punkte): Klassendiagramm<br />

Entwerfen Sie ein vollständiges Klassendiagramm.<br />

Allgemeine Infos zum Aufgabenumfeld:<br />

Sie entwickeln Software für ein Computer-Schachspiel. Ihre Aufgabe ist der Entwurf des<br />

Spielbretts mit den Figuren. Zeigen Sie bei Assoziationen die Richtung des Zugriffs durch<br />

Pfeile an<br />

Die folgenden Informationen sollen darstellt werden:<br />

Ein Schach-Spiel besteht aus einem Schachbrett und 2 Mannschaften. Das Schachbrett besteht<br />

aus 64 Feldern, die jeweils eine x- und eine y-Koordinate haben.<br />

Die Mannschaften unterscheiden sich durch die Farbe. Jede Mannschaft besteht aus insgesamt<br />

16 Figuren. Das sind 8 Bauern, 2 Türme, 2 Läufer, 2 Springer, 1 Dame und 1 König.<br />

Sorgen Sie dafür, dass die folgenden Informationen <strong>im</strong> Modell enthalten sind:<br />

− Jede Figur steht entweder auf einem Feld oder wurde bereits geschlagen<br />

− Jede Figur weiß, zu welcher Mannschaft sie gehört<br />

− Umgekehrt kennt auch jede Mannschaft ihre Figuren<br />

− Stellen Sie <strong>im</strong> Klassendiagramm dar, dass eine Figur nicht gleichzeitig z. B. Bauer und<br />

Läufer sein darf. Eine Figur ist entweder ein Bauer, eine Dame, ein Turm, oder...<br />

− Jedes Feld weiß, ob es durch eine Figur besetzt ist – und wenn ja mit welcher<br />

− Jede Figur soll eine Methode moveTo bieten, die es erlaubt die Figur auf ein anderes Zielfeld<br />

zu bewegen.<br />

Bemerkung zu Lösung: Statt<br />

müsste stehen.<br />

Bauer<br />

moveTo ()<br />

8<br />

Turm<br />

moveTo ()<br />

2<br />

Springer<br />

Schachbrett<br />

Name<br />

Feld<br />

int x<br />

int y<br />

moveTo ()<br />

2<br />

64<br />

Laeufer<br />

moveTo ()<br />

2<br />

10.07.<strong>2009</strong>, Seite 7/7<br />

Schachspiel<br />

0..1<br />

steht<br />

Dame<br />

0..1<br />

moveTo ()<br />

1<br />

Mannschaft<br />

Farbe<br />

2<br />

Figur {abstract}<br />

moveTo()<br />

1<br />

Koenig<br />

moveTo ()<br />

1

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!