UML 2.5.1 Kurzreferenz

Vollständige Referenz nach UML 2.5.1 Standard für IHK-Prüfungen

Use-Case-Diagramm

1. Systemgrenze (System Boundary)

ElementBeschreibung
FormRechteck mit abgerundeten Ecken (optional)
SystemnameOben im Rechteck, zentriert
Use CasesINNERHALB der Systemgrenze
AkteureAUSSERHALB der Systemgrenze
✅ Systemgrenze mit Use Cases und Akteuren
Online-Shop Artikel bestellen Kunde Bank

2. Akteure (Actors)

AkteurtypPositionBeschreibungBeispiele
PrimärakteurLINKSInitiiert die Interaktion, hat ein ZielKunde, Benutzer, Sachbearbeiter
SekundärakteurRECHTSUnterstützt das SystemDatenbank, Zahlungsdienst, Bank

3. «include» - MUSS-Beziehung

ElementBeschreibung
PfeilrichtungBasis-UC → Include-UC (zum Eingebundenen)
LinieGESTRICHELT
BedeutungBasis-UC enthält IMMER Include-UC
✅ «include» - Pfeil ZUM eingebundenen UC
Artikel bestellen Anmelden «include»

4. «extend» - KANN-Beziehung

ElementBeschreibung
PfeilrichtungExtend-UC → Basis-UC (zum Basis-Use-Case)
LinieGESTRICHELT
BedeutungExtend-UC erweitert Basis OPTIONAL
ConditionOPTIONAL - gibt an WANN erweitert wird
Extension PointOPTIONAL - gibt an WO erweitert wird
✅ «extend» mit Notizzettel (vollständig)
Artikel bestellen extension points nachWarenkorb Gutschein einlösen «extend» condition: {hat Gutschein} ext.point: nachWarenkorb
✅ «extend» Kurzform mit [Condition] (prüfungstauglich!)
Termin absagen EP: nachAbsage Benachrichtigung senden «extend» [kurzfristig]

Kurzform: Condition direkt am Pfeil in [eckigen Klammern] – kompakter als Notizzettel, für IHK-Prüfungen empfohlen!

✅ «extend» ohne Condition (auch UML 2.5.1 konform!)
Geld abheben Quittung drucken «extend»

«extend» Notation - Drei gültige Varianten:

Variante Extension Point Condition Empfehlung
Vollform (Notizzettel) ✅ Im Basis-UC ✅ Im Notizzettel {} Für komplexe Fälle
Kurzform ✅ Im Basis-UC ✅ Am Pfeil [] ⭐ Für IHK-Prüfungen!
Minimalform Optional – Wenn Bedingung offensichtlich

Include vs. Extend - Entscheidungshilfe

Frage→ «include»→ «extend»
Wird es IMMER ausgeführt?Ja, ohne AusnahmeNein, nur optional
Funktioniert Basis ohne?Nein, unvollständigJa, vollständig nutzbar
PfeilrichtungBasis → IncludeExtend → Basis

5. Generalisierung (Vererbung)

✅ Generalisierung - Leeres Dreieck zur Oberklasse
Benutzer Kunde Admin

Leserichtung: Kunde ist ein Benutzer, Admin ist ein Benutzer

Klassendiagramm

1. Klassenaufbau (Drei-Kammer-Notation)

✅ Vollständige Klasse nach UML 2.5.1
Kunde - kundenNr: int - name: String # rabatt: double + bestellen(): void - berechneRabatt(): double
SymbolSichtbarkeitZugriff
+publicÜberall
-privateNur Klasse selbst
#protectedKlasse + Unterklassen
~packageGleiches Paket

2. Assoziationen (UML 2.5.1)

Eine Assoziation ist eine strukturelle Beziehung zwischen Klassen.

AssoziationstypDarstellungBedeutung
Einfache AssoziationDurchgezogene Linie ohne PfeilBidirektional (beide kennen sich)
Gerichtete AssoziationLinie mit offener Pfeilspitze >Navigierbar nur in Pfeilrichtung
AggregationLinie mit leerer Raute ◇"hat ein" - Teil existiert unabhängig
KompositionLinie mit gefüllter Raute ◆"besteht aus" - Teil stirbt mit Ganzem
✅ Einfache Assoziation (bidirektional)
Student Vorlesung besucht * *

Keine Pfeilspitze = beide Klassen kennen einander

✅ Gerichtete Assoziation (unidirektional)
Bestellung Kunde gehörtZu * 1

Offene Pfeilspitze = Bestellung kennt Kunde, aber nicht umgekehrt

3. Aggregation vs. Komposition

✅ Aggregation ◇ (leere Raute)
Team Mitglied 1 *

"hat ein" - Mitglied existiert unabhängig

✅ Komposition ◆ (gefüllte Raute)
Bestellung Position 1 1..*

"besteht aus" - Position existiert nicht ohne Bestellung

KRITISCH: Raute IMMER am "Ganzen"!

Team ◇─── Mitglied | Bestellung ◆─── Position

4. Vererbung (Generalisierung)

✅ Vererbung - Leeres Dreieck △ zur Oberklasse
Fahrzeug # geschwindigkeit PKW LKW

Kursiv = abstrakte Klasse

5. Multiplizitäten

NotationBedeutungBeispiel
1Genau einsAuto hat 1 Motor
0..1OptionalPerson hat 0..1 Ehepartner
* oder 0..*Beliebig vieleKunde hat * Bestellungen
1..*Mindestens einsBestellung hat 1..* Positionen

6. Vollständiges Klassendiagramm-Beispiel

✅ Online-Shop mit verschiedenen Beziehungstypen
Kunde - name: String - email: String + bestellen() Bestellung - bestellNr: int - datum: Date + berechneGesamt() Position - menge: int - einzelpreis: double + berechneSumme() Produkt - name: String - preis: double + getDetails() 1 * 1 1..* 1

Legende: ── Assoziation | ◆─ Komposition | ─> Gerichtete Assoziation

Sequenzdiagramm

1. Grundelemente

ElementDarstellungBeschreibung
Objekt/LebenslinieRechteck + gestrichelte Linie:Klassenname oder objekt:Klasse
AktivierungsbalkenSchmales Rechteck auf LebenslinieObjekt führt gerade Code aus
NachrichtHorizontaler PfeilMethodenaufruf

2. Nachrichtentypen (UML 2.5.1)

TypLiniePfeilspitzeBedeutung
SynchronDurchgezogenGEFÜLLT ▶Sender wartet auf Antwort
AsynchronDurchgezogenOFFEN >Sender wartet NICHT
RückgabeGESTRICHELTOFFEN >Antwort auf synchronen Aufruf
✅ Synchrone Nachricht - GEFÜLLTE Spitze
methode(parameter)
✅ Rückgabe - GESTRICHELT + offene Spitze
ergebnis

3. Kombinierte Fragmente

FragmentBedeutungVerwendung
altAlternativeif-else (mit [guards])
optOptionalif ohne else
loopSchleifewhile/for [min,max]
parParallelGleichzeitige Ausführung
breakAbbruchVorzeitiger Ausstieg

4. Vollständiges Sequenzdiagramm-Beispiel

✅ Login-Prozess mit alt-Fragment
:Benutzer :LoginController :Datenbank login(user, pass) prüfeCredentials() result alt [gültig] loginErfolgreich() [ungültig] fehlerMeldung()

Legende: ▶ Synchrone Nachricht | - - -> Rückgabe | alt = if-else mit [Guards]

Aktivitätsdiagramm

1. Grundelemente

ElementSymbolBeschreibung
Startknoten● (gefüllter Kreis)Beginn des Ablaufs
Endknoten◉ (Kreis mit Punkt)Ende des Ablaufs
AktivitätAbgerundetes RechteckAuszuführende Aktion
Entscheidung (Decision)◇ Raute (1 rein, n raus)Verzweigung mit [Guards]
Zusammenführung (Merge)◇ Raute (n rein, 1 raus)Alternative Pfade zusammenführen
Aufspaltung (Fork)▬ Balken (1 rein, n raus)Parallele Pfade starten
Synchronisation (Join)▬ Balken (n rein, 1 raus)Parallele Pfade synchronisieren

KRITISCH: Richtige Zusammenführung!

VerzweigungZusammenführungBedeutung
◇ Entscheidung (Decision)◇ Merge (Raute!)ENTWEDER-ODER Pfade
▬ Fork (Balken)▬ Join (Balken!)UND Pfade (parallel)

Merkregel: Raute → Raute | Balken → Balken

2. Entscheidung + Merge (Alternative Pfade)

✅ Entscheidung (◇) wird mit Merge (◇) zusammengeführt
? [ja] [nein] Aktion A Aktion B

3. Fork + Join (Parallele Pfade)

✅ Fork (▬) wird mit Join (▬) synchronisiert
Parallel A Parallel B

Join wartet auf ALLE parallelen Pfade!

Zustandsdiagramm

1. Zustände

ElementDarstellungBeschreibung
Einfacher ZustandAbgerundetes RechteckZustand ohne interne Aktionen
Zustand mit AktionenZweigeteilt: Name | entry/do/exitZustand mit internen Aktionen
Startzustand● (gefüllter Kreis)Initialer Zustand
Endzustand◉ (Kreis mit Punkt)Finaler Zustand

2. Interne Aktionen

AktionWann?Beispiel
entry /Beim Betretenentry / lampeAn()
do /Während (unterbrechbar)do / blinken()
exit /Beim Verlassenexit / lampeAus()
✅ Zustand mit internen Aktionen
Aktiv entry / statusAktiv() do / verarbeitung() exit / speichern()

3. Übergänge (Transitionen)

✅ Übergangsnotation: Ereignis [Guard] / Aktion
Zustand A Zustand B ereignis [guard] / aktion

Format: Ereignis [Guard] / Aktion - alle Teile sind optional!

4. Vollständiges Zustandsdiagramm-Beispiel

✅ Bestellung-Lebenszyklus
Neu Bezahlt Versendet Zugestellt Storniert zahlung_ok versenden zugestellt stornieren stornieren / rückerstattung()

Legende: ● Start | ◉ Ende | Transitionen: ereignis [guard] / aktion

5. Pseudozustände: Choice & Junction (Legacy)

📜 Historischer Hintergrund

In UML 1.x (1997-2005) wurden Rauten häufig für Verzweigungen in Zustandsdiagrammen verwendet – ähnlich wie in Aktivitätsdiagrammen. Seit UML 2.0 werden Guards bevorzugt direkt an Transitionen geschrieben.

Ältere IHK-Materialien und Prüfungen könnten noch die Rauten-Notation verwenden!

SymbolNameUML-VersionBedeutung
◇ChoiceUML 2.xDynamische Entscheidung (Guard zur Laufzeit ausgewertet)
◇JunctionUML 1.x/2.xStatische Verzweigung / Zusammenführung
UML 1.x Stil (mit Raute) – noch in älteren Prüfungen zu finden
Aktiv timeout [versuche<3] Wiederholung [else] Gesperrt
✅ UML 2.x Stil (Guards direkt an Transition) – EMPFOHLEN
Aktiv timeout [versuche<3] Wiederholung timeout [else] Gesperrt

Vorteil: Kompakter, keine Extra-Symbole nötig

Prüfungstipp:

Wenn du in einer Prüfung eine Raute im Zustandsdiagramm siehst → es ist eine Choice/Junction aus UML 1.x-Zeiten.

Für eigene Diagramme: Verwende besser Guards direkt an der Transition – das ist der moderne UML 2.x Standard.

Schnellreferenz - Pfeilspitzen

DiagrammElementLinieSpitze
Use-CaseAssoziationDurchgezogenKEINE
«include»GestricheltOFFEN >
«extend»GestricheltOFFEN >
GeneralisierungDurchgezogenLEERES △
KlasseAssoziationDurchgezogenKEINE (bidirektional)
Gerichtete AssoziationDurchgezogenOFFEN > (navigierbar)
VererbungDurchgezogenLEERES △
Aggreg./Komp.Durchgezogen◇/◆ am Ganzen
SequenzSynchronDurchgezogenGEFÜLLT ▶
AsynchronDurchgezogenOFFEN >
RückgabeGestricheltOFFEN >
AktivitätKontrollflussDurchgezogenOFFEN >
ZustandTransitionDurchgezogenOFFEN >

UML 2.5.1 Referenz

Diese Kurzreferenz basiert auf dem offiziellen UML 2.5.1 Standard (OMG Document formal/2017-12-05).

Quelle: https://www.omg.org/spec/UML/2.5.1

UML 2.5.1 Kurzreferenz | Zu den Aufgaben

Erstellt mit Unterstützung von KI-Tools, redaktionell geprüft