With the rise of model-driven development, model repositories are intended to facilitate research in model engineering and consequently in domain-specific modeling. Model repositories are central places where all kinds of modeling artifacts (e.g., meta-metamodels, metamodels, models, and possibly transformation models) are stored and coordinated. They can serve as a platform for making available the specification of metamodels to others (typically necessary for domain-specific modeling languages) and for exchanging models, as well as a resource for teaching/learning materials.

There have been started some intiatives for building model repositories, e.g., zoomm.org, www.kermeta.org/mrep, or the Atlas MegaModel Management (AM3) [1]. The latter one is hosted within the popular Eclipse environment and is a subproject of the Generative Modeling Technologies (GMT) project. The artifacts present in this model repository, furthermore, are organized into sets of models of similar nature called zoos, e.g. a zoo for metamodels and a zoo for transformations [4]. The AM3 zoos are continuously growing and provide a respectable source of information in the meantime.

However, a more popular way of storing and organizing modeling artifacts is probably having a CVS like server software at hand. These repositories provide all means necessary to handle different versions of textual artifacts and let them compare syntactically. It seams therefore obvious to use existing tools also to store models as they can be serialized into the XMI format. Although versioning of models remains an open and challenging research field [11, 12], basic support for versioning models can be provided by CVS. CVS repositories can also be easily accessed via a standard Web browser providing an easy to use interface to users not familiar with IDE’s such as Eclipse.

Generally, today’s online model repositories offer either to view the models’ textual specifications in standard Web browsers or their download for graphically viewing them offline with appropriate tools. For example the Eclipse Modeling Framework’s (EMF) [5] allows the user to view models within a tree-viewer in its Sample Ecore Model Editor. For a visually more appealing presentation of models having a concrete graphical syntax defined one can use the Graphical Modeling Framework (GMF) [6] to view these models. For Ecore based metamodels such a definition and editor comes along with the GMF plug-in. Neither viewing models in the browser nor extra downloading them is always satisfactory. On one hand the textual representation of models is hardly readable and understandable for humans. In Figure 1, we depict a snippet of an Ecore based metamodel modeling the core of UML class diagrams. This representation of models is hardly readable because of type information from the Ecore meta-metamodel itself. This is further aggravated by the structure of the XML file representing only the containment structures of the Ecore meta-metamodel and not the structure of the metamodel. Also, the heavy use of XPath expressions complicates the otherwise easy to read metamodel. Note, that we refer sometimes to both model and metamodels when we talk about models. Only if we think it is necessary to distinguish explicitly between different levels of the OMG’s 4-layer meta- modeling stack we will do so.

Download pdf How Web 2.0 can leverage Model Engineering in Practice