Extend And Include Use Case

In der Anforderungsanalyse für Softwaresysteme spielen Use Cases eine zentrale Rolle. Sie beschreiben, wie ein Benutzer mit dem System interagiert, um ein bestimmtes Ziel zu erreichen. Neben der grundlegenden Darstellung der Interaktion gibt es Mechanismen, um die Funktionalität von Use Cases zu erweitern oder optionale Verhaltensweisen zu integrieren: die Extend- und Include-Beziehungen.
Was sind Extend-Use-Cases?
Ein Extend-Use-Case (Erweiterungs-Use-Case) beschreibt ein optionales Verhalten, das unter bestimmten Bedingungen in einen Basis-Use-Case eingefügt werden kann. Die Beziehung "Extend" erweitert also die Funktionalität des Basis-Use-Cases. Wichtig ist, dass der Basis-Use-Case auch ohne die Ausführung des Extend-Use-Cases vollständig und sinnvoll ausführbar ist. Das heißt, der Extend-Use-Case stellt eine optionale Ergänzung dar.
Die Extend-Beziehung wird verwendet, wenn die Erweiterung nur unter bestimmten Bedingungen ausgelöst wird. Diese Bedingungen werden als Erweiterungspunkte (Extension Points) bezeichnet. Der Extend-Use-Case wird nur dann ausgeführt, wenn ein bestimmter Erweiterungspunkt im Basis-Use-Case erreicht wird und die zugehörige Bedingung erfüllt ist.
Must Read
Beispiel: Stellen Sie sich einen Basis-Use-Case "Produkt kaufen" in einem Online-Shop vor. Ein Extend-Use-Case könnte "Gutschein einlösen" sein. Der Basis-Use-Case "Produkt kaufen" ist auch ohne das Einlösen eines Gutscheins vollständig ausführbar. Der Extend-Use-Case "Gutschein einlösen" wird nur dann ausgeführt, wenn der Benutzer einen gültigen Gutscheincode eingibt und dieser im System akzeptiert wird. Der Erweiterungspunkt wäre hier beispielsweise die "Bezahlungsseite", und die Bedingung wäre "gültiger Gutscheincode eingegeben".
Was sind Include-Use-Cases?
Ein Include-Use-Case (Einschluss-Use-Case) beschreibt ein Verhalten, das notwendigerweise von einem oder mehreren Basis-Use-Cases ausgeführt werden muss. Die Beziehung "Include" schließt also die Funktionalität des Include-Use-Cases in den Basis-Use-Case ein. Im Gegensatz zu Extend-Use-Cases ist der Basis-Use-Case ohne die Ausführung des Include-Use-Cases nicht vollständig oder sinnvoll ausführbar. Der Include-Use-Case stellt somit einen obligatorischen Bestandteil dar.

Die Include-Beziehung wird verwendet, um wiederverwendbare Funktionalität zu modellieren, die in mehreren Use-Cases benötigt wird. Dadurch wird die Redundanz in der Use-Case-Beschreibung reduziert und die Wartbarkeit des Systems verbessert.
Beispiel: Stellen Sie sich einen Basis-Use-Case "Produkt kaufen" und einen weiteren Basis-Use-Case "Konto aufladen" in einem Online-Shop vor. Ein Include-Use-Case könnte "Benutzer authentifizieren" sein. Sowohl der Basis-Use-Case "Produkt kaufen" als auch "Konto aufladen" erfordern, dass der Benutzer authentifiziert wird, bevor die eigentliche Funktionalität ausgeführt werden kann. Der Include-Use-Case "Benutzer authentifizieren" wird also von beiden Basis-Use-Cases unbedingt benötigt.

Die Unterschiede im Überblick
Um die Unterschiede zwischen Extend und Include klarer zu machen, hier eine zusammenfassende Übersicht:
- Extend: Optionales Verhalten, wird nur unter bestimmten Bedingungen ausgeführt, Basis-Use-Case ist auch ohne Ausführung vollständig.
- Include: Obligatorisches Verhalten, muss immer ausgeführt werden, Basis-Use-Case ist ohne Ausführung nicht vollständig.
- Extend: Modelliert Erweiterungen der Funktionalität.
- Include: Modelliert wiederverwendbare Funktionalität.
Die Verwendung in der Praxis
Die korrekte Verwendung von Extend- und Include-Use-Cases ist entscheidend für eine klare und verständliche Anforderungsanalyse. Sie ermöglicht es, die Komplexität des Systems zu reduzieren und die Wartbarkeit zu verbessern. Ein falsch verwendeter Extend- oder Include-Use-Case kann hingegen zu Verwirrung und Fehlinterpretationen führen.

Wann Extend verwenden? Wenn Sie ein optionales Verhalten modellieren möchten, das unter bestimmten Bedingungen in einen Basis-Use-Case eingefügt werden kann. Denken Sie daran: Der Basis-Use-Case muss auch ohne die Ausführung des Extend-Use-Cases vollständig ausführbar sein.
Wann Include verwenden? Wenn Sie wiederverwendbare Funktionalität modellieren möchten, die von mehreren Use-Cases benötigt wird. Denken Sie daran: Der Basis-Use-Case darf ohne die Ausführung des Include-Use-Cases nicht vollständig ausführbar sein.
Durch die Anwendung von Extend- und Include-Use-Cases können Sie effizientere und wartungsfreundlichere Use-Case-Diagramme erstellen und somit eine solide Grundlage für die Softwareentwicklung legen.
