Sie sind auf Seite 1von 5

VU Objektorientierte Modellierung

188.391, SS2013

Ubung 1: Klassendiagramm
Ubungsgruppen: 18.03.2013 - 22.03.2013

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 anderen 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 zwei verschiedene Comicguren: Superhelden und Schurken. Zwei Superheldenarten sind iegende Helden und unsichtbare Helden, es gibt aber auch noch andere Arten.
{abstract} Comicfigur

Schurke

Superheld

Pruefung

* Fliegende Helden Unsichtbare Helden Frage

oberfrage 0..1

teilfrage * Autor 1..* Artikel

Pruefung

Superman Helden
Superman

Fliegende

Unsichtbare Batman Helden

Batman
Frage

b) Ein Artikel kann einen oder mehrere Autoren haben. Man kann vom Autor aber keinen R uckschluss auf die geschriebenen Artikel ziehen.
teilfrage * Autor 1..* Artikel

Frage

Fr oberf

teilfrag Autor Autor Artikel Artikel

* *

c) Ein Mitarbeiter arbeitet an bis zu drei Projekten mit, ein Projekt wird von mehreren Mitarbeitern durchgef uhrt. Es werden die Stunden gespeichert, die Aufwand jeder Mitarbeiter jedem einzelnen Projekt zugeteilt ist.
stunden: int

Aufwand stunden: int


Mitarbeiter

Aufwand
Projekt 0..3

stunden: int
*

Mitarbeiter

Projekt *
0,1 *

Mitarbeiter
Leiterplatte

0..3

Projekt

SMD-Bauteil

0..3

serien#: String

d) An eine Leiterplatte sind mehrere SMD-Bauteile angel otet, sie k onnen von der Platte nicht mehr entfernt werden. Von jedem SMD-Bauteil wird die Seriennummer gespeichert.
Leiterplatte 0,1 * SMD-Bauteil serien#: String

Leiterplatte

0,1

SMD-Bauteil serien#: String

{abstract} Comicfigur

e) Eine Pr ufung beinhaltet mehrere Pr ufungsfragen, wobei sich eine Pr ufungsfrage aus mehreren Teilfragen zusammensetzen kann.
Schurke Superheld

Pruefung

* Fliegende Helden Unsichtbare Helden Frage oberfrage 0..1

teilfrage * Autor 1..* Artikel

Aufwand stunden: int

Mitarbeiter

Projekt

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

N G 1..* U O * 1 1 1 + # * 1 L {XOR} 1 M F {abstract} b: String c: int d: float 1 * * K e: int H 6 4 I 1 * + J x: int y: String

1 P

Welche Aussagen treen zu? Begr unden Sie Ihre Antwort! Ein Objekt von K kann niemals gleichzeitig mit Objekten von L und Objekten von M in Beziehung stehen. Es gibt genau 4 Objekte von I, die in Beziehung zu genau 6 Objekten von H stehen. Eine Instanz von F kann mit einem Objekt von K in Beziehung stehen. Ein Objekt von J kann in einem Objekt von I enthalten sein, muss aber nicht. Objekte von G und H k onnen direkt auf d zugreifen. F erbt alle Attribute von G. Ein Objekt von P muss mit genau einem Objekt von O in Beziehung stehen. Ein Objekt von K steht mit genau einer direkten Instanz von F in Beziehung. Objekte von O und H k onnen direkt auf b zugreifen. Ein Objekt von I steht mit 0..* Objekten von J in Beziehung. In einem Objekt von I kann ein Objekt von J enthalten sein. Ein Objekt von H steht in Beziehung zu 0 bis 4 Objekten von I. Ein Objekt von N steht in Beziehung zu 1..* Objekten von O und die Beziehung kann von N aus navigiert werden. Pro Objekt von H kann es nur ein zugeh origes Objekt von U geben. ja nein ja nein ja nein ja nein nein ja ja nein ja nein

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. Eine Werkstatt besitzt einen Namen und eine Adresse. Es gibt genau zwei verschiedene Arten von Werkst atten: Vertragswerkst atten und Fachwerkst atten, andere Arten sind nicht m oglich. Eine Vertragswerkstatt ist auf eine von drei m oglichen Automarken spezialisiert VW, Porsche oder Mercedes. Eine Fachwerkstatt kann Wochenenddienst anbieten, muss sie aber nicht. Eine Werkstatt repariert mehrere Autos, ein Auto kann in unterschiedlichen Werkst atten repariert werden. Das Datum und die Kosten, die bei der Reparatur von einem bestimmten Auto in einer bestimmten Werkstatt anfallen, sind bekannt. Jedes Auto besitzt eine Farbe und eine Typenscheinnummer (String). In einer Werkstatt arbeiten mehrere Mitarbeiter, ein Mitarbeiter ist immer nur in einer Werkstatt besch aftigt. Ein Mitarbeiter verf ugt u ber eine Sozialversicherungsnummer (String) und einen Namen. Jeder Mitarbeiter hat entweder genau eine Lehre absolviert oder er hat genau eine Fachausbildung abgeschlossen. Von einer Lehre kennt man den Ausbildungsort, von einer Fachausbildung kennt man den Lehrgangsnamen. Eine Lehre beziehungsweise eine Fachausbildung k onnen von mehreren Mitarbeitern in Anspruch genommen werden.

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. Eine Fitnesscenter-Kette besteht aus mehreren Fitnesscentern, ein Fitnesscenter geh ort zu genau einer Fitnesscenter-Kette. Jede Fitnesscenter-Kette hat einen Namen, jedes Fitnesscenter besitzt eine Bezeichnung sowie eine Adresse. Es gibt genau zwei verschiedene Arten von Fitnesscentern - Kraftkammern und Gymnastikcenter, andere Arten sind nicht m oglich. Eine Kraftkammer kann eine Sauna besitzen, muss sie aber nicht. In einer Kraftkammer stehen mehrere Ger ate zur Verf ugung, ein Ger at ist Teil einer einzigen Kraftkammer. Ein Ger at hat einen bestimmten Typ Kraft, Ausdauer oder Kombi, andere Werte sind nicht m oglich. Weiters kennt man von jedem Ger at das Kaufdatum. Ein Gymnastikcenter bietet verschiedene Gymnastikstunden an, die Namen der jeweiligen Stunden sind bekannt. Ein Gymnastikcenter wird entweder durch mehrere Fitnesstrainer betreut oder es stellt mehrere Trainingsvideos zur Verf ugung. Ein Fitnesstrainer kann in mehreren Gymnastikcentern t atig sein, ein Trainingsvideo kann von mehreren Gymnastikcentern verwendet werden. Jeder Fitnesstrainer besitzt einen Namen und man wei, ob der Fitnesstrainer Wochenenddienst macht oder nicht. Ein Trainingsvideo besitzt einen Titel und hat eine bestimmte Dauer. Ein Fitnesstrainer leitet mehrere Gymnastikstunden, eine Gymnastikstunde kann von mehreren Fitnesstrainern betreut werden. Die Notizen, die sich ein bestimmter Fitnesstrainer bei einer bestimmten Gymnastikstunde macht, werden gespeichert.

{abstract} Fitnesscenter bezeichnung: String adresse: String * 1

Fitnesscenter-Kette name: String

Fitnesstrainer name: String wochenenddienst: boolean * * {XOR} *

Kraftkammer sauna: boolean

Gymnastikcenter

1 * Gymnastikstunde

* Trainingsvideo titel: String dauer: int

* Gert typ: GTyp kaufdatum: Date

name: String beginnZeit: Time endeZeit: Time *

enumeration GTyp Notiz kraft ausdauer kombi text: String