UML-Use-Case-Generalisierung

Generalisierung (auch Vererbung genannt) zeigt eine "ist-ein"-Beziehung zwischen Use Cases oder Akteuren.

Der spezialisierte Use Case/Akteur erbt alle Eigenschaften vom allgemeinen Use Case/Akteur.


Symbol

  [Allgemein]
       △
       │  ← Pfeil zum Allgemeinen
   ────┴────
   │       │
[Speziel]  [Speziel]
  Case 1    Case 2

Pfeil: Geschlossener, nicht ausgefüllter Pfeil (wie bei Vererbung in Klassendiagrammen)


Generalisierung bei Akteuren

Zeigt Hierarchie zwischen Akteuren.

       O
      /|\
      / \
    Benutzer  ← Allgemeiner Akteur
       △
       │
   ────┴────
   │       │
   O       O
  /|\     /|\
  / \     / \
 Kunde   Admin  ← Spezialisierte Akteure

Bedeutung:


Beispiel: E-Commerce-System

       O
      /|\
      / \
    Benutzer
       │
       ├──► [Produkte durchsuchen]
       ├──► [Profil bearbeiten]
       │
       △
       │
   ────┴─────────
   │             │
   O             O
  /|\           /|\
  / \           / \
 Kunde         Admin
   │             │
   ├──► [Bestellen]        ├──► [Produkte verwalten]
   ├──► [Bewerten]         ├──► [Nutzer verwalten]
   └──► [Retoure]          └──► [Statistiken ansehen]

Vererbung:


Generalisierung bei Use Cases

Zeigt, dass ein Use Case eine spezielle Variante eines anderen ist.

┌─────────────────┐
│    Bezahlen     │ ← Allgemeiner Use Case
└─────────────────┘
         △
         │
     ────┴────────────
     │       │       │
┌─────┐ ┌─────┐ ┌─────┐
│Kredit│PayPal│Bank-│ ← Spezielle Use Cases
│-karte│      │über-│
└─────┘ └─────┘│weisung│
                └─────┘

Bedeutung:


Visuelles Beispiel: Bibliotheks-System

     O
    /|\
    / \
  Besucher
     │
     ├──► [Katalog durchsuchen]
     │
     △
     │
 ────┴────
 │       │
 O       O
/|\     /|\
/ \     / \
Gast  Mitglied
 │       │
 │       ├──► [Buch ausleihen]
 │       ├──► [Buch verlängern]
 │       └──► [Reservieren]


┌────────────────┐
│ Medien suchen  │ ← Allgemeiner Use Case
└────────────────┘
       △
       │
   ────┴──────────
   │       │     │
┌──────┐┌──────┐┌──────┐
│Buch  ││DVD   ││Zeit- │
│suchen││suchen││schrif-│
└──────┘└──────┘│ten   │
                │suchen│
                └──────┘

Code-Analogie

Generalisierung = Klassen-Vererbung:

// Allgemeine Klasse
class Benutzer {
    void produkteDurchsuchen() { ... }
    void profilBearbeiten() { ... }
}

// Spezialisierte Klassen
class Kunde extends Benutzer {  // Vererbung!
    void bestellen() { ... }
    void bewerten() { ... }
}

class Admin extends Benutzer {  // Vererbung!
    void produkteVerwalten() { ... }
    void nutzerVerwalten() { ... }
}

Generalisierung vs. Include vs. Extend

┌──────────────────────────────────────────────────┐
│           GENERALISIERUNG (IST-EIN)              │
└──────────────────────────────────────────────────┘

   [Bezahlen]
       △
       │ "ist ein"
   [Kreditkarte bezahlen]


┌──────────────────────────────────────────────────┐
│           INCLUDE (BENÖTIGT IMMER)               │
└──────────────────────────────────────────────────┘

[Bestellen] ────<<include>>────► [Bezahlen]
                   "benötigt"


┌──────────────────────────────────────────────────┐
│           EXTEND (OPTIONAL)                      │
└──────────────────────────────────────────────────┘

[Bestellen] ◄────<<extend>>──── [Gutschein einlösen]
                   "kann erweitert werden durch"
Beziehung Bedeutung Beispiel
Generalisierung "ist ein" Admin ist ein Benutzer
Include "benötigt immer" Bestellen benötigt Bezahlen
Extend "kann erweitert werden" Bestellen kann Gutschein haben

Praktisches Beispiel: Ticket-System

       O
      /|\
      / \
     Nutzer
       △
       │
   ────┴────────────
   │       │       │
   O       O       O
  /|\     /|\     /|\
  / \     / \     / \
 Kunde  Support  Manager
   │       │       │
   │       │       │
   ├──► [Ticket erstellen]
   │       │       │
   │       ├──► [Ticket bearbeiten]
   │       │       │
   │       │       ├──► [Statistiken ansehen]
   │       │       └──► [Team verwalten]
   │       │
   │       └──► [Ticket schließen]
   │
   └──► [Ticket status prüfen]

Vererbungs-Hierarchie:


Regeln für Generalisierung

Wichtige Regeln

  1. "Ist-ein"-Beziehung: Admin ist ein Benutzer
  2. Vererbung: Spezialisierung erbt alle Features
  3. Pfeil nach oben: Zum allgemeineren Element
  4. Erweiterung: Spezialisierung kann eigene Use Cases haben

Gute Verwendung:

✅ Kunde ist ein Benutzer
✅ Admin ist ein Benutzer
✅ Kreditkarte-Bezahlen ist eine Art von Bezahlen

Schlechte Verwendung:

❌ Bestellen ist ein Bezahlen (nein, Bestellen nutzt Bezahlen)
❌ Login ist ein Benutzer (nein, Login ist ein Use Case)

Zusammenfassung

Generalisierung

  • Symbol: Geschlossener, nicht ausgefüllter Pfeil △
  • Bedeutung: "Ist-ein"-Beziehung (Vererbung)
  • Pfeil: Von speziell zu allgemein (nach oben)
  • Bei Akteuren: Kunde ist ein Benutzer
  • Bei Use Cases: Kreditkarte-Bezahlen ist eine Art von Bezahlen
  • Vererbung: Spezielle erben alle Eigenschaften vom Allgemeinen

Merkhilfe

"Generalisierung" = "Allgemeiner machen" = Vererbung


Verwandte Konzepte