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:
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.
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.
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.
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.
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.
Schauen Sie sich das folgende einfache Telefonsystem an:
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:
-
Der Anrufer hebt den Hörer ab.
-
Das System lässt einen Wählton ertönen.
-
Der Anrufer wählt eine Ziffer.
-
Das System schaltet den Wählton ab.
-
Der Anrufer wählt den Rest der Nummer.
-
Das System analysiert die Ziffern und bestimmt die Netzadresse des Empfangsteilnehmers.
-
Das System analysiert die Ziffern und bestimmt die Position des Empfangsteilnehmers im Netz.
-
Das System bestimmt, ob eine virtuelle Verbindung zum Empfangsteilnehmer hergestellt werden kann.
-
Wenn eine virtuelle Verbindung hergestellt werden kann, lässt das System es beim Empfangsteilnehmer klingeln und
einen Freiton im Telefon des Anrufers ertönen.
-
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.
-
Das System legt einen Abrechnungsdatensatz an, zeichnet die Startzeit des Anrufs, die Endpunkte des Anrufs und
Kundeninformationen zum Anrufer auf.
-
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).
|