Extend is a relationship between two use cases. Where A extends B, it means A describes more specific behavior and B the general version of that behavior.
In many respects extend is like generalization. However the key difference is that the extended use case defines extension points (see Section 17.4, “Extension Point”), which are the only places where its behavior may be extended. The extending use case must define at which of these extension points it adds behavior.
This makes the use of extend more tightly controlled than general extension, and it is thus preferred wherever possible.
Examples for a travel agent sales system might be the use case for paying for a ticket, which has an extension point in the specification of the payment. Extending use cases may then extend at this point to pay by cash, credit card etc.
Within the UML metamodel,
Extend is a
An extend relationship is represented as a dotted link with an
open arrow head and a label
??extend??. If a
condition is defined, it is shown under the
??extend?? label (see Figure 17.1, “Possible artifacts on a use case diagram.”).
The details tabs that are active for extend relationships are as follows.
There is no source tab, since there is no source code that could be generated for an extend relationship.
Standard tab. See Section 13.4, “Documentation Tab”.
The values for the bounds are downlighted, since the extend is tied to a particular pair of use cases.
Standard tab. You would not expect to generate any code for an extend relationship so this is empty.
Standard tab. In the UML metamodel,
Extend has the following standard tagged values
derived (from the superclass,
true, meaning the extend relationship
is redundant???it can be formally derived from other
false meaning it
Derived extend relationships could have their value in analysis to introduce useful names or concepts.
Navigate up through the package structure of the model. For a extend this will be the package containing the extend.
New extension point
This creates a new use case extension point within the namespace of the current extend relationship, with the current extend relationship as its first extending relationship.
While it is perfectly valid to create extension points from an extend relationship, the created extension point will have no associated use case (it can subsequently be set up).
It would be more usual to instead create the extension point within a use case and subsequently link to it from an extend relationship (see Section 17.9.3, “Property Fields For Extend” below).
This creates a new Stereotype (see Section 16.5, “Stereotype”) for the selected extent relationship, navigating immediately to the properties tab for that stereotype.
This deletes the selected extend relationship from the model.
This is a deletion from the model
not just the diagram. To delete a
extend from the diagram, but keep it within the model, use
the main menu
Text box. The name of the extend relationship.
It is quite common to leave extends unnamed in use case analysis.
ArgoUML does not enforce any naming convention for extend relationships.
Drop down selector. ArgoUML does not provide any stereotypes by default.
Stereotyping does not have great value on an extend relationship.
There is no representation of the stereotype of an extend relationship on the diagram.
icon. If a stereotype has been selected, this will navigate to the stereotype property panel (see Section 16.5, “Stereotype”).
Text box. Records the namespace for the extend relationship. This is the package hierarchy.
Button 1 Double Click on the entry will navigate to the package defining this namespace (or the model for the top level namespace).
Base Use Case
Drop down selector. Shows the use case that is being extended by this extend relationship. Button 1 click on this entry will give a drop down menu of all available use cases (and an empty entry) which may be selected by button 1 click.
Drop down selector. Show the use case that is doing the extending through this extend relationship. Button 1 click on this entry will give a drop down menu of all available use cases (and an empty entry) which may be selected by button 1 click.
Text box. If this use case is, or can be extended, this field lists the extension points for the use case.
Extension points are listed by their location point rather than their name.
Where an extension point has been created, button 1 double click will navigate to that relationship. Button 2 gives a pop up menu with two entries.
Add. The “Ad/Remove
ExtensionPoints” window opens. In this window it is
possible to build a list of extension points.
New. Add a new extension point in
the list and navigate to it. The current extend
relationship is added as the first in list of extending
relationships of the new extension point.
Text area. Multi-line textual description of any condition attached to the extend relationship.