I am trying to understand Eclipse Modeling Framework (EMF). It is so important, because it’s the foudation of other modeling technologies. To name a few, TMF/Xtext and GMF.
So, what’s the relationship among EMF, Rational Rose, Annotated Java, and XML documents? Is one superior to another? Can EMF replace other stuff?
So far I can answer the questions partially. Let’s draw three circles on a whiteboard, and label them Rational Rose, Annotated Java, and XML Schema. As we can see, all three can have model definitions. If we describe a model by all 3 formats, there will definitely be some duplication.
This is partially where EMF fits in. It lands among the 3 modeling methods, and can works as bridges for the models.
One models his/her domain problems once, and transform the modeling to other forms as needed. For example, developers would like to see Java code, and managers prefer to looking at Rose class diagrams, and clients would love documentations.
Transformation is helpful. Like the animated TV Transformers. The robots gain speed performance in vehicle form, and gain fighting/fire performance in soldier form. You model gains different performance in different forms.
So, one of the benefits is lying in its magic transformation. I think mostly it is very straightforward for data model. We know that there are 2 elements in a class definition: data and operation. I am wondering if it helps in modeling the operations. Still a lot to dig out. Will keep walking on it.