Abbreviations explain


in software engineering we think of a software as a model for something real in the world, for example a Company is something that has name,state,city,etc and in which there are employees, an employee has name,job,salary,etc. What we do is that we store this information in a graph , we represent Company and Employee as a rectangle in the graph and connect them with a link to represent the "relation" between them.


A MetaModel is a model of models, it's best to explain this with an example:

Let's pretend someone wants a program a bank system.

We could launch a program(StarUML,Enterprise Architect,etc) and start drawing the model and then generate code from the model(those programs can do that).

Now let's pretend this one now wants to build an accounting system for a private Company, hmmm one might think "the bank and this has something in common", indeed we could rewrite a new model for the new system but since those two(and other systems as well) have something in common, could we build a model and from that model generate models for specific system instead of rewriting the model every time?

Yes we could but how ?

Well you forgot that the modeling program(for example like Enterprise Architact) is a software and like softwares we can model it.

So if we built a model that represent modeling software we can generate from this model a modeling software that can create any kind of model based on the original model we made, the Model we create to represent Modeling software is called MetaModel.

I hope it's clear what a MetaModel is.


I've seen kevoree modeling framework here this framework take a file which represent the metamodel and outputs java files which have a class for every entity(aka Rectangle in the graph) and a class to represent the whole model.

Those java files are supposed to be used with a Main java file created by your own.

What I want here is some framework,intellij plugin,etc that make the Main java file for me.

I'm asking this because I'm aware of Eclipse GMF and GMF takes the output of Eclipse EMF(the rather equivalent of the above framework but for eclipse) and produce a working application without writing code.

Is there a tool like this ?


since searching the net for this seems hard(MetaModeling is just not common enough) I have no requirements other than existence !! anyway I have preferences which I'll list but I don't mind if any of them isn't met:

1-can integrate with an IDE(intellij preferable).
2-generate a working program out-of-the-box with no or minimal code write.
3-takes what Kevoree Modeling Framework outputs.
4-easy to work with(unlike Eclipse GMF).

Very Very Optional:
1-the result program has the ability to generate code from model(like Enterprise Architect and others).
2-The UI look of the result program can be customized.

  • You seem to be insisting the only UML and UML metamodels are valid ways to model and meta-model. – Ira Baxter Jan 28 '16 at 5:21
  • @IraBaxter what did I say in the post that made you think so ? – niceman Jan 29 '16 at 18:46
  • Wwhere in your post is it clear that you mean something other than UML (class diagrams)? Its the only "model" you name explicitly and the other "models" you hint at are all compatible with UML. Your example of a model in your first paragraph implies that models only about data. Yet model really means "abstraction"; you can/should model the beheviour of your system too or you will not be able generate all the code for it. I've seen way too many systems of the latter kind. – Ira Baxter Feb 1 '16 at 8:11
  • @IraBaxter ahh I see sorry, I only mentioned the example for clarification(not all people knows what a model/meta-model is), UML isn't required at all :) – niceman Feb 3 '16 at 10:40
  • From the Kevoree site: KMF provides a powerful toolset for developers to model, structure, and reason about complex data Does reason include "generate code"? Will it produce a working Java program, for a specific Metamodel, that can itself generate Java programs for a specific model? (I'd be really surprised). – Ira Baxter Feb 3 '16 at 10:57

Your Answer

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

Browse other questions tagged or ask your own question.