Bibliothek

Fach wählen

Themen

UML-Klassendiagramme

UML
Was ist UML?

Die Unified Modeling Language (UML) ist eine standardisierte grafische Modellierungssprache für objektorientierte Software. Das wichtigste Diagramm für das Abitur ist das Klassendiagramm: es zeigt die Klassen eines Systems mit ihren Attributen und Methoden sowie die Beziehungen zwischen ihnen. UML-Diagramme dienen als sprach-unabhängige Skizze, aus der sich Java oder Python direkt ableiten lässt.

Aufbau einer Klassen-Box

Eine Klasse wird als Rechteck mit drei Abschnitten dargestellt: Klassenname oben, Attribute in der Mitte, Methoden unten. Sichtbarkeiten werden mit Symbolen markiert: + für public, - für private, # für protected, ~ für package.

+----------------------+
|       Person         |
+----------------------+
| - name : String      |
| - alter : int        |
+----------------------+
| + getName() : String |
| + setAlter(a:int)    |
| + begruessen(): String|
+----------------------+

Statische Attribute und Methoden werden unterstrichen, abstrakte Klassen und Methoden kursiv gesetzt.

Beziehungen zwischen Klassen

Die wichtigsten Beziehungstypen:

  • Assoziation – einfache Linie. „kennt“-Beziehung.
  • Aggregation – Linie mit unausgefülltem Diamant. „hat ein“, ohne Lebenszyklus-Bindung.
  • Komposition – Linie mit ausgefülltem Diamant. Stark: das Teil existiert nur, solange das Ganze existiert.
  • Vererbung (Generalisierung) – Linie mit hohlem Dreieckspfeil zur Oberklasse. „ist ein“.
  • Realisierung – gestrichelte Linie mit hohlem Dreieckspfeil. Implementierung eines Interfaces.
Multiplizitäten

An den Enden einer Beziehung steht die Kardinalität, die angibt, wie viele Objekte beteiligt sein können:

  • 1 – genau eins
  • 0..1 – null oder eins
  • * oder 0..* – beliebig viele
  • 1..* – mindestens eins
  • 3..7 – zwischen drei und sieben

Beispiel: Eine Schule hat 1..* Klassen, eine Klasse hat 1 Lehrer.

Vom Diagramm zum Code

Aus einem UML-Klassendiagramm lässt sich Java direkt erzeugen. Die Klasse Auto mit Attribut - ps : int und Methode + starten() : void wird zu:

public class Auto {
    private int ps;
    public void starten() { /* ... */ }
}

In Python entsprechend:

class Auto:
    def __init__(self):
        self._ps = 0
    def starten(self):
        pass
Häufige Fehler

Verwechslung von Aggregation und Komposition (Diamant gefüllt vs. leer), Vererbungspfeil in falsche Richtung (zeigt zur Oberklasse, nicht zur Unterklasse), fehlende Multiplizitäten und Verwechslung von Sichtbarkeitssymbolen (- ist privat, nicht #).

Zusammenfassung: Klassendiagramme zeigen Klassen mit Attributen, Methoden und Beziehungen. Sichtbarkeiten und Multiplizitäten ermöglichen präzise Modellierung.

Abitur-Tipp: Bei UML-Aufgaben immer prüfen: Pfeilrichtung der Vererbung zur Oberklasse, Diamant am „Ganzen“, Multiplizitäten an beiden Enden.