3.1 Assoziationen

3.1.1 Definition

Im vorigen Kapitel wurden die Grundkonzepte Objekt und Objektklasse eingeführt. In diesem Abschnitt geht es nun um die Techniken, mit denen diese Objekte bzw. Objektklassen miteinander in Beziehung gesetzt werden können, denn natürlich stehen in objektorientierten Modellen die einzelnen Objektklassen nicht unverbunden nebeneinander.

Objekte in eine inhaltliche Beziehung setzen

Diese Beziehungen sind inhaltliche, sie kommen aus der Semantik des Anwendungsbereichs und werden ausgewählt nach den Anforderungen der Modellierung.

Nehmen wir als Beispiel wieder den Anwendungsbereich Hochschule mit den Klassen Dozenten, Vorlesungen, Studierende, Räume und Prüfungen. Die Anwendung soll den Lehrbetrieb erfassen. Dann wären dies Beziehungen wie:

  • Dozenten halten Vorlesungen
  • Studierende besuchen Vorlesungen
  • Vorlesungen finden in Räumen statt
  • Studierende besuchen Prüfungen

Es gibt natürlich mehr solche Beziehungen in einem Anwendungsbereich. Ausgewählt werden aber nur die, die für die Anwendung (z.B. bestimmte Geschäftsprozesse) von Bedeutung sind.

Assoziationen werden meist auf Klassenebene betrachtet, stellen aber ganz konkret Instanzen der beteiligten Klassen miteinander in Beziehung.

Instanzen

Grundsätzlich gibt es folgende Möglichkeiten der Bildung von Assoziationen:

Von Ein- bis Mehrstellig

  • Eine Assoziation einer Klasse mit sich selbst (einstellig)
  • Eine Assoziation zwischen zwei Klassen (zweistellig, binär)
  • Eine Assoziation zwischen mehr als zwei Klassen (mehrstellig, z.B. ternär)

Beispiele für einstellige Assoziationen sind Stücklisten („ist enthalten in“) oder ein Vorgesetztenverhältnis („ist vorgesetzt“).

Zweistellige Assoziationen sind sehr zahlreich. Im Anwendungsbereich Hochschule z.B. Prüfungsbesuch (beteiligte Klassen wären Studierende und Prüfungen) oder Vorlesungsbesuch (Studierende und Vorlesungen). Im Anwendungsbereich Angestellte z.B. Abteilungszugehörigkeit (beteiligte Klassen: Angestellte und Abteilungen).

Zweistellig

Mehrstellige Assoziationen kommen nicht sehr oft vor. Hier zwei Beispiele, die oben angeführte zweistellige Assoziationen inhaltlich ausbauen.

Mehr als zwei Klassen

Im Anwendungsbereich Hochschule ist eine dreistellige Assoziation denkbar, die den Besuch von Lehrveranstaltungen beschreibt. Sie verbindet die Klassen Studierende, Dozenten und Lehrveranstaltungen und kann so interpretiert werden: Ein Studierender besucht eine Vorlesung bei einem Dozenten. Vgl. das Hochschulbeispiel unten.

Eine weitere dreistellige Assoziation wird im Hochschulbeispiel unten betrachtet, die zwischen Studierende, Lehrveranstaltungen und Prüfungen. Sie kann so interpretiert werden: Ein Studierender besucht eine Prüfung, die sich auf eine Lehrveranstaltung bezieht.

Beide dreistelligen Assoziationen unterscheiden sich in ihrer Aussagekraft von den gleichnamigen zweistelligen. Dazu unten mehr.

3.1.2 Grafische Darstellung

Eine zweistellige Assoziation wird normalerweise einfach durch eine durchgezogene Linie dargestellt, die die beiden Klassen verbindet. An der Linie sind die Bezeichnungen der Assoziation angegeben. Es sind zwei, eine für jede Richtung.

Linie mit zwei Bezeichnungen ohne …


 

Abbildung 3.1-1:

Grafische Darstellung einer zweistelligen Assoziation - ohne Raute

Jede Assoziation kann auch mit einer Raute gezeichnet werden. Dann verbindet eine durchgezogene Linie jede beteiligte Klasse mit der Raute. Die nächste Abbildung zeigt ein Beispiel.

… oder mit Raute


 

Abbildung 3.1-2:

Grafische Darstellung einer zweistelligen Assoziation - mit Raute

Liegen mehr als zwei Klassen vor, ist die Assoziation also mehr als zweistellig, kann sie nur auf diese Weise gezeichnet werden.

Die gefüllten Dreiecke bei den Assoziationsbezeichnungen zeigen die Leserichtung (vgl. die Beispiele unten).

Eine einstellige Assoziation wird normalerweise einfach durch eine durchgezogene Linie dargestellt, die die Klasse mit sich selbst verbindet. Auch hier werden zwei Assoziationsbezeichnungen angefügt.

Einstellig


 

Abbildung 3.1-3:

Grafische Darstellung einer einstelligen Assoziation

Die Darstellung mit einer Raute ist ebenfalls möglich.

Mit Raute


 

Abbildung 3.1-4:

Grafische Darstellung einer einstelligen Assoziation mit Raute

Die folgende Abbildung zeigt die grafische Darstellung einer dreistelligen Assoziation. Hier wird die Bezeichnung der Assoziation an der Raute angesiedelt.

Dreistellig


 

Abbildung 3.1-5:

Grafische Darstellung einer dreistelligen Assoziation

Bei jeder Klasse sind im konkreten Fall noch Wertigkeiten anzufügen. Vgl. hierzu die Ausführungen unten.

Außerdem kann durch einen Schrägstrich vor der Assoziationsbezeichnung die Assoziation als „abgeleitet“ gekennzeichnet werden (vgl. unten). Wird keine Assoziationsbezeichnung angegeben, genügt in solch einem Fall der Schrägstrich alleine.

Abgeleitet

Generalisierungen (vgl. unten) zwischen Assoziationen können durch einen Generalisierungspfeil, der zwischen den betreffenden Assoziationssymbolen eingefügt wird, ausgedrückt werden.

Generalisierungen
zwischen
Assoziationen

Das Assoziationsende kann beschriftet werden. Dann wird die Bezeichnung des Assoziationsendes in der Nähe des Linienendes platziert. Als Assoziationsende bezeichnen die UML-Autoren die Verbindung zwischen der Linie, die die Assoziation darstellt und dem grafischen Element für die Klasse.

Assoziationsende

Grundsätzlich sind, so die UML-Autoren, Assoziationen nicht nur zwischen Klassen, sondern zwischen Classifiern aller Art möglich.

Nicht nur Klassen

3.1.3 Hintergrund

Das Konzept der Assoziation, wie es in der objektorientierten Theorie ausformuliert wird, entspricht dem „in Beziehung setzen“ von Modelleinheiten (Relationen, Entitätstypen) in der klassischen Datenbanktheorie. Werden dort, z.B. in der ER-Modellierung, die Entitätstypen Dozenten und Vorlesung in die Beziehung „Dozent hält Vorlesung“ gesetzt (durch einen Beziehungstyp), entspricht dies einer Assoziation. In relationalen Datenmodellen wird eine solche Beziehung sogar gleich datentechnisch durch Schlüssel / Fremdschlüssel-Beziehungen „physisch“ umgesetzt.

Vorgänger
Datenbanktheorie

In der objektorientierten Systemanalyse ist allerdings die Sichtweise meist eine andere. Hier wird oft betont, dass die Assoziationen notwendig sind, damit Objekte miteinander kommunizieren können (vgl. beispielhaft [Oestereich 1998, S. 268]). Damit wird die Tatsache angesprochen, dass in einem objektorientierten System die einzelnen Klassen und ihre Objekte bei der Erledigung der Aufgaben zusammenwirken (vgl. Kapitel 7). Dies geschieht aber entlang der oben eingeführten semantisch wichtigen Beziehungen zwischen den Klassen. Insofern ergibt sich kein Widerspruch.

Assoziationen als
Kommunikations-
pfade

Insbesondere in Abgrenzung zum relationalen Modell muss hier noch darauf hingewiesen werden, dass die konkrete Realisierung dieser Beziehungen zwischen Objekten modelliert wird, indem die entsprechenden Objekte mithilfe ihrer Objektidentifizierer verknüpft werden und nicht mithilfe attributbasierter Schlüssel.

Verknüpfung durch Objektidentifizierer

3.1.4 Wertigkeiten

Oben wurden schon mehrfach Wertigkeiten von Assoziationen angegeben. Hier nun die Präzisierung.

Die Wertigkeiten [Anmerkung] von Assoziationen geben an, wieviele Objekte jeder beteiligten Klasse an der Assoziation teil haben. Es gibt also für jede an der Assoziation beteiligten Klasse eine solche Wertigkeit.

Wertigkeiten (Multiplizitäten, Kardinalitäten)

Folgende Darstellung haben die UML-Autoren festgelegt:

  • 1 (einfach). Genau ein Objekt der jeweiligen Klasse geht in die Beziehung ein)
  • 0..1 (konditionell einfach). Kein oder ein Objekt der jeweiligen Klasse geht in die Beziehung ein).
  • * (konditionell mehrfach). Null, eines oder viele Objekte der jeweiligen Klasse geht in die Beziehung ein).

Weitere Konkretisierungen bezüglich der maximalen und minimalen Anzahl von Objekten können erfolgen, so dass z.B. folgende Angaben möglich sind:

  • fünf oder mehr: 5..*
  • null bis drei: 0..3
  • genau fünf: 5
  • drei, vier oder acht: 3, 4, 8
  • alle natürlichen Zahlen außer elf: 1..10, 12..*

Balzert führt zusätzlich die Begriffe Kann- und Muss-Assoziationen ein. Kann-Assoziationen haben als Untergrenze die Kardinalität 0, Muss-Assoziationen die Kardinalität 1 oder größer [Balzert 1999a, S. 41f].

Kann- und
Muss-Assoziationen

In den Abbildungen werden die Wertigkeiten an den Assoziationsenden vermerkt. Vgl. die Beispiele unten und die Hinweise zur Anordnung der Wertigkeiten in den Abbildungen.

3.1.5 Beispiele

Hier nun Beispiele von Assoziationen mit unterschiedlichen Wertigkeiten.

Zweistellige Assoziationen

Die folgende Abbildung erfasst eine mögliche Variante des Verhältnisses von Angestellten und PC. Hier gilt:

Angestellte – PC

  • Ein Angestellter benutzt genau einen PC.
  • Ein PC ist mindestens einem Angestellten zugeordnet.

Die kursiv gesetzten Texte in der Abbildung machen die Positionierung der Wertigkeiten deutlich: Wieviele Objekte einer Klasse an der Assoziation teilhaben wird jeweils am entgegengesetzten Ende der Assoziation vermerkt.


 

Abbildung 3.1-6:

Zweistellige Assoziation mit Wertigkeiten und benannten Beziehungen

Die Beziehungen können so wie in der Abbildung angegeben gelesen werden.

Das zweite Beispiel zeigt eine Assoziation zwischen Angestellte und Abteilungen. Es gelten folgende Wertigkeiten:

Angestellte – Abteilungen

  • Ein Angestellter ist genau einer Abteilung zugeordnet.
  • Eine Abteilung hat üblicherweise mehrere zugehörige Angestellte (genauer: keinen, einen oder mehrere).


 

Abbildung 3.1-7:

Zweistellige Assoziation mit Wertigkeiten und benannten Beziehungen

Von zwei- zu dreistelligen Assoziationen

Mit den dreistelligen Assoziationen soll an den Beispielen Prüfungsbesuch und Vorlesungsbesuch auch der Unterschied zwischen einer zweistelligen und dreistelligen Assoziation erläutert werden.

Prüfungsbesuch zweistellig

Eine zweistellige Assoziation Prüfungsbesuch muss als Grundlage folgende Klassen haben:

  • Klasse Studierende
  • Klasse Prüfungen. In dieser Klasse muss als Attribut festgehalten sein, welche Lehrveranstaltung durch jede Prüfung geprüft wird.

In der folgenden Abbildung ist deshalb in Prüfungen das Attribut BezugLV eingefügt, das angibt, auf welche Lehrveranstaltung sich die Prüfung bezieht. Die Wertigkeiten bedeuten hier, dass ein Studierender keine, eine oder mehrere Prüfungen besucht und dass eine Prüfung von keinem, einem oder mehreren Studierenden aufgesucht werden kann.


 

Abbildung 3.1-8:

Zweistellige Assoziation - Beispiel Prüfungsbesuch zweistellig

Sind dagegen die konkreten Lehrveranstaltungen oder die Prüfungen zu einer eigenständigen Existenz gekommen, ergibt sich eine andere Situation. Dies soll hier der Fall sein, weil die Prüfungen “an sich” erfasst werden, ohne Bezug zu einer konkreten Lehrveranstaltung. Damit sind in Prüfungstyp nur Einträge wie in der folgenden Tabelle möglich.

Prüfungsbesuch dreistellig

Prüfungstypen

pruefNr

bezPruef

laenge

1

Klausur

60

2

Klausur

90

3

Mündliche Prüfung

30 Minuten

4

Laborarbeit

1 Semester

5

Praktische Arbeit

1 Semester

5

Diplomarbeit

4 Monate

6

Bachelorarbeit

3 Monate

Mögliche Prüfungstypen im Anwendungsbereich Hochschule


Würde man die Prüfungstypen direkt bei den Lehrveranstaltungen mit verwalten, ergäbe sich eine große Redundanz, da die Daten der Prüfung dann bei jeder einschlägigen Lehrveranstaltung erfasst werden müssten.

Redundanz?

Die Wertigkeiten bei den einzelnen Klassen beziehen sich hier im dreistelligen Fall nicht auf „gegenüberliegende“ Klassen wie bei den zweistelligen Assoziationen (geht ja nicht), sondern auf die Assoziation als solche. Hier also:

  • In einem Prüfungsgeschehen nimmt mindestens ein Studierender teil.
  • In einem Prüfungsgeschehen liegt ein bestimmter Prüfungstyp vor.
  • In einem Prüfungsgeschehen geht es um genau eine Lehrveranstaltung.


Abbildung 3.1-9:

Dreistellige Assoziation - Beispiel Prüfungsbesuch

Nun das Beispiel zum Vorlesungsbesuch, zuerst zweistellig. Die Wertigkeit für Studierende bedeutet: Ein Studierender kann keine oder beliebig viele Lehrveranstaltungen besuchen. Die für Lehrveranstaltungen: Eine Lehrveranstaltung hat mindestens 5 Studierende, die sie besuchen, sonst findet sie nicht statt.

Vorlesungsbesuch zweistellig


 

Abbildung 3.1-10:

Zweistellige Assoziation - Beispiel Lehrveranstaltungsbesuch

Obige Lösung geht davon aus, dass jede Lehrveranstaltung einmalig ist, dass dieselbe Lehrveranstaltung (zum Beispiel BWL 1) wirklich nur einmal und nur von einem Dozenten angeboten wird. Wird Sie, z.B. wegen hoher Studierendenzahlen, mehrfach angeboten (von einem Dozenten oder von mehreren), ist diese Tatsache nicht im Modell ausdrückbar.

Bei einer dreistelligen Assoziation dagegen wäre dies kein Problem mehr. Der Veranstaltungsbesuch wird dann durch die kombinierte Information aus Studierenden / Lehrveranstaltung / Dozenten erfasst. Damit wäre es möglich, dass die drei Dozenten Maier, Müller und Bauch alle je eine Lehrveranstaltung BWL 1 geben. Ein Studierender besucht dann eine Lehrveranstaltung bei einem Dozenten. Vgl. dazu auch das Hochschulbeispiel unten.

Vorlesungsbesuch dreistellig.

Die Wertigkeiten bedeuten:

  • Bei Studierende: Mindestens 5 Studierende nehmen teil.
  • Bei Lehrveranstaltungen: Es geht jeweils um genau eine Lehrveranstaltung.
  • Bei Dozenten: Jeweils ein Dozent hält die Lehrveranstaltung.

Würde man auch die Variante berücksichtigen wollen, dass u.U. mehrere Dozenten gemeinsam eine bestimmte LV durchführen, dann müsste die Wertigkeit bei Dozenten verändert werden.


 

Abbildung 3.1-11:

Dreistellige Assoziation - Beispiel Veranstaltungsbesuch

Einstellige (rekursive) Assoziationen

Bei den einstelligen (rekursiven) Assoziationen geht es um Beziehungen innerhalb einer einzigen Klasse.

Einstellige Assoziationen

Betrachten wir als Beispiel eine Objektklasse Angestellte mit den üblichen Hierarchiestufen (z.B. Sachbearbeiter, Abteilungsleiter, Hauptabteilungsleiter, usw.). Hier stehen tatsächlich die Angestellten untereinander in einer Beziehung. Z.B. alle Sachbearbeiter einer Abteilung mit dem Abteilungsleiter und umgekehrt. Die Wertigkeiten und Rollenangaben in der folgenden Abbildung bedeuten:

Beispiel Angestellte

  • Jeder Sachbearbeiter hat genau einen Vorgesetzten, den Abteilungsleiter
  • Jeder Abteilungsleiter hat mindestens einen Untergebenen.


 

Abbildung 3.1-12:

Einstellige (Rekursive) Assoziation zu Angestellten

Das bekannte Beispiel einer Stückliste kann auch hier zur weiteren Veranschaulichung einer rekursiven Definition einer Objektklasse benutzt werden. Geht es um die zwei Beziehungen „Teil von“ und „Obermenge von“, kann eine Stückliste so wie in der nächsten Abbildung grafisch dargestellt und entsprechend modelliert werden.

Beispiel Stückliste

Bis auf ein Teil (das „oberste“) ist jedes „Teil von“ genau einem anderen, woraus sich die Wertigkeit „0..1“ (konditionell einfach) für diese Richtung ergibt. Sollte es Teile geben, die in mehreren enthalten sind, müsste die Wertigkeit verändert werden.

Umgekehrt kann jedes Teil „Obermenge von“ vielen anderen Teilen sein, muss aber nicht (die „untersten“), woraus sich die konditionell mehrfache Assoziation in diese Richtung ergibt (vgl. auch [Meier und Wüst 1997, S. 25f]).


 

Abbildung 3.1-13:

Stückliste als einstellige (reflexive) Assoziation

Der Sachverhalt Stückliste kann – mit mehr Aussagekraft – auch als Aggregation modelliert werden. Vgl. Kapitel 5, insbesondere Abbildung 5.2-2.

3.1.6 Rollen

Die Objekte einer Klasse können an mehreren Assoziationen teilhaben. So könnten z.B. die Angestellten zum einen als PC-Nutzer fungieren (wie im obigen Beispiel), zum anderen aber auch als Projektmitarbeiter. Diese unterschiedlichen Funktionen werden hier als Rollen bezeichnet, als Rollen der Objekte in der jeweiligen Assoziation.

Nicht nur eine
Assoziation

Diese können in der grafischen Darstellung angegeben werden. Sie werden an die Assoziationslinie auf der Seite hinzugefügt, auf der sich die Objektklasse befindet, deren Rolle in der jeweiligen Beziehung geklärt werden soll. Die folgenden Abbildungen zeigen zwei Beispiele.

Beispiel Angestellte

In der ersten Abbildung wurde ein Beispiel von oben wieder aufgenommen, jetzt aber mit einer zusätzlichen Klasse Projekte und einer umfangreicheren Klassendarstellung.

Angestellte mit Projekte

Das Beispiel enthält zwei Assoziationen. Die zwischen Angestellte und PC betrifft die PC-Nutzung. Die Angestellten des Unternehmens sind in Bezug auf diese Assoziation PC-Nutzer, die PCs haben hier die Rolle einer DV-Ausstattung.

Assoziationen
PC-Nutzung und
DV-Ausstattung

Die zweite Assoziation verknüpft Angestellte und Projekte. Hier haben die Angestellten die Rolle Projektmitarbeiter. Die Wertigkeiten bei der neuen Assoziation bedeuten:

  • Ein Angestellter arbeitet in keinem, einem oder mehreren Projekten mit.
  • Ein Projekt hat mindestens einen Angestellten als Projektmitarbeiter.


 

Abbildung 3.1-14:

Assoziationen mit Rollen im Anwendungsbereich Angestellte

Beispiel Hochschule

Die nächste Abbildung stellt die Dozenten einer Hochschule und die Lehrveranstaltungen (Vorlesungen, Übungen, Praktika) in Beziehung. Die Dozenten haben hier die Rolle als Lehrende, die Lehrveranstaltungen als Studienbetrieb. Die Wertigkeiten bedeuten:

Dozenten und
ihre Lehre

  • Ein Dozent hält keine, eine oder mehrere Lehrveranstaltungen.
  • Eine Lehrveranstaltung wird entweder von einem oder von zwei Dozenten gehalten.


Abbildung 3.1-15:

Rollen in Assoziationen

3.1.7 N-stellige Assoziationen vertieft

Oben wurde die Grundform einer dreistelligen Beziehung schon vorgestellt. Allgemein spricht man bei Assoziationen mit mehr als zwei beteiligten Klassen von n-stelligen Assoziationen. Die Wertigkeit von n-stelligen Assoziationen mit n größer als 2 ist wie folgt definiert:

Mehr als zwei!

Die Wertigkeit an einem Assoziationsende stellt die potentielle Anzahl von Werten dar, wenn die Werte an den n-1 anderen Enden auf bestimmte Werte fixiert sind.

Damit ist folgendes gemeint: Liegen insgesamt n Enden vor, wird eine beliebige Auswahl von n-1 Enden genommen, denen ja jeweils Instanzen zugeordnet sind. Dann wird die Menge der Verknüpfungen dieser n-1 Assoziationen eine ganz bestimmte Menge von Instanzen am anderen Ende identifizieren (vgl. die Beispiele unten). Spielt man alle Wertigkeiten der n-1 Klassen durch, erhält man den Rahmen für die Wertigkeit der n-ten Klasse.

Beispiel Hochschule

Das erste Beispiel beschreibt wiederum den Lehrbetrieb an Hochschulen, jetzt am Beispiel einer vierstelligen Assoziation: Dozenten halten Lehrveranstaltungen für Studiengänge in bestimmten Räumen. Grundlage dieses Beispiels ist, dass alle vier Klassen existieren, dass also alle vier Realweltphänomene als Klassen modelliert wurden.

Lehrbetrieb durch vierstellige Assoziation

Zu beachten ist, dass es nicht um Lehrveranstaltungstermine geht, sondern um die Lehrveranstaltung als solche, bzw. als Gegenstand der Studienordnung.

Die Wertigkeiten
bei den Klassen bedeuten:

  • Ein Dozent oder maximal zwei führen die Lehrveranstaltung durch.
  • Es geht jeweils um eine Lehrveranstaltung.
  • Üblicherweise findet eine Lehrveranstaltung in einem einzelnen Studiengang statt. Es können aber auch zwei sein, wenn z.B. AI (Angewandte Informatik) und WI (Wirtschaftsinformatik) gemeinsam Mathematik 1 hören, usw.
  • Eine konkrete Lehrveranstaltung findet in genau einem Raum statt.

Nehmen wir obigen Gedankengang – Fixierung von n-1 Enden, Betrachtung des n-ten Assoziationsendes – auf, ergibt sich folgendes:

Fixieren und betrachten

  • Fixieren wir Dozenten, Räume und Studiengänge auf den jeweils untersten Wert. Dann gibt es für einen Dozenten, einen Raum und einen Studiengang genau eine Vorlesung. Entsprechendes gilt auch für die jeweils obersten Werte. In diesem Fall gestalten zwei Dozenten in einem Raum für zwei Studiengänge eine Vorlesung.
  • Fixieren wir nun Dozenten, Lehrveranstaltungen und Studiengänge mit den minimalen Werten. Dann gestaltet ein Dozent eine Lehrveranstaltung für einen Studiengang in genau einem Raum.
  • Zuletzt noch eine Fixierung von Lehrveranstaltungen (auf 1), Studiengänge (auf 2) und Räume (auf 1). In diesem Fall wird eine Vorlesung in einem Raum für 2 Studiengänge von einem oder auch mehreren Dozenten getätigt.


 

Abbildung 3.1-16:

N-stellige (vierstellige) Assoziation und ihre Wertigkeiten

Das zweite Beispiel spiegelt Trainingsdurchführung wider. Es wird angenommen, dass Trainer, Trainingsorte und Mannschaften eigenständige Klassen darstellen. Sie haben also eigene Attribute und Methoden. Die ternäre Assoziation beschreibt die Trainingsdurchführung. Die Wertigkeiten ergeben sich dann wie folgt: Eine Trainingsdurchführung (zu einem Zeitpunkt, zur „Zeitproblematik“ vgl. unten) findet statt …

Beispiel Trainings-
geschehen

  • … mit einem Trainer oder mit zweien
  • … an einem Trainingsort
  • … mit einer Mannschaft oder mit zweien


 

Abbildung 3.1-17:

Dreistellige Assoziation Trainingsdurchführung

3.1.8 Klassendiagramme

Stellt man für ein objektorientiertes Modell die Klassen und ihre Assoziationen zusammen, entsteht ein Klassendiagramm. Das ist dann aber nur die Grundversion, die durch viele weitere Theorieelemente ausgebaut werden kann. Z.B. durch grafische Elemente für die in den nächsten Kapiteln einzuführende Aggregation und Komposition (Kapitel 5) sowie Generalisierung / Spezialisierung (Kapitel 6). Insbesondere aber auch durch die Verhaltensaspekte, die durch Methodenaufrufe modelliert werden können (vgl. ab Kapitel 8).

Klassen + Assoziationen

Die Klassendiagramme sind im Rahmen der objektorientierten Modellierung die wichtigsten Diagramme (So auch [Rumbaugh, Jacobson und Booch 2005, S. 217]).

Die folgenden zwei Beispiele zu den Anwendungsbereichen Hochschule und Angestellte geben einen Eindruck von der Grundversion. Die Beispiele werden in den nächsten Kapiteln ausgebaut.

Ziel der Anwendung beim Hochschulbeispiel ist die Verwaltung des Vorlesungsbetriebs und der Studierendenakten (bzgl. Vorlesungs- und Prüfungsbesuch) sowie des Betreuungsverhältnisses zwischen Dozenten und Studierenden (bzgl. Diplomarbeiten, Bachelerarbeiten, Projektarbeiten, usw.).

Beispiel Hochschule

Folgende Klassen wurden gefunden:

  • Dozenten
  • Studierende
  • Lehrveranstaltungen
  • Prüfungen

Die ersten drei dürften unstrittig sein. Was die Prüfungen angeht, wurde hier die oben eingeführte Lösung gewählt: Die Prüfungen werden „an sich“ festgehalten, d.h. ohne Bezug zu konkreten Lehrveranstaltungen.

Von den Assoziationen ist wohl nur das Prüfungsgeschehen erklärungsbedürftig. Diese dreistellige Assoziation erfasst den Besuch von Prüfungen, die sich ja immer auf bestimmte Lehrveranstaltungen beziehen, durch Studierende. Die Wertigkeiten bedeuten:

Die Assoziationen

  • 1..* bei Studierende (Rolle Prüfungsteilnehmer): An einem Prüfungsgeschehen nimmt mindestens ein Studierender teil.
  • 1 bei Lehrveranstaltungen (Rolle Prüfungsgegenstand): Ein Prüfungsgeschehen bezieht sich auf eine Lehrveranstaltung.
  • 1 bei Prüfungen (Rolle Prüfung): Ein Prüfungsgeschehen erfolgt auf eine bestimmte Prüfungsart (Klausur, mündliche Prüfung, usw.).

Dass dieselbe Lehrveranstaltung u.U. am Ende eines jeden Semesters geprüft wird und damit entlang der Zeitachse mehrfach vorkommt, ist hier noch nicht berücksichtigt, kommt unten aber dazu.

Wer bei diesem Klassendiagramm „Unbehagen“ verspürt und sich z.B. fragt, wo denn die Prüfungsergebnisse abgelegt werden, spürt richtig. Vgl. hierzu das nächste Kapitel.

Unbehagen?


 

Abbildung 3.1-18:

Klassendiagramm zum Anwendungsbereich Hochschule - Prüfungsgeschehen dreistellig

Das obige Klassendiagramm enthält u.a. folgende Komponenten:

  • Eine dreistellige Assoziation
  • Mehrere zweistellige Assoziationen
  • Objekte mit verschiedenen Rollen

Außerdem zahlreiche beschriftete Assoziationen.

Dass je nach Festlegung der Semantik unterschiedliche objektorientierte Modelle entstehen, zeigt die folgende Variante des obigen Modells. Für dieses wurde angenommen, dass der Lehrveranstaltungsbesuch durch eine dreistellige Assoziation erfasst wird. Der Unterschied zu oben besteht darin, dass jetzt bei jedem Lehrveranstaltungsbesuch das Tripel Dozent / Studierende(r) / Lehrveranstaltung erfasst wird, während oben zwei zweistellige Assoziationen diesen Sachverhalt abdeckten (Studierende / Lehrveranstaltung bzw. Dozenten / Lehrveranstaltung).

Semantikvarianten

Grundsätzlich gilt, dass eine solche dreistellige Assoziation bzgl. dreier Klassen A, B und C mehr von der Semantik der Beziehung erfasst als die zweistelligen Assoziationen AB, AC und BC.

Mehr Semantik


 

Abbildung 3.1-19:

Klassendiagramm zum Anwendungsbereich Hochschule - Prüfungsgeschehen und Lehrveranstaltungsbesuch dreistellig

Das obige Klassendiagramm enthält u.a. folgende Komponenten:

  • Zwei dreistellige Assoziationen
  • Eine zweistellige Assoziation
  • Objekte mit verschiedenen Rollen

Außerdem zahlreiche beschriftete Assoziationen.

Im Beispiel zum Anwendungsbereich Angestellte (wie er hier kurz genannt wird) werden die hierzu oben eingeführten Modellfragmente zusammengeführt. Im Mittelpunkt steht die Klasse Angestellte. Ihre Objekte sind gleichzeitig Projektmitarbeiter, Mitarbeiter in Abteilungen, PC-Nutzer, sowie Abteilungsleiter bzw. Sachbearbeiter.

Anwendungs-
bereich „Angestellte eines Unternehmens“

Entsprechend ergeben sich die Assoziationen. Die Assoziation zwischen den Klassen Projekte und Angestellte hält fest, welche Angestellten in welchen Projekten tätig sind. Die unteren Werte sind Null, weil wir hier auch Projekte anlegen wollen, die noch keine zugewiesenen Angestellten haben und weil es auf der anderen Seite (natürlich) Angestellte gibt, die in keinem Projekt sind.

Amgestellte mit vielen Rollen

Die Assoziation zwischen den Klassen Angestellte und Abeilungen hält die Abteilungszugehörigkeit fest. Hier wird angenommen (bzw. wurde festgelegt), dass jeder Angestellte in genau einer Abteilung ist und dass eine Abteilung mindestens einen Angestellten hat.

Die Assoziation zur PC-Nutzung hält fest, dass ein PC keinem, einem oder vielen Angestellten zugeordnet sein kann. Der Hintergrund könnte sein, dass in der Anwendung und in der zugrundeliegenden Datenbank neu angeschaffte PC und PC in Reparatur keine Zuordnung zu Angestellten haben. Einem Angestellten ist kein PC oder maximal einer zugeordnet.

Bleibt noch die rekursive Assoziation, die das Vorgesetztenverhältnis erfasst.


 

Abbildung 3.1-20:

Klassendiagramm zum Anwendungsbereich Angestellte

Das obige Klassendiagramm enthält u.a. folgende Komponenten:

  • Eine einstellige Assoziation
  • Mehrere zweistellige Assoziationen
  • Objekte mit verschiedenen Rollen

Außerdem zahlreiche beschriftete Assoziationen.

3.1.9 Navigierbarkeit

Die Entscheidung, ob ein Assoziationsende navigierbar ist oder nicht, hängt davon ab, ob eine Assoziation eine Eigenschaft hat. Wenn eine Eigenschaft am Ende einer Assoziation zu einem der assoziierten Classifier gehört, stellt sie ein navigierbares Ende der Assoziation dar. In diesem Fall ist die Eigenschaft auch ein Attribut des assoziierten Classifiers. Nur binäre Assoziationen haben navigierbare Enden.

Navigierbare Enden für binäre Assoziationen

Die Navigierbarkeit kann in den Grafiken angezeigt werden oder nicht. Sie kann in beide Richtungen existieren oder auch nur in eine. In den Grafiken wird sie durch Pfeile und Kreuze angezeigt.

  • Eine nicht gefüllte Pfeilspitze am Ende einer Assoziation bedeutet, dass das Ende navigierbar ist.
  • Ein kleines x am Ende der Assoziation bedeutet, dass das Ende nicht navigierbar ist.

Die folgende Abbildung zeigt einige Beispiele.

Assoziationen und Navigierbarkeit

  • Oberstes Paar AB: Binäre Assoziation mit zwei navigierbaren Enden.
  • CD: Binäre Assoziation mit zwei nicht-navigierbaren Enden.
  • EF: Binäre Assoziation mit nicht festgelegter Navigierbarkeit
  • GH: Binäre Assoziation, bei der ein Ende navigierbar ist und das andere nicht.
  • IJ: Binäre Assoziation, bei der ein Ende navigierbar ist und bei dem dies für das andere Ende nicht festgelegt ist.


 

Abbildung 3.1-21:

Assoziationen - Navigierbarkeit von Enden
Quelle: [OMG 2003a, S. 85, Figure 33]

Die folgende Abbildung zeigt ein navigierbares Ende mit der Attribut-notation. Diese Darstellung ist möglich, weil ein navigierbares Ende ein Attribut ist.

Navigierbares Ende als Attribut


 

Abbildung 3.1-22:

Navigierbares Ende einer Assoziation in Attribut-Notation
Quelle: [OMG 2003a, S. 86, Figure 34]

3.1.10 Vertiefungen

Oben wurde der Begriff schon eingeführt: Assoziationsende für die Enden einer Assoziation, von denen jede Assoziation mindestens zwei hat. Diese Assoziationsenden können Eigenschaften haben, die in den Grafiken angegeben werden können.

Enden einer
Assoziation

Diese „Präzisierungen“ werden am Linienende in geschweiften Klammern angegeben. Folgendes ist möglich:

  • Das Ende ist eine Teilmenge einer Eigenschaft. Dies wird durch {subsets <property-name>} angegeben. <property-name> ist die Eigenschaft.
  • Das andere Ende <end-name> wird durch das betreffende Ende neu definiert. Dies wird durch {redefined <end-name>} angegeben.
  • Das Ende ist die Vereinigung seiner Teilmengen. Dies wird durch {union} angegeben.
  • Das Ende stellt eine geordnete Menge dar. Dies wird durch {ordered} angegeben.
  • Das Ende ist eine Sammlung, in der ein Element mehrfach vorkommen kann. Dies wird durch {bag} angegeben.
  • Das Ende ist eine Sequenz (eine geordnete Sammlung). Dies wird durch {sequence} or {seq} angegeben.
  • Falls das Ende navigierbar ist, kann jede Eigenschaft, die zu einem der Attribute gehört, angegeben werden.

Falls das Assoziationsende abgeleitet ist, kann dies durch einen Schrägstrich vor der Bezeichnung gezeigt werden. Falls keine Bezeichnung vorliegt, kann der Schrägstrich auch alleine eingefügt werden.

Subset / Teilmengen

Das Ende einer Assoziation kann unter folgenden Umständen als eine Teilmenge des Endes einer anderen gekennzeichnet werden:

Enden und Teilmengen

  • Beide haben dieselbe Anzahl von Enden.
  • Jede der Type-Mengen, die durch die teilmengenbildende Assoziation verbunden werden, entspricht einem entsprechenden Type, der durch die aufgeteilte Assoziation verknüpft ist.

In diesem Fall ist die Sammlung des teilmengenbildenden Endes vollkommen enthalten in der Sammlung, die durch das aufgeteilte Ende bezeichnet ist.

Neudefinition (redefining)

Ein Assoziationsende kann als neudefinierend für ein anderes bezeichnet werden, falls gilt:

  • Beide haben dieselbe Anzahl von Enden
  • Jede der Type-Mengen, die durch die neudefinierende Assoziation verknüpft sind, entspricht einem entsprechenden Type, der durch die neudefinierte Assoziation verknüpft ist.

Ist also eine Menge von spezifischen Instanzen für die anderen Enden beider Assoziationen gegeben, gilt: Die Sammlungen der neudefinierenden und der neudefinierten Enden sind dieselben.

Spezialisierung von Assoziationen.

Assoziationen können auch spezialisiert werden. Das Bestehen einer Verknüpfung einer spezialisierenden Assoziation bedeutet die Existenz einer Verknüpfung, die dieselbe Menge von Instanzen in einer spezialisierten Assoziation in Beziehung setzt.

Spezialisiert und spezialisierend

Die folgende Abbildung zeigt Assoziationen, die zahlreiche der hier oben und in den oberen Abschnitten angeführten Beschreibungsmerkmale aufweisen:

Beispiele

  • Drei der vier Enden haben Bezeichnungen: a, b und d.
  • Alle Enden haben Beziehungswertigkeiten von 0..1 bei a, * bei b, 1 bei dem nicht benannten Ende und 0..1 bei d.
  • Festlegung, dass am Assoziationsende b eine Reihenfolge vorliegt.
  • Teilmengenbildung bei d. Für eine Instanz der Klasse C ist die Sammlung d eine Teilmenge der Sammlung b.

 

 

Abbildung 3.1-23:

Assoziationsenden mit verschiedenen Ergänzungen
Quelle: [OMG 2003a, S. 84, Figure 32].

3.1.11 Objektdiagramme

In einem Klassendiagramm sind die Klassen des Anwendungsbereichs zusammengestellt. In manchen Situationen ist es aber auch gewünscht, einzelne Objekte und ihren jeweiligen Zustand (die aktuellen Daten) zu betrachten.

Von den Klassen zu Objekten

Dies ist möglich, weil ein objektorientiertes Modell wie oben gesehen Daten widerspiegelt, die als Attribute bzw. deren Ausprägungen angelegt sind. Betrachtet man deshalb ein objektorientiertes Modell zu einem bestimmten Zeitpunkt, kann man den Zustand der Daten zu diesem Zeitpunkt feststellen. Dazu ist es aber notwendig, nicht die Klassen, sondern einzelne Objekte (Instanzen) mit ihren Beziehungen untereinander zu betrachten. Diese Beziehungen sind hier erst mal nur die Assoziationen, später kommen Generalisierung / Spezialisierung (vgl. Kapitel 6) sowie Aggregation und Komposition (vgl. Kapitel 5) hinzu.

Zustand der Daten zu einem bestimmten Zeitpunkt

Eine solche Abbildung, die dann als Knoten nur einzelne Objekte (Instanzen) enthält, wird Objektdiagramm oder Objektmodell genannt. Es enthält die ausgewählten Objekte mit Assoziationen und die interessierende Datenlage.

Abbildung mit Objekten

Die folgende Abbildung zeigt ein Beispiel in Anlehnung an das objektorientierte Modell Angestellte. Vgl. Abschnitt 2.4.2 für die grafische Darstellung von Objekten. Es ist tatsächlich ein „Schnappschuss“, z.B. in einer Anwendung, die Projektmitarbeit abfragt.

Ausgedrückt ist, dass der Angestellte Paul Maier im Projekt bpr (Business Process Reengineering) mitwirkt und dass er den PC A1723 nutzt.


 

Abbildung 3.1-24:

Objektdiagramm zum Klassendiagramm Angestellte.

3.1.12 Verwendete Fachbegrifffe

Assoziationen ergänzen das in Kapitel 2 vorgestellte Grundinstrumentarium (vgl. die Zusammenfassung in Abschnitt 2,9). Erst durch die damit mögliche semantische Verknüpfung, bzw. durch die damit ermöglichte Ergänzung von Semantik gewinnen objektorientierte Modelle die Fähigkeit, Informationsstrukturen angemessen zu erfassen.

Wegen diesem ergänzenden Charakter lohnt sich eine weitergehende Betrachtung der Tauglichkeit für die Unternehmensmodellierung hier nicht. Vgl. dazu die Diskussion zum gesamten „Strukturteil“ in Abschnitt 7.8.

Verwendete Fachbegriffe zu Assoziationen

Assoziation, einstellige

unary association

Assoziation, mehrstellig

n-ary association

Assoziation, rekursive

recursive association

Assoziation, zweistellig / binär

binary association

Assoziationsende

association end

Assoziationsende, abgeleitetes

derived association

Assoziationsklasse

association class

Kann-Assoziationen

 

Klassendiagramm

class diagram

Muss-Assoziationen

 

Navigierbarkeit

navigability

Objektdiagramm

object diagram

Rolle

role

Links der in diesem Text verwendete Begriff. Rechts der in der objektorientierten Theorie bzw. in der UML verwendete Begriff.

3.2 Assoziationsklassen


Am Ende des Kapitels ist eine Liste der verwendeten Fachbegriffe in Deutsch und Englisch angegeben.

3.2.1 Einführung

Attribute und Metehoden auf Beziehungen

Beziehungen zwischen Objekten bzw. Objektklassen hatten in der bisherigen Darstellung keine eigenen Attribute und Methoden, sie stellten einfach eine auf semantischen Gegebenheiten beruhende Verknüpfung von Objekten dar. Dies ist auch oft der Fall, allerdings bei weitem nicht immer, wie ja auch die älteren Datenmodellierungsansätze zeigen, wo Beziehungen sehr oft durch Attribute beschrieben werden.

Auch das obige etwas ausführlichere Beispiel zum Anwendungsbereich Hochschule musste dem aufmerksamen Leser einige Fragen stellen:

Attribute auf Assoziationen

  • Wo werden die Daten, die aus der dreistelligen Assoziation Prüfungsgeschehen herrühren, gespeichert und damit verfügbar gemacht (z.B. für den Ausdruck von Notenlisten)?
  • Wo wird erfasst, wann ein Lehrveranstaltungsbesuch tatsächlich stattfand, unabhängig davon ob er in einer zwei- oder dreistelligen Assoziation modelliert wurde?
  • Wie erfolgt die Erfassung der Zeitaspekte, hier in den Beispielen (wesentliches Merkmal einer Prüfung ist der Zeitpunkt, an dem sie stattfindet) und grundsätzlich?

Offensichtlich gibt es also Attribute und auch Methoden, die der Assoziation zugeordnet werden müssen und die im Modell zu erfassen sind.

Grundsätzlich wäre auch denkbar, dass die objektorientierte Modellierung Attribute und Methoden von Beziehungen auf andere Weise modelliert, nicht durch die Präzisierung der Modellierung von Beziehungen. Dies scheinen auch viele Autoren in diesem Bereich zu denken, die auf die Betrachtung dieses Sachverhalts verzichten, wodurch er – da er ja nicht verschwindet – direkt in die zu programmierenden Anwendungen verlagert wird und das heißt, in das Software Engineering und die Systemanalyse.

Entweder im
objektorientierten Modell oder direkt im Anwendungs-
programm

Es geht also darum, Attribute und Methoden, die zur Assoziation gehören, zu erfassen. Das Werkzeug hierfür sind die sog. Assoziationsklassen. Sie sind sozusagen gleichzeitig Klasse und Assoziation, was auch die Definition der UML-Autoren ausdrückt:

Auch Beziehungen haben Attribute und Methoden

„A model element that has both association and class pro­perties. An association class can be seen as an association that also has class properties, or as a class that also has association properties.“ [OMG 2003a, S. 5]

Vgl. auch die Ausführungen in [Balzert 1999a, S. 45], [Oestereich 1998, S. 272ff] und [Meier und Wüst 1997]). Andere Bezeichnungen sind Assoziative Klassen (Balzert), Beziehungsklassen (Meier und Wüst) oder auch Attributierte Assoziationen (Oestereich).

Assoziative Klassen
Beziehungsklassen
Attributierte Assoziationen

Wie Meier und Wüst diese sehen, machen die folgenden Zitate deutlich.

„Verfügen Beziehungen zwischen Klassen selbst über beschreibende Attribute oder Methoden, so muss zu diesem Zweck eine explizite Beziehungsklasse definiert werden. Eine Beziehungsklasse (association class) ist eine Klasse, die von mehr als einer Klasse abhängig ist.“ [Meier und Wüst 1997, S. 22]

Sie präzisieren und begründen dann wie folgt:

"Typisch bei jeder Beziehungsklasse ist, dass die Beziehungsattribute weder der einen noch der anderen Klasse zugeordnet werden können, da solche Merkmale ein Verhältnis zwischen mindestens zwei Klassen ausdrücken." [Meier und Wüst 1997, S. 22]

Die richtige Zuordnung der Attribute ist hier von großer Bedeutung. Nur genau die Attribute, die für die Beziehung gültig sind, gehören in die Assoziationsklasse. Hierzu einige Beispiele:

Kritische Situation

  • Nehmen wir an, dass es in einem objektorientierten Modell die Klassen Männer und Frauen sowie die Assoziationsklasse Ehe gibt. Dann gehören in die Klasse Ehe eben nur Attribute wie Beginn, zahlKinder, usw.
  • Angenommen, in einem objektorientierten Modell gibt es die Klassen Kraftfahrzeuge und (Kraftfahrzeuge verkaufende) Händler und eine Assoziation zwischen diesen („wer verkauft welche Kraftfahrzeuge“). Dann gehört ein Attribut listenpreis in die Klasse Kraftfahrzeuge, während ein Attribut marktpreis für den jeweils niedrigsten Preis der Assoziation zuzuordnen ist.

Die Thematik ist im Übrigen eine alte, die in der klassischen Datenmodellierung auch gelöst werden musste. Z.B. in der Relationalen Datenmodellierung bei der Erfassung von n:m-Beziehungen und der Zuordnung von Attributen zur Verbindungsrelation (vgl. [Staud 2005, Kapitel 3]).

Schlüssel

Sobald einem Realweltphänomen Attribute zugeordnet werden, muss es auch eine identifizierende Information erhalten. In der relationalen Datenbanktheorie wird dies – wenn es um die Verknüpfung zweier Relationen geht – in der Regel durch zwei Attribute gelöst, die Schlüssel der beteiligten Relationen. Grundsätzlich ist auch die Vergabe eines Schlüssel für die Beziehung möglich, so dass z.B. jeder Prüfungsbesuch (wenn es um Studierende und Prüfungs geht, eine eigene Nummer erhält.

Beziehungen identifizieren

In den Texten zur objektorientierten Theorie wird dieses Problem oft ignoriert oder es wird in der Assoziationsklasse eine „Id“ vergeben, die strukturell der oben angeführten zweiten Möglichkeit entspricht. Oftmals werden dann aber doch die „Ids“ der beteiligten Klassen zusätzlich mitangegeben.

„Id’s“

Um alle Möglichkeiten offen zu halten, wird in den Beispielen hier ähnlich verfahren: Zu Beginn der Attributliste werden neben einer identifizierenden Information die identifizierenden Informationen der beteiligten Klassen angegeben.

3.2.2 Grafische Darstellung

Die Assoziationsklasse wird als Klasse angelegt und mittels einer gestrichelten Linie mit der Assoziationslinie verbunden. Bei einer zweistelligen Assoziation einfach mit der Linie, so wie es die folgende Abbildung zeigt.


Abbildung 3.2-1:

Grafische Darstellung einer Assoziationsklasse an einer zweistelligen Assoziation

Bei einer n-stelligen Assoziation wird die gestrichelte Linie mit der dann ja notwendigen Raute verbunden. Die folgende Abbildung zeigt eine Assoziationsklasse an einer dreistelligen Assoziation.


Abbildung 3.2-2:

Grafische Darstellung einer Assoziationsklasse an einer dreistelligen Assoziation

3.2.3 Beispiele

Das obige Beispiel zu Angestellten und ihren PCs wurde hier um eine Assoziationsklasse mit Attributen zu folgenden Sachverhalten ergänzt:

  • Art des "Besitzverhältnisses": als Administrator, als Nutzer, als Gast (mit jeweils spezifischen Rechten)
  • Beginn und Ende der Nutzung

Die Wertigkeiten seien jetzt so, dass einem Angestellten mindestens ein PC zugeordnet ist und einem PC kein oder maximal ein Angestellter.

Methoden in der Assoziationsklasse könnten die notwendigen Einträge in die Datenbank sein, sowie das Erstellen einer Mitteilung bezüglich Eintragung, Austragung oder Änderung an eine zentrale Nutzerverwaltung sein.

Beispiel Angestellte, PC


 

Abbildung 3.2-3:

Assoziationsklasse PC-Nutzung auf zweistelliger Assoziation

Die folgende Abbildung zeigt eine Assoziationsklasse für eine dreistellige Assoziation zwischen PC, Angestellten und Abteilungen. Grundlage dieser Art der Modellierung ist, dass die Klasse Abteilungen eingeführt wurde, weil Abteilungen im Modell zu einer eigenständigen Existenz fanden.

Beispiel
Angestellte – PC – Abteilung

Die Wertigkeiten bedeuten hier bezüglich einer PC-Nutzung:

  • Die Nutzung erfolgt in einer Abteilung
  • Es geht jeweils um einen PC
  • Die Nutzung betrifft einen oder zwei Angestellte

In der Spezifizierung der Assoziation wird zusätzlich zum Eintragen, Austragen und Ändern noch eine Methode eingebaut, die festzuhalten erlaubt, auf welche Kombination von Abteilung und PC sich die konkrete Nutzung bezieht.


Abbildung 3.2-4:

Assoziationsklasse auf dreistelliger Assoziation

Aufgelöste Assoziationsklasse

In der Literatur zur UML fehlt nicht der Hinweis, dass eine solche Beziehungsklasse im Feindesign der Systemanalyse zu einer „richtigen“ Klasse wird, wobei dann natürlich die Wertigkeiten der Beziehung entsprechend übernommen werden müssen (vgl. auch [Oestereich 1998, S. 274]).

Aufgelöste Assoziationsklasse durch
Feindesign

Die folgende Abbildung zeigt das obige Beispiel einer zweistelligen Assoziation zu Angestellten und PC mit der Assoziationsklasse PC-Nutzung entsprechend aufgelöst. Die aufgelöste Assoziationsklasse erhält die Bezeichnung Besitzverhältnis. Die Wertigkeiten bestehen jetzt jeweils in Bezug auf das Besitzverhältnis:

Beispiel Angestellte, PC

Aus Ein Angestellter nutzt mindestens einen PC wird

  • Ein Angestellter hat mindestens ein Besitzverhältnis und
  • Ein Besitzverhältnis bezieht sich auf einen Angestellten

Aus Ein PC ist keinem oder maximal einem Angestellten zugeordnet wird

  • Ein PC hat kein oder maximal ein Besitzverhältniss und
  • Ein Besitzverhältnis bezieht sich auf genau einen PC.

Von einer Instanz der Assoziationsklasse aus ist die Wertigkeit der Assoziationsenden immer 1 (vgl. auch [OMG 2003a, S. 119]).


 

Abbildung 3.2-5:

Aufgelöste Assoziationsklasse

Beispiel Hochschule

Hier nun das im letzten Kapitel vorgestellte Klassendiagramm Hochschule zum gleichnamigen Anwendungsbereich, jetzt aber mit einer Assoziationsklasse.

Die Assoziationsklasse hat die Bezeichnung StudAkten (Studierendenakten). Sie ist notwendig, weil beim Prüfungsbesuch Daten anfallen, die direkt zur Assoziation gehören und nicht bei den beteiligten Klassen untergebracht werden können[3]. Dies sind hier die Prüfungsergebnisse mit den angegebenen Attributen:

Assoziationsklasse StudAkten

  • Die Prüfungsnummer (pruefNr) nummeriert einfach alle Prüfungen durch.
  • Die Matrikelnummer (matrikelNr) hält den Studierenden fest, der die Prüfung besucht.
  • Die Prüfungstypnummer (prTypNr) hält fest, um welchen Prüfungstyp (Klausur, usw.) es sich handelt.
  • In bezLV ist festgehalten, auf welche Lehrveranstaltung sich die Prüfung bezieht.
  • datum hält fest, wann die Prüfung stattfand.
  • note hält fest, welche Note erzielt wurde.
  • gewichtung hält fest, welche Gewichtung die Note im gesamten Notenspektrum hat.

Mögliche Einträge wären (nach der obigen Attributreihenfolge und mit den Ausprägungen bei pruefNr: 1 = Klausur, 2 = Laborarbeit):

  • 007 / 1 / DBS / 15.2.09
  • 007 / 2 / DBS / 31.12.08 (Abgabetermin)
  • 008 / 1 / DBS / 15.2.07

Mit der Methode eintragen() werden die Noten jeweils in die Datenbank eingetragen.

Noten eintragen


 

Abbildung 3.2-6:

Klassendiagramm Hochschule mit Assoziationsklasse StudAkten

Das obige Klassendiagramm enthält u.a. folgende Komponenten:

  • Eine Assoziationsklasse an einer dreistelligen Assoziation
  • Eine dreistellige Assoziation
  • Mehrere zweistellige Assoziationen
  • Objekte mit verschiedenen Rollen

Außerdem zahlreiche beidseitig beschriftete Assoziationen.

Beispiel Angestellte

Auch das Klassendiagramm Angestellte wurde um eine (naheliegende) Assoziationsklasse ergänzt, die oben schon eingeführte mit der Bezeichnung PC-Nutzung. Sie beschreibt mit Art der Nutzung (Administrator, normaler Nutzer, „Superuser“, Gast, …), Beginn der Nutzung und Ende der Nutzung einige zentrale Fakten rund um die PC-Nutzung.

Assoziationsklasse PC-Nutzung


 

Abbildung 3.2-7:

Klassendiagramm Angestellte mit Assoziationsklasse

Das obige Klassendiagramm enthält u.a. folgende Komponenten:

  • Eine Assoziationsklasse an einer zweistelligen Assoziation
  • Eine einstellige (rekursive) Assoziation
  • Mehrere zweistellige Assoziationen
  • Objekte mit fünf verschiedenen Rollen

Außerdem zahlreiche beidseitige beschriftete Assoziationen.