Software Engineering: Klassendiagramme

< Softwaretechnik

Klassendiagramm Bearbeiten

Das Klassendiagramm (engl. class diagram) ist das bekannteste und meistbenutzte UML-Diagramm. Das Klassendiagramm beschreibt die statischen Zusammenhänge in einem UML-Modell. Elemente des Klassendiagramms sind Klassen und ihre Beziehungen zueinander. Die Klassen selbst bestehen aus Attributen (Variablen) und Methoden (Operationen auf den Attributen). Die Klasse wird graphisch durch ein Rechteck symbolisiert und hat minimal nur einen Namen, der als Zeichenkette in den oberen Teil der Kiste geschrieben wird. Möchte man neben dem Namen auch noch die Attribute und Methoden angeben, so unterteilt man die Box mit Hilfe zweier Linien in drei Teile. Im oberen Teil steht der Name, im mittleren Teil stehen alle Attribute und im unteren Teil alle Methoden. Auch die Sichtbarkeit der Klasse, der Attribute und Methoden kann einzeln festgelegt werden. Hat man mehrere Klassen im Klassendiagramm mit Beziehungen zueinander, so stellt man dies durch Verbindungslinien zwischen den Klassen dar. Dies ist auch der Grund dafür, dass man früher Klassendiagramme oft als box-and-lines diagrams bezeichnete. Insgesamt gibt es vier verschiedene Arten von Beziehungen zwischen Klassen: Vererbung, Assoziation, Aggregation und Komposition. Hat man das Klassendiagramm mit allen Klassen und Beziehungen entworfen, so kann man darangehen Gruppierungen von Klassen mit Hilfe von Paketen festlegen.

Start mit der Klasse PKW Bearbeiten

Als erstes Beispiel sehen wir uns zwei Varianten der Klasse Personenkraftwagen (PKW) an:

 

Die linke Variante der PKW-Klasse enthält nur den Namen der Klasse, aber keinerlei Attribute und Methoden. Diese Variante einer Klasse wird oft in einer frühen Designphase gewählt in der man sich zuerst einmal über alle notwendigen Klassen und ihre Beziehungen untereinander einigen möchte (Sammlungsphase). Die rechte Variante der PKW-Klasse besitzt mehrere Attribute und Methoden. Die Attribute bestehen jeweils aus einem Typen und einem Attributnamen. In unserer PKW-Beispielklasse gibt es zwei Attribute und sie lauten:

  • name (vom Typ String oder Text)
  • geschwindigkeit (vom Typ int oder Ganzzahl)

Die Groß- und Kleinschreibung der Attributtypen deutet darauf hin, dass int ein ordinaler oder eingebauter Basisdatentyp ist, während String eine eigene Klasse (Klassentyp) ist.

Außerdem gibt es noch drei Methoden:

  • starten()
  • abstellen()
  • fahren( speed: int )

Alle Methoden und Attribute haben die Sichtbarkeit public (Symbol "+"). Die Methode fahren hat zusätzlich noch einen Ganzzahl-Parameter speed mit dessen Hilfe man die Geschwindigkeit des Fahrens steuern kann. Alle drei Methoden haben keine Rückgabeparameter und geben darum void zurück. Es ist heutzutage Standard, dass alle Klassennamen mit großen Buchstaben beginnen, während alle Attribute- und Methodennamen mit einem kleinen Buchstaben beginnen. Die Deklarationen der Attribute und Parameter der Methoden ist etwas gewöhnungsbedürftig, da sie an die Sprache Pascal angelehnt ist und im Vergleich zu Java und C/C++ der Typ und der Bezeichner des Attributs/Parameters einfach vertauscht sind.