Sie sind auf Seite 1von 5

VU Objektorientierte Modellierung

188.391, SS2014

Ubung 2: Klassendiagramm
Ubungsgruppen: 24.03.2014 - 28.03.2014

Aufgabe 1: Objektdiagramm Entwerfen Sie zwei Klassendiagramme, zu denen nachfolgende Objektdiagramme konform sind. W ahlen Sie die Kardinalit aten an den Assoziationsenden m oglichst genau. Sie k onnen davon ausgehen, dass diese Objektdiagramme die minimal und die maximal m ogliche Anzahl an Beziehungen mit Objekten einer anderen Klasse darstellen. Der Name jeder Beziehung ist im Klassendiagramm eindeutig (es sollen also keine Beziehungen denselben Namen haben). Weiters sollen m ogliche Generalisierungen bzw. XOR-Beziehungen erkannt werden. Objektdiagramm 1:
:C f :A x :C f :B

:C

:C

f :A x :B f

:C

:C f :A x :C f :B

f :C

Objektdiagramm 2:
p

:B :C z :A z :C +h +h x x :B :B +h x

:A

:A

:C

:D

:A

:C

:D

:D

:A :B +h :C z :A z :C +h x :B +h x :B x

Aufgabe 2: Vergleich von Klassendiagrammausschnitten Erkl aren Sie den Unterschied zwischen folgenden Klassendiagrammausschnitten: a)
A B A B

b)
A B A B

c)
Bibliothek * * Buch Bibliothek 1 * Buch

d)
A B A B

e)
A B A B

f)
A * B A 0..* B

g)
A A typ: Art

enumeration Art A1 A2 A3 A1 A2 A3

Aufgabe 3: Reverse Engineering Gegeben sei der unten angef uhrte Java ahnliche Code. F uhren Sie ein Reverse Engineering des Codes in ein UML Klassendiagramm durch. Das heit, Sie m ussen ein UML Klassendiagramm entwerfen, das semantisch dem Java Code entspricht. Bilden Sie Referenzen m oglichst durch Assoziationen ab.

abstract c l a s s V e r k e h r s m i t t e l { private S t r i n g b e z e i c h n u n g ; private int nummer ; public Fahrer t f ; private Fahrer [ ] f ; public S t a t i o n e n d s t ; public S t a t i o n a n f s t ; public int getNummer ( ) { return nummer ; } public void setNummer ( nummer ) { t h i s . nummer = nummer ; } } c l a s s Ubahn extends V e r k e h r s m i t t e l { private Form b a u a r t ; private int wagenzahl ; } c l a s s Bus extends V e r k e h r s m i t t e l { private boolean n i e d e r f l u r ; private boolean b a r r i e r e f r e i ; } class Station { public S t r i n g name ; public H a s h t a b l e f a h r p l a n ; // Key : V e r k e h r s m i t t e l // ( Typ : V e r k e h r s m i t t e l ) // Value : z e i t ( Typ : Time ) } c l a s s Fahrer { public S t r i n g name ; private Date f u e h r e r s c h e i n ; private boolean p r a g m a t i s i e r t ; private V e r k e h r s m i t t e l [ ] l e n k t ; } enum Form { breit , medium , schmal ; }

Aufgabe 4: Film Modellieren Sie folgenden Sachverhalt mittels UML Klassendiagramm gem a nachstehenden Informationen. Verwenden Sie bei Bedarf abstrakte Klassen, Enumerationen und Aggregationen. Datentypen m ussen Sie nicht darstellen, sofern diese nicht explizit im Text speziziert wurden. Von jeder Person wird der Name gespeichert. Schauspieler und Regisseure sind Personen. Von einem Regisseur wird das Datum gespeichert, an dem er in dem Beruf begonnen hat. Ein Regisseur f uhrt Regie bei mehreren Filmen, ein Film hat genau einen Regisseur. Von jedem Film werden Name, L ange und Genre gespeichert. Es gibt genau drei Arten von Genres: Drama, Kom odie und Romance. Von jedem Schauspieler wird gespeichert, ob dieser auch in Bollywood-Filmen mitspielt. Ein Schauspieler kann in einem Film mehrere Rollen spielen, eine Rolle wird in einem Film immer von genau einem Schauspieler verk orpert. Ein Schauspieler kann eine bestimmte Rolle in mehreren Filmen spielen. Von jeder Rolle wird die Bezeichnung gespeichert. Es wird die Gage gespeichert, die ein Schauspieler f ur einem Film (unabh angig von den einzelnen Rollen) erh alt. Aufgabe 5: Verein I Bilden Sie die folgenden Sachverhalte mit einem Klassendiagramm ab: Trainer und Spieler sind Vereinsmitglieder, es gibt aber auch noch andere Vereinsmitglieder. Von jedem Vereinsmitglied wird der Name gespeichert, von Trainern zus atzlich die Ausbildung und von Spielern die Position. Von einem Verein werden Name, Gr undungsdatum und Vereinsfarbe gespeichert. Es gibt die Vereinsfarben grau, blau, wei, gelb, schwarz und violett. Ein Verein hat mehrere Mitglieder, ein Vereinsmitglied ist Teil von genau einem Verein. In einer Liga spielen zehn Vereine, ein Verein spielt genau in einer Liga. Es gibt zwei verschiedene Ligen, die Bundesliega und die Zweite Liga. Aufgabe 6: Verein II Erweitern Sie das Klassendiagramm aus Aufgabe 5 wie folgt: Von einem Stadion wird der Name und die Adresse gespeichert. Ein Stadion geh ort einem Verein, ein Verein hat genau ein Heimstadion. Jeder Verein hat mehrere Sponsoren, ein Sponsor kann mehrere Vereine sponsern. Es wird der Name des Sponsors gespeichert, ob dieser ein privater Sponsor ist und wie hoch der jeweils gesponserte Betrag ist. Jeder Verein hat mehrere Fanclubs, ein Fanclub ist Teil von genau einem Verein. Es wird die H ohe des Mitgliedsbeitrags sowie der Name des Fanclubs gespeichert.