Upload
fritzi-raichle
View
110
Download
1
Embed Size (px)
Citation preview
Hans-Jürgen Steffens Systemanalyse SS 04 1
6. Vorlesung: Statische Konzepte
Assoziationen Kardinalitäten Assoziative Klassen Aggregation Komposition Mehrwertige Assoziationen
Hans-Jürgen Steffens Systemanalyse SS 04 2
Assoziation
Assoziationen modellieren Verbindungen zwischen Objekten einer oder mehrerer Klassen
Im Objekt-Diagramm:
Name = Hans Meyer
: Kunde Kontonr = 2342Art = GeschäftEröffnung = 17.1.2000
: Konto
Kontonr = 234234Art = PrivatEröffnung = 5.10.1999
: Konto
Hans-Jürgen Steffens Systemanalyse SS 04 3
Assoziation
Wird im Klassendiagramm modelliert:
Ein Kunde kann mehrere Konten haben Ein Konto gehört zu genau einem Kunden In der Analyse sind Assoziationen immer bidirektional:
Ein Kunde kennt seine Konten, ein Konto kennt seinen Kunden
Name
Kunde KontonrArtEröffnung
Konto
1 *
besitzt
Name der Assoziation mit Leserichtung (optional)
Kardinalität
Hans-Jürgen Steffens Systemanalyse SS 04 4
Kardinalitäten (Multiplicities)
Beschreiben, mit wie vielen Partner-Objekten ein Objekt über eine bestimmte Assoziation in Verbindung stehen kann
Beispiele:
1 genau 1
0..1 0 oder 1
* beliebig viele (auch 0)
1..* 1 oder mehr
3..* 3 oder mehr
0..2 0 bis 2
2 genau 2
2, 4, 6 2, 4 oder 6
1..5, 8, 10..* nicht 0,6,7 oder 9
Hans-Jürgen Steffens Systemanalyse SS 04 5
Beispiele für Assoziationen
(auch frühere Ehen)
Mann Frau
0..1 0..1
ist verheiratet mit
Mann Frau
* *
Ehe
Erwachsener Kind
2 *
Elternschaft
Person
Eltern2
Kind
*
Elternschaft
Besser:
Hans-Jürgen Steffens Systemanalyse SS 04 6
Kann- und Muss-Assoziationen
Kunde kann ein Konto haben, Konto muss zu einem Kunden gehören:
Kunde muss mindestens ein Konto haben, Konto muss zu einem Kunden gehören:
• Wird das letzte Konto des Kunden gelöscht, muss auch der Kunde gelöscht werden
Muss-Assoziation: Untergrenze > 0 Kann-Assoziation: Untergrenze 0
Kunde Konto1 *
Kunde Konto1 1..*
Hans-Jürgen Steffens Systemanalyse SS 04 7
Reflexive Assoziationen
Assoziationen zwischen Objekten der selben Klasse
Angestellter
Mitarbeiter*
Chef
0..1
Rollen-Namen(bei reflexivenAssoziationenerforderlich)
Hans-Jürgen Steffens Systemanalyse SS 04 8
Reflexive Assoz. – Beispiel für Objektbeziehungen
Mayer : Angestellter
Müller : Angestellter Schulze : Angestellter
Schmidt : Angestellter Klein : Angestellter
Chef
Mitarbeiter
Chef
Mitarbeiter
ChefMitarbeiter
ChefMitarbeiter
Hans-Jürgen Steffens Systemanalyse SS 04 9
Notation für Assoziationen
Operation()
Attribut
Klasse 1
Operation()
Attribut
Klasse 2
Operation()
Attribut
Klasse
k1 k2
k1
k2
Rolle1
Rolle1
Rolle2
Rolle2
Name
Name
Hans-Jürgen Steffens Systemanalyse SS 04 10
Mehrere Assoziationen zwischen gleichen Klassen
Bestehen mehrere Assoziationen zwischen denselben Klassen, sind sie durch Klassennamen oder Rollenbezeichnungen voneinander zu unterscheiden
Name
Kunde KontonrArtEröffnung
Konto
Berechtigter
1 *Inhaber
* *
Hans-Jürgen Steffens Systemanalyse SS 04 11
Mehrere Assoziationen zwischen gleichen Klassen
Angestellter
*
DisziplinarischerVorgesetzter
0..1
*
FachlicherVorgesetzter
0..1
Hans-Jürgen Steffens Systemanalyse SS 04 12
Assoziative Klasse
Assoziation kann zusätzlich die Eigenschaften einer Klasse haben (Attribute, Operationen, Beziehungen zu anderen Klassen)
NameAdresse
Kunde
NummerDauer
Veranstaltung
anmelden()abmelden()
AnmeldedatumAbmeldedatumRechn.datum
Buchung
* *
Hans-Jürgen Steffens Systemanalyse SS 04 13
Assoziative Klasse - Beispiel
Mann Frau
DatumHochzeitDatumScheidung
Ehe
* *
Hans-Jürgen Steffens Systemanalyse SS 04 14
Auflösung von assoziativen Klassen
a) b)
Unterschied:
• Im Fall a) gibt es für jede Kombination von Objekten der Klassen A und B nur genau ein Objekt der Klasse C.
• Im Fall b) ist es möglich für eine bestimmte Kombination von A und B mehrere Objekte der Klasse C anzulegen.
A B
C
* * A B
C* *
1 1
Hans-Jürgen Steffens Systemanalyse SS 04 15
Qualifizierte Assoziation
Auftrag kann mehrere Positionen enthalten Im linken Beispiel könnte man mehrere Positionen für das gleiche
Produkt anlegen Rechts ist dargestellt, dass es nur eine Position pro Produktnr.
geben darf Höherer Informationsgehalt des Modells
Auftrag
Position
1
1..*
Auftrag
Position
10..1
Produktnr
Qualifizierendes Attribut
Produkt
*
1*1
ProduktnrName
ProduktProduktnrName
Niedrigere Kardinalität
Hans-Jürgen Steffens Systemanalyse SS 04 16
Professor
Student
Vorlesung1 *
*
*
Liest
hört
/ ist Hörer von
*
*
Abgeleitete Assoziationen
Abgeleitete Assoziationen lassen sich aus anderen Assoziationen berechnen (sind insofern redundant)
Werden mit Präfix / gekennzeichnet
Abgeleitete Assoziation
Hans-Jürgen Steffens Systemanalyse SS 04 17
Aggregation
Gerichtete Beziehung im Sinne von „ist Teil von“ Drückt eine Rangordnung aus
PKW
Motor Karosserie
0..1
*
0..1
*
Aggregat
Komponente
Hans-Jürgen Steffens Systemanalyse SS 04 18
Eigenschaften von Aggregationen
Es gelte: Daraus folgt Zyklen sind verboten: (Transitivität):
(Azyklischer Gerichteter Graph)
A
B
C
A
C
A
B
C
x
x
x
Hans-Jürgen Steffens Systemanalyse SS 04 19
Shared Aggregation (Weak Ownership)
Mehrfache Zuordnung ist bei Aggregations i.d.R. erlaubt Komponente kann auch ohne das Aggregat existieren
(keine Existenzabhängigkeit)
A
B
D
Hans-Jürgen Steffens Systemanalyse SS 04 20
Komposition
Starke Form der Aggregation Zusätzlich zur Aggregation:
• Strong Ownership: Jede Komponente darf zu einem Zeitpunkt nur zu einem Aggregat gehören
• Existenzabhängigkeit: Die Komponente kann nicht alleine existieren, wird das Aggregat gelöscht, muss auch die Komponente mit gelöscht werden
Auftrag
Auftragsposition*
Kardinalität braucht nicht angegeben werden, ist immer 1
Hans-Jürgen Steffens Systemanalyse SS 04 21
Aggregationen und Komposition
Dokument
Kapitel Bemerkung Abbildung
*
*
*
**
Hans-Jürgen Steffens Systemanalyse SS 04 22
Mehrwertige Assoziationen
Mehrwertige Assoziationen können keine Kompositionen oder Aggregationen bilden
Verein
Jahr
Fußball-Spieler* *
*
AnzahlTore
Ergebnis
Hans-Jürgen Steffens Systemanalyse SS 04 23
Zusammenfassung
Assoziationen repräsentieren Verbindungen zwischen Objekten einer oder mehrerer Klassen
Mit Hilfe von Kardinalitäten wird dargestellt, wie viele Objekte der beteiligten Klassen jeweils miteinander eine Beziehung eingehen können
Assoziationen können selbst Operations, Attribute und Beziehungen haben (Assoziative Klasse)
Aggregationen sind gerichtete Beziehungen im Sinne von „ist Teil von“
Kompositionen sind Aggregationen, wobei jede Komponente genau zu einem Aggregat gehört und existenzabhängig von diesem ist
Hans-Jürgen Steffens Systemanalyse SS 04 24
Übungsfragen
Wie werden Kardinalitäten angegeben und was bedeuten sie? Was ist eine reflexive Assoziation? Wie werden Restriktionen bzgl. Assoziationen angegeben? Wozu benötigt man Assoziationsklassen? Wie kann man diese auflösen? Erläutern Sie Aggregation und Komposition und grenzen Sie sie
voneinander ab! Was ist eine mehrwertige Assoziation?