Klassendiagramme

In dieser interaktiven Lerneinheit erlernst du die Grundlagen der UML-Klassendiagramme und wie du damit Objekte, ihre Eigenschaften sowie Beziehungen zwischen Klassen professionell visualisierst. Du übst die praktische Modellierung von Klassendiagrammen anhand konkreter Beispiele und verstehst, wie Vererbung, Assoziationen und Kardinalitäten korrekt dargestellt werden. Diese fundamentalen Kenntnisse ermöglichen dir die effektive Dokumentation von Softwarearchitekturen und die präzise Kommunikation im Entwicklungsteam.

Einführung

Du entwickelst eine Anwendung für ein Krankenhaus. Plötzlich tauchen wichtige Fragen auf: Welche Daten dürfen Ärzte einsehen? Was können Patienten selbst ändern? Und wie hängen all diese Informationen sinnvoll zusammen? Ohne eine klare Struktur wird das System schnell unübersichtlich – mit möglicherweise ernsthaften Folgen.

Wie lässt sich das von Anfang an vermeiden? Ein durchdachtes Klassendiagramm sorgt für Klarheit.

Lernziele

Nach dieser Lerneinheit kannst du:

  • Den Zweck und Aufbau von Klassendiagrammen erklären.
  • Klassen, Attribute und Methoden identifizieren und definieren.
  • Beziehungen zwischen Klassen, wie Assoziation, Aggregation, Komposition und Vererbung unterscheiden.
  • Multiplizitäten in Klassendiagrammen richtig anwenden und interpretieren.

Überleitung

Damit du komplexe Softwareprojekte erfolgreich planen und umsetzen kannst, brauchst du Klarheit über die Struktur und die Zusammenhänge im System. Hier kommen Klassendiagramme ins Spiel. Sie sorgen dafür, dass du jederzeit weißt, welche Klassen existieren, wie diese aufgebaut sind und wie sie miteinander interagieren.

Was sind Klassendiagramme?

Klassendiagramme dienen der Darstellung der statischen Struktur eines Systems. Sie zeigen die Klassen des Systems, deren Attribute und Methoden sowie die Beziehungen zwischen den Klassen. Klassendiagramme helfen Entwicklern und Architekten, die Struktur und die Interaktionen innerhalb eines Systems zu verstehen.

Hauptbestandteile eines Klassendiagramms

Wir wissen: Klassendiagramme helfen dir dabei, komplexe Systeme übersichtlich und verständlich darzustellen. Folgende grundlegende Bestandteile bilden dabei die Basis:

  • Klassen repräsentieren Objekte oder Konzepte mit gemeinsamen Eigenschaften.
  • Attribute sind Eigenschaften einer Klasse.
  • Methoden sind Funktionen oder Verhaltensweisen einer Klasse.
  • Beziehungen zwischen Klassen können Assoziationen, Vererbungen, Aggregationen oder Kompositionen sein.
  • Sichtbarkeiten werden mit + (öffentlich), - (privat) und # (geschützt) dargestellt.

Schauen wir uns diese Bestandteile nun genauer an, um den Aufbau und die Anwendung von Klassendiagrammen besser zu verstehen.

Assoziationen

In UML-Klassendiagrammen gibt es zwei Hauptarten von Assoziationen:

1. Unidirektionale Assoziation

  • Eine Klasse “kennt” die andere, aber nicht umgekehrt
  • Darstellung: Pfeil von der kennenden zur bekannten Klasse

2. Bidirektionale Assoziation

  • Beide Klassen kennen sich gegenseitig
  • Darstellung: Einfache Linie ohne Pfeilspitzen

Vererbung in Klassendiagrammen

Vererbung ist ein fundamentales Konzept in der objektorientierten Programmierung. In UML-Klassendiagrammen wird sie wie folgt dargestellt:

In diesem Beispiel erbt „Elektroauto“ von „Auto“. Die Klasse „Elektroauto“ besitzt alle Eigenschaften eines Autos plus ihre eigenen spezifischen Merkmale.

Multiplizitäten

In UML-Klassendiagrammen beschreibt die Multiplizität die Anzahl der zulässigen Instanzen einer Klasse in einer Beziehung zu einer anderen Klasse. Sie legt fest, wie viele Objekte einer Klasse mit wie vielen Objekten einer anderen Klasse assoziiert sein können.

Überblick über die Multiplizitätswerte

MultiplizitätAlternative SchreibweiseBedeutung
0…1Keiner oder Einer
1Genau Einer
0…**Null oder beliebig viele
1…*Beliebig viele - Mindestens 1

Beispiel: Beziehung zwischen Haus und Bewohner

Ein Haus kann von mehreren Bewohnern bewohnt werden, während ein Bewohner in genau einem Haus lebt. Diese Beziehung lässt sich mit Multiplizitäten wie folgt darstellen:

Erklärung der Multiplizitäten

  • Ein Haus kann keine, einen oder mehrere Bewohner haben (0..*).
  • Ein Bewohner wohnt immer in genau einem Haus (1).

Aggregation in Klassendiagrammen

Aggregation

  • Schwache “hat-ein”-Beziehung
  • Teile können unabhängig vom Ganzen existieren
  • Darstellung: Leere Raute am Ende der Linie

Komposition

Komposition

  • Starke “besteht-aus”-Beziehung
  • Teile können nicht ohne das Ganze existieren
  • Darstellung: Ausgefüllte Raute am Ende der Linie
⏳ Lädt Dataview-Inhalt...

Vorgehen zur Erstellung eines Klassendiagramms

Szenario

Ein Hochschulsystem verwaltet Studierende und Kurse. Studierende schreiben sich in Kurse ein. Jede Einschreibung speichert Datum, Status (angemeldet, bestanden, etc.) und eine Note.

Schritt 1 – Klassen identifizieren

Zuerst bestimmst du die relevanten Klassen aus der Szenariobeschreibung.

  • Student
  • Kurs
  • Einschreibung (diese Klasse modelliert die Beziehung „Student belegt Kurs“, da zusätzliche Daten gespeichert werden müssen)

Hinweis: Eine Assoziation beschreibt eine fachliche Beziehung zwischen Klassen. Mit Multiplizitäten legst du fest, wie viele Objekte zueinander gehören können (z. B. 0..*, 1).

Vorgehen zur Erstellung eines Klassendiagramms

Schritt 2 – Attribute festlegen

Jede Klasse erhält fachlich sinnvolle Attribute:

Student

  • matrikelnummer: String
  • name: String
  • email: String

Kurs

  • kursId: String
  • titel: String
  • ects: int

Einschreibung

  • datum: Date
  • status: String
  • note: Double

Hinweis: Die Klasse Einschreibung ist notwendig, weil die Beziehung eigene Informationen enthält. Eine direkte Verbindung zwischen Student und Kurs würde diese verlieren.

Vorgehen zur Erstellung eines Klassendiagramms

Schritt 3 – Beziehungen und Multiplizitäten bestimmen

Jetzt beschreibst du, wie die Klassen zueinander in Beziehung stehen.

  • Student – Einschreibung:

    • Ein Student kann 0..* Einschreibungen haben.
    • Jede Einschreibung gehört zu genau 1 Student.
    • Multiplizität: Student "1" -- "0..*" Einschreibung
  • Kurs – Einschreibung:

    • Ein Kurs kann 0..* Einschreibungen haben.
    • Jede Einschreibung gehört zu genau 1 Kurs.
    • Multiplizität: Kurs "1" -- "0..*" Einschreibung

Vorgehen zur Erstellung eines Klassendiagramms

Schritt 4 – Finales Klassendiagramm

⏳ Lädt Dataview-Inhalt...

Zusammenfassung und Ausblick

Zusammenfassung

In dieser Lerneinheit hast du gelernt, dass Klassendiagramme die statische Struktur eines Systems abbilden. Du kannst jetzt Klassen definieren und deren Attribute und Methoden benennen. Außerdem verstehst du die wichtigsten Beziehungen zwischen Klassen:

  • Assoziationen: Klassen „kennen“ sich entweder in eine (unidirektional) oder in beide (bidirektional) Richtungen.
  • Aggregation: Eine schwache „hat-ein“-Beziehung, bei der Teile auch unabhängig existieren können.
  • Komposition: Eine starke „besteht-aus“-Beziehung, bei der Teile vom Ganzen abhängen.
  • Vererbung: Klassen übernehmen Eigenschaften und Methoden anderer Klassen.

Die Multiplizität beschreibt dabei, wie viele Objekte einer Klasse mit wie vielen Objekten einer anderen Klasse verbunden sein können. Du hast gelernt, diese gezielt einzusetzen, um realistische Systeme abzubilden.

Praxisbeispiel

Am praktischen Beispiel der Hochschulsystem hast du gesehen, wie du ein Klassendiagramm Schritt für Schritt entwickeln kannst, inklusive der Festlegung von:

  • Attributen
  • Methoden
  • Beziehungen
  • Multiplizitäten

Ausblick:

Nachdem du jetzt die statische Struktur von Systemen beherrschst, widmen wir uns als Nächstes den Aktivitätsdiagrammen. Damit kannst du dynamische Abläufe und Prozesse innerhalb eines Systems darstellen und verstehen, wie einzelne Schritte logisch miteinander verknüpft sind.