After reading several texts about meta-modeling I still do not really get the practical benefit. Sometimes I think it is only an interesting mind game but no useful tool. Sure it is wise to clarify your modeling vocabulary: some may say class where others say entity or concept, but this is just simple documentation your modeling terminology. Meta-modeling, as I understand it, is more complex, as it tries to formalize and abstract modeling. Some good examples are Keet's formal comparison of conceptual data modeling languages (UML, ERM and ORM) from academia and the Meta Object Facility (MOF) from industry. To me MOF looks as impractical as CORBA, which was also created by OMG. In theory you could use meta-modeling to transform and integrate models in different modeling languages, but is anyone actually doing this?

  • all those Big 3 consultants need some reason to bill those big dollar hourly wages! Think of them! – Jarrod Roberson Nov 18 '11 at 22:02
  • The real benefit of meta-modeling is describing large systems. For small systems, I think that class diagrams suffice. But it takes a good architect to keep things as simple as possible, even in large systems. CORBA is the poster-child for what happens when systems are over-architected. – Robert Harvey Nov 18 '11 at 22:46

I can give you an example of when meta-modeling was useful at my workplace. In the 1990s, the company where I worked grew quickly by acquisition. With each acquisition, new staff, systems, databases and data were added. By 2004, the IT department employed almost 5,000 people and had a yearly budget of 10^9 USD. Many of the smaller companies we merged with had their data in MS Access, MS Excel, Fox Pro. Many of the large companies had flat files on the mainframe, hierarchical databases, huge DB2 installations running on OS/2... and everything else under the sun. Other than the general ledger, no serious attempt was made to consolidate any of this data.

At some point in time, someone woke up and realized there little control of corporate data and that the lack of control represented a huge risk to the company. It was time to clean house! But where to begin? Even a simple idea like "customer" meant something different to every group. The "customer" entity used by the legal department had almost no overlap with the "customer" used by the sales office, and those "customers" had nothing to do with the "customer" used by finance. How do you sort out a mess like that?

The approach we took started with backing up a step. Rather than put 30 people in a room and watch them fight for their own definition of what "customer" meant, we started with meta-modeling. We tackled questions like "what is a semantic attribute?" or "what are entities and how should their names be formatted?".

It was easier to gain consensus about abstractions like "class" and "relationship" than about actual operational data. But once the stakeholders had consensus on fundamental terms, we could move down the latter of abstraction, gradually getting more and more concrete. Eventually we had a common framework for describing corporate data and were working toward a common data dictionary.

  • Thanks, that's a good use-case and sounds usesfull: analysis of existing systems instead of top-down über-modeling for planned systems. – Jakob Jan 4 '12 at 14:21
  • I think meta-modeling might be useful in certain circumstances for planned systems. If there are many people designing the data system and each person has a different ideas about how the design should look, meta-modeling could still be used to build consensus and ensure consistency. See Robert Harvey's comment from November 2011. – ahoffer Jan 4 '12 at 17:15

You have different layers of abstractions. MOF is the highest, then using a transformation you get UML or BPM models, then views. Modelers usually talks about M0,M1..M3 I think that with new technologies traditional barriers between metamodelling and modeling is disappearing. Let's consider EMF (eclipse modeling technology). Ecore is a kind of MOF then using EMF serialization you get an UML model, then using GMF you get graphical representations.

  • Do modelers actually create meta-models on M0? As far as I understand EMF and Ecore, it is hard-coded in the software. You make use of XMI to create concrete models, but you never do meta-modeling (unless you are one of the developers of EMF). – Jakob Nov 19 '11 at 13:26
  • 1
    I agree that EMF is only for developers and using EMF tags in the java code in order to keep a model live synchronize with the code is not what should be done. You can try Omondo metamodeling which has totally changed EMF core in order to adapt it to UML. I mean that you create your graphical views, java code and a single model directly in xmi. The graphical diagrams are extracted from the saved xmi which is also the model. – UML_GURU Nov 19 '11 at 16:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.