Concept: Extend Relationship
"Extend" relationships move optional or exceptional requirements into abstract use cases that can be easier to manage.
Relationships
Related Elements
Main Description

If a use case has segments of behavior that are optional or exceptional in character, and that do not add to the understanding of the primary purpose of the use case, factor those out to a new extension use case. The original use case then becomes a base use case, to which the extension use case has an extend-relationship. 

In the base use case you declare extension points, which define where in the base use case extensions may be made.

Complex sub-flows and optional behavior are the first candidates for being partitioned out into extension use cases. Often this behavior can be quite complex and hard to describe: including it in the flow of events of a use case can make the "normal" behavior harder to see. Extracting it should improve the comprehensibility of the use-case model.

Make sure that the flow of events of the base use case is still complete and understandable by itself, without any reference to the extension use case.

Only the extension use case knows of the relationship between the two use cases. The base use case only knows it has extension points, it doesn't know what extension use cases are using them.

Briefly describe every extend-relationship you define. Define the conditions that must be met for the extension to occur. Make sure to define the extension point in the base use case at which the extension should be inserted.

  • If you do not define any conditions, it means the extension always is performed. 
  • If the extension use case has several behavior segments that are to be inserted at different extension points in the base use case, make sure to define these segments and the extension point for each segment in the base use case.

For more information, see Guideline: Defining Extend Relationships.