Abstraction relationships

An abstraction relationship is a dependency between model elements that represents the same concept at different levels of abstraction or from different viewpoints. You can add abstraction relationships to a model in several diagrams, including use-case, class, and component diagrams.

In an abstraction relationship, one model element, the client, is more refined or detailed than the other, the supplier. The different types of abstraction relationships include derivation, realization, refinement, and trace relationships.

All abstraction relationships can connect model elements that are in the same model or in different models. For example, if you develop an analysis model and then a design model, you can connect the models with a refinement relationship pointing from the analysis model to the design model. This relationship indicates that the design model provides a different level of abstraction of the same system.

Abstraction relationships do not usually have names and appear as a dashed line with an open arrow pointing from the detailed model element to the general model element.

As the following figure illustrates, when you create an abstraction relationship, the «abstraction» keyword appears beside the connector.

An abstraction relationship between two packages

You can assign the following stereotypes to an abstraction relationship to identify the type of abstraction in a model:
  • «derive»
  • «realize»
  • «refine»
  • «trace»