The Eclipse Graphical Modeling Framework (GMF) provides a generative component and runtime infrastructure for developing a Domain Specific Modeler (DSM). GMF is based on the Eclipse Modeling Framework (EMF) and Graphical Editing Framework (GEF) and is a powerful platform for any developer who wishes to use these two technologies in their application.
The GMF generation component is a model-driven approach to generating graphical editors. By defining a tooling, graphical and mapping model definition, one can generate a fully functional graphical editor based on the GMF Runtime.
The GMF runtime is an industry proven application framework over EMF and GEF. It provides a number of features out of the box:
In this tutorial, we first will demonstrate how to build a DSM with GMF, focusing on the features provided by the GMF Runtime. We highlight the many features of the GMF Runtime that one would have to code by hand if using EMF and GMF directly.
Secondly we will demonstrate the extensibility provided by the GMF Runtime. Rather than break and modify the generated code created by the generation framework, we demonstrate how you can make use of the extension points provided by the runtime to extend your DSM. We will discuss several specific extensibility examples:
Finally we will review performance and scalability with the GMF Runtime and offer best practices for developing your DSM using the GMF Runtime. Topics include:
Anthony Hunter is a software development manager at IBM Rational Software in Canada. Anthony manages the Eclipse GMF and GEF committer teams at IBM. Anthony is a committer for the Eclipse GMF and GEF projects as well as committer for the Tabbed Properties View in the Eclipse platform. Anthony has contributed to the Rational modeling product lines, including IBM Rational Software Architect and IBM Rational XDE, and has been actively working with the Eclipse platform since its inception.
Mohammed Mostafa is a software developer for IBM Rational Software in Ottawa, Canada. For the last 6 years, Mohammed has been working on different modeling applications. Mohammed worked on UML compare merge support for IBM Rational XDE, worked on compare merge support for EMF models and UML Modeler in IBM Rational Software Architect and worked on the diagram layer for the GMF Runtime. He is a committer for the GMF project. Before joining Rational, Mohammed participated in the design and implementation of offline and handwritten OCR engines.