Introduction to Patterns

Designing large systems often involves repetitive modeling tasks. Certain modeling principles, usually based on business expertise, have to be applied in different parts of the model under construction, or reused throughout different models. It is interesting to make these modeling principles or' patterns' explicit so that they can be applied in models.

The Pattern tooling provided in Capella makes it possible to:

  • Reuse work that has already been done, thus favoring productivity;
  • Enforce modeling rules in order to have guarantees that the model keeps conforming to certain business criteria.

In a nutshell, a pattern can be created (1) from a subset of a model and stored in a catalog. It can then be applied somewhere in the same model or in a different one. This gives birth to a new instance (2) of the pattern.

Patterns and instances have their own separate life cycles, but they can be synchronized at any time. Concretely, it is possible to check that an instance still conforms to its pattern. If not, the instance can be updated (3) according to the last version of the pattern. Conversely, the instance can also be used for updating the pattern, thus allowing other instances to be updated accordingly.