Eclipse Modeling Framework EMF

3 days
Course code: 
Audience :
This course is designed for professionals who have been exposed to software models and Java.
Prerequisites :
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)
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...
Switch classes
Adapter factories
EMF edit generator patterns
Label providers
EMF Editor Generator Pattern
Tree editor
Table tree editor
Table editor
Action bar contributor
Java Emitter Templates (JET)
Purpose of JET
A simple example
JET Concepts
The JET model
JET directives
JET Case Study - Extending the generated code
Extending options
Changing JET?
Changing the generated code?
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)