Source Metamodels
Our sample subjects come from standard bodies, academia and industry altogether. We collected standard metamodels from the Object Management Group (OMG) 2. For academic and industry metamodels, we asked the model-driven engineering community if it could provide data. We made a call for participation on the PlanetMDE mailing list dedicated to the dissemination of news and information about model-driven engineering, counting over 700 subscribers in July 2012. We received replies from Europe and North America, on the basis of which we constituted our academic and industry data sets.
The analyzed specifications are:
Standards Community
The first group comes from the OMG. The OMG defines standards across several do- mains, such as object-oriented development, real-time systems and embedded systems, extending the boundaries of modeling to specific domains such as finance and healthcare. An OMG specification is a public, textual document proposed by the OMG to define one or more metamodels. The analyzed specifications are:- UML (Unified Modeling Language) version 2.2. It uses a structure of 13 packages to define different types of diagrams to represent the different views of a system, as well as the extension mechanism through profiles. Each one of these packages is regarded in this study as an independent metamodel. We consider the Ecore3 metamodels provided by the Eclipse UML2 project, version 3.0.1 . To our knowledge, this project constitutes the best analyzable form of the UML specification openly available; it has been constructed according to the UML 2.2 specification.
- MOF (Meta-Object Facility) version 2.0. The specification that created the standard for the exchange of metadata, therefore creating the language for metamodels themselves. It was created from the modeling foundations of UML and comprises two metamodels, Essential MOF (EMOF) and Complete MOF (CMOF).
- OCL version 2.2. We analyze the specification of the OCL language itself, which contains four metamodels. An Ecore implementation of the four metamodels is available from the Eclipse OCL project. We consider only the two metamodels that contain OCL invariants, namely OCL types and OCL expressions.
- CORBA Component Model version 1.0. An Ecore implementation of the four metamodels in this specification is provided by the SourceForge CORBA project [20]. We introduced few minor modifications to align this metamodel with the one defined in the standard specification. OCL invariants are defined only for three metamodels, in which we focus for our analysis.
- Diagram Definition (DD) version 1.1. Standard providing a basis for creating and interchanging graphical notations. It contains two metamodels: diagram common elements and diagram graphics.
- Common Warehouse Metamodel (CWM) version 1.1. Specification to enable interchange of warehouse and business intelligence metadata between warehouse tools. It contains one metamodel, structured in 19 packages.
Academic Research Community
The following group presents metamodels taken from research in academic groups and projects.- B language metamodel created at IMAG.
- SAD3 is a software architecture component model created at ENSTA Bretagne.
- CPFSTool is a metamodel and tool developed for the specification of patterns for security requirements engineering at the University Duisburg-Essen.
- Declarative Workflow is a metamodel describing an approach to define workflows in a declarative way. It has been developed with USE at University of Rostock and University of Bremen.
- ER 2 RE is a metamodel describing a model transformation from an entity-relationship to relational. It has been developed with USE at University of Bremen.
- RBAC is a metamodel describing the Role-Based Access Control security standard. It has been developed with USE at University of Bremen.
- HRC (Heterogeneous Rich Components) is a metamodel created within the european research project SPEEDS with the Kermeta metamodeling environment [23].
Industrial Community
This group contains metamodels developed in enterprises using model-driven techniques for their software projects.- MTEP and XMS are metamodels created by Thomson Video Networks for encoding standards for video hardware (due to confidentiality constraints, these metamodels are not publicly available).
- SAM is a metamodel from the Topcased open source software project.