SlideShare a Scribd company logo
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.
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
PR0029 - 2010-05-31
3
Eclipse is… what exactly?
PR0029 - 2010-05-31
4
Eclipse – The Sweets
PR0029 - 2010-05-31
5
ECLIPSE – The Mitsubishi Car
PR0029 - 2010-05-31
6
Eclipse – The Java IDE
PR0029 - 2010-05-31
7
Eclipse – The Tools Platform
PR0029 - 2010-05-31
8
Eclipse – The Application Platform
PR0029 - 2010-05-31
9
Eclipse – The Application Platform
PR0029 - 2010-05-31
10
IBM Lotus Notes
Version 8
PR0029 - 2010-05-31
11
The Eclipse Modeling Project
and sub-projects
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.”
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
PR0029 - 2010-05-31
14
EMF
 Eclipse Modeling Framework – is the base technology used to represent models
 Logical models based on ER diagrams
L0087 - 2010-09-19
15
Logical Model for NBS – Noware Bike Shop
~
Item
HandlebarsFrame
Bike
0..*
Wheel Gear Saddle
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..*
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
PR0029 - 2010-05-31
18
CDO
 Connected Data Objects – is a distributed shared model framework for EMF models
and meta models
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
doorOpened
end
commands
unlockPanel PNUL
lockPanel PNLK
…
end
state idle
actions {unlockDoor lockPanel}
doorClosed => active
end
state active
drawOpened => waitingForLight
lightOn => waitingForDraw
end
…
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];
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
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)%>
<%}%>
<%}%>
<%}%>
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»
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.
PR0029 - 2010-05-31
24
Q & A
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
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/
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-
incubating-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

More Related Content

Similar to notesnet.dk - Eclipse Modelling Tools

Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdf
Carlos Paredes
 
IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)
Tonny Madsen
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
Mickael Istria
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
melbats
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
Tonny Madsen
 
15 EMF projects in 25 minutes
15 EMF projects in 25 minutes15 EMF projects in 25 minutes
15 EMF projects in 25 minutes
Cédric Brun
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
Lars Vogel
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
melbats
 
Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020
Lars Vogel
 
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkEclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
 
Eclipse
EclipseEclipse
Eclipse
Nicola Pedot
 
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...Hugo Bruneliere
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
Ami Mahloof
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
DoiT International
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2
ukdpe
 
Erlang For Five Nines
Erlang For Five NinesErlang For Five Nines
Erlang For Five Nines
Barcamp Cork
 
[Siriuscon2018] Integrating Sirius, Xtext and EMF Compare to Design Simulato...
[Siriuscon2018]  Integrating Sirius, Xtext and EMF Compare to Design Simulato...[Siriuscon2018]  Integrating Sirius, Xtext and EMF Compare to Design Simulato...
[Siriuscon2018] Integrating Sirius, Xtext and EMF Compare to Design Simulato...
Obeo
 

Similar to notesnet.dk - Eclipse Modelling Tools (20)

Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdf
 
ALT
ALTALT
ALT
 
IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)IDA - Eclipse Workshop I (In Danish)
IDA - Eclipse Workshop I (In Danish)
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
 
15 EMF projects in 25 minutes
15 EMF projects in 25 minutes15 EMF projects in 25 minutes
15 EMF projects in 25 minutes
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020
 
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkEclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
 
Eclipse
EclipseEclipse
Eclipse
 
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2
 
Erlang For Five Nines
Erlang For Five NinesErlang For Five Nines
Erlang For Five Nines
 
[Siriuscon2018] Integrating Sirius, Xtext and EMF Compare to Design Simulato...
[Siriuscon2018]  Integrating Sirius, Xtext and EMF Compare to Design Simulato...[Siriuscon2018]  Integrating Sirius, Xtext and EMF Compare to Design Simulato...
[Siriuscon2018] Integrating Sirius, Xtext and EMF Compare to Design Simulato...
 

More from Tonny Madsen

L0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard ViewsL0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard Views
Tonny Madsen
 
L0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse ConfigurationL0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse Configuration
Tonny Madsen
 
L0036 - Creating Views and Editors
L0036 - Creating Views and EditorsL0036 - Creating Views and Editors
L0036 - Creating Views and Editors
Tonny Madsen
 
L0033 - JFace
L0033 - JFaceL0033 - JFace
L0033 - JFace
Tonny Madsen
 
L0020 - The Basic RCP Application
L0020 - The Basic RCP ApplicationL0020 - The Basic RCP Application
L0020 - The Basic RCP Application
Tonny Madsen
 
L0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget ToolkitL0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget Toolkit
Tonny Madsen
 
L0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inL0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-in
Tonny Madsen
 
L0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse PlatformL0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse Platform
Tonny Madsen
 
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
Tonny Madsen
 
PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?
Tonny Madsen
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Tonny Madsen
 
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An IntroductionEclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Tonny Madsen
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
Tonny Madsen
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
Tonny Madsen
 
ITU - MDD - EMF
ITU - MDD - EMFITU - MDD - EMF
ITU - MDD - EMF
Tonny Madsen
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
Tonny Madsen
 
ITU - MDD - XText
ITU - MDD - XTextITU - MDD - XText
ITU - MDD - XText
Tonny Madsen
 
eclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hoodeclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hood
Tonny Madsen
 
EclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupEclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupTonny Madsen
 
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Tonny Madsen
 

More from Tonny Madsen (20)

L0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard ViewsL0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard Views
 
L0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse ConfigurationL0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse Configuration
 
L0036 - Creating Views and Editors
L0036 - Creating Views and EditorsL0036 - Creating Views and Editors
L0036 - Creating Views and Editors
 
L0033 - JFace
L0033 - JFaceL0033 - JFace
L0033 - JFace
 
L0020 - The Basic RCP Application
L0020 - The Basic RCP ApplicationL0020 - The Basic RCP Application
L0020 - The Basic RCP Application
 
L0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget ToolkitL0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget Toolkit
 
L0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-inL0016 - The Structure of an Eclipse Plug-in
L0016 - The Structure of an Eclipse Plug-in
 
L0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse PlatformL0001 - The Terminology of the Eclipse Platform
L0001 - The Terminology of the Eclipse Platform
 
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale A...
 
PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
 
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An IntroductionEclipse Demo Camp 2010 - UI Bindings - An Introduction
Eclipse Demo Camp 2010 - UI Bindings - An Introduction
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
 
ITU - MDD - EMF
ITU - MDD - EMFITU - MDD - EMF
ITU - MDD - EMF
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
ITU - MDD - XText
ITU - MDD - XTextITU - MDD - XText
ITU - MDD - XText
 
eclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hoodeclipse.dk - Eclipse RCP Under the Hood
eclipse.dk - Eclipse RCP Under the Hood
 
EclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user groupEclipseCon '08 - BoF - Building a local Eclipse user group
EclipseCon '08 - BoF - Building a local Eclipse user group
 
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...
 

Recently uploaded

ESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdfESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdf
Fundacja Rozwoju Społeczeństwa Przedsiębiorczego
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
Col Mukteshwar Prasad
 
PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
PedroFerreira53928
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
Nguyen Thanh Tu Collection
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
Celine George
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
Excellence Foundation for South Sudan
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
GeoBlogs
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
rosedainty
 
Sectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdfSectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdf
Vivekanand Anglo Vedic Academy
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 

Recently uploaded (20)

ESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdfESC Beyond Borders _From EU to You_ InfoPack general.pdf
ESC Beyond Borders _From EU to You_ InfoPack general.pdf
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
 
Sectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdfSectors of the Indian Economy - Class 10 Study Notes pdf
Sectors of the Indian Economy - Class 10 Study Notes pdf
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 

notesnet.dk - Eclipse Modelling Tools

  • 1. 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.
  • 2. 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
  • 3. PR0029 - 2010-05-31 3 Eclipse is… what exactly?
  • 5. PR0029 - 2010-05-31 5 ECLIPSE – The Mitsubishi Car
  • 6. PR0029 - 2010-05-31 6 Eclipse – The Java IDE
  • 7. PR0029 - 2010-05-31 7 Eclipse – The Tools Platform
  • 8. PR0029 - 2010-05-31 8 Eclipse – The Application Platform
  • 9. PR0029 - 2010-05-31 9 Eclipse – The Application Platform
  • 10. PR0029 - 2010-05-31 10 IBM Lotus Notes Version 8
  • 11. PR0029 - 2010-05-31 11 The Eclipse Modeling Project and sub-projects
  • 12. 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.”
  • 13. 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
  • 14. PR0029 - 2010-05-31 14 EMF  Eclipse Modeling Framework – is the base technology used to represent models  Logical models based on ER diagrams
  • 15. L0087 - 2010-09-19 15 Logical Model for NBS – Noware Bike Shop ~ Item HandlebarsFrame Bike 0..* Wheel Gear Saddle
  • 16. 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..*
  • 17. 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
  • 18. PR0029 - 2010-05-31 18 CDO  Connected Data Objects – is a distributed shared model framework for EMF models and meta models
  • 19. 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 doorOpened end commands unlockPanel PNUL lockPanel PNLK … end state idle actions {unlockDoor lockPanel} doorClosed => active end state active drawOpened => waitingForLight lightOn => waitingForDraw end … 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];
  • 20. 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
  • 21. 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)%> <%}%> <%}%> <%}%>
  • 22. 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»
  • 23. 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.
  • 25. 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
  • 26. 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/
  • 27. 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- incubating-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

Editor's Notes

  1. Just to make everybody aware that they actually know about Eclipse already. It is known technology – not new technology. ESB, web services and BPM are all considered new technology…
  2. The current view of Eclipse according to the Eclipse Foundation. Really, the same view as when Eclipse was first conceived.
  3. This is the prototype of the banking desktop. It looks and feels like an Eclipse application. Just see the L&amp;F. No serious presentation branding has been performed… yet… One area where e4 would have helped – the look could be Nordea look instead of Eclipse look.
  4. Is this Eclipse RCP? The perspective switcher is different! Views in the “same position” of the perspective – a so-called folder – are shown differently. The “Launch” button Based on Eclipse RCP! Early demo based on Eclipse RCP 3.1 Look of some native widgets has been changed! UI is a mix of SWT and Native Notes® windows The workbench is recognizable yet different Domino, IBM, Lotus, Notes and Workplace Client Technology are trademarks or registered trademark of International Business Machines Corp. in the United States, other countries, or both. IBM Lotus Notes look&amp;feel was designed by Mary Beth Raven. Would have been easier with e4, as this would have eased the structural changes as well.