• Like
  • Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

notesnet.dk - Eclipse Modelling Tools

on

  • 1,410 views

Eclipse is probably best known as a first class Java IDE, but it is so much more than that. ...

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

Statistics

Views

Total Views
1,410
Views on SlideShare
1,409
Embed Views
1

Actions

Likes
0
Downloads
13
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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…
  • The current view of Eclipse according to the Eclipse Foundation. Really, the same view as when Eclipse was first conceived.
  • This is the prototype of the banking desktop. It looks and feels like an Eclipse application. Just see the L&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.
  • 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&feel was designed by Mary Beth Raven. Would have been easier with e4, as this would have eased the structural changes as well.

notesnet.dk - Eclipse Modelling Tools notesnet.dk - Eclipse Modelling Tools Presentation Transcript

  • 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.
  • 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
  • Eclipse is… what exactly?
  • Eclipse – The Sweets
  • ECLIPSE – The Mitsubishi Car
  • Eclipse – The Java IDE
  • Eclipse – The Tools Platform
  • Eclipse – The Application Platform
  • Eclipse – The Application Platform
  • IBM Lotus Notes Version 8
  • The Eclipse Modeling Project and sub-projects
  • 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.”
  • 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
  • EMF
    • Eclipse Modeling Framework – is the base technology used to represent models
    • Logical models based on ER diagrams
  • Logical Model for NBS – Noware Bike Shop ~ Item Handlebars Frame Bike 0..* Wheel Gear Saddle
  • Logical Model for EMF ~ Named Element Model Element 0..1 Typed Element Classifier Structural Feature Attribute Reference Class Data Type 0..* 0..* 0..* type opposite superTypes 0..*
  • 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
  • CDO
    • Connected Data Objects – is a distributed shared model framework for EMF models and meta models
  • 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];
  • 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
  • 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() ? &quot;Internal&quot; + genEnum.getName() : genModel.getImportedName(isEnum ? &quot;org.eclipse.emf.common.util.Enumerator&quot; : &quot;org.eclipse.emf.common.util.AbstractEnumerator&quot;)%> { <%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()%>, &quot;<%=genEnumLiteral.getName()%>&quot;, <%=Literals.toStringLiteral(genEnumLiteral.getLiteral(), genModel)%>)<%if (l.hasNext()) {%>,<%} else {%>;<%}%><%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%> <%}%> <%}%> <%}%>
  • 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 + &quot;.java&quot;» public class «name» { «FOREACH attribute AS a» // bad practice private «a.type» «a.name»; «ENDFOREACH» } «ENDFILE» «ENDDEFINE»
  • 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.
  • Q & A
  • 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
  • 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/
  • 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