Richtlinie: Erweiterungsbeziehung
Die Erweiterungsbeziehung verbindet einen Erweiterungsanwendungsfall mit einem Basisanwendungsfall. Diese Richtlinie veranschaulicht, wie Sie diese Beziehung verwenden.
Beziehungen
Hauptbeschreibung

Erläuterung

Die Erweiterungsbeziehung verbindet einen Erweiterungsanwendungsfall mit einem Basisanwendungsfall. Sie definieren, wo im Basisanwendungsfall die Erweiterung eingefügt werden soll, indem Sie auf Erweiterungspunkte verweisen (Informationen hierzu finden Sie in der Beschreibung von Erweiterungspunkten auf der Seite Richtlinie für Arbeitsergebnis: Anwendungsfall). Der Erweiterungsanwendungsfall ist häufig abstrakt, muss es aber nicht sein.

Sie können die Erweiterungen für diverse Zwecke einsetzen:

  • Veranschaulichen, dass ein Teil eines Anwendungsfalls optionales oder möglicherweise optionales Systemverhalten darstellt. Auf diese Weise trennen Sie optionales Verhalten von verbindlichem Verhalten in Ihrem Modell.
  • Veranschaulichen, dass ein untergeordneter Ablauf nur unter bestimmten (manchmal außergewöhnlichen) Bedingungen ausgeführt wird, z. B. beim Auslösen eines Alarms.
  • Veranschaulichen, dass es möglicherweise Verhaltenssegmente gibt, von denen eines oder mehrere an einem Erweiterungspunkt in einem Basisanwendungsfall eingefügt werden können. Die eingefügten Verhaltenssegmente (und die Reihenfolge, in der sie eingefügt werden) richten sich nach der Interaktion mit Akteuren während der Ausführung des Basisanwendungsfalls.

Die Erweiterung ist bedingt, d. h . ihre Ausführung ist davon abhängig, was während der Ausführung des Basisanwendungsfalls passiert. Der Basisanwendungsfall steuert die Bedingungen für die Ausführung der Erweiterung nicht. Die Bedingungen werden in der Erweiterungsbeziehung beschrieben. Der Erweiterungsanwendungsfall kann auf die Attribute des Basisanwendungsfalls zugreifen und diese modifizieren. Der Basisanwendungsfall kann die Erweiterungen jedoch nicht sehen und auch nicht auf ihre Attribute zugreifen.

Der Basisanwendungsfall wird implizit durch die Erweiterungen modifiziert. Man könnte auch sagen, dass der Basisanwendungsfall ein modulares Framework definiert, dem Erweiterungen hinzugefügt werden können, aber der Basisanwendungsfall hat keine Kenntnis von den spezifischen Erweiterungen.

Der Basisanwendungsfall muss in sich abgeschlossen sein, d. h. er muss auch ohne Referenzen auf Erweiterungen verständlich und aussagefähig sein. Der Basisanwendungsfall ist jedoch nicht unabhängig von den Erweiterungen, da er ohne die Option, den Erweiterungen folgen zu können, nicht ausgeführt werden kann.

Beispiel:

Im Begleittext beschriebenes Diagramm

Die Anwendungsfälle "Telefonkonferenz einleiten" und "Anrufer-ID anzeigen" sind beide Erweiterungen des Basisanwendungsfalls "Anruf tätigen".

In einem Telefonsystem wird der primäre Service, der den Benutzern angeboten wird, durch den Anwendungsfall "Anruf tätigen" dargestellt. Beispiele für optionale Services sind:

  • Einen dritten Teilnehmer zu einem Anruf hinzufügen (Telefonkonferenz einleiten).

  • Dem Empfangsteilnehmer ermöglichen, die Identität des Anrufenden anzuzeigen (Anrufer-ID anzeigen).

Die für diese optionalen Services erforderlichen Verhalten können als Erweiterungsanwendungsfälle zum Basisanwendungsfall "Anruf tätigen" dargestellt werden. Dies ist eine korrekte Verwendung der Erweiterungsbeziehung: Da "Anruf tätigen" für sich verständlich ist, müssen Sie die Beschreibungen der Erweiterungsanwendungsfälle nicht lesen, um den primären Zweck des Basisanwendungsfalls zu verstehen. Die Erweiterungen haben hier optionalen Charakter.

Wenn der Basisanwendungsfall und der Anwendungsfall "Basis plus Erweiterung" explizit instanzierbar sein müssen oder wenn Sie möchten, dass der Zusatz Verhalten im Basisanwendungsfall modifiziert, müssen Sie stattdessen eine Anwendungsfallgeneralisierung verwenden (siehe Richtlinie für Arbeitsergebnis: Anwendungsfallgeneralisierung).

Der Erweiterungsanwendungsfall kann sich aus einem oder mehreren Einfügesegmenten zusammensetzen, in die jeweils alternative Pfade integriert sein können. Die Einfügesegmente modifizieren das Verhalten des Basisanwendungsfalls sukzessiv. Jedes Einfügesegment in einem Erweiterungsanwendungsfall kann an einer separaten Position im Basisanwendungsfall eingefügt werden. Dies bedeutet, dass die Erweiterungsbeziehung eine Liste mit Referenzen auf Erweiterungspunkte hat. Die Anzahl der Referenzen in dieser Liste entspricht der Anzahl der Einfügesegmente im Erweiterungsanwendungsfall. Jeder Erweiterungspunkt muss im Basisanwendungsfall definiert werden.

Ein Basisanwendungsfall setzt sich aus mehreren Erweiterungsbeziehungen zusammen, d. h. eine Anwendungsfallinstanz kann während seiner Lebensdauer mehreren Erweiterungen folgen. Ein Erweiterungsanwendungsfall kann auf mehrere Basisanwendungsfälle angewendet werden, aber dies impliziert keine Abhängigkeit zwischen den Basisanwendungsfällen. Es kann sogar mehrere Erweiterungsbeziehungen zwischen demselben Erweiterungsanwendungsfall und Basisanwendungsfall geben, sofern die Erweiterung an unterschiedlichen Positionen im Basisanwendungsfall eingefügt wird. Dies bedeutet, dass unterschiedliche Erweiterungsbeziehungen unterschiedliche Erweiterungspunkte im Basisanwendungsfall referenzieren müssen. In einer Erweiterungs-, Einschluss- oder Generalisierungsbeziehung kann ein Erweiterungsanwendungsfall selbst kann der Basisanwendungsfall sein. Beispielsweise können Erweiterungsanwendungsfälle andere Erweiterungsanwendungsfälle in verschachtelter Weise erweitern.

Erweiterung ausführen

Wenn eine Anwendungsfallinstanz, die den Basisanwendungsfall ausführt, eine Position im Basisanwendungsfall erreicht, an der ein Erweiterungspunkt definiert ist, wird die Bedingung in der zugehörigen Erweiterungsbeziehung ausgewertet. Wenn die Bedingung erfüllt ist oder keine Bedingung definiert ist, folgt die Anwendungsfallinstanz der Erweiterung (bzw. dem Einfügesegment in der Erweiterung, das dem Erweiterungspunkt entspricht.). Falls die Bedingung der Erweiterungsbeziehung nicht erfüllt ist, wird die Erweiterung nicht ausgeführt.

Der Erweiterungsanwendungsfall kann wie jeder andere Anwendungsfall einen Basisereignisablauf und alternative Ereignisabläufe haben (Informationen hierzu finden Sie in der Beschreibung der Struktur von Ereignisabläufen in Richtlinie Arbeitsergebnis: Anwendungsfall). Welchen Pfad die Anwendungsfallinstanz in der Erweiterung exakt verfolgt, richtet sich danach, was zuvor während der Ausführung passiert ist (der Zustand der Anwendungsfallinstanz) und was bei der Interaktion mit Akteuren passiert, während die Erweiterung ausgeführt wird. Nachdem die Anwendungsfallinstanz die Erweiterung ausgeführt hat, nimmt die Anwendungsfallinstanz die Ausführung des Basisanwendungsfalls an der Stelle wieder auf, an der sie ihn zuvor verlassen hat.

Im Begleittext beschriebenes Diagramm

Eine Anwendungsfallinstanz, die einem Basisanwendungsfall und seiner Erweiterung folgt.

Ein Erweiterungsanwendungsfall kann mehrere Einfügesegmente haben, die jeweils zu einem eigenen Erweiterungspunkt im Basisanwendungsfall gehören. In diesem Fall nimmt die Anwendungsfallinstanz die Ausführung des Basisanwendungsfalls wieder auf und fährt mit dem nächsten Erweiterungspunkt fort, der in der Erweiterungsbeziehung spezifiziert ist. Dann wird das nächste Einfügesegment des Erweiterungsanwendungsfalls ausgeführt. Dieser Vorgang wird so oft wiederholt, bis das letzte Einfügesegment ausgeführt worden ist. Beachten Sie, dass die Bedingung für die Erweiterungsbeziehung nur am ersten Erweiterungspunkt geprüft wird. Wenn die Bedingung erfüllt ist, muss die Anwendungsfallinstanz alle Einfügesegmente ausführen.

Im Begleittext beschriebenes Diagramm

Eine Anwendungsfallinstanz, die einem Basisanwendungsfall und einem Erweiterungsanwendungsfall mit zwei Einfügesegmenten folgt.

Die Multiplizität der Erweiterungsbeziehung beschränkt die Anzahl der Wiederholungen der gesamten Erweiterung. Es wird immer die gesamte Erweiterung wiederholt (begrenzt durch die Multiplizität) und nicht nur ein Einfügesegment.

Erweiterungsbeziehung dokumentieren Seitenanfang

Beschreiben Sie die Bedingung der Erweiterung mit den Attributen des Basisanwendungsfalls. Sie können die Bedingung auch weglassen. In diesem Fall wird die Erweiterung immer ausgeführt.

Jede Erweiterungsbeziehung hat eine Liste mit Referenzen auf Erweiterungspunkte (einen oder mehrere) im Basisanwendungsfall. Die Erweiterungspunkte werden nach Namen referenziert. Wenn der Erweiterungsanwendungsfall mehrere Einfügesegmente hat, müssen Sie angeben, welches Segment welchem Erweiterungspunkt entspricht. Außerdem müssen Sie angeben, welche Schritte oder untergeordneten Abläufe des Erweiterungsanwendungsfalls zu jedem Einfügesegment gehören.

Beispiel:

In einem Telefonsystem kann der Anwendungsfall "Anruf tätigen" mit dem abstrakten Anwendungsfall "Anruferidentität anzeigen" erweitert werden. Dieser optionale Service, häufig auch "Anrufer-ID" genannt, kann vom empfangenden Teilnehmer vorausgesetzt werden. Eine Beschreibung der Erweiterungsbeziehung zwischen "Anrufer-ID" anzeigen und "Anruf tätigen" könnte wie folgt aussehen:

Bedingung: Empfangsteilnehmer muss den Service "Anrufer-ID" angefordert haben.

Erweiterungspunkt(e): Identität anzeigen - Vollständigen Anwendungsfall "Anrufer-ID" einfügen.

Sie können der Erweiterungsbeziehung eine Multiplizität zuweisen. Wenn Sie keine Multiplizität angeben, wird davon ausgegangen, dass die Multiplizität eins ist.

Verwendungsbeispiel

Schauen Sie sich das folgende einfache Telefonsystem an:

Im Begleittext beschriebenes Diagramm

Der abstrakte Anwendungsfall "Telefonkonferenz leiten" ist eine Erweiterung des Anwendungsfalls "Anruf tätigen".

In diesem Modell wird eine einfache Darstellung des Basisanrufservice im mittlerweile bekannten Telefonsystem im Anwendungsfall "Anruf tätigen" beschrieben. Eine schrittweise Beschreibung des Basisereignisablaufs könnte wie folgt aussehen:

  1. Der Anrufer hebt den Hörer ab.
  2. Das System lässt einen Wählton ertönen.
  3. Der Anrufer wählt eine Ziffer.
  4. Das System schaltet den Wählton ab.
  5. Der Anrufer wählt den Rest der Nummer.
  6. Das System analysiert die Ziffern und bestimmt die Netzadresse des Empfangsteilnehmers.
  7. Das System analysiert die Ziffern und bestimmt die Position des Empfangsteilnehmers im Netz.
  8. Das System bestimmt, ob eine virtuelle Verbindung zum Empfangsteilnehmer hergestellt werden kann.
  9. Wenn eine virtuelle Verbindung hergestellt werden kann, lässt das System es beim Empfangsteilnehmer klingeln und einen Freiton im Telefon des Anrufers ertönen.
  10. Wenn der Empfangsteilnehmer das Gespräch entgegen nimmt, schaltet das System den Freiton beim Anrufer und den Klingelton beim Empfangsteilnehmer ab und stellt die virtuelle Verbindung her.
  11. Das System legt einen Abrechnungsdatensatz an, zeichnet die Startzeit des Anrufs, die Endpunkte des Anrufs und Kundeninformationen zum Anrufer auf.
  12. Das Gespräch wird für eine gewisse Dauer geführt. Wenn der Anrufer oder der Empfangsteilnehmer die Verbindung trennt, zeichnet das System die Endzeit auf und gibt alle Ressourcen wieder frei, die für die Unterstützung der virtuellen Verbindung erforderlich sind. Damit ist der Anwendungsfall beendet.

Wenn Sie diesem System Funktionalität hinzufügen möchten, die es dem Anrufer oder dem Empfangsteilnehmer erlaubt, einen dritten Teilnehmer zu dem Gespräch einzuladen ("Konferenz"), müssen Sie das Verhalten dem Ereignisablauf hinzufügen. Eine Alternative und gleichzeitig auch die erste, die Sie in Erwägung ziehen sollten, besteht darin, die Unterschiede direkt in den Anwendungsfall "Anruf tätigen" einzufügen. Die Unterschiede können mit alternativen Ereignisabläufen modelliert werden. Informationen hierzu finden Sie in Richtlinie für Arbeitsergebnis: Anwendungsfall. Diese Lösung funktioniert bei den meisten Zusätzen, wenn die hinzugefügte Funktionalität die ursprüngliche Bedeutung des Anwendungsfalls nicht missverständlich oder unkenntlich macht. Die andere Alternative ist, die Unterschiede in einen abstrakten Erweiterungsanwendungsfall "Telefonkonferenz leiten" auszulagern, der den Basisanwendungsfall erweitert.

Der Anwendungsfall "Anruf tätigen" hätte den folgenden Zusatz:

Erweiterungspunkte:
Telefonkonferenz
findet nach Schritt 11 statt.

Der Erweiterungsanwendungsfall "Telefonkonferenz leiten" könnte wie folgt beschrieben werden:

Anwendungsfall "Telefonkonferenz leiten"
Dieser Anwendungsfall erweitert den Anwendungsfall "Anruf tätigen". Er wird am Erweiterungspunkt "Telefonkonferenz" eingefügt.
Basisablauf:
1. Der Anrufer drückt die Auflege-, Verbindungs- oder R-Taste.
2. Das System generiert 3 kurze Signaltöne zur Bestätigung.
3..12.<Diese Schritte sind identisch mit den Schritten 3..12 im Basisanwendungsfall.>
13. Der Anrufer wird erneut mit dem Empfangsteilnehmer aus dem Anwendungsfall "Anruf tätigen" verbunden.

Die Gemeinsamkeit der Schritte 3..12 mit dem Basisanwendungsfall ist unerwünscht. Eine Möglichkeit, dieses Problem zu lösen, besteht darin, den gemeinsamen Teil in einen Einschlussanwendungsfall zu extrahieren (siehe Richtlinie für Arbeitsergebnis: Einschlussbeziehung).