wake-up-neo.com

Was ist der Unterschied zwischen Include- und Extend-In-Use-Case-Diagrammen?

Was ist der Unterschied zwischen include und extend in einem Anwendungsfalldiagramm ?

346
sevugarajan

Erweitern wird verwendet, wenn ein Anwendungsfall Schritte zu einem anderen erstklassigen Anwendungsfall hinzufügt.

Stellen Sie sich zum Beispiel vor, dass "Bargeld abheben" ein Anwendungsfall eines Geldautomaten ist. "Gebühr festsetzen" würde "Bargeld abheben" verlängern und den bedingten "Verlängerungspunkt" beschreiben, der instanziiert wird, wenn der Geldautomatenbenutzer nicht bei der Bank des Geldautomaten ein Bankkonto hat . Beachten Sie, dass der grundlegende Anwendungsfall "Bargeld abheben" für sich allein steht, ohne die Erweiterung.

Include wird verwendet, um Anwendungsfallfragmente zu extrahieren, die in mehreren Anwendungsfällen dupliziert wurden. Der mitgelieferte Anwendungsfall kann nicht alleine stehen und der ursprüngliche Anwendungsfall ist ohne den mitgelieferten nicht vollständig. Dies sollte sparsam und nur in Fällen verwendet werden, in denen die Vervielfältigung erheblich ist und beabsichtigt ist (und nicht zufällig).

Beispielsweise ist der Ereignisfluss, der zu Beginn jedes ATM-Anwendungsfalls auftritt (wenn der Benutzer seine ATM-Karte einlegt, seine PIN eingibt und das Hauptmenü angezeigt wird), ein guter Kandidat für ein Include.

240
Doug Knesek

Dies mag umstritten sein, aber das "Einschließen ist immer und Ausdehnen ist manchmal" ist ein sehr verbreitetes Missverständnis, das jetzt fast als de-facto-Bedeutung übernommen wurde. Hier ist ein korrekter Ansatz (aus meiner Sicht und mit Jacobson, Fowler, Larmen und 10 anderen Referenzen verglichen).

Beziehungen sind Abhängigkeiten

Der Schlüssel zum Einbeziehen und Erweitern von Use-Case-Beziehungen besteht darin, zu erkennen, dass der gepunktete Pfeil zwischen Use-Cases wie in der restlichen UML eine Abhängigkeitsbeziehung ist. Ich verwende die Begriffe "Basis", "Eingeschlossen" und "Erweitern", um auf die Anwendungsfallrollen zu verweisen.

umfassen

Ein Basisanwendungsfall ist abhängig von den enthaltenen Anwendungsfällen. Ohne sie ist der Basis-Use-Case unvollständig, da die enthaltenen Use-Cases Teilsequenzen der Interaktion darstellen, die manchmal immer OR auftreten können. (Dies steht im Widerspruch zu einem weit verbreiteten Irrtum, wonach Ihr Anwendungsfall immer im Hauptszenario und manchmal in alternativen Abläufen auftritt. Es hängt einfach davon ab, was Sie als Hauptszenario auswählen. Anwendungsfälle können leicht so umstrukturiert werden, dass sie einen anderen Ablauf darstellen als Hauptszenario und dies sollte keine Rolle spielen).

In der bewährten Methode der Einwegabhängigkeit kennt der Basis-Anwendungsfall den enthaltenen Anwendungsfall (und bezieht sich auf ihn), der enthaltene Anwendungsfall sollte den Basis-Anwendungsfall jedoch nicht kennen. Aus diesem Grund können eingeschlossene Anwendungsfälle sein: a) Basisanwendungsfälle für sich genommen und b) von einer Reihe von Basisanwendungsfällen geteilt.

erweitern

Der erweiterte Anwendungsfall ist vom Basisanwendungsfall abhängig. Es erweitert buchstäblich das im Basisanwendungsfall beschriebene Verhalten. Der Basisanwendungsfall sollte ein eigenständiger, voll funktionsfähiger Anwendungsfall sein ("natürlich inklusive"), ohne die zusätzliche Funktionalität des erweiterten Anwendungsfalls.

Erweiterte Anwendungsfälle können in verschiedenen Situationen verwendet werden:

  1. Der Basisanwendungsfall stellt die Funktionalität eines Projekts dar, die erforderlich ist, während der erweiterte Anwendungsfall ein optionales Verhalten darstellt (sollte/könnte/möchte). Hier ist der Begriff optional relevant - optional, ob erstellt/geliefert werden soll, anstatt optional, ob er manchmal als Teil der Basis-Use-Case-Sequenz ausgeführt wird.
  2. In Phase 1 können Sie den Basisanwendungsfall bereitstellen, der zu diesem Zeitpunkt die Anforderungen erfüllt, und in Phase 2 werden zusätzliche Funktionen hinzugefügt, die im erweiterten Anwendungsfall beschrieben werden. Dies kann Sequenzen enthalten, die immer oder manchmal ausgeführt werden, nachdem Phase 2 geliefert wurde (wiederum entgegen gängiger Missverständnisse).
  3. Es kann verwendet werden, um Teilsequenzen des Basisanwendungsfalls zu extrahieren, insbesondere wenn sie ein „außergewöhnliches“ komplexes Verhalten mit eigenen alternativen Flüssen darstellen.

Ein wichtiger Aspekt, der berücksichtigt werden muss, ist, dass der erweiterte Anwendungsfall das Verhalten an mehreren Stellen im Flow des Basis-Anwendungsfalls einfügen kann, nicht nur an einer einzelnen Stelle, wie dies bei einem eingeschlossenen Anwendungsfall der Fall ist. Aus diesem Grund ist es sehr unwahrscheinlich, dass ein erweiterter Anwendungsfall geeignet ist, mehr als einen Basisanwendungsfall zu erweitern.

In Bezug auf die Abhängigkeit hängt der erweiterte Anwendungsfall vom Basisanwendungsfall ab und ist wiederum eine Einwegabhängigkeit, d. H. Der Basisanwendungsfall benötigt in der Sequenz keinen Verweis auf den erweiterten Anwendungsfall. Das bedeutet nicht, dass Sie die Erweiterungspunkte nicht demonstrieren oder dem erweiterten Anwendungsfall an anderer Stelle in der Vorlage einen X-Ref hinzufügen können, aber der Basis-Anwendungsfall muss in der Lage sein, ohne den erweiterten Anwendungsfall zu arbeiten.

ZUSAMMENFASSUNG

Ich hoffe, ich habe gezeigt, dass das verbreitete Missverständnis von "beinhaltet immer, erstreckt sich manchmal" entweder falsch oder bestenfalls simpel ist. Diese Version ist tatsächlich sinnvoller, wenn Sie alle Probleme in Bezug auf die Ausrichtung der Pfeile berücksichtigen, die das Missverständnis aufwirft - im richtigen Modell ist es nur eine Abhängigkeit und ändert sich möglicherweise nicht, wenn Sie den Inhalt des Anwendungsfalls überarbeiten.

104
Julian C

Ich benutze dies oft, um mich an die beiden zu erinnern:

Mein Anwendungsfall: Ich gehe in die Stadt.

beinhaltet -> Auto fahren

ausfahren -> tanken

"Tanken Sie Benzin" ist möglicherweise nicht immer erforderlich, kann jedoch optional auf der Grundlage der im Auto verbleibenden Benzinmenge erforderlich sein. "Autofahren" ist eine Grundvoraussetzung, daher schließe ich ein.

70
skipy

Anwendungsfälle werden verwendet, um das Verhalten zu dokumentieren, z. beantworte diese Frage.

answer the question use case

Ein Verhalten erweitert ein anderes, wenn es zusätzlich zu dem Verhalten, aber nicht notwendigerweise zu diesem gehört, z. Erforsche die Antwort.

Beachten Sie auch, dass die Suche nach der Antwort wenig Sinn macht, wenn Sie nicht versuchen, die Frage zu beantworten.

research the answer extend

Ein Verhalten ist in einem anderen enthalten, wenn es Teil des Einschlussverhaltens ist, z. Zum Stapelaustausch anmelden.

login to stack exchange include

Zur Verdeutlichung gilt die Abbildung nur, wenn Sie hier im Stapelüberlauf antworten wollen:).

Dies sind die technischen Definitionen aus ML 2.5 Seite 671-672.

Ich habe hervorgehoben, was meiner Meinung nach wichtige Punkte sind.

Erweitert

Ein Extend ist eine Beziehung von einem erweiterten UseCase (der Erweiterung) zu einem erweiterten UseCase (der erweiterte UseCase), der angibt, wie und wann das in dem erweiterten UseCase definierte Verhalten in das in dem erweiterten UseCase definierte Verhalten eingefügt werden kann. Die Erweiterung erfolgt an einem oder mehreren spezifischen Erweiterungspunkten, die im erweiterten UseCase definiert sind.

Extend soll verwendet werden, wenn es ein zusätzliches Verhalten gibt, das möglicherweise bedingt zu dem in definierten Verhalten hinzugefügt werden sollte ein oder mehrere UseCases.

Der erweiterte UseCase wird unabhängig vom erweiterten UseCase definiert und ist unabhängig vom Erweiterung von UseCase . Andererseits definiert der erweiterbare UseCase in der Regel ein Verhalten, das nicht unbedingt für sich selbst aussagekräftig sein muss . Stattdessen definiert der erweiterte UseCase eine Reihe modularer Verhaltensinkremente, die die Ausführung des erweiterten UseCase unter bestimmten Bedingungen verbessern.

...

Beinhaltet

Include ist eine DirectedRelationship zwischen zwei UseCases, die angibt, dass das Verhalten des enthaltenen UseCase (der Zusatz) wird in das Verhalten des Include-UseCase (des IncludingCase) eingefügt. Es ist auch eine Art NamedElement, sodass es im Kontext seines Besitzers UseCase (also includeCase) einen Namen haben kann. Das Einschließen von UseCase hängt möglicherweise von den Änderungen ab, die durch das Ausführen des enthaltenen UseCase vorgenommen wurden. Der enthaltene UseCase muss verfügbar sein, damit das Verhalten des enthaltenen UseCase vollständig beschrieben werden kann.

Die Include-Beziehung soll verwendet werden, wenn es gemeinsame Teile des Verhaltens von zwei oder mehr UseCases gibt. Dieser gemeinsame Teil wird dann in einen separaten UseCase extrahiert, um von allen Basis-UseCases eingeschlossen zu werden, die diesen Teil gemeinsam haben . Da die Include - Beziehung in erster Linie zur Wiederverwendung gemeinsamer Teile verwendet wird, ist das, was in einer - Basis verbleibt, in der Regel nicht vollständig , sondern abhängig von der eingeschlossene Teile sind aussagekräftig. Dies spiegelt sich in der Richtung der Beziehung wider und zeigt an, dass der Basis-UseCase von der Addition abhängt, aber nicht umgekehrt.

...

48
user1874524

Ich halte es für wichtig, die Absicht von Includes und Extenders zu verstehen:

"Die Include-Beziehung ist für Wiederverwendung Verhalten bestimmt, das von einem anderen Anwendungsfall modelliert wird, wohingegen die Extend-Beziehung für Hinzufügen Teile zu bestehenden Anwendungsfällen bestimmt ist - sowie zur Modellierung optional von Systemdiensten "(Overgaard und Palmkvist, Use Cases: Patterns and Blueprints. Addison-Wesley, 2004).


Das liest sich für mich so:

Include = Wiederverwendung der Funktionalität (d. H. Die enthaltene Funktionalität wird verwendet oder könnte an anderer Stelle im System verwendet werden). Include bezeichnet daher eine Abhängigkeit von einem anderen Anwendungsfall.

Erweitert = Hinzufügen (Nicht-Wiederverwenden) und Auch jede Optional Funktionalität. Extends kann daher eines von zwei Dingen bezeichnen:
1. Hinzufügen von ne Funktionen zu einem Anwendungsfall (optional oder nicht)
2. any optional Use Cases (vorhanden oder nicht vorhanden).

Zusammenfassung:
Include = Wiederverwendung von Funktionalität
Erweitert = neue und/oder optionale Funktionalität

Sie werden am häufigsten die zweite Verwendung (d. H. Optionale Funktionalität) von extend finden, denn wenn die Funktionalität nicht optional ist, wird sie meistens in den Anwendungsfall selbst eingebaut, anstatt eine Erweiterung zu sein. Zumindest war das meine Erfahrung. (Julian C weist darauf hin, dass Sie manchmal die erste Verwendung (d. H. Das Hinzufügen neuer Funktionen) von extend sehen, wenn sich ein Projekt in der zweiten Phase befindet.).

21
jimasp

Lassen Sie uns das klarer machen. Wir verwenden include jedes Mal, wenn wir die Tatsache zum Ausdruck bringen möchten, dass die Existenz eines Falls von der Existenz eines anderen abhängt.

BEISPIELE

Ein Benutzer kann erst dann online einkaufen, wenn er sich in seinem Konto angemeldet hat. Mit anderen Worten, er kann erst einkaufen, wenn er sich in seinem Konto angemeldet hat.

Ein Benutzer kann nicht von einer Site herunterladen, bevor das Material hochgeladen wurde. Ich kann also nicht herunterladen, wenn noch nichts hochgeladen wurde.

Verstehst du es?

Es geht um bedingte Konsequenzen. Ich kann das nicht tun, wenn ich das vorher nicht getan habe.

Zumindest denke ich, dass dies die richtige Art ist, wie wir Include verwenden. Ich denke eher, dass das Beispiel mit Laptop und Garantie von rechts oben am überzeugendsten ist!

15
Alin Andrei

Ich denke, was msdn erklärte hier sind recht einfach zu verstehen.

Include [5]

Ein Include-Use-Case ruft den enthaltenen auf oder ruft ihn auf. Die Einbeziehung wird verwendet, um zu zeigen, wie ein Anwendungsfall in kleinere Schritte unterteilt wird. Der mitgelieferte Anwendungsfall befindet sich am Ende der Pfeilspitze.

Erweitern [6]

In der Zwischenzeit werden durch einen erweiterten Anwendungsfall Ziele und Schritte zum erweiterten Anwendungsfall hinzugefügt. Die Erweiterungen funktionieren nur unter bestimmten Bedingungen. Der erweiterte Anwendungsfall befindet sich am Ende der Pfeilspitze.

enter image description here

13
Etic

Vereinfachen,

für include

  1. Wenn der Basis-Use-Case ausgeführt wird, wird der enthaltene Use-Case ausgeführt JEDES MAL.
  2. Der Basisanwendungsfall erforderte die Vervollständigung des enthaltenen Verwendungsfalls, um vervollständigt zu werden.

ein typisches Beispiel: zwischen Login und Passwort bestätigen

(Login) --- << include >> ---> (Passwort bestätigen)

damit der Anmeldevorgang erfolgreich ist, muss auch "Passwort bestätigen" erfolgreich sein.


für extend

  1. Wenn der Basisanwendungsfall ausgeführt wird, wird der erweiterte Anwendungsfall nur ausgeführt MANCHMAL
  2. Der erweiterte Anwendungsfall tritt nur auf, wenn bestimmte Kriterien erfüllt sind.

ein typisches beispiel: zwischen login und show error message (nur manchmal passiert)

(Login) < --- << Erweitern >> --- (Fehlermeldung anzeigen)

"show error message" tritt nur manchmal auf, wenn der Anmeldevorgang fehlgeschlagen ist.

12
bohbian

wenn es dann Voraussetzungen für einen Usecase gibt, wählen Sie include.

für Fälle, in denen eine Authentifizierung vorliegt, das Worst-Case-Szenario oder die Option "Erweitern".

beispiel: Für einen Anwendungsfall zur Beantragung einer Zulassung, eines Termins oder einer Kartenreservierung MÜSSEN SIE EIN FORMULAR AUSFÜLLEN (Registrierungs- oder Feedbackformular).

beispiel: Für einen Anwendungsfall, bei dem die Anmeldung oder Anmeldung in Ihrem Konto überprüft wird, ist Ihre Authentifizierung ein Muss. Denken Sie auch an die schlimmsten Fälle Wo kommt Extend zum Spielen ...

verwenden Sie die Diagramme nicht zu häufig und erweitern Sie sie nicht.

HALTEN SIE ES EINFACH DUMM !!!

8
Vinay Narang

"Include" wird verwendet, um den Basisanwendungsfall zu erweitern, und es ist eine Muss-Bedingung, d. H. Der eingeschlossene Anwendungsfalllauf muss erfolgreich ausgeführt werden, um die Basisanwendung abzuschließen.

z.B. Stellen Sie sich einen Fall von E-Mail-Service vor. Hier ist "Anmelden" ein enthaltener Anwendungsfall, der ausgeführt werden muss, um eine E-Mail zu senden (Basisanwendungsfall).

"Ausschließen" ist hingegen ein optionaler Anwendungsfall, der den Basisanwendungsfall erweitert. Der Basisanwendungsfall kann erfolgreich ausgeführt werden, auch ohne den erweiterten Anwendungsfall aufzurufen.

z.B. Betrachten Sie "Laptop Purchase" als Basisanwendungsfall und "Additional Warranty" als erweiterten Anwendungsfall. Hier können Sie den Basisanwendungsfall "Laptop Purchase" auch ohne zusätzliche Garantie ausführen.

6
sarbjit

Beachten Sie auch die UML-Version: << uses >> und << includes >> wurden seit langem durch << include >> ersetzt und << extend >> durch << extend> > UND Verallgemeinerung.
Für mich ist das oft der irreführende Punkt: Als Beispiel handelt es sich bei Stephanies Post und Link um eine alte Version:

Bei der Bezahlung eines Artikels können Sie wählen, ob Sie per Nachnahme, Paypal oder Kreditkarte bezahlen möchten. Dies sind alles Alternativen zum Anwendungsfall "Artikel bezahlen". Ich kann jede dieser Optionen auswählen, je nach meinen Vorlieben.

Tatsächlich gibt es keine Alternative zu "Artikel bezahlen"! In der heutigen UML ist "Pay on Delivery" eine Erweiterung, und "Pay using Paypal"/"Pay by Card" sind Spezialisierungen.

6
Sylvain H.

Dies ist eine großartige Ressource mit einer großartigen Erklärung: Was ist im Anwendungsfall enthalten?Was ist im Anwendungsfall erweitern?

Der erweiterte Anwendungsfall definiert normalerweise das optionale Verhalten. Es ist unabhängig vom erweiterten Anwendungsfall

Include, das verwendet wird, um gemeinsame Teile des Verhaltens von zwei oder mehr Anwendungsfällen zu extrahieren

5
chameleon

Erweitert wird verwendet, wenn Sie verstehen, dass Ihr Anwendungsfall zu komplex ist. So extrahieren Sie die komplexen Schritte in ihre eigenen "Erweiterungs" -Anwendungsfälle.

Includes wird verwendet, wenn in zwei Anwendungsfällen ein allgemeines Verhalten auftritt. So abstrahieren Sie das gemeinsame Verhalten in einem separaten "abstrakten" Anwendungsfall.

(Referenz: Jeffrey L. Whitten, Lonnie D. Bentley, Systemanalyse- und Entwurfsmethoden, McGraw-Hill/Irwin, 2007)

4
mrmashal

Sowohl <include> als auch <extend> sind von der Basisklasse abhängig, aber <extend> ist optional, dh es wird von der Basisklasse abgeleitet, kann jedoch aus Benutzersicht verwendet werden oder auch nicht benutzt.

<include> ist in der Basisklasse enthalten, d. H. Es ist obligatorisch, <include> in Ihrem Anwendungsfall zu verwenden, da dies sonst als unvollständig angesehen wird.

zB:

Im Geldautomatenbau (nach Anwendersicht):

1: Auszahlung, Bareinzahlung und Überprüfung des Kontos fallen unter <extend>, da es vom Benutzer abhängt, ob eine Auszahlung oder eine Einzahlung oder ein Scheck erfolgen soll. Dies sind optionale Dinge, die der Benutzer tut.

2: "PIN eingeben, Karte platzieren, Karte entfernen" Dies sind die Dinge, die unter <include> fallen, da der Benutzer eine Karte platzieren muss und sollte und zur Bestätigung eine gültige PIN eingeben muss.

4

Die Beziehung include ermöglicht es einem Anwendungsfall, die Schritte eines anderen Anwendungsfalls einzuschließen.

Angenommen, Sie haben ein Amazon-Konto und möchten eine Bestellung überprüfen. Es ist unmöglich, die Bestellung zu überprüfen, ohne sich zuerst in Ihrem Konto anzumelden. Also der Ablauf der Ereignisse möchte so ...

enter image description here

Die Beziehung extend wird verwendet, um dem Ablauf eines Anwendungsfalls einen zusätzlichen Schritt hinzuzufügen, der normalerweise ein optionaler Schritt ist ...

enter image description here

Stellen Sie sich vor, wir sprechen immer noch über Ihr Amazon-Konto. Nehmen wir an, der Basisfall ist Order und der Anwendungsfall für die Erweiterung ist Amazon Prime . Der Benutzer kann wählen, den Artikel nur regelmäßig zu bestellen, oder er hat die Option, Amazon Prime auszuwählen, um sicherzustellen, dass seine Bestellung zu höheren Kosten schneller eintrifft.

Beachten Sie jedoch, dass der Benutzer Amazon Prime nicht auswählen muss. Dies ist nur eine Option. Er kann diesen Anwendungsfall ignorieren.

3
Bolboa

Ich empfehle dies nicht, um sich an die beiden zu erinnern:

Mein Anwendungsfall: Ich gehe in die Stadt.

beinhaltet -> Auto fahren

ausfahren -> tanken

Ich würde lieber Sie verwenden: Mein Anwendungsfall: Ich gehe in die Stadt.

verlängert -> Autofahren

beinhaltet -> tanken

Mir wurde beigebracht, dass eine erweiterte Beziehung das Verhalten einer Basisklasse fortsetzt. Die Basisklassenfunktionalitäten müssen vorhanden sein. Die Include-Beziehung hingegen ähnelt Funktionen, die aufgerufen werden können. Der Mai ist fett gedruckt.

Dies ist aus Wiederverwendung von agilen Modellen in Use-Case-Modellen ersichtlich

3
Learner

Diagrammelemente

  • Akteure: Auch als Rollen bezeichnet. Name und Stereotyp eines Schauspielers können auf der Registerkarte Eigenschaften geändert werden.

  • Vererbung: Verfeinerungsbeziehungen zwischen Akteuren. Diese Beziehung kann einen Namen und ein Stereotyp tragen.

  • Anwendungsfälle: Diese können Erweiterungspunkte haben.

  • Erweiterungspunkte: Definiert einen Ort, an dem eine Erweiterung hinzugefügt werden kann.

  • Assoziationen: Zwischen Rollen und Anwendungsfällen. Es ist nützlich, Assoziationen Namen zu geben.

  • Abhängigkeiten: Zwischen Anwendungsfällen. Abhängigkeiten haben oft ein Stereotyp, um die Rolle der Abhängigkeit besser zu definieren. Um ein Stereotyp auszuwählen, wählen Sie die Abhängigkeit im Diagramm oder im Navigationsbereich aus und ändern Sie das Stereotyp auf der Registerkarte Eigenschaften. Es gibt zwei spezielle Arten von Abhängigkeiten: <<extend>> und <<include>>, für die Poseidon eigene Schaltflächen anbietet (siehe unten).

  • Beziehung erweitern: Eine unidirektionale Beziehung zwischen zwei Anwendungsfällen. Eine erweiterte Beziehung zwischen Anwendungsfall B und Anwendungsfall A bedeutet, dass das Verhalten von B in A eingeschlossen werden kann.

  • Include-Beziehung: Eine unidirektionale Beziehung zwischen zwei Anwendungsfällen. Eine solche Beziehung zwischen den Anwendungsfällen A und B bedeutet, dass das Verhalten von B immer in A enthalten ist.

  • Systemgrenze: Die Systemgrenze ist in Poseidon for UML nicht als Modellelement implementiert. Sie können einfach ein Rechteck zeichnen, es in den Hintergrund stellen und es als Systemrahmen verwenden, indem Sie alle entsprechenden Anwendungsfälle in das Rechteck einfügen.

3
LOURDHU KUMAR

Der Unterschied zwischen beiden wurde hier erklärt. Was jedoch nicht erklärt wurde, ist die Tatsache, dass <<include>> und <<extend>> einfach überhaupt nicht verwendet werden sollten.

Wenn Sie Bittner/Spence lesen, wissen Sie, dass es bei Anwendungsfällen nicht um Analyse, sondern um Synthese geht. Eine Wiederverwendung von Use Cases ist Unsinn. Es zeigt deutlich, dass Sie Ihre Domain falsch gekürzt haben. Mehrwert muss per se einzigartig sein. Die einzige mir bekannte Wiederverwendung von Mehrwert ist das Franchise. Also, wenn Sie im Burgergeschäft sind, Nizza. Aber überall ist es Ihre Aufgabe als BA, einen USP zu finden. Und das muss in guten Anwendungsfällen präsentiert werden.

Immer wenn ich sehe, dass Menschen eine dieser Beziehungen verwenden, versuchen sie, eine funktionale Zerlegung durchzuführen. Und das ist schlicht falsch.

Um es einfach auszudrücken: Wenn Sie Ihrem Chef ohne zu zögern antworten können, "Ich habe getan ...", dann ist das "..." Ihr Anwendungsfall, da Sie Geld dafür haben. (Das wird auch deutlich machen, dass "Login" überhaupt kein Anwendungsfall ist.)

In dieser Hinsicht ist es sehr unwahrscheinlich, eigenständige Anwendungsfälle zu finden, die eingeschlossen sind oder andere Anwendungsfälle erweitern. Schließlich können Sie <<extend>> verwenden, um die Optionalität Ihres Systems anzuzeigen, d. H. Ein Lizenzschema, mit dem Sie Anwendungsfälle für einige Lizenzen einschließen oder weglassen können. Aber sonst - vermeiden Sie sie einfach.

2
qwerty_so

"Includes" stelle ich mir gerne als notwendige Voraussetzung/Begleitung des Basis-Use-Cases vor. Dies bedeutet, dass der Basisanwendungsfall ohne den darin enthaltenen Anwendungsfall nicht als vollständig betrachtet werden kann. Ich gebe das Beispiel einer E-Commerce-Website, auf der Artikel an Kunden verkauft werden. Es gibt keine Möglichkeit, einen Artikel zu bezahlen, ohne ihn zuerst auszuwählen und in den Warenkorb zu legen. Dies impliziert, dass der Anwendungsfall "Artikel bezahlen" "Artikel auswählen" enthält.

Es gibt verschiedene Verwendungszwecke für Erweiterungen, aber ich möchte es als Alternative betrachten, die verwendet werden kann oder nicht. Zum Beispiel - immer noch auf der E-Commerce-Website. Bei der Bezahlung eines Artikels können Sie wählen, ob Sie per Nachnahme, Paypal oder Kreditkarte bezahlen möchten. Dies sind alles Alternativen zum Anwendungsfall "Artikel bezahlen". Ich kann jede dieser Optionen auswählen, je nach meinen Vorlieben.

Um mehr Klarheit und die Regeln für Anwendungsfälle zu erhalten, lesen Sie meinen Artikel hier:

http://businessanalystlearnings.com/ba-techniques/2013/2/20/use-case-diagram-the-basics

1