notesnet.dk - Eclipse Modelling Tools

1,368 views
1,262 views

Published on

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

Published in: Education, Technology, Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,368
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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

    1. 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. 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. 3. PR0029 - 2010-05-31 3 Eclipse is… what exactly?
    4. 4. PR0029 - 2010-05-31 4 Eclipse – The Sweets
    5. 5. PR0029 - 2010-05-31 5 ECLIPSE – The Mitsubishi Car
    6. 6. PR0029 - 2010-05-31 6 Eclipse – The Java IDE
    7. 7. PR0029 - 2010-05-31 7 Eclipse – The Tools Platform
    8. 8. PR0029 - 2010-05-31 8 Eclipse – The Application Platform
    9. 9. PR0029 - 2010-05-31 9 Eclipse – The Application Platform
    10. 10. PR0029 - 2010-05-31 10 IBM Lotus Notes Version 8
    11. 11. PR0029 - 2010-05-31 11 The Eclipse Modeling Project and sub-projects
    12. 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. 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. 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. 15. L0087 - 2010-09-19 15 Logical Model for NBS – Noware Bike Shop ~ Item HandlebarsFrame Bike 0..* Wheel Gear Saddle
    16. 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. 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. 18. PR0029 - 2010-05-31 18 CDO  Connected Data Objects – is a distributed shared model framework for EMF models and meta models
    19. 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. 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. 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. 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. 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.
    24. 24. PR0029 - 2010-05-31 24 Q & A
    25. 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. 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. 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

    ×