Metamodels are used in model-driven engineering and model-driven software development to define domain specific languages. Over time, they tend to evolve and grow in complexity to encompass new features. If a modular approach is not taken into account and metamodels are extended intrusively, they can become difficult to maintain and to extend. With the increased complexity, it often becomes even more challenging to modularize the metamodels. However, even though modularity is an established concept in the realm of software engineering, existing metamodeling tools barely address the challenges of modular metamodeling.
In this work, we approach the problem from a graphical perspective. We propose a tool that assists the modeler in designing and refactoring metamodels in a modular way. It allows the modeler to explicitly organize metamodels in a layered architecture where each layer has a certain degree of abstraction. The tool detects cyclical dependencies between metamodels and violations to layering and provides key insights about how metamodels depend on each other. By that means, modular metamodeling is encouraged and modularizing metamodels is greatly facilitated.