Sie sind auf Seite 1von 6

VU Objektorientierte Modellierung

SS 2014

Ubung 1 & 2: Klassendiagramm


Beispiele f ur die Beispielstunde am 10.03.2014

Aufgabe 1: 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) Jede Pr ufung verf ugt u ber ein Datum, eine Uhrzeit und einen Ort. Weiters unterscheidet man zwischen schriftlichen und m undlichen Pr ufungen, andere Pr ufungen gibt es nicht. Von einer m undliche Pr ufung kennt man den Pr ufer, von einer schriftlichen Pr ufung ist die Gruppe bekannt. Eine Pr ufung setzt sich aus mehreren Pr ufungsfragen zusammen, eine Pr ufungsfrage kommt nur in einer Pr ufung vor. Eine Pr ufungsfrage kann sich wiederum aus mehreren Subfragen zusammensetzen, eine Subfrage geh ort zu maximal einer Superfrage. b) In einem Restaurant arbeiten mehrere Mitarbeiter, ein Mitarbeiter kann nat urlich auch in mehreren Restaurants angestellt sein. Jeder Mitarbeiter verdient in unterschiedlichen Restaurants unterschiedlich viel. c) Ein Lauf kann Teil von einem Sportereignis sein, muss aber nicht. Ein Sportereignis setzt sich aus mehreren L aufen zusammen. d) Bei Apfeln, Bananen und Kiwis handelt es sich um Fr uchte, eine Frucht ist eine spezielle Art von Essen. Auch eine Sachertorte l asst sich als Essen kategorisieren. e) Rotweine und Weiweine sind spezielle Arten von Weinen. Ein Wein kann in mehreren Weinlieferungen enthalten sein, eine Weinlieferung umfasst einen bis mehrere Weine. f) Ein Flugzeug besitzt zumindest einen Antrieb. Man kann von einem Antrieb jedoch keinen R uckschluss auf das Flugzeug ziehen.

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

E * * *

0..*

2 A 1 5

{XOR}

<<abstract>> D B + # G C x: String y: boolean z: int

0..* F

0..*

Welche Aussagen treen zu? Begr unden Sie Ihre Antwort! Ein Objekt von E kann niemals gleichzeitig mit Objekten von F und Objekten von G in Beziehung stehen. Objekte von A und B k onnen direkt auf z zugreifen. In einem Objekt von J ist ein Objekt von H enthalten. Ein Objekt von H steht in Beziehung zu * Objekten von E und die Beziehung kann von H aus navigiert werden. Ein Objekt von B steht in Beziehung zu 0..* Objekten von E. C erbt alle Attribute von D. Eine direkte Instanz von D kann mit 0 Objekten von E in Beziehung stehen. Es gibt genau 2 Objekte von H, die in Beziehung zu genau 5 Objekten von D stehen. Ein Objekt von D kann mit einem Objekt von E in Beziehung stehen. Ein Objekt von A muss mit genau einem Objekt von D in Beziehung stehen. Objekte von B und E k onnen direkt auf z zugreifen. Ein Objekt von H steht mit 0..* Objekten von J in Beziehung. Ein Objekt von J kann in einem Objekt von H enthalten sein, muss aber nicht. Pro Objekt von H kann es nur ein zugeh origes Objekt von I geben. 2 richtig 2 richtig 2 richtig 2 richtig 2 richtig 2 2 2 2 2 2 2 2 2 richtig richtig richtig richtig richtig richtig richtig richtig richtig 2 falsch 2 falsch 2 falsch 2 falsch 2 falsch 2 2 2 2 2 2 2 2 2 falsch falsch falsch falsch falsch falsch falsch falsch falsch

Aufgabe 3: 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. Ein Projekt besitzt einen Namen, eine Projektart, ein Start- und ein Enddatum. Bei der Projektart unterscheidet man zwischen regional, national und international, andere Werte sind nicht m oglich. Ein Projekt wird f ur ein oder mehrere Unternehmen durchgef uhrt, jedes Unternehmen ist bei mehreren Projekten beteiligt. Ein Unternehmen hat einen Namen sowie eine Adresse. Ein Projekt wird in mehrere Phasen untergliedert, eine Phase wird genau einem Projekt zugeordnet. Von jeder Phase kennt man den Namen und das Datum des Meilensteins. W ahrend einer Phase werden mehrere Arbeitspakete abgearbeitet, ein Arbeitspaket geh ort immer zu genau einer Phase. Von einem Arbeitspaket sind ID, Bezeichnung, Inhalt und Dauer relevant. Weiters ist bekannt, welcher Projektmitarbeiter f ur welche Arbeitspakete verantwortlich ist. Bei Projektmitarbeitern und Stakeholdern handelt es sich um Projektbeteiligte. Jeder Projektbeteiligte hat einen Namen und eine Adresse. Von einem Projektmitarbeiter wei man auerdem, ob dieser Projekterfahrung hat oder nicht, von einem Stakeholder ist bekannt, ob dieser projektextern ist oder nicht. Ein Projektmitarbeiter ist an mehreren Projekten beteiligt, ein Projekt wird von mehreren Projektmitarbeitern durchgef uhrt. Ein Stakeholder ist an mehreren Projekten interessiert, ein Projekt ist f ur mehrere Stakeholder interessant.

{abstract} Projektbeteiligter name: String adresse: String

Stakeholder projektextern: boolean

* Projektmitarbeiter projekterfahrung: boolean * * Projekt name: String art: String start: Date ende: Date 1 * 1..* Unternehmen name: String adresse: String

* Arbeitspaket Phase id: int bezeichnung: String inhalt: String dauer: int 1 * name: String meilenstein: Date

Aufgabe 4: Fitnessclub Modellieren Sie folgenden Sachverhalt mittels UML Klassendiagramm gem a folgenden Informationen: Jeder Fitnessclub hat eine Bezeichnung. Ein Fitnessclub verf ugt u ort ber mehrere Standorte, ein Standort geh zu genau einem Fitnessclub. Jeder Standort hat eine Adresse. Ein Standort verf ugt u ate, ber mehrere Fitnessger jedes Fitnessger at geh ort einem Standort. Fitnessger ate haben eine Bezeichnung und einen Hersteller. Ein Fitnessger at kann im Laufe der Zeit von mehreren Wartungsrmen u uft werden, eine Wartunsrma ist berpr f ur die Uberpr ufung von mehreren Fitnessger aten zust andig. Das Datum und ein Vermerk zum durchgef uhrten Service wird f ur jedes bestimmte Fitnessger at das von einer bestimmten Wartungsrma u uft wurde, berpr gespeichert. Weiters kann ein Standort eines Fitnesscenters entweder u ber mehrere x eingebaute Saunen oder u ber mehrere x eingebaute Infrarotkabinen verf ugen. Von einer Sauna kennt man die Gr oe und die Temparatur, von einer Infrarotkabine sind die maximale Personenanzahl und die Temparatur bekannt. Ein Mitglied eines Fitnessclubs hat einen Namen und eine Clubnummer. Es gibt auch Premiummitglieder, die spezielle Leistungen in Anspruch nehmen k onnnen. Jedes Mitglied besitzt eine Karte. Da man bei mehreren Fitnessclubs Mitglied sein kann, kann man im Besitz von mehreren Karten sein. Eine Karte geh ort immer nur zu einem Mitglied und zu einem Fitnessclub. Ein Fitnessclub hat mehrere Mitglieder und ist daher im Besitz von mehreren Karten. Jede Karte hat eine eindeutige Kartennummer. Bei Karten unterscheidet man zwischen genau zwei Arten: Jahreskarten und Monatskarten. Auf einer Jahreskarte ist das Jahr vermerkt, in dem die Karte g ultig ist, bei einer Monatskarte sind Monat und Jahr vermerkt.

Aufgabe 5: 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 Person { private S t r i n g vorname ; private S t r i n g nachname ; public S t r i n g getVorname ( ) { return vorname ; } public void setVorname ( S t r i n g vorname ) { t h i s . vorname = vorname ; } public S t r i n g getNachname ( ) { return nachname ; } public void setNachname ( S t r i n g nachname ) { t h i s . nachname = nachname ; } } c l a s s V o r t r a g e n d e r extends Person { public Tagung tagung ; public H a s h t a b l e v e r w e n d e t e F o l i e n ; // Key : P r a e s e n t a t i o n ( Typ : P r a e s e n t a t i o n ) // Value : foliennummern ( Typ : i n t [ ] ) } class Praesentation { public PArt a r t ; public int g e t F o l i e n a n z a h l ( ) { . . . } } c l a s s Tagung { public S t r i n g b e z e i c h n u n g ; public V o r t r a g e n d e r moderator ; public V o r t r a g e n d e r [ ] v o r t r a g e n d e ; } Enumeration PArt { wissenschaft ; industrie ; }

Aufgabe 6: 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 h ochstzul assige 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:
:H :H

+r2 f

+r2 f f

+r2

+r2 f

:G

:G

:G

:G

:G

:G

:C

:C

:C

:D

:D

:D

:B

:B

:A

:E

:E

:E

b :F

b :F

Objektdiagramm 2:
:Z b c :U a :X b a :W c :Z c :Z

b :X a :U c :Z

b :U c :Z

a b :X a :W c :Z

a :X

b c :W

:Z

:Z