Use cases are used to document behavior, z.B. beantworten Sie diese Frage.
![Antworten Sie auf den Frage-Anwendungsfall]()
Ein Verhalten erweitert ein anderes, wenn es zusätzlich zu, aber nicht unbedingt Teil des Verhaltens ist, z.B. die Antwort recherchieren.
Bitte beachten Sie auch, dass es nicht viel Sinn macht, die Antwort zu recherchieren, wenn Sie nicht versuchen, die Frage zu beantworten.
![Antwort recherchieren erweitern]()
Ein Verhalten ist in einem anderen enthalten, wenn es Teil des einschließenden Verhaltens ist, z.B. Einloggen bei Stack Exchange.
![Einloggen bei Stack Exchange einschließen]()
Zur Klarstellung, die Illustration trifft nur zu, wenn Sie hier in Stack Overflow antworten möchten :).
Dies sind die technischen Definitionen aus UML 2.5 Seiten 671-672.
Ich habe hervorgehoben, was ich für wichtige Punkte halte.
Erweitert
Eine Erweiterung ist eine Beziehung von einem erweiternden Anwendungsfall (die Erweiterung) zu einem erweiterten Anwendungsfall (der erweiterte Fall), die spezifiziert wie und wann das Verhalten, das im erweiternden Anwendungsfall definiert ist, in das Verhalten, das im erweiterten Anwendungsfall definiert ist, eingefügt werden kann. Die Erweiterung findet an einem oder mehreren spezifischen Erweiterungspunkten statt, die im erweiterten Anwendungsfall definiert sind.
Erweitern ist dazu gedacht, verwendet zu werden, wenn es zusätzliches Verhalten gibt, das hinzugefügt werden sollte, möglicherweise bedingt, zum Verhalten in einem oder mehreren Anwendungsfällen.
Der erweiterte Anwendungsfall wird unabhängig vom erweiternden Anwendungsfall definiert und ist unabhängig vom erweiternden Anwendungsfall bedeutungsvoll. Andererseits definiert der erweiternde Anwendungsfall typischerweise Verhalten, das allein nicht unbedingt sinnvoll ist. Stattdessen definiert der erweiternde Anwendungsfall eine Reihe modularer Verhaltensinkremente, die eine Ausführung des erweiterten Anwendungsfalls unter spezifischen Bedingungen ergänzen.
...
Beinhaltet
Einbeziehen ist eine gerichtete Beziehung zwischen zwei Anwendungsfällen, die angibt, dass das Verhalten des einbezogenen Anwendungsfalls (die Hinzufügung) in das Verhalten des einschließenden Anwendungsfalls (der einschließende Fall) eingefügt wird. Es ist auch eine Art benanntes Element, sodass es einen Namen im Kontext seines besitzenden Anwendungsfalls (des einschließenden Falls) haben kann. Der einschließende Anwendungsfall kann von den Änderungen abhängig sein, die durch die Ausführung des einbezogenen Anwendungsfalls erzeugt werden. Der einbezogene Anwendungsfall muss verfügbar sein, damit das Verhalten des einschließenden Anwendungsfalls vollständig beschrieben werden kann.
Die Beziehung Einbeziehen soll verwendet werden, wenn es gemeinsame Teile des Verhaltens von zwei oder mehr Anwendungsfällen gibt. Dieser gemeinsame Teil wird dann in einen separaten Anwendungsfall extrahiert, der von allen Basenanwendungsfällen, die diesen Teil gemeinsam haben, eingeschlossen werden soll. Da die Hauptverwendung der Beziehung Einbeziehen der Wiederverwendung gemeinsamer Teile ist, ist das, was in einem Basisanwendungsfall übrig bleibt, normalerweise nicht vollständig für sich allein aber abhängig von den eingeschlossenen Teilen, um bedeutsam zu sein. Dies spiegelt sich in der Richtung der Beziehung wider, die darauf hinweist, dass der Basisanwendungsfall von der Hinzufügung abhängt, aber nicht umgekehrt.
...
1 Stimmen
Ich würde keinen besseren Job machen als Scott Ambler, um zu erklären, wie sie für die Wiederverwendung in Anwendungsfallmodellen verwendet werden können und wie sie sich unterscheiden. Statt ihn umzuformulieren, würde ich vorschlagen, Wiederverwendung in Anwendungsfallmodellen: <<extend>>, <<include>> und Vererbung zu lesen.
41 Stimmen
@closers: Dies ist eine gültige Frage.
121 Stimmen
Für kurz --> include = Erforderlich, extend = Optional
2 Stimmen
@Megamind 'extend = Optional' ist nicht ganz richtig... Schau dir dieses Beispiel link an.
1 Stimmen
Sie verwenden Include-Abhängigkeiten, wenn ein Anwendungsfall das Verhalten eines anderen benötigt. Die Einführung eines neuen Anwendungsfalls, der ähnliche Logik enthält, die in mehreren Anwendungsfällen auftritt, ist recht häufig. - Weitere Informationen finden Sie unter: agilemodeling.com/essays/useCaseReuse.htm#Include