2

I'm looking for an MDA (Model Driven Architecture) tools available. I have started with EMF(Eclipse Modelling Framework).

It's look fine for generating core classes.

How it will be helpful to generate one end to end application?

To generate UI elements (JSP/JSF/so on...)
To generate Entities and ORM's
To generate EJB's/Web Services 

Is there extensive modelling has provided in EMF to achieve these requirements?

or any other tools are available to capture an end to end applications in modelling and drive the same to development ?

Murugesh
  • 1,009
  • 1
  • 12
  • 34

2 Answers2

4

The Eclipse Modeling Framework provides you with an implementation of the MOF language (http://www.omg.org/spec/MOF) called ECORE. By means of the ECORE, which acts as a meta-meta-model, the modeling languages' meta-models are defined (i.e. the UML meta-model, etc.). You can edit UML diagrams by means of Papyrus or TopCased which are based on the EMF. When you define such diagrams you also create a model file with XMI content conform to the related ECORE meta-model. Now thanks to that you can apply model to text transformations by means of an Eclipse plugin called ACCELEO which is an implementation of the OMG standard MOFM2T transformation language (http://www.omg.org/spec/MOFM2T).

so you can define your own domain specific modeling language (by means of the ECORE), with concepts like UIElement (Jsp,Jsf,etc.) DBEntity and so on as first class entities, create models conform to that and create model to text transformations (ACCELEO) turing them into executable code

OR

you can define (or reuse an already existing) UML profile by means of which you can tag elements of UML models to represent UI elements DB entities, etc. and create model to text transformations turning them into executable code

Andrea Sindico
  • 7,358
  • 6
  • 47
  • 84
  • So,If I define all my meta meta model specifications in ECORE, to create instance model out of it I can use the meta meta model as a plugin dependency to my plug-in. In my instance model projects I need to use MTT (ACCELEO) for code generation. Am I correct? – Murugesh Oct 16 '12 at 11:37
  • No. you may proceed in many different ways. The easiest is perhaps to use UML classes with stereotypes (defined by you in a profile) as <> or <> to add the specific information you need. You may therefore provide that model as input to a m2t transformations you may define through ACCELEO in order to automatically generate code from the input models. The more complex, and not necessarely more correct, approch is to define your own DSML via the ECORE, generate the editor, create the models and apply m2t transformation. – Andrea Sindico Oct 16 '12 at 12:33
  • notiche that only the ECORE is the meta-meta-model while the UML is a meta-model and your own UML model is a model instance of the UML meta-model. – Andrea Sindico Oct 16 '12 at 12:35
1

The best technology for this is M2T-JET. It's a very lightweight templating framework that doesn't force you into using any one model. With JET you can generate out entire multi-project applications.

Here's a link to my answer for another JET question in which I give a JET example

Community
  • 1
  • 1
Chris Gerken
  • 16,221
  • 6
  • 44
  • 59
  • Thanks Chris., Using JET I can define JSP like templates right? Is there modelling provided to define the mappings between UI to Services say which button will call which service and which field value corresponds which service parameter and so on ? – Murugesh Oct 16 '12 at 11:56
  • As for modeling, I've always strongly suggested that you keep separate two models: one model used by and optimized for the templates and one model you use to capture your design, implementation, whatever. Keep them separate because they do two very different things. Only when you've defined the models and the model-to-text JET transformation should you look at writing a second transformation to go from your upstream model to your templates' model. By keeping to to this sequence of transformations you'll make things much easier on yourself. – Chris Gerken Oct 16 '12 at 12:06
  • But then to get to your specific question, this lets you choose your modeling environment and tools without worrying about how that model will be consumed by the model-to-text transformation – Chris Gerken Oct 16 '12 at 12:08
  • I need to keep my template models(Meta model/Grammar for my user model) and user models(Design model for my requirement) separate that is what you are suggesting, Am I got your view Chris? – Murugesh Oct 16 '12 at 12:35