Software Disclaimer

Class UML 2.3::Extend


A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case.

Direct Superclasses: NamedElement, DirectedRelationship

Direct Subclasses:

Class Precedence List: Extend, NamedElement, DirectedRelationship, Relationship, Element


condition : Constraint (0 1); -- source Extend
extendedCase : UseCase (1 1); -- source Extend
extension : UseCase (1 1); -- source Extend

References the use case that represents the extension and owns the extend relationship.
Subsets: DirectedRelationship.source
Opposite: UseCase.extend

extensionLocation : ExtensionPoint (1 *); -- source Extend

An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.)

clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
visibility : VisibilityKind (0 1); -- source NamedElement
source : Element (1 *); -- source DirectedRelationship
target : Element (1 *); -- source DirectedRelationship
relatedElement : Element (1 *); -- source Relationship
ownedComment : Comment (0 *); -- source Element

The Comments owned by this element.
Subsets: Element.ownedElement

ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element


Signature: extension_points() : Boolean;
Description: The extension points referenced by the extend relationship must belong to the use case that is being extended.
Expression: extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp))


No additional operations.

Send questions or comments to