Introduction

A pattern is a general solution to a recurring engineering problem. Patterns are a very valuable part of the knowledge of domain experts, where the domain can be Software, Hardware, System design, or a specialty engineering discipline such as Safety, Security, Performance, etc. When engineering relies on modeling, a pattern naturally manifests itself as a recurring modeling principle - or modeling pattern.

The Modeling Pattern technology provides tool support for the creation, application, evolution and management of modeling patterns. The aim is to better share and disseminate the know-how of experts at the modeling level, hence contributing to productivity and quality in model-based engineering activities. Patterns can be defined declaratively, without programming, solely based on diagrams and wizards.

The technology can be integrated into Sirius-based modeling environments where model elements have unique identifiers (examples: UML Designer, Capella; counter-example: Ecore Tools). Sirius is leveraged to handle the diagramming aspects of modeling patterns such as layout and style. Albeit independent of modeling languages, the technology can - and sometimes must - be customized for a specific modeling environment in order to correctly integrate with its infrastructure and provide a better user experience.

The main supported features are:



Concretely, a pattern can be created (1) from model elements and stored in a catalog. These original model elements become the first instance (2) of the pattern. The pattern can then be applied somewhere in the same model or in a different one. This gives birth to a new instance (3) of the pattern.

Patterns and instances have their own separate life cycles, but they can be synchronized whenever needed. It is possible to check that an instance still conforms to its pattern and have an overview of the differences. If there are differences, the instance can be updated (4) according to the last version of the pattern. Conversely, every instance can also be used for updating the pattern, thus allowing other instances to be updated accordingly.


User Interface Overview
Pattern Creation
Browsing Catalogs
Pattern Application
Instance Management
Browsing Instances
Templates
Known Bugs and Limitations