In Lektion 4.5 hast du gelernt, dass «include» einen Anwendungsfall immer mitlaufen lässt. Doch manchmal soll ein Anwendungsfall nur unter bestimmten Bedingungen ergänzt werden – dafür gibt es «extend».
Ein Anwendungsfall kann einen anderen Anwendungsfall bedingt erweitern. Der erweiternde Anwendungsfall läuft nur dann ab, wenn eine bestimmte Bedingung erfüllt ist – im Normalfall bleibt er außen vor. Anders als bei include ist die Erweiterung damit die Ausnahme, nicht die Regel.
Auch «extend» wird als gestrichelter Pfeil gezeichnet – aber in umgekehrter Richtung zu include: Der Pfeil zeigt vom erweiternden Anwendungsfall zum Basis-Anwendungsfall, den er unter Bedingungen ergänzt.
Der Pfeil zeigt von oben (erweiternd: „Notfallbehandlung veranlassen“) nach unten (Basis: „Gesundheitscheck durchführen“) – genau umgekehrt zu include. Die Pfeilspitze berührt hier den Basis-Anwendungsfall.
| Merkmal | «include» | «extend» |
|---|---|---|
| Häufigkeit | Immer | Nur unter Bedingung |
| Pfeilrichtung | Basis → Eingebundener Fall | Erweiternder Fall → Basis |
| Charakter | Pflicht | Ausnahme |
Beim Gesundheitscheck läuft meistens nichts Außergewöhnliches ab. Nur wenn eine gesundheitliche Auffälligkeit festgestellt wird, kommt zusätzlich „Notfallbehandlung veranlassen“ ins Spiel. Genau diese Bedingtheit macht «extend» zur richtigen Wahl: „Notfallbehandlung veranlassen“ erweitert „Gesundheitscheck durchführen“, aber nur unter der Bedingung „gesundheitliche Auffälligkeit festgestellt“.
Include und extend werden oft verwechselt, weil beide gestrichelte Pfeile sind. Der entscheidende Unterschied liegt in Pfeilrichtung und Bedeutung: Bei include zeigt der Pfeil zum eingebundenen (immer ablaufenden) Fall, bei extend zeigt der Pfeil zum Basis-Fall, der (manchmal) erweitert wird. Wer beide Pfeile einfach gleich herum zeichnet, kehrt die Bedeutung versehentlich um.
Damit lässt sich der Unterschied klar auf den Punkt bringen:
«include» heißt „immer dabei“, «extend» heißt „nur manchmal, unter Bedingung“ – und die Pfeile zeigen dabei in genau entgegengesetzte Richtungen.
Bevor es mit der letzten Notation – der Generalisierung – weitergeht, wendest du include und extend in einer eigenständigen Übung an: dem klassischen Beispiel des Geldautomaten.