Generation Chain. Benoît Langlois Thales/EPM. EGF Tutorial Generation Chain by Thales; made available under the EPL v1.

Similar documents
Introduction to EGF. Benoît Langlois / Thales Global Services.

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

EGF Tutorial. Benoît Langlois Thales/EPM. EGF Tutorial by Thales; made available under the EPL v1.0

EGF Tutorial Reuse and Customization

EMF GENERATION PORTFOLIO

EGF Creation Review. Benoît Langlois - Thales/TCS/EPM. April 22, 2009

CONCERNS The designer functionally assembles basic services. The designer executes tasks. The developer writes basic services in a language.

BLU AGE 2009 Edition Agile Model Transformation

CISC836: Models in Software Development: Methods, Techniques and Tools

Dominique Blouin Etienne Borde

13 th Windsor Regional Secondary School Computer Programming Competition

Introduction to OpenArchitectureWare

The Eclipse Parallel Tools Platform

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Dominique Blouin Etienne Borde

JBPM Course Content. Module-1 JBPM overview, Drools overview

Presenter: Dong hyun Park

Introduction... ix. Chapter 1: Exploring Fundamental Programming Concepts... 1

Activity 6: Loops. Content Learning Objectives. Process Skill Goals

News in RSA-RTE CP2

FrUiT: IDE Support for Framework Understanding

Adapting JDT to the Cloud. Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM

2559 : Introduction to Visual Basic.NET Programming with Microsoft.NET

Transformational Abstraction for Java (TAJ)

CHAPTER 6: CREATIONAL DESIGN PATTERNS

Master of Science Thesis. Modeling deployment and allocation in the Progress IDE

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

A Graphical Editor for LOA

Remote Invocation. 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics

EMC Documentum Composer


EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

Framework for Constructing Context- Specific Migration Methods for Test Cases

The Eclipse Modeling Framework and MDA Status and Opportunities

Module 3 Web Component

Microsoft Visual Basic 2005: Reloaded

SAP ABAP WORKBENCH CONCEPTS PART 1 AND 2. INd_rasN. 1 P a g e. KIDS Information Center

When Modeling meets Productivity. Sven Efftinge - itemis

Design Pattern and Software Architecture: IV. Design Pattern

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1

VB.NET. Exercise 1: Creating Your First Application in Visual Basic.NET

COMSC-051 Java Programming Part 1. Part-Time Instructor: Joenil Mistal

Comparing graphical DSL editors

M Introduction to Visual Basic.NET Programming with Microsoft.NET 5 Day Course

AADL Graphical Editor Design

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Eclipse 4 Eclipse Day Toulouse 24 mai 2012

Using Eclipse in MIS Research

Orccad, a Model Driven Architecture and Environment for Real-Time Control. Soraya Arias Florine Boudin Roger Pissard-Gibollet Daniel Simon

EMF course - PACT. Etienne Borde

Model handling with EMF

Selenium Online Training Brochure

Custom Code Rules Deep Dive

SELENIUM. SELENIUM COMPONENTS Selenium IDE Selenium RC Selenium Web Driver Selenium Grid

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

SDKs - Eclipse. SENG 403, Tutorial 2

ATL: Atlas Transformation Language. ATL User Manual

Software Analysis and Transformation

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009

Chapter 5 Object-Oriented Programming

ELET4133: Embedded Systems. Topic 3 Eclipse Tour & Building a First App

What is Wazaabi 2.0? Declarative UI framework. based on. live EMF model(s)

IBM Rational Software Architect

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Using JBI for Service-Oriented Integration (SOI)

Chapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Element: Relations: Topology: no constraints.

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value

Chapter 8: Class and Method Design

DSM model-to-text generation: from MetaDepth to Android with EGL

Object Constraint Language (MDT OCL) 1.3 Galileo Simultaneous Release Review

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

Activity 6: Loops. Content Learning Objectives. Process Skill Goals

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

LABORATORY 1 REVISION

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

Chapter 10 Classes Continued. Fundamentals of Java

CSE 219 COMPUTER SCIENCE III STRUCTURAL DESIGN PATTERNS SLIDES COURTESY: RICHARD MCKENNA, STONY BROOK UNIVERSITY.

B. Assets are shared-by-copy by default; convert the library into *.jar and configure it as a shared library on the server runtime.

Express Yourself. What is Eclipse?

Syllabus- Java + Android. Java Fundamentals

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Review sheet for Final Exam (List of objectives for this course)

Tutorial 02: Writing Source Code

CSE115 / CSE503 Introduction to Computer Science I. Dr. Carl Alphonce 343 Davis Hall Office hours:

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

OODP Session 4. Web Page: Visiting Hours: Tuesday 17:00 to 19:00

Java Training JAVA. Introduction of Java

Understanding Oracle ADF and its role in the Oracle Fusion Platform

,

WP 18: Socio-economic perspectives of sustainability and dynamic specification of behaviour in Digital Business Ecosystems

Aggregation. Introduction to Computer Science I. Overview (1): Overview (2): CSE 1020 Summer Bill Kapralos. Bill Kapralos.

INHERITANCE: EXTENDING CLASSES

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Xamarin for C# Developers

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright

Transcription:

EGF Tutorial Generation Chain Benoît Langlois Thales/EPM

Agenda Principles Generation Customization lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Chain Extensibility 2

Agenda Principles Generation Customization lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Chain Extensibility 3

Rationale lipse Generation Fac ctories Thales Corp porate Services/EPM Objective of the Generation Chain: Definition, at a high level of description, of executable generations Abstraction: encapsulating the irrelevant technical details of generation Simplicity & Efficiency: Reducing the number of clicks (i.e. the number of actions) Only providing the main generation features and next generating Technical principle: Generation features are captured in a generation chain file An EGF fcore file is produced from the generation chain: it contains the translation of the generation chain into factory components Next, the factory components are transparantly executed to produce the expected artifacts 4

Levels of Generation Level 1 Designer Generation Chain It captures the generation steps and their features File type: generation chain lipse Generation Fac ctories Thales Corp porate Services/EPM Level 2 Developer Level 3 Factory Components They contain the logic of generation File type: fcore Result of the generation The artifacts are generated Instantiation Generated Instantiation Execution of the generation 5

Process Designer 1 to n ecore Models New Generation Chain Generation Chain lipse Generation Fac ctories Thales Corp porate Services/EPM [Update] Adjust Generation Features [Fast track] Run Generation Chain Generation Result 6

Process Developer 1 to n ecore Models New Generation Chain Generation Chain lipse Generation Fac ctories Thales Corp porate Services/EPM [Update] Adjust Generation Features [Fast track] Run Generation Chain Generation Result Factory Components [Customization track] Generate fcore file Execute Factory Components Customize Factory Components 7

Visualization 1/3 Selection of ecore models Creation of Generation Chain New Generation Chain For each model, setting the generation features porate Services/EPM ctories Thales Corp lipse Generation Fac 8

Visualization 2/3 Modification of Generation Chain Features Possibility to change the generation features and add new generation steps lipse Generation Fac ctories Thales Corp porate Services/EPM Generation step and values 9

Visualization 3/3 Result of Generation Chain execution Equivalence of the generation chain into factory components porate Services/EPM ctories Thales Corp lipse Generation Fac Result of the generation 10

Agenda Principles Generation Customization lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Chain Extensibility 11

Customization with Generation Chains Generation Chain Definition Instantiation lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Reuse Factories Portfolio Customization Project Context How to introduce customization with a generation chain-based development while a generation chain reuses a standard generation stored in a portfolio? 12

Principles of GC customization Means of customization A customization is realized with patterns which specialize the standard generation, for instance model / edit / editor for the Emf generation lipse Generation Fac ctories Thales Corp porate Services/EPM Incrementality When a feature in the generation chain is changed, the fcore is synchronized accordingly Ex: when the emf model editor feature is set to true, the model editor generation is invoked, and in reverse is removed when this feature is set to false. Protected elements: Patterns in a Pattern Viewpoint Pattern substitution in the Orchestration Parameter Container where the patterns for customization replace the standard patterns 13

Illustration on EMF Generation Generation Chain Definition Instantiation EMF Model lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Factories Customization Project Context EMF Edit.custo Reuse Portfolio EMF Edit EMF Editor EMF Tests 14

Illustration on EMF Generation Generation Chain Definition Instantiation EMF Model lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Factories Customization Project Context EMF Edit.custo Reuse Portfolio EMF Edit EMF Editor EMF Tests Injection of the patterns in the standard generation by substitution 15

Example of substitution Pattern for customization lipse Generation Fac ctories Thales Corp porate Services/EPM Declaration of the substitution in the orchestration parameters Refer to the org.eclipse.egf.usecase.generationchain.uc1 example 16

Memo for a Customization with Patterns lipse Generation Fac ctories Thales Corp porate Services/EPM Open the fcore file related to the generation chain. In the Viewpoint container, create a pattern domain which will contain the pattern libraries and patterns for customization. Identify the standard patterns to extend. For their location, navigate for instance from the invoked factory component of the fcore file (e.g., EMF Edit) which contains the standard patterns. Create the pattern for customization: In order to avoid rewriting everything from scratch in the new pattern, the pattern inherits from the standard pattern. Add the precondition to apply the pattern; add the imports defined in the pattern header method; in the method for code generation (e.g., dogenerate) add the customized code. For pattern inheritance, in the Manifest of the plug-in which contains the fcore file, add the dependencies toward the plug-in(s) which contain(s) the standard pattern(s) 17

Agenda Principles Generation Customization lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Chain Extensibility 18

Principle of Generation Chain Extension lipse Generation Fac ctories Thales Corp porate Services/EPM 19 Objective Ability to extend generation chains with new types of generation chain step Introducing new types of generations (e.g. diagram, test generation) Impacts New step type in the user interface of generation chain creation New step type in the generation chain model Association of a generation to the new type of step Extension of the creation UI New type of model element New type of step

Generation Chain Extension lipse Generation Fac ctories Thales Corporate Services/EPM 20

Generation Chain Extension Declaration of the model extending the generation chain model porate Services/EPM ctories Thales Corp lipse Generation Fac 21

Generation Chain Extension lipse Generation Fac ctories Thales Corp porate Services/EPM Factory Component used for the extension - The SampleElementPattern Java pattern declares the behavior to be applied. It invokes the production plan here. - Production Plan = Generation Behavior Here, it just applies a simple task implemented by a Java Class. 22

Generation Chain Extension lipse Generation Fac ctories Thales Corp porate Services/EPM Java Class for extension Id declaration of the pattern explained in the previous slide Label for instance used in the creation user interface The sequence to declare that the pattern is applied over a generation chain model when the generation chain is executed Model action to be applied when a new step of this type is created 23