Lecture
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.
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):
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.
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.
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
System modeling
Terms: System modeling