Eclipse Modeling Framework
Duration (in days):
3
Description:
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.
Objectives:
Understand the fundamentals of model driven development and MDA
Understand how to take advantage of meta modeling
Understand how to use EMF framework to build persistent models
Understand how to use EMF to create Eclipse plug-ins
Understand the fundamentals of Java Emitter Template (JET)
Prerequisites:
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.
Audience
Any programmer that wants to master the EMF framework and understand how to use EMF in their organization.
Outline
Overview
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 code 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