Sie sind auf Seite 1von 4

VU Objektorientierte Modellierung

188.391, SS2014

Ubung 1: Klassendiagramm
Ubungsgruppen: 17.03.2014 - 21.03.2014

Hinweis: Erl autern Sie die Theoriefragen s amtlicher Ubungen anhand eines selbst gew ahlten Beispiels. Dieses Beispiel sollte nicht aus der Vorlesung oder aus den L osungen anderer Ubungsaufgaben stammen. Des Weiteren sollte das Beispiel konkret (z.B. Klasse Person anstelle abstrakt Klasse A) modelliert werden. Aufgabe 1: Strukturmodellierung mittels Klassendiagramm - Theoriefragen 1 Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm besch aftigt. a) Erl autern Sie die Notation einer Klasse. Gehen Sie dabei auf alle Details ein. Zur Erl auterung dieser Details geben Sie ein Beispiel f ur eine konkrete Klasse an. (Es ist nicht das Ziel, m oglichst viele Attribute und Operationen anzugeben, sondern mit Hilfe weniger Attribute und Operationen s amtliche Notationsm oglichkeiten aufzuzeigen.) b) Erl autern Sie die Notation eines Objekts. (Sie sollten in der Lage sein, ein Beispiel-Objekt f ur die Klasse aus Aufgabe a) zu modellieren, auch wenn a) von jemand anderem gel ost wurde.) c) Erl autern Sie alle Notationsm oglichkeiten f ur eine Assoziation anhand eines konkreten Beispiels. d) Illustrieren Sie den Unterschied zwischen 1:1, 1:n und n:m Assoziationen anhand eines Objektdiagramms. Aufgabe 2: Strukturmodellierung mittels Klassendiagramm - Theoriefragen 2 Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm besch aftigt. a) Was ist eine Assoziationsklasse? Erkl aren Sie die Notation anhand eines konkreten Beispiels. Wann ist es sinnvoll, eine solche einzusetzen? b) Was ist eine n- are Assoziation? Erkl aren Sie die Notation anhand eines konkreten Beispiels. c) Beschreiben Sie den Unterschied zwischen starker und schwacher Aggregation. Erkl aren Sie die Notation jeweils anhand eines konkreten Beispiels. d) Was ist eine Generalisierung, was versteht man unter Mehrfachvererbung und was ist eine abstrakte Klasse? Erl autern Sie die Notation dieser Konzepte anhand eines oder mehrerer Beispiele. Aufgabe 3: Assoziation, Aggregation, Komposition und Generalisierung Erl autern Sie die Eigenschaften, die besonderen Varianten und Unterschiede von Assoziation, Aggregation, Komposition und Generalisierung anhand folgender Beispiele. W ahlen Sie f ur die einzelnen Teilaufgaben jeweils das aus Ihrer Sicht am besten geeignete Modellierungskonstrukt. a) Es gibt genau drei verschiedene Fahrzeuge: PKW, LKW und Motorrad. Von jedem Fahrzeug werden die gefahrenen Kilometer sowie das Datum der Erstzulassung gespeichert. Von einem PKW wird zus atzlich die Anzahl der T uren und von einem LKW die H ohe gespeichert. Bei einem Motorrad wird gespeichert, ob es sich um einen Zweisitzer handelt oder nicht. Ein spezieller PKW ist zum Beispiel das Mopedauto, von dem zus atzlich gespeichert wird, ob es einen Elektroantrieb besitzt. b) Ein Auto hat einen Verk aufer von dem der Name gespeichert wird. Man kann von dem Verk aufer aber keinen R uckschluss auf die verkauften Autos ziehen. c) Ein Arzt behandelt mehrere Patienten und ein Patient kann sich von mehreren Arzten behandeln lassen. Von jeder Behandlung die ein Patient bei einem Arzt erh alt, wird das Datum gespeichert. d) Ein Triebwerk ist in genau einem Linienugzeug x eingebaut und kann nicht mehr entfernt werden. Ein Linienugzeug hat zwei bis vier Triebwerke. e) Eine Firma besteht aus mehreren Abteilungen, eine Abteilung ist Teil von genau einer Firma. Eine Abteilung kann sich aus mehreren Abteilungen zusammensetzen.

Aufgabe 4: Wahr oder falsch? Es ist folgendes UML-Modell gegeben:

Y P 1..* * S N * * * 1 + # M {abstract} a: int b: String c: float 1 1 W O R 1 0..1 V T 1 0..* 1 * X 3 2 U 1 + d: String e: long 1..*

{XOR} 1

Welche Aussagen treen zu? Begr unden Sie Ihre Antwort! Die Raute bei V wird als starke Aggregation bezeichnet. Ein Objekt von S kann auf die Variable c zugreifen. Ein Objekt von S steht in Beziehung zu mindestens einem Objekt von N. Ein Objekt von U steht mit genau 3 Objekten von S in Beziehung, ein Objekt von S steht mit genau 2 Objekten von U in Beziehung. Wenn eine Instanz von Y gel oscht wird, werden alle enthaltenen Instanzen von U gel oscht. Jedes Objekt von N steht mit genau einer direkten Instanz von M in Beziehung. Ein Objekt von X steht in Beziehung zu * Objekten von T und die Beziehung kann von X aus navigiert werden. Objekte von N k onnen direkt auf a zugreifen. Ein Objekt von T kann in Beziehung zu einem anderen Objekt von T stehen. Ein Objekt von N steht in Beziehung zu genau einem Objekt von R und genau einem Objekt von O. Es gibt genau 3 Objekte von S, die in Beziehung zu genau 2 Objekten von U stehen. Eine Instanz von M kann mit einem Objekt von N in Beziehung stehen. Ein Objekt von V kann in einem Objekt von W enthalten sein, muss aber nicht. S erbt alle Attribute von M. 2 2 2 2 richtig richtig richtig richtig 2 2 2 2 falsch falsch falsch falsch

2 richtig 2 richtig 2 richtig 2 richtig 2 richtig 2 richtig

2 falsch 2 falsch 2 falsch 2 falsch 2 falsch 2 falsch

2 2 2 2

richtig richtig richtig richtig

2 2 2 2

falsch falsch falsch falsch

Aufgabe 5: Fehler nden Gegeben ist folgendes UML Klassendiagramm. Bei der Modellierung sind leider einige Fehler passiert. Finden Sie die Fehler und korrigieren Sie diese im Diagramm. Von jedem Luftfahrzeug wird seine Bezeichnung gespeichert. Es gibt unter anderem drei Arten von Luftfahrzeugen: Ballon, Flugzeug und Helikopter. Von einem Ballon wird sein Gewicht gespeichert, von einem Flugzeug die Seriennummer und der Typ - es gibt nur folgende drei Flugzeugtypen: Airbus, Boeing und MCD. Von jedem Helikopter wird die maximale Flugh ohe gespeichert. Ein Flugzeug iegt mehrere Fl uge. Von jedem Flug werden die Dauer sowie Start- und Zielughafen gespeichert. An einem Flug nehmen mehrere Passagiere teil, ein Passagier kann wiederum an mehreren Fl ugen teilnehmen. Von jedem Passagier werden der Name und das Geburtsdatum sowie der Sitzplatz bei einem Flug gespeichert. Jedes Flugzeug hat zwei bis vier x eingebaute Triebwerke, von denen jeweils die Bezeichnung gespeichert wird.

Luftfahrzeug bezeichnung :String

Ballon gewicht :double

Flugzeug serienNr :String Typ :String *

Helikopter maxHoehe :double

2..4 Triebwerk bezeichnung :String

* Flug dauer :double start :String ziel :String * Passagier gebDat :Date * name :String

Aufgabe 6: Klassendiagramm modellieren Modellieren Sie folgenden Sachverhalt als UML-Klassendiagramm. Geben Sie in Ihrem Diagramm die beschriebenen (abstrakten) Klassen und ihre Attribute (inklusive Typen), sowie die Assoziationen (inklusive Multiplizit aten, Aggregationen, etc.) an. Es gibt verschiedene Arten von Figuren, unter anderem Superhelden und Schurken. Von jeder Figur wird der K unstlername gespeichert. Von einem Superhelden wird zus atzlich der echte Name gespeichert, von einem Schurken wird gespeichert ob dieser bereits vorbestraft ist. Eine Superkraft ist Teil von mehreren Figuren, eine Figur hat mindestens eine Superkraft. Von jeder Superkraft wird der Name der F ahigkeit gespeichert und ob diese legal ist oder nicht. Eine Figur kann entweder in mehreren Mangas oder in mehreren Comics vorkommen. Von einem Manga werden Titel und Typ gespeichert - es gibt Karikatur-, Anime- und Comicstrip-Mangas. Von jedem Comic wird der Titel gespeichert und ob es bereits verlmt wurde.