Friday, 10 August 2012

The world of the Eclipse Modeling Framework

"The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor." [source] This text was my entry point to this world, quite interesting as EMF can sustain my work by automatic code generation.

A short walk through the EMF documentation got me familiar with the terminology required to work with the framework, but at a deeper look, I found the information there overwhelming. I choose to try out the "learn-by-doing" method and followed the tutorial "What every Eclipse Developer should know about EMF". This was a far better start to understand the framework and see what you can develop using it. I paid attention to all the details in the first part of the tutorial to better understand the ideas and concepts presented. This was very helpful, but getting to the 4th part of the tutorial, "EMF API" got me totally confused. I fought to get it over and succeeded, but with great gaps of knowledge. Reading about the EMF.Edit Framework here, following another tutorial available on and having a good night sleep cleared up the things a lot. Reading the extra resources indicated during the tutorial also helped a lot clarifying things. I decided to run once more through the tutorial "What every Eclipse Developer should know about EMF" and it turned out to be a good decision mainly of two reasons:

  1. the tutorial made much more sense. I could understand the connections between the elements and how they work together to build up an application
  2. I now know how bowling league is structured ;)
The tutorial by Lars Vogel added new powers by introducing the Ecore Diagram (instead of directly using the Ecore model). For my personal understanding it was ok to first do this tutorial and then the one by Lars Vogel, but I figured out, that Lars Vogel's tutorial is a glimpse easier. Maybe it would have been a good idea to start with that one. It was especially helpful at the beginning by presenting the packages required to be installed before starting - this information lacked to my first read tutorial. 

I would say, the purpose of this 2nd week of SOCIS2012 to understand what an Ecore metamodel is, to define my own DSLs and how to generate basic editors for it, was achieved.

No comments:

Post a Comment