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.