GenGMF is an open source project proposed as incubator under the Graphical Modeling Project (GMP) project.
The project is in the Project Proposal Phase (as defined by the Eclipse Development Process) and this proposal declares its intent and scope. The proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the Modeling GMF forum with "[GenGMF]" in the subject.
"Domain Specific Languages" (DSL) are an essential part of the complex of topic "Model Driven Software Development" (MDSD). Tree based language editors as provided by "Eclipse Modelling Framework" (EMF) as well as textual DSLs as provided by the "Textual Modelling Framework" (TMF) have a good tooling but the language user cannot get a quick overview about the complete model with its main objects and their references. A graphical DSL could be used to display objects and their references intuitively e.g. as boxes and connections. The "Graphical Modelling Framework" (GMF) allows to model the concepts of a graphical editor but the tooling is not so smart. There are a lot of pitfalls a DSL developer must avoid before he can use a graphical editor for modelling.
GMF models often contain a lot of duplication. Figures that share a common layout concepts but differ in some details need a figure description of its own. Even small changes like an other background color make a new figure which results in much larger editor models. Larger models are harder to handle because they contain a lot of element references and the GMF tooling rarely filters the list of elements appropriately while setting a reference in the properties view.
The integrated GMF wizards can be used to create the GMF models. The three model creation wizards to create the tooling, graph and mapping definitions are heavy-weight because every information needs to be entered in a few wizard steps making the steps themselves very complex. Information entered in one wizard is not shared and has to be entered in the next wizard again. Additionally the wizards hardly handle meta model evolution and can not handle compartments which are often used to display the concept of a parent-child-relation.
GenGMF will provide an efficient tooling for developing graphical editors using the GMF. This includes
GenGMF has been originally developed with the ease of complexity in mind. With the introduction of wizards in version 2 the scope has been extended to provide a smart and adaptive tool support for developing graphical DSLs.
The complexity of a model (in the context of MDSD) can be measured by counting the elements and the setting possibilities of each non-containment model reference being set. The complexity grows over-proportionally with the model size.
While developing an editor using the GMF, the editor models can grow so large that they are hardly manageable by humans. GenGMF removes duplications by combining similar figure descriptors with their attached node, edge, compartment and label elements in a single template. The differences between the figures and the template are stored in descriptors which are comparable to the elements from the GMF mapping definition. Transformators can be applied to a descriptor to change the visual appearance of a specific figure.
The model-to-model transformation generates complete GMF models by merging the templates with the information from the descriptors. The otherwise manually created but now generated GMF models contain about 2 to 5 times more model elements and references than the original GenGMF model they are derived from. Compared to a GMF model the complexity of a GenGMF model is a magnitude smaller.
For GenGMF wizards have been introduced in order to lower the entry level for DSL developers and to get first results fast. They can be used to get a basic editor for an existing meta-model within a few minutes. Different wizards exist for template or descriptor creation or modification. The wizards adapt their behaviour to the settings already made. Using the interactive wizards a first version of a complete GenGMF model can be iteratively created. Afterwards the model can be tweaked and tuned manually or using the wizards to fulfil all the needs. It is possible to automatically modify the model during the transformation using a scripting interface.
The initial code contribution will be a set of plug-ins from the existing GenGMF project. Visit the project's website for further information and documentation.
Back to the top