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: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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
|
|||||||||||||||||||||||||||
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 … |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Die Darstellung mit einer Raute ist ebenfalls möglich. |
Mit Raute |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Die folgende Abbildung zeigt die grafische Darstellung einer dreistelligen Assoziation. Hier wird die Bezeichnung der Assoziation an der Raute angesiedelt. |
Dreistellig |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
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: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Weitere Konkretisierungen bezüglich der maximalen und minimalen Anzahl von Objekten können erfolgen, so dass z.B. folgende Angaben möglich sind: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
|||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Mögliche Prüfungstypen im Anwendungsbereich Hochschule |
|||||||||||||||||||||||||||
|
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: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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]). |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
Die zweite Assoziation verknüpft Angestellte und Projekte. Hier haben die Angestellten die Rolle Projektmitarbeiter. Die Wertigkeiten bei der neuen Assoziation bedeuten: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Nehmen wir obigen Gedankengang – Fixierung von n-1 Enden, Betrachtung des n-ten Assoziationsendes – auf, ergibt sich folgendes: |
Fixieren und betrachten |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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- |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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? |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Das obige Klassendiagramm enthält u.a. folgende Komponenten: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Das obige Klassendiagramm enthält u.a. folgende Komponenten: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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- |
||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Das obige Klassendiagramm enthält u.a. folgende Komponenten: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Die folgende Abbildung zeigt einige Beispiele. |
Assoziationen und Navigierbarkeit |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
Diese „Präzisierungen“ werden am Linienende in geschweiften Klammern angegeben. Folgendes ist möglich: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
|||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Links der in diesem Text verwendete Begriff. Rechts der in der objektorientierten Theorie bzw. in der UML verwendete Begriff. |
|||||||||||||||||||||||||||
3.2 Assoziationsklassen |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
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 properties. 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 |
||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
3.2.3 Beispiele |
|||||||||||||||||||||||||||
Das obige Beispiel zu Angestellten und ihren PCs wurde hier um eine Assoziationsklasse mit Attributen zu folgenden Sachverhalten ergänzt: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
Die Wertigkeiten bedeuten hier bezüglich einer PC-Nutzung: |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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. |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
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 |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Aus Ein PC ist keinem oder maximal einem Angestellten zugeordnet wird |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Von einer Instanz der Assoziationsklasse aus ist die Wertigkeit der Assoziationsenden immer 1 (vgl. auch [OMG 2003a, S. 119]). |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
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 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Mögliche Einträge wären (nach der obigen Attributreihenfolge und mit den Ausprägungen bei pruefNr: 1 = Klausur, 2 = Laborarbeit): |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Mit der Methode eintragen() werden die Noten jeweils in die Datenbank eingetragen. |
Noten eintragen |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
Das obige Klassendiagramm enthält u.a. folgende Komponenten: |
|||||||||||||||||||||||||||
|
| 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
|
|
| Das obige Klassendiagramm enthält u.a. folgende Komponenten:
|
|
| Außerdem zahlreiche beidseitige beschriftete Assoziationen.
|
|
| |
||||||||||||||