Einstieg

Klassendiagramme dienen der Beschreibung von Aufbau und Zusammenspiel von Klassen. Klassendiagramme sind wohl die meistgenutzten Diagramme der UML.

Aufbau von Klassen

Im Klassendiagramm werden die Klassen durch Rechtecke dargestellt. Das Rechteck wird dabei vertikal in vier Bereiche unterteilt. Der obere Bereich enthält den Namen und weitergehende Informationen zu der Klasse. Der zweite Bereich enthält die Attribute der Klasse. Der dritte Bereich enthält die Methoden (Operationen) der Klasse. Der vierte und letzte Bereich der Klasse enthält Eigenschaften der Klasse.

Klasse

Die Bereiche für Attribute, Methoden und Eigenschaften sind optional. Das einfachste Klassendiagramm ist ein einfaches Rechteck, das den Namen der Klasse enthält. Wird nur ein Bereich ausgelassen (z.B. Attribute), sollten jedoch die entsprechenden Trennlinien angezeigt werden.

Klassenname

Namensbereich

Im Namensbereich werden die Angaben zentriert angeordnet. Der Name der Klasse wird dabei fett geschrieben. Oberhalb des Klassennamens können in doppelten spitzen Klammern Stereotypen angegeben werden. Ein häufig verwendeter Stereotyp ist: << Interface >> der angibt, dass es sich nicht um eine Klasse, sondern um eine Schnittstellendefinition handelt.

Unterhalb der Klasse können Eigenschaften der Klasse in geschweiften Klammern angegeben werden (z.B.: {abstract}).

Eigenschaften einer Klasse

Attributsbereich

Die Attribute einer Klasse werden im zweiten Bereich des Klassendiagrammes linksbündig angegeben. Die allgemeine Form der Angabe von Attributen ist:

              + Name : Typ = Wert
            

Als Erstes wird ein Sichtbarkeitssymbol angegeben (+). Nach dem Sichtbarkeitssymbol wird der Name und der Typ des Attributs durch einen Doppelpunkt getrennt angegeben. Hat das Attribut einen definierten Wert (Initialwert), kann dieser nach einem Gleichheitszeichen angegeben werden.

Folgende Zeichen sind für die Angabe der Sichtbarkeit definiert:

+public
#protected
-private
~package

Je nach Detaillierungsgrad bzw. Phase der Softwareentwicklung können Sichtbarkeit, Typ und Initialwert als optional angesehen werden.

Das nachfolgende Beispiel zeigt ein Klassendiagramm mit Attributen:

Klassendiagramm mit Attributen

Methodenbereich

Im dritten Bereich des Rechteckes werden die Methoden der Klasse linksbündig angegeben. Als Erstes wird das von den Attributen bekannte Zeichen für die Sichtbarkeit angegeben. Hinter dem Sichtbarkeitszeichen folgt der Name der Methode. Abschließend folgt ein rundes Klammerpaar, in dem gegebenenfalls die Parameter der Methode angegeben werden. Ist der Methode ein Rückgabewert zugeordnet, wird dieser hinter einem Doppelpunkt angegeben. Für den Fall das die Methode keinen Rückgabewert hat kann als Rückgabewert void angegeben werden.

Das nachfolgende Beispiel zeigt ein Klassendiagramm mit angegebenen Methoden.

Klassendiagramm mit Methoden

Abstrakte Klassen und statische Elemente

Abstrakte Klassen werden in der UML durch Darstellung des Klassennamens in kursiver Schrift dargestellt. Die Darstellung statischer Methoden und Attribute erfolgt durch unterstreichen des jeweiligen Elements.

Klassendiagramm einer abstrakten Klasse

Beziehungen von Klassen

Soll nur die Beziehung von Klassen untereinander dargestellt werden, können die Bereiche für Attribute und Methoden als optional angesehen werden. Die Trennstriche für die einzelnen Bereiche sollten jedoch dargestellt werden.

Vererbung

Die Veerbung von Klassen untereinander wird durch eine durchgezogene Linie mit einem offenen Pfeil, der auf die Oberklasse zeigt, dargestellt.

Klassendiagramm Vererbung

Schnittstellenimplementation

Die Implementation einer Schnittstelle wird mit einer gestrichelten Linie dargestellt. An der Schnittstelle wird ein geschlossener, nicht ausgefüllter Pfeil angebracht.

Klassendiagramm: Implementierung einer Schnittstelle

Assoziation

Eine Assoziation von Klassen wird durch eine durchgezogene Linie, die beide Klassen miteinander verbindet, dargestellt.

Klassendiagramm Assoziation

Multiplizität

Die Multiplizität eines Objektes gibt an, wie viele Objekte des einen Typs mit Objekten des anderen Typs (oder Objekten anderer Typen) verbunden sein können oder verbunden sein müssen.

Folgende Angaben zur Multiplizität können angegeben werden:

Beschreibung   Beispiel   Bedeutung
Angabe einer definierten Zahl 3 Genau diese Anzahl von Objekten
Angabe von Minimum und Maximum 3 .. 7 Mindestens 3 Objekte und maximal 7 Objekte
Der Joker * Beliebig viele Objekte

Die Angabe von Multiplizitäten können durch Trennung von Kommata auch kombiniert werden.

Beispiele:

1,3,6   Ein, drei oder 6 Objekte
0, 4 .. 9   Entwender kein Objekt oder vier bis neun Objekte
0 .. * Beliebig viele Objekte
* Beliebig viele Objekte
4 Genau vier Objekte

Das nachfolgende Diagramm zeigt die Assoziation von Auto, Fahrer und Mitfahrer bei einer Autofahrt. Es wird dabei davon ausgegangen, dass der Wagen für 5 Personen zugelassen ist.

Klassendiagramm Assoziation

Verwendung

Verwendet eine Klasse eine andere, wird dies mithilfe einer durchgezogenen Linie dargestellt, wobei an der verwendeten Klasse ein offener Pfeil angebracht wird. Wird nur eine Schnittstelle der verwendeten Klasse verwendet, wird eine gestrichelte Linie mit einem offenen Pfeil verwendet. An der verwendeten Klasse kann optional die Multiplizität angegeben werden.

Klassendiagramm Multiplizität

Aggregation

Eine Aggregation wird im Klassendiagramm mithilfe einer durchgezogenen Linie dargestellt. Am Ende, wo das Ganze dargestellt wird, wird eine offene Raute gezeichnet. An diesem Ende ist die Multiplizität entwender 0 oder 1. Am anderen Ende (da wo keine Raute ist) können auch höhere Multiplizitäten vorliegen.

Klassendiagramm Aggregation

Komposition

Eine strengere Form der Aggregation ist, wenn die einzelnen Bestandteile vom ganzen existenzabhängig sind. Diese Abhängigkeit wird Komposition bezeichnet. Die Darstellung erfolgt ähnlich wie die der Aggregation, nur dass die Raute ausgefüllt wird und am Teil des Ganzen implizit die Multiplizität 1 angenommen wird.

Klassendiagramm Komposition

UML Links @ itmapa.de

Wikipedia - Klassendiagramm
http://de.wikipedia.org/wiki/Klassendiagramm

UML - Tutorial von Reiner Dumke (Klassendiagramm) R. Dumke
http://ivs.cs.uni-magdeburg.de/~dumke/UML/2.htm