openarchitectureware
I have been using openarchitectureware for several months now and I am becoming a convert to MDA/MDE and code generation. Here are the basic steps I have taken to create a user interface tool using Eclipse:
- Created an Ecore (EMF) model that represented the UI meta-model. This model includes classes like "webapp", "page", "field", "checkbox", etc.
- Generated an EMF "GenModel" from the ecore. This is an automated step.
- Generated Java classes and an Eclipse editor for the model.
- Installed the editor into Eclipse. This default editor lets you edit your domain-specific model in a tree-view / property sheet kind of editor that you frequently see in Eclipse.
- Created a domain-specific model to represent a sample application. Create some pages, insert some sections, fields, buttons, etc. (All these things are classes in the meta-model).
OAW introduces the concept of a "workflow", which is an XML doc that describes the steps to be taken in the workflow. A basic workflow is:
- Parse the model XML using an OAW-supplied XmiReader.
- Run a Check that incorporates custom validation of the model.
- Run code generation using the OAW-supplied "Xpand2" template language.
- Enjoy fruits of labor.
As a further note, EMF is not the only form of meta-model that OAW can operate on- it also supports a Java Bean model, but I have only used EMF.