Eclipse Modeling Framework EMF Training Course

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