Top Banner
What the heck is Eclipse Modeling and why should you care !
45

What the heck is Eclipse Modeling and why should you care !

Apr 16, 2017

Download

Engineering

Cédric Brun
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: What the heck is Eclipse Modeling and why should you care !

What the heck is Eclipse Modelingand why should you care !

Page 2: What the heck is Eclipse Modeling and why should you care !

me

CTO at Obeo – [email protected] Member of the Eclipse Foundation

Projet lead of:● EMF Compare● Modeling Amalgamation

Commiter:● Acceleo● Mylyn Intent● Eclipse Packaging Project

Eclipse Architecture and Planning Council

Page 3: What the heck is Eclipse Modeling and why should you care !

Rich and diverse Ecosystem

Mature technologies and frameworks to build applications dedicated tools

You can try at a very low cost

Page 4: What the heck is Eclipse Modeling and why should you care !

Happy birthday

Page 5: What the heck is Eclipse Modeling and why should you care !

The origins

Page 6: What the heck is Eclipse Modeling and why should you care !

Tool vendors era

Page 7: What the heck is Eclipse Modeling and why should you care !

Modeling goes enterprise !

Page 8: What the heck is Eclipse Modeling and why should you care !

Industrial adopters

Page 9: What the heck is Eclipse Modeling and why should you care !

Resistance is futile

Page 10: What the heck is Eclipse Modeling and why should you care !

The Eclipse Modeling Project

One of the most diverse top-level project in EclipseTool vendorsService providersIndividualsAcademics

Page 11: What the heck is Eclipse Modeling and why should you care !

The Eclipse Modeling Project

Wide range of public

Wide range of maturity levelAsk for help on the forumCheck for activityMind the Incubation status

Page 12: What the heck is Eclipse Modeling and why should you care !

The most amazing Acronym collection

Page 13: What the heck is Eclipse Modeling and why should you care !

The Eclipse Modeling Project Structure

A «few» sub projects:Core technologies in EMF, Incubating in EMFTStandards and related tools in MDTGraphical Modeling in GMPTextual Modeling in TMFModel Transformation in M2MCode Generation in M2TAgent Based Modeling and Simulation in AMP

AndIntegration, Packaging & Examples in Amalgamation

Page 14: What the heck is Eclipse Modeling and why should you care !

we DeliverMost projects are part of the release trains

Galileo, Helios, Indigo and soon Juno

A single stop: the Eclipse Modeling PackageCore platformDiscovery

http://www.eclipse.org/modeling/amalgam/

Page 15: What the heck is Eclipse Modeling and why should you care !

What is Modeling ?

Capturing information to represent a system enabling:

ValidationPrototypingAutomationDocumentation...

Page 16: What the heck is Eclipse Modeling and why should you care !

What makes a good model ?

1. It is answering a question

2. It is used

Page 17: What the heck is Eclipse Modeling and why should you care !

Two Faces

Technologies to build applications

Technologies to build dedicated tools

Page 18: What the heck is Eclipse Modeling and why should you care !

Using EMF «as is»1° Design your data model using Ecore

2° Initialize an «EMF Generator model»

3° Generate Java code

Page 19: What the heck is Eclipse Modeling and why should you care !

Using EMF «as is»You are getting:✔ Domain model independent of serialization (XMI, XML, Binary ...)✔ Efficient Java API✔ Referenceable model elements through URI + fragments✔ Common API to listen and react to changes.✔ Resources and REST api for documents✔ Rich and efficient reflective API. ✔ Commands and free undo/redo✔ ...

At a cost:✔You'll depend on EMF (which is standalone, but still...)

Page 20: What the heck is Eclipse Modeling and why should you care !

You need UI, right ?

EMF and EEF are generating rich applications with forms

Page 21: What the heck is Eclipse Modeling and why should you care !

Generated web apps

EMF generates RAP application (RCP in a browser)

Or GWT !

Page 22: What the heck is Eclipse Modeling and why should you care !

+ Model RepositoryWith CDO :

✔ Distributed and connected application

✔ Optimistic and pessimistic concurrent strategies

✔ Offline support

✔ Lazy loading, and unloading !

✔ Database backend

✔ Fail-over

✔ ...

Page 23: What the heck is Eclipse Modeling and why should you care !

Connected application

Page 24: What the heck is Eclipse Modeling and why should you care !

You don't need anything else, do you ?

Page 25: What the heck is Eclipse Modeling and why should you care !

Two Faces

Technologies to build applications

Technologies to build dedicated tools

Page 26: What the heck is Eclipse Modeling and why should you care !

Building your own ToolsGraphical

● GMF has been around quite a long time already● Graphiti is the new challenger

http://www.eclipse.org/modeling/gmp

Page 27: What the heck is Eclipse Modeling and why should you care !

Building your own ToolsTextual

http://www.eclipse.org/xtext

Page 28: What the heck is Eclipse Modeling and why should you care !

Building your own ToolsForms

http://www.eclipse.org/eef

Extended Editing Framework aka EEF(just graduated)

Page 29: What the heck is Eclipse Modeling and why should you care !

Building your own ToolsAutomation

http://www.eclipse.org/acceleo

Template based generator

Complete editor

Debugger and profiler

Core runtime is standalone

Iterative generations

OMG std for generation

Page 30: What the heck is Eclipse Modeling and why should you care !

a Full blown environment

●Large scale deployement and distribution●Rich modeling tools

(graphical, textual, forms)●Fine grained collaborative support●Ability to customize the tools and distribute the customizations●Huge models scalability●Customizable code generators ●Tests on all this tooling

A few hours

A lot of work

Features

You are here

Page 31: What the heck is Eclipse Modeling and why should you care !

easy Automation ●Basic Editing capabilities

Reflective Editors●Team-wide deploiement through SCM●Classic collaboration processes

EMF compare● Code generation!

A few hours

A lot of work

Features

You are here

Page 32: What the heck is Eclipse Modeling and why should you care !

Every intermediate level is valid too!

A few hours

A lot of work

Features

Here might be fine for you

Page 33: What the heck is Eclipse Modeling and why should you care !

Let's Try ...

You need (*)● Eclipse● EMF● Acceleo

We will build: A model to keep track of our app features among n versions

(*) Two clicks to install from the Eclipse Marketplace

Page 34: What the heck is Eclipse Modeling and why should you care !

Is that a Good model?

1. Its answering a question

What features have been updated/created in version 1.234?

2. It is used

to generate skeletons of teststo generate documentation

Page 35: What the heck is Eclipse Modeling and why should you care !

how to Proceed?

1. code a prototype of what you expect

2. create the domain model

3. create an instance of this domain model

4. create a generation template

5. launch

Page 36: What the heck is Eclipse Modeling and why should you care !

how to Proceed?

1. code a prototype of what you expect

Page 37: What the heck is Eclipse Modeling and why should you care !

how to Proceed?

2. create the domain model

Page 38: What the heck is Eclipse Modeling and why should you care !

how to Proceed?

3. create an instance of this domain model

Page 39: What the heck is Eclipse Modeling and why should you care !

how to Proceed?

4. create a generation template

Page 40: What the heck is Eclipse Modeling and why should you care !

how to Proceed?

5. launch

Page 41: What the heck is Eclipse Modeling and why should you care !

Result?

Page 42: What the heck is Eclipse Modeling and why should you care !

Customize it

Adding non-generated doc

Page 43: What the heck is Eclipse Modeling and why should you care !

What are the Benefits?We have a consistent vision of our features among versionsWe produce a useful deliverable for our end usersOur tooling is versioned with its «project» dedicated branchAnybody from the team can maintain and change the toolingIt took 2 hours to set up

https://github.com/cbrun/versions-generator

Domain model

Generator

Prototype

Generated tests

Generated doc

Model instance

Page 44: What the heck is Eclipse Modeling and why should you care !

Rich and diverse Ecosystem

You can build applications dedicated tools

You can try at a very low cost

Try it !

Page 45: What the heck is Eclipse Modeling and why should you care !

References

« Alice in Wonderland » pictures are from John Tenniel in public domain since 1964

The Eclipse Modeling Packagehttp://www.eclipse.org/modeling/amalgam/

The Eclipse Forumhttp://www.eclipse.org/forums/

The Eclipse Modeling Cross Projects Examplehttp://goo.gl/51RuK

The versions generator example:https://github.com/cbrun/versions-generator

Obeo Networkhttp://www.obeonetwork.org/

Me@bruncedric on twitterhttp://model-driven-blogging.blogspot.com/