Previous UML Classes Table of Contents UML Packages Next


16.3.4 ExtensionPoint

UseCases


   An extension point identifies a point in the behavior of a use case where that behavior can be extended by the behavior of some other (extending) use case, as specified by an extend relationship.

*Generalizations

   RedefinableElement (from Kernel ) on page 132

   Description

   An ExtensionPoint is a feature of a use case that identifies a point where the behavior of a use case can be augmented with elements of another (extending) use case.

   Attributes

   No additional attributes

   Associations

Issue 8466 -add entry for useCase

   • useCase : UseCase [1] References the use case that owns this extension point. {Subsets NamedElement ::namespace}

   Constraints

   [1] An ExtensionPoint must have a name.

   self.name->notEmpty ()

   Semantics

   An extension point is a reference to a location within a use case at which parts of the behavior of other use cases may be inserted. Each extension point has a unique name within a use case.

   Semantic Variation Points

   The specific manner in which the location of an extension point is defined is left as a semantic variation point.

   Notation

   Extension points are indicated by a text string within in the use case oval symbol or use case rectangle according to the syntax below:

   <extension point> ::= <name> [: <explanation>]

   Note that explanation, which is optional, may be any informal text or a more precise definition of the location in the behavior of the use case where the extension point occurs.

*Examples

   See Figure 16.3 on page 617 and Figure 16.9 on page 624.

   Rationale

    ExtensionPoint supports the use case extension mechanism (see Extend (from UseCases ) on page 615).

   Changes from previous UML

   In 1.x, ExtensionPoint was modeled as a kind of ModelElement, which due to a multiplicity constraint, was always associated with a specific use case. This relationship is now modeled as an owned feature of a use case. Semantically, this is equivalent and the change will not be visible to users.

   ExtensionPoint s in 1.x had an attribute called location, which was a kind of LocationReference. Since the latter had no specific semantics it was relegated to a semantic variation point. When converting to UML 2.0, models in which ExtensionPoint s had a location attribute defined, the contents of the attribute should be included in a note attached to the ExtensionPoint .