Klassendiagramme dienen der Beschreibung von Aufbau und Zusammenspiel von Klassen. Klassendiagramme sind wohl die meistgenutzten Diagramme der UML.
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.
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.
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}).
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:
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.
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.
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.
Die Veerbung von Klassen untereinander wird durch eine durchgezogene Linie mit einem offenen Pfeil, der auf die Oberklasse zeigt, dargestellt.
Die Implementation einer Schnittstelle wird mit einer gestrichelten Linie dargestellt. An der Schnittstelle wird ein geschlossener, nicht ausgefüllter Pfeil angebracht.
Eine Assoziation von Klassen wird durch eine durchgezogene Linie, die beide Klassen miteinander verbindet, dargestellt.
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.
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.
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.
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.
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