In the core of our approach to support Enterprise Architecture projects there are metamodels. On the one hand, they restrict what can be and what can't be modeled about an EA. On the other hand, they are suitable artifacts to adapt or configure an EA tool. Since not all EA projects and not all companies are equal, it does not make sense to always use the same standard metamodels. Depending on the vertical and horizontal scope of each project, metamodels, and thus tools, should be selected, adapted, or extended.
Furthermore, an EA project will not typically use metamodels created entirely from scratch. This is simply not worth because there are many metamodels that have been successfully proven in practice such as those that have become standards (e.g., BPMN, ArchiMate) or those found in frameworks (e.g., ARIS). Instead, an alternative that we aim to support is to select, for each EA project, a collection of useful existing metamodels, adapt them, and finally compose them to create a single metamodel to be used in the project. To support this strategy, we developed a model-composition language and platform called Fusion. It has similarities to existing metamodel composition tools: it is based on EMF and model transformation, and it uses an imperative language for step-wise metamodel refinement and composition. Since composition is at the base for several of our other tools, we decided that it was better to have our own platform for this purpose, which we have been able to modify depending on the necessities of the other lines.