• Keine Ergebnisse gefunden

UML Klassendiagramm

N/A
N/A
Protected

Academic year: 2022

Aktie "UML Klassendiagramm"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Modul 404

Kompetenz: Vorgabe interpretieren, objektbasiert mit einer Programmiersprache implementieren, dokumentieren und testen.

Objektbasiert programmieren nach Vorgabe

Ueli Hagger

Modul 404

Kompetenz: Vorgabe interpretieren, objektbasiert mit einer Programmiersprache implementieren, dokumentieren und testen.

Klassendiagramm 1

(2)

Übersicht Klassendiagramm

Beziehungen zwischen Klassen: Assoziationen

Haben alle Objekte einer Klasse eine bestimmte Beziehung zu einem oder mehreren Objekten einer anderen Klasse, so wird diese Beziehung Teil der Klassenbeschreibung.

Beispiel:

Beziehungen (Assoziationen) können für eine oder beide Richtungen der Beziehung einen Namen haben. Die Leserichtung wird durch einen Pfeil markiert.

4

Mitarbeiter arbeitet-für Unternehmen

beschäftigt

3

(3)

Beziehungen zwischen Klassen: Rollen

5

Die an einer Beziehung beteiligten Klassen nehmen darin eine bestimmte Rolle ein, die bei Bedarf angegeben werden kann.

Person arbeitet-für Unternehmen

beschäftigt

Mitarbeiter Arbeitgeber

Kunde Konto

Weiteres Beispiel:

ist-kontoinhaber

ist-kontoberechtigter

Multiplizitäten (Kardinalitäten) in Beziehungen

Auto Motor

0..1 1

Frage 2:

Ein Motor gehört zu wie vielen Autos?

Frage 1:

Ein Auto besitzt wie viele Motoren?

Multiplizität:

Liefert Antwort auf die Frage:

• Mit wie vielen Objekten der gegenüberliegenden Klasse kann ein Objekt der Klasse verbunden sein?

Vermerk der Anzahl in Leserichtung, also bei der gegenüberliegenden Klasse.

besitzt gehört zu

5

(4)

Multiplizitäten (Kardinalitäten) in Beziehungen

7

Frage 2:

Ein Unternehmen beschäftigt wie viele Personen?

Frage 1:

Eine Person arbeitet für wie viele

Unternehmen?

Person arbeitet-für Unternehmen

beschäftigt

Mitarbeiter Arbeitgeber

1..* 1

Notation von Multiplizitäten

8

Person

Person 1

nicht angeschrieben bedeutet 1!

genau 1 Person

0 .. 1

0 bis 1 Person

3 .. *

3 bis beliebige viele

Person beliebige viele (entspricht 0 .. *)

Person 0 .. 2

0 bis 2 Person

2 genau 2

Person 2, 4, 6

2, 4 oder 6 Person

1 .. 5, 8, 10 .. *

nicht 6, 7 oder 9

* 7

(5)

Spezielle Beziehungen: Aggregierung

Aggregierung ist eine Teil-Ganzes-Beziehung zwischen zwei Klassen.

Auf der Seite der Klasse, welche das Ganze darstellt, ist eine kleine Raute angebracht.

9

Auto Motor

Ganzes

1 1

Teil

Ein Teil kann zu mehreren Ganzen gehören:

Zimmer 1..* 1.. * Wand

Spezielle Beziehungen: Aggregierung

Teile können selber wieder Teile enthalten und eine Aggregation kann auch einen Namen haben:

Motor 1 4 .. 32 Ventil

Zylinder

Zylinderblock 2 .. 8

1 Auto

1 1

hat 9

(6)

Spezielle Aggregierung: Komposition

11

Komposition ist ein Spezialfall der Aggregation:

• Die Teile sind existenzabhängig vom Ganzen.

• Die Teile existieren folglich nur, wenn das Ganze existiert.

• Ein Teil kann somit nur zu einem Ganzen gehören.

Komposition ist durch eine gefüllte Raute auf der Seite des Ganzen angezeigt.

Rechnung 1 1..* Position

Buch 1 1..* Kapitel

Generalisierung

12

Girokonto sollzinsen : double dispo : double

Festgeldkonto mindBetrag : int laufzeit : int Sparkonto

Generalisierung ist eine Beziehung zwischen einer allgemeineren Klasse und einer Untermenge dieser Klasse.

Die Unterklasse enthält durch Vererbung alle Attribute der Oberklassen(n).

Die Unterklasse erweitert die Oberklassen durch weitere Attribute oder Beziehungen.

Generalisierung Spezialisierung

Konto kontostand : double inhaber : string habenzinsen : double 11

(7)

Operationen (Methoden)

13

Konto kontostand : double inhaber : string habenzinsen : double einzahlen()

zeigeKontostand() kuendigen()

Klassenname Attribute

Operationen

Mit Objekten kann man etwas tun, z.B. für ein Konto:

darauf einzahlen, den Kontostand anzeigen, das Konto kündigen, etc.

Jeder Klasse von Objekten kann man in UML deshalb Operationen (auch Methoden genannt) zuordnen:

Vererbung von Operationen

Über eine Spezialisierung werden neben Attributen auch Operationen

vererbt.

Girokonto sollzinsen : double dispo : double auszahlen()

Festgeldkonto mindBetrag : int laufzeit : int kuendigen() Sparkonto

auszahlen() Konto kontostand : double inhaber : string habenzinsen : double einzahlen()

zeigeKontostand() kuendigen() 13

(8)

Konventionen für die Namensgebung

15

Kunde adresse gibAdresse()

Konto kontoNr kontoStand auszahlen() 1

0..*

0..*

besitzt

kontoInhaber

Klassenname: Substantiv

Rollenname: Substantiv

Beziehungsname: Verb

Attribute: Substantiv

Operationen: Verb Namen sollte man so wählen, dass man Sätze formen kann.

Beispiel:

Beispiel

Quelle: http://www.srvtz.de/Wiki.jsp?page=JavaI.Alles&print=ja

15

(9)

Beispiel 1: CD-Datenmodell (1)

Problembeschreibung:

Es soll ein Klassenmodell für ein Informationssystem über CDs modelliert werden:

• Jede CD enthält einen oder mehrere Titel.

• Jede CD ist von einer Plattenfirma herausgebracht.

• Eine CD hat einen CD-Titel.

• Ein Titel kann auf mehreren CDs enthalten sein.

• Ein Titel hat einen Namen und eine Länge.

• Jeder Titel kann von mehreren Künstlern gespielt werden.

• Ein Künstler kann mehrere Titel spielen.

17

Möglichkeit zur Findung von Klassen

Beschreiben Sie in textueller Form das Problem. Beachten Sie das die Beschreibung in Aufsatzform abgefasst werden muss, d.h. keine Stichworte, Aufzählungen usw.

Markieren Sie alle Hauptwörter, z.B. mit einem roten Stift.

Markieren Sie alle Verben, z.B. mit einem grünen Stift.

Markieren Sie alle Multiplizitäten, z.B. mit einem blauen Stift.

Alle Hauptwörter sind nun Klassen, bzw. Attribute.

Alle Verben sind Methoden, welche die Attribute verändern, bzw. etwas ausführen oder Beziehungen

17

(10)

Beispiel 1: CD-Datenmodell (1)

Problembeschreibung:

Es soll ein Klassenmodell für ein Informationssystem über CDs modelliert werden:

• Jede CDenthälteinen oder mehrere Titel.

• Jede CDist von einer Plattenfirmaherausgebracht.

• Eine CDhateinen CD-Titel.

• Ein Titelkann auf mehreren CDs enthalten sein.

• Ein Titelhateinen Namenund eine Länge.

• Jeder Titelkann von mehreren Künstlerngespielt werden.

• Ein Künstlerkann mehrere Titelspielen.

Klassen oder Attribute

CD, Titel, Plattenfirma, CD-Titel, Titel, Namen, Länge, Künstler

Methoden, Beziehungen

enthält, enthalten sein, gespielt werden, spielt

20

19

(11)

Klassen oder Attribute

CD, Titel, Plattenfirma, CD-Titel, Namen, Länge, Künstler

Methoden, Beziehungen

enthält, enthalten sein, gespielt werden, spielt

21

Beispiel 1: CD-Datenmodell (1)

Problembeschreibung:

Es soll ein Klassenmodell für ein Informationssystem über CDs modelliert werden:

• Jede CDenthälteinen oder mehrere Titel.

• Jede CDist von einer Plattenfirmaherausgebracht.

• Eine CDhateinen CD-Titel.

• Ein Titelkann auf mehreren CDs enthalten sein.

• Ein Titelhateinen Namenund eine Länge.

• Jeder Titelkann von mehreren Künstlerngespielt werden.

• Ein Künstlerkann mehrere Titelspielen.

21

(12)

Beispiel 1: CD-Datenmodell (2)

23

CD cdTitel plattenfirma

Titel titelName titelLänge

Kuenstler name

1..* spielt

gespielt-von

1..* 1..* 1..*

Beispiel 1: CD-Datenmodell (3)

24

Erweiterung:

Über eine Plattenfirma sollen Aussagen gemacht werden können:

Plattenfirma name land

gibt-heraus herausgegeben-von

1 CD cdTitel

Titel titelName titelLänge

Kuenstler name spielt

gespielt-von

1..* 1..* 1..* 1..*

1..* CD cdTitel plattenfirma

Titel titelName titelLänge

Kuenstler name 1..*

spielt gespielt-von

1..* 1..* 1..*

23

Referenzen

ÄHNLICHE DOKUMENTE

Haben alle Objekte einer Klasse eine bestimmte Beziehung zu einem oder mehreren Objekten einer anderen Klasse, so wird diese Beziehung Teil der

Unsicher vermeidende Bindung Unsicher ambivalente Bindung Hochunsichere (desorganisierte) Bindung?. Bindung

Damit die finanziellen und rechtlichen Folgen beiden Ehegatten klar sind, lohnt es sich, das Thema Scheidung bereits bei der Eheschliessung anzusprechen.. E ntscheidet sich

[r]

Die Nutzung ist nur für den genannten Zweck gesta et, nicht jedoch für einen weiteren kommerziellen Gebrauch, für die Weiterleitung an Dri e oder für die Veröff entlichung im

Wer UniLuft schnuppern wollte, konnte sich abnormalen EinStellung nehmen und mich auch normal machen?» Ich erwartete, dass jetzt etwas Grossartiges geschehen würde, aber es

Das angesehene Stellenbüro Robert Half International berichtete, dass in einer Umfrage 56% der Männer erklärt hatten, sie würden auf bis zu ein Viertel des Gehalts verziehten, um

Es wird keine Haftung übernommen für Schäden durch die Verwendung von Informationen aus diesem Online-Angebot oder durch das Fehlen von Informationen.. Dies gilt auch für