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

© 2020 Northscaler