Eclipse Modeling Framework EMF

Duration: 
3 days
Course code: 
SS-ECL-003
Audience :
This course is designed for professionals who have been exposed to software models and Java.
Architects
Designers
Developers
 
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
 
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
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
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 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