notesnet.dk - eclipse modelling tools

27
PR0029 - 2010-05-31 Redistribution and other use of this material requires written permission from The RCP Company. Eclipse Modeling Tools - 2010-10-26 Eclipse is probably best known as a first class Java IDE, but it is so much more than that. In this talk, I will present the different tools that makes up the Eclipse Modeling Project from the simple (EMF) to the very complex (QVT/O). The emphasis will be on the immediately useful techniques with plenty of demonstrations.

Upload: tonny-madsen

Post on 06-May-2015

1.142 views

Category:

Education


2 download

DESCRIPTION

Eclipse is probably best known as a first class Java IDE, but it is so much more than that. In this talk, I will present the different tools that makes up the Eclipse Modeling Project from the simple (EMF) to the very complex (QVT/O). The emphasis will be on the immediately useful techniques with plenty of demonstrations. Presentation made for notesnet.dk 2010-10-26

TRANSCRIPT

Page 1: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

Redistribution and other use of this material requires written permission from The RCP Company.

Eclipse Modeling Tools - 2010-10-26

Eclipse is probably best known as a first class Java IDE, but it is so much more than that.In this talk, I will present the different tools that makes up the Eclipse Modeling Project from the simple (EMF) to the very complex (QVT/O). The emphasis will be on the immediately useful techniques with plenty of demonstrations.

Page 2: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

2

Agenda

Eclipse is… what exactly? The Eclipse Architecture

The Eclipse Modeling Project and sub-projects EMF, EMFT, GMP, GMT, MDT, M2M, M2T, and TMF

The Eclipse Modeling Tools EMF OCL CDO XText GMF Jet Xpand QVT/O

Page 3: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

3

Eclipse is… what exactly?

Page 4: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

4

Eclipse – The Sweets

Page 5: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

5

ECLIPSE – The Mitsubishi Car

Page 6: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

6

Eclipse – The Java IDE

Page 7: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

7

Eclipse – The Tools Platform

Page 8: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

8

Eclipse – The Application Platform

Page 9: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

9

Eclipse – The Application Platform

Page 10: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

10

IBM Lotus NotesVersion 8

Page 11: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

11

The Eclipse Modeling Projectand sub-projects

Page 12: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

12

Eclipse Modeling Project

“The Eclipse Modeling Project focuses on the evolution and promotion of model-based development technologies within the Eclipse community by providing a unified set of modeling frameworks, tooling, and standards implementations.”

Page 13: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

13

Relevant Modeling Sub-Projects

Administrative Projects EMF, EMFT, GMP, GMT, MDT, M2M, M2T, and TMF

Some Relevant Technical Projects EMF – Eclipse Modeling Framework – is the base technology used to represent

models OCL – Object Constraint Language – allows you to specify advanced constraints

and invariants CDO – Connected Data Objects – is a distributed shared model framework for

EMF models and meta models XText – is a text based editor framework for EMF models based on EBNF

grammars GMF – Graphical Modeling Framwork – is a graphics based editor framework for

EMF models JET – Java Emitter Templates – is a JSP like language for generating Java code

from a model Xpand – is a high-level template language used to translate models to text QVT/O – Operational QVT (Query/View/Transformation) – is a very, very high-

level language for model to model transformations Teneo – is a database persistency solution for EMF using Hibernate or EclipseLink

Page 14: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

14

EMF

Eclipse Modeling Framework – is the base technology used to represent models

Logical models based on ER diagrams

Page 15: notesnet.dk - Eclipse Modelling Tools

L0087 - 2010-09-19

15

Logical Model for NBS – Noware Bike Shop

~

Item

HandlebarsFrame

Bike

0..*

Wheel Gear Saddle

Page 16: notesnet.dk - Eclipse Modelling Tools

L0087 - 2010-09-19

16

Logical Model for EMF

~ Named Element

Model Element

0..1

Typed ElementClassifier

Structural Feature

Attribute

Reference

Class

Data Type

0..*

0..*

0..*

type

opposite

superTypes

0..*

Page 17: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

17

OCL

Object Constraint Language – allows you to specify advanced constraints and invariants

E.g. Item price is positive:

Context Item: inv self.price > 0

It has exactly one Saddle: Context Bike: inv self.items->select(i : Item | i.oclIsKindOf(Saddle))->size()

== 1

Can be tested using the interactive console

Can be embedded directly in Ecore

Page 18: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

18

CDO

Connected Data Objects – is a distributed shared model framework for EMF models and meta models

Page 19: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

19

XText

XText – is a text based editor framework for EMF models based on EBNF grammars

events doorClosed D1CL drawOpened D2OP …end resetEvents doorOpenedend commands unlockPanel PNUL lockPanel PNLK …end state idle actions {unlockDoor lockPanel} doorClosed => activeend state active drawOpened => waitingForLight lightOn => waitingForDrawend …

grammar my.pack.SecretCompartments with org.eclipse.xtext.common.Terminals

generate secretcompartment "http://www.eclipse.org/secretcompartment" Statemachine : 'events' (events+=Event)+ 'end' ('resetEvents' (resetEvents+=[Event])+ 'end')? 'commands' (commands+=Command)+ 'end' (states+=State)+; Event : name=ID code=ID; Command : name=ID code=ID; State : 'state' name=ID ('actions' '{' (actions+=[Command])+ '}')? (transitions+=Transition)* 'end'; Transition : event=[Event] '=>' state=[State];

Page 20: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

20

GMF

Graphical Modeling Framwork – is a graphics based editor framework for EMF models

In itself also a number of models that describe how objects and graphical items and tools maps

Page 21: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

21

JET

Java Emitter Templates – is a JSP like language for generating Java code from a model

public <%if (isEnum) {%>enum<%} else {%>final class<%}%> <%=genEnum.getName()%> <%if (isEnum) {%>implements<%} else {%>extends<%}%> <%=genModel.isSuppressEMFMetaData() && !genModel.isSuppressInterfaces() ? "Internal" + genEnum.getName() : genModel.getImportedName(isEnum ? "org.eclipse.emf.common.util.Enumerator" : "org.eclipse.emf.common.util.AbstractEnumerator")%>{<%if (isEnum) {%> <%if (genEnum.getGenEnumLiterals().isEmpty()) {%>

;

<%}else {%> <%for (Iterator<GenEnumLiteral> l = genEnum.getGenEnumLiterals().iterator(); l.hasNext(); ) { GenEnumLiteral genEnumLiteral = l.next(); %>

/** * The '<em><b><%=genEnumLiteral.getFormattedName()%></b></em>' literal object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #<%=genEnumLiteral.getEnumLiteralValueConstantName()%> * @generated * @ordered */<%=genEnumLiteral.getEnumLiteralInstanceConstantName()%>(<%=genEnumLiteral.getValue()%>, "<

%=genEnumLiteral.getName()%>", <%=Literals.toStringLiteral(genEnumLiteral.getLiteral(), genModel)%>)<%if (l.hasNext()) {%>,<%} else {%>;<%}%><%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>

<%}%> <%}%><%}%>

Page 22: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

22

Xpand

Xpand – is a high-level template language used to translate models to text

Expandable and type-safe Has an aspect-based extension system to allow users to extend current templates

«DEFINE Root FOR data::DataModel» «EXPAND Entity FOREACH entity»«ENDDEFINE»

«DEFINE Entity FOR data::Entity» «FILE name + ".java"» public class «name» { «FOREACH attribute AS a» // bad practice private «a.type» «a.name»; «ENDFOREACH» } «ENDFILE»«ENDDEFINE»

Page 23: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

23

Eclipse.dk – The Danish Eclipse Society

Eclipse.dk was created in Marts 2007 as a meeting place for everyone interested in the Eclipse (www.eclipse.org) platform.

The purpose of Eclipse.dk is as follows: To promote the knowledge of Eclipse in Denmark. To create networks amongst danish Eclipse-users and developers. To build knowledge on Eclipse in Denmark, especially

In danish institutes of higher education. Between danish companies developing applications based on Eclipse.

Create and maintain a web site on Eclipse for danish users – eclipse.dk.

Strengthen the relations between danish and international Eclipse-users and organizations.

The eclipse.dk society has members representing not only vendors of Eclipse-based products and services, but also users of the platform and representatives from institutions of higher education.

Page 24: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

24

Q & A

Page 25: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

25

About Me

Tonny Madsen, Founder and Owner of The RCP Company

20 years of experience in system development in major companies 9 years experience as the Systems Architect of an 20+ MLoC project 8 years of experience with Eclipse and Eclipse RCP

Solutions Member of the Eclipse Foundation Chairman of Eclipse.dk Extern Lecturer at IT-University on Model Driven Development and

Domain Specific Languages Regular speaker at EclipseCon, Eclipse Summit, etc

Page 26: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

26

If You Want to Know More about Eclipse

The Foundation: http://eclipse.org

The Danish User Group: http://eclipse.dk

The training: http://www.eclipse.org/community/training/classes.php

Resources on Eclipse: http://www.eclipse.org/resources/

Consolidated Blog: http://planeteclipse.org/

Page 27: notesnet.dk - Eclipse Modelling Tools

PR0029 - 2010-05-31

27

If You Want to Know More about Modeling

The Project: http://eclipse.org/modeling/

Downloading Eclipse for Modeling: http://www.eclipse.org/downloads/packages/eclipse-modeling-tools-includes-incu

bating-components/heliossr1

The training: Not yet, but coming after the Summer ITU have a 14 weeks class on “Model Driven Development” - https://

mit.itu.dk/ucs/cb_www/course.sml?course_id=913525&semester_id=912846

Tutorials on modeling