Eclipse Modeling Framework EMF Training Course

Duration: 3 days
Course code: SS-ECL-003


This course is designed for professionals who have been exposed to software models and Java.

  • Architects
  • Designers
  • Developers

This course assumes that the participants:

  • Know Java
  • Know how to use Eclipse IDE as a Java development tool
  • Have some experience writing Eclipse plug-ins

Our Eclipse Modeling Framework (EMF) training course teaches the participants how to use and extend the eclipse modeling framework.The Eclipse Modeling Framework training course also introduces model driven development (MDD) and model driven architecture (MDA). We use a set of case studies and expose our participants to all aspects of the EMF framework and using EMF as a generative tool for Model Driven development.
This course has been specially designed for software architects and modelers looking to generate eclipse-based applications from high-level, UML based business models. It is an intensely hands-on course. More than 50% of the time will be spent performing lab exercises.


Upon completion of this course, the students will have learned:

  • The fundamentals of model driven development and MDA
  • The role of meta modeling
  • The EMF framework essentials
  • How to use EMF to create Eclipse plug-ins
  • The fundamentals of Java Emitter Template (JET)

Outline for Eclipse Modeling Framework EMF Training Course


  • Model Driven Architecture
  • Meta Modeling
  • Meta Object Facility (MOF)
  • Eclipse
  • EMF

Using Ecore

  • The ecore editor
  • A quick look at XMI and the XML foundations
  • Limitations of ecore
A First Case Study

Introduction to the case study

  • A music library
  • The UML Model
  • The goals for the application

The Model - A First Look

  • Creating a model using ecore
  • Defining the types
  • Defining the attributes
  • Defining the associations

Creating a Generator Model

  • Purpose of the generator model
  • Creating the generator model
  • Optimization of the generator model

Using the EMF generator

  • Generating an application
  • What is generated?
  • The generated model implementation
  • The generated EMF.edit implementation
  • The generated EMF.editor implementation

Running the Application

  • How to run the application
  • How to use the application
  • What is missing?
Defining EMF Models

Overview of EMF Models

  • The role of the EMF models
  • The language for EMF models
  • Limitations of ecore

The EMF Meta model

  • What is a meta model?
  • Eclipse Meta Object Framework (emof)

Modeling with Java Interfaces

  • Defining a model based on Java interfaces
  • The @model attribute
  • Extensions to the @model
  • The @generated attribute
  • Other Java annotations
  • Creating ecore models from annotated Java

Using Rational Software Architect (RSA)

  • Why Rational Software Architect?
  • The stereotypes
  • Creating ecore models from mdl files

Modeling using XML Schema

  • XML Schema mappings
  • Limitations in mapping
  • Creating an XML schema
  • From XSD to ecore
Running the Default Generator

EMF Model Generator Patterns

  • Generating the model
  • A class becomes...
  • Generated code and inheritance
  • An enumeration becomes...
  • An attribute becomes...
  • A reference becomes...
  • An operation becomes...
  • Factories
  • Packages
  • Switch classes
  • Adapter factories

EMF edit generator patterns

  • Commands
  • Label providers
  • Factories

EMF Editor Generator Pattern

  • Tree editor
  • Table tree editor
  • Table editor
  • Action bar contributor
  • Wizards

Java Emitter Templates (JET)

  • Purpose of JET
  • A simple example

JET Concepts

  • The JET model
  • JET directives
  • Scriptlets
  • Expressions

JET Case Study - Extending the generated code

  • Extending options
  • Changing JET?
  • Changing the generated code?
  • Heuristics
  • Patterns
  • Extending the model
  • Extending the edit code
  • Extending the editor

Advanced EMF

  • Chaining meta models
  • Using emof
  • Chaining generators

EMF used to define domain specific languages

  • Graphical Modeling Framework (GMF)
  • EMFText
  • XText

Comments are closed.