Difference between INCLUDE and EXTEND on UML use case diagram (use case)

Lecture



These are completely different things!

Extension (eng. Extend) - a kind of relationship of dependence between the basic use case and its special case.

Inclusion (eng. Include) - defines the relationship of the base use case with another use case, the functional behavior of which is always used by the base case of use.

include

That is, include (arrows go from the base case) illustrates what exactly the base case uses to perform the operation.

So for example - Include - well illustrates the situation that the restoration of the computer is inevitably associated with one of the three actions (suppose that there are no other options):

  1. repair or replacement of hardware components
  2. virus detection and removal
  3. system reinstallation

Thus, from the use case of “restore PC performance”, it can be specified precisely with the help of such “inclusions” - Include. In this case, the use case is not possible without one of the above actions.

extend

While extend indicates the possibility of special use of the base case (arrows go to the base case from special ones)

So, for example - if you return to the situation with a computer - then with the help of extend - it would be possible to extend the option of detecting and deleting a virus - using the option "detecting and deleting and then installing a protection system" - which, however, is not necessary is involved - if the task is to remove the virus.

This non-obligation is precisely the most important difference between extend and include.

include necessarily causes at least one of the clarifications

Difference between INCLUDE and EXTEND on UML use case diagram (use case)

Enable = reuse of functionality (i.e., the functionality is included or may be used in other parts of the system). Include therefore denotes a dependency on another use case.

Extends = add (not Repeat) functionality, as well as any additional functionality. Extends therefore may denote one of two things:
1. adding new features / capabilities when used (optional or not)
2. optional precedents (existing or not).

Summary:
Enable = re-functionality
Extends = new and / or additional features

My use case :: I'm going to town.

includes -> drive a car

extends -> fill gas

“Filling gasoline” may not be required at any time, but may not necessarily be required depending on the amount of gasoline remaining in the car. "Drive a car" is a prerequisite, therefore, I include.

Extend is used when use case: conditionally adds steps to another first class case use.

For example, imagine the "cash" is the use of an ATM case. "Rate Fee" extend cash and describe a conditional "expansion point" that instance is when an ATM user is not a bank while owning an ATM facility. Please note that the main "cash" use case: stands on its own, without extension.

Include is used to extract the use case: fragments that are duplicated in several cases of use. Included use case: it cannot stand alone and the original use cannot do without the included one. This should be used with caution only in cases where duplication is essential and exists in design (and not by chance).

For example, the flow of events occurring at the beginning of each ATM use case (when the user places ATMs on their cards, enters their PIN code, and shows the main menu) would be a good candidate to include.


Comments


To leave a comment
If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

System modeling

Terms: System modeling