The Pattern mechanism based on EMF Diff/Merge makes it possible to
- reuse arbitrary sets of model elements and related validation rules
- together with graphical layouts
- while maintaining traceability for evolution and update
- within the same model or throughout different models thanks to catalogs.
A pattern can be created from model elements and stored in a catalog, which is a separate file. As a result, the model elements form the first instance of the pattern. The pattern can be applied at a specific location in the same model or in a different one, which gives birth to a new instance. When a pattern is applied, each of its elements is added into the model or merged with an existing element of the model. "Merged" means that the characteristics of the two elements are combined. Patterns and instances have their own separate life cycles, but they can be synchronized whenever needed. Concretely, 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 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.