SlideShare une entreprise Scribd logo
1  sur  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.
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

Contenu connexe

Similaire à 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.pdfCarlos 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 2011Mickael 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 Societymelbats
 
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 platformTonny Madsen
 
15 EMF projects in 25 minutes
15 EMF projects in 25 minutes15 EMF projects in 25 minutes
15 EMF projects in 25 minutesCé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 2020Lars 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 FrameworkDave Steinberg
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael 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 FrameworkDave Steinberg
 
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 RestructuredDoiT International
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructuredAmi Mahloof
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2ukdpe
 
Erlang For Five Nines
Erlang For Five NinesErlang For Five Nines
Erlang For Five NinesBarcamp 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
 

Similaire à 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...
 

Plus de Tonny Madsen

L0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard ViewsL0043 - Interfacing to Eclipse Standard Views
L0043 - Interfacing to Eclipse Standard ViewsTonny Madsen
 
L0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse ConfigurationL0037 - Basic Eclipse Configuration
L0037 - Basic Eclipse ConfigurationTonny Madsen
 
L0036 - Creating Views and Editors
L0036 - Creating Views and EditorsL0036 - Creating Views and Editors
L0036 - Creating Views and EditorsTonny Madsen
 
L0020 - The Basic RCP Application
L0020 - The Basic RCP ApplicationL0020 - The Basic RCP Application
L0020 - The Basic RCP ApplicationTonny Madsen
 
L0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget ToolkitL0018 - SWT - The Standard Widget Toolkit
L0018 - SWT - The Standard Widget ToolkitTonny 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-inTonny 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 PlatformTonny 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 FutureTonny 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 IntroductionTonny Madsen
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsTonny 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 - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insTonny 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 HoodTonny 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
 

Plus de 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...
 

Dernier

Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 

Dernier (20)

Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 

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

Notes de l'éditeur

  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.