Das Klassendiagramm. Mit Struktur zum System.

1
2
3
4
5
Klassendiagramme bringen Struktur
1

Eine Klasse repräsentiert eine Menge von Objekten, die die gleiche Semantik, Eigenschaften und Verhalten aufzeigen. Sie besitzen Attribute und Methoden (Operationen).

2

Die Kompositionsbeziehung zwischen beiden Klassen bedeutet, dass die abhängige Klasse Adresse nur in Verbindung mit der Klasse Person existieren kann.

3

Schnittstellen (Interfaces) sind spezielle Klassen, die einen Teil des sichtbaren Verhaltens von Klassen und Komponenten spezifizieren.

4

Die Multiplizität 1 bedeutet, dass jede Rechnung genau einem Kunden zugeordnet ist.

5

Attribute können über Generalisierungsbeziehungen vererbt werden. Die Klasse Kunde erbt daher alle Attribute der Klasse Person.

Was ist ein Klassendiagramm?

Das Klassendiagramm beschreibt Systeme, indem es Klassen, deren Attribute und Operationen sowie die Beziehungen zwischen den Klassen aufzeigt. Innerhalb der Unified Modeling Language (UML) gilt es als Strukturdiagramm und folgt der Idee der Objektorientierung, gemäß der ein System durch das Zusammenspiel kooperierender Objekte beschrieben wird.

Klasse ist ein Begriff für die Beschreibung der gemeinsamen Struktur und des gemeinsamen Verhaltens von Objekten (Klassifizierung). Einfacher ausgedrückt: In einer Klasse werden Objekte zusammengefasst, die ähnliche Eigenschaften besitzen. Andersherum ausgedrückt: Die gemeinsamen Eigenschaften konkreter Objekte werden zu Klassen abstrahiert.

Wozu dient das Klassendiagramm?

Ein Klassendiagramm zeigt Zusammenhänge zwischen in Verbindung stehenden Klassen auf. Über Aggregationen visualisieren Sie Teil-Ganzes-Beziehungen. Über Assoziationen modellieren Sie Referenzen und den möglichen Zugriff auf Klassen. Und über Vererbungsbeziehungen / Generalisierungsbeziehungen stellen Sie die Gleichartigkeit von Klassen in Bezug auf Eigenschaften und Verhalten dar.

Das Klassendiagramm ist einer der wichtigsten und beliebtesten Diagrammtypen der UML und ein zentraler Bestandteil vieler Vorhaben in der Softwareentwicklung. Klassendiagramme  sind der beste Weg, um die Struktur eines zu entwerfenden oder abzubildenden Systems, seiner Attribute, der Operationen sowie der Beziehungen auf dieser Ebene in allen Details darzustellen. Das entscheidende Merkmal objektorientierter Programmiersprachen sind Klassen; das Klassendiagramm ist deshalb unverzichtbar für die Softwaremodellierung.

Warum sind Klassendiagramme wichtig?

Klassendiagramme bilden das Herzstück der UML. Sie basieren auf den Prinzipien der Objektorientierung und sind durch ihre Vielseitigkeit in allen Phasen eines Projekts einsetzbar. In der Analysephase tritt es als Domainmodell in Erscheinung und versucht, ein Abbild der Wirklichkeit darzustellen. In der Designphase wird damit die Software modelliert und in der Implementierungsphase daraus Sourcecode generiert. Klassendiagramme sind damit ein unverzichtbarer Bestandteil aller Projekte der Softwareentwicklung und die Grundlage für Softwareprodukte aller Art.

Das Klassendiagramm stellt die statische Struktur eines Systems dar.
Es zeigt Klassen mit ihren Attributen, Operationen
und statischen und logischen Zusammenhängen (Beziehungen).

Klassen, Attribute, Operationen

Eine Klasse repräsentiert eine Menge von Objekten (Instanzen der Klasse), die Folgendes gemeinsam haben:

  • Semantik
  • Eigenschaften
  • Verhalten

Attribute sind die Eigenschaften einer Klasse. Sie sind im Idealfall nur von ihrer eigenen Klasse abhängig, können sich aber trotzdem in ihren Attributwerten unterscheiden.

Eine Operation ist eine Funktionalität, die die Klasse realisiert. Operationen beschreiben das Verhalten einer Klasse bzw. deren Objekte und werden durch Methoden implementiert. Eine Operation greift auf Attribute zu und kann diese ändern.

Schnittstellen

Schnittstellen (Interfaces) sind spezielle Klassen, die mit einer Menge von Merkmalen (Features) einen ausgewählten Teil des extern sichtbaren Verhaltens von Modellelementen (hauptsächlich von Klassen und Komponenten) spezifizieren. Schnittstellen werden wie Klassen notiert, sie tragen jedoch das Schlüssel­wort «interface».

Es werden bereitgestellte und benötigte Schnittstellen unterschieden. Eine bereitgestellte Schnittstelle wird von einem Modellelement angeboten und kann von anderen verwendet werden. Eine benötigte Schnittstelle ist eine Schnittstelle, die von einem anderen Modellelement eingefordert wird. Schnittstellen spezifizieren nicht nur Operationen, sondern auch Attribute. Entsprechend dürfen Schnittstellen auch Assoziationen zu anderen Schnitt­stellen oder Klassen haben.

Beziehungen im Klassendiagramm

Es gibt vier mögliche Beziehungstypen innerhalb von Klassendiagrammen.

Die Assoziation beschreibt die Kommunikation zwischen zwei Klassen. Eine Multiplizität drückt hierbei die Menge möglicher Ausprägungen aus und wird durch einen minimalen Wert und einen maximalen Wert beschrieben. In der UML wird auch der Begriff Kardinalität verwendet, um die Anzahl konkreter Ausprägungen zu beschreiben. Der Begriff Kardinalität hat seinen Ursprung in der Datenmodellierung und dort die gleiche Bedeutung wie die Multiplizität in der UML. Die Kardinalität beschreibt z. B. beim Objektmodell die konkrete Anzahl assoziierter Objekte.

Eine Aggregation beschreibt eine  Teil von-Beziehung. Eine Aggregation zeigt auf, wie sich etwas Ganzes aus seinen Teilen logisch zusammensetzt. Die beteiligten Klassen führen also keine gleichwertige Beziehung. Aggregationen werden wie eine Assoziation als Linie zwischen zwei Klassen dargestellt und zusätzlich mit einer kleinen Raute versehen. Die Raute steht auf der Seite des Aggregats, also des Ganzen.

Eine Komposition ist eine strenge Form der Aggregation. Der Unterschied zur Aggregation ist, dass die Existenz eines Objekts, das Teil eines Ganzen ist, von der Existenz des Ganzen abhängig ist. Ein Objekt kann dabei immer nur Teil maximal eines Ganzen sein (Multiplizität 0..1 oder 1). Existenzabhängigkeit bedeutet, dass das Ganze den Lebenszyklus der Teile bestimmt, d. h. das Objekt, welches das Ganze repräsentiert, übernimmt auch die Verantwortung für die Lebensdauer der Objekte, die seine Teile repräsentieren. Wird das Ganze gelöscht, verschwinden auch die Objekte, die zu diesem Zeitpunkt Bestandteil waren.

Eine Generalisierung ist eine gerichtete Beziehung zwischen einer allgemeinen und einer speziellen Klasse. Exemplare der spezielleren Klasse sind auch Exemplare der generelleren Klasse. Dies bedeutet dass die spezielle Klasse implizit über alle Merkmale (Struktur- und Verhaltensmerkmale) der generelleren Klasse verfügt. Implizit deshalb, weil diese Merkmale in der spezielleren Klasse nicht explizit deklariert werden; die spezielle Klasse erbt sie von der generelleren Klasse.

Die Vorteile von Klassendiagrammen

Klassendiagramme bieten Orientierung. Durch Klassendiagramme erhalten Sie einen detaillierten Einblick in die Struktur Ihrer Systeme. Gleichzeitig bieten Klassendiagramme eine schnelle Übersicht über das Zusammenspiel der einzelnen Systemelemente und deren Eigenschaften und Beziehungen untereinander.

Klassendiagramme sind einfach und schnell zu lesen. Und mit der richtigen Software sind sie auch leicht zu erstellen. Dadurch sind sie die ideale Basis für die Systemerstellung.

Klassendiagramm mit Tool

Wenn die Struktur Ihres Systems definiert ist, ist der erste Schritt zur neuen Software getan. Doch diese Struktur muss nun all denen zugänglich gemacht werden, die Ihre Software entwickeln. Die Weiterverarbeitung der Ergebnisse entscheidet also darüber, ob die Bemühungen um die Struktur auch Früchte tragen wird.

Am besten ist es, ein entsprechendes Tool zu nutzen, mit dem Sie im gemeinsam im Team arbeiten können und das allen Projektbeteiligten die Ergebnisse der Analysen und Überlegungen in Echtzeit zur Verfügung stellt.  Weiterlesen >>

Haben Sie Fragen oder Hinweise zu Klassendiagrammen?

Wir freuen uns auf Ihr Feedback!

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Welchen Nutzen haben Use Cases?

Und wie erstellen Sie Use Cases?