The project has been created. Please visit the project page.

Graphical Modeling Framework

Introduction

The Eclipse Graphical Modeling Framework project is a proposed open source project under the Eclipse Technology Project.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This 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 eclipse.technology.gmf newsgroup.

Background

The Eclipse Modeling Framework (EMF) and Graphical Editing Framework (GEF) are two important projects from the Eclipse Tools Project which are successfully used within several other Eclipse projects and numerous Eclipse-based applications.  These are commonly used together to provide visual design surfaces for domain models expressed with EMF.  Although examples of how to bridge these two technologies exist (e.g., Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework at http://download.eclipse.org/tools/emf/scripts/docs.php?noHeader=true&doc=http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246302.html, eDiagram GEF Sample), what is needed is a generative infrastructure to simplify their use in building modeling applications in Eclipse.

As an example, the UML2 project is based on EMF and provides an implementation of the OMG’s UML 2.0 metamodel for Eclipse, but currently lacks a diagramming capability.  This and other EMF-based models could benefit from a common infrastructure to ease the development of GEF-based diagramming surfaces where a visual editing component is desired.

Description

The Graphical Modeling Framework project will provide the fundamental infrastructure and components for developing visual design and modeling surfaces within Eclipse.  In essence, GMF will form a generative bridge between EMF and GEF, while a future project goal may be to remove the dependency on EMF and/or GEF.

The project will provide a generative approach for a domain model expressed in EMF to add diagramming capabilities where a visual editor is desired.  In many ways, GMF is an extension to the capabilities of EMF.  The GMF project will be comprised of three components:

  • Diagramming Infrastructure
  • Diagram Generation Framework
  • Exemplary Modeling Tools

Diagram definitions are to be created using the provided toolkit and based upon a metamodel provided by GMF. An anticipated starting point for a diagram metamodel is the OMG's UML 2.0 Diagram Interchange Specification, although alternatives will be examined during the project's Validation Phase.  Diagram definitions and the corresponding domain model are used to generate diagram(s) for use in applications where a visual design surface is needed.  The diagram definition itself will be modeled using a surface generated by GMF.

The diagramming infrastructure will provide a set of base diagramming components and serve as a target for the generator component.  This infrastructure will provide for diagram elements (nodes, edges, connectors), toolboxes, views, editors, navigators, constraint enforcement, etc.  A set of runtime plug-ins for GMF is anticipated, similar to those utilized by EMF. The balance between what is generated versus what is provided as a runtime framework will also be examined during the project's Validation Phase.

In order to provide concrete examples of the Graphical Modeling Framework capabilities, a series of exemplary modeling tools will be developed as part of the project:

  • An ECore modeling surface will be developed initially, as there is a need for such a capability to enhance EMF development work today.
  • As indicated above, the UML2 project for Eclipse is in need of a diagramming capability, which will also serve as a goal for the project.
  • Other suggestions for domains is welcome.

Below is a high-level conceptual diagram of GMF:

What the GMF project will not provide is a redundant set of capabilities as is found in either EMF or GEF; that is, to the greatest extent possible.  Consideration will be made regarding the nature of coupling that will exist among the three projects.

Follow-on development phases will accommodate community feedback and the knowledge gained during the initial development phase.

Organization

We propose this project should be undertaken as an incubator within the Eclipse Technology Project.  It is intended to complement EMF and GEF, which are both found in the Eclipse Tools Project, and where it is anticipated GMF will ultimately reside.

Initial Committers
The following companies will contribute committers to get the project started:

  • Borland  www.borland.com
    • Richard Gronback (proposed Project Lead)
    • Artem Tikhomirov
    • Max Feldman
    • Karl Frank
    • +4 TBD

Interested Parties
The following companies have expressed interest in the project:

Code Contributions
As several organizations (Borland, Anyware Technologies, and others) have developed facilities similar to what GMF proposes, we intend to conduct a review of all potential contributions during the Validation Phase of the project. Those contributions which best align with the goals of the project will be refactored and used as the starting point for GMF.

Participation
Critical to the success of this project is participation of developers in the modeling application development community. We intend to reach out to this community and enlist the support of those interested in making a success of the Graphical Modeling Framework project. We also anticipate that several industry verticals will have an interest in GMF, and will therefore contact these companies and associated standard organizations. Otherwise, we ask interested parties to contact the GMF newsgroup to express interest in contributing to the project.