SlideShare a Scribd company logo
1 of 17
Download to read offline
The Epsilon Playground
Dimitris Kolovos, Antonio Garcia-Dominguez
What is Epsilon?
● Family of programming languages for model management:
○ Model querying and manipulation (Epsilon Object Language)
○ Model-to-text transformation (Epsilon Generation Language)
○ Model-to-model transformation (Epsilon Transformation Language)
○ Model comparison, merging, migration, pattern matching, validation…
● Open source project (https://eclipse.org/epsilon)
● Dev tools based on the Eclipse IDE
You watched this video…
You feel like trying this thing out for a spin - what to do?
Steep learning curve ahead
“I heard about this thing called MDE, what do I need to do?”
1. Install Java + Eclipse + Epsilon and make them play nice
2. Learn the complex UI in Eclipse (editors vs views, perspectives,
workspaces, projects, launch configurations…)
3. Learn the EMF complexity (metamodels vs models, EPackage
registration, reflective vs generated editors…)
4. Still here? Now you get to actually learn Epsilon!
Do we need all this
complexity?
● Webdev
community has
CodePen,
JSFiddle, etc.
● Try new things,
share them
● Real projects
come later
The Epsilon
Playground
● Web-based tool
to learn Epsilon
● www.eclipse.org
/epsilon/live/
● Covers:
○ Querying
○ Validation
○ M2T
○ M2M
Model Querying
1. List of examples
2. EOL program
3. Model (in Flexmi
format)
4. Object diagram
5. Output
6. Metamodel
(Emfatic)
7. Class diagram
Model Validation
● Same model and
metamodel
● EVL script (1)
validating start (2),
duration (3), and
engagement (4)
● Problems view (5)
shows errors (6),
warnings (7)
Model-to-Model
Transformations
● ETL script (1) turns
task model to
deliverable model
● Source model uses
YAML flavour of
Flexmi (3)
● Object diagram for
target model (5)
Model-to-Text
Transformations
● EGL script for
Graphviz of state
machine (1)
● Text output in (2)
● Visualization in (3)
Educational use
● Easy sharing of half-done exercises to be completed
○ Much easier than “import this zipped Eclipse project to your workspace”
● Minimal (non-)working examples
○ If a student struggles with some part of an exercise, they can isolate the failing
part in a small Playground project and send it to us
● Examples during lectures
○ If a question comes up, whip up the closest Playground example and
demonstrate to students
○ After the lecture, the link to the example can be shared with students
High-level design decisions
● Textual input is easier to implement effectively
○ All editors come with syntax highlighting
○ Errors are limited to console view for now
● Graphical visualisations help students confirm their understanding
○ Can produce HTML code and use many good JS-based viz libs
● Standalone, not based on web-based IDE like Theia
○ Educational purpose: minimise complexity and distractions!
● Examples are configurable via JSON and an examples server folder
● For metamodels, we chose Emfatic:
○ Common in Epsilon docs - Xcore / OCLinEcore could have been used, instead
● For textual models, we chose Flexmi:
○ Raw JSON / HUTN is not as forgiving as Flexmi’s “fuzzy” parsing
○ Xtext / Langium would require generating code based on metamodel
● Graphical views were kept to read-only Graphviz drawings:
○ GLSP / Sirius Web could have been used, but would increase complexity
○ Not sure how to adapt serverless approach to the above technologies
● Model management is based around Epsilon at the moment:
○ Keeps tech stack contained for the time being - could look at ATL/Acceleo
Technological alternatives
Scalable deployment via FaaS
● Playground is available 24/7:
“serverless” approach is
inexpensive and scalable
○ UI is static HTML/CSS/JS
○ E*L scripts / viz run in
stateless GCF functions
spun up/down based on
user demand
● /short-url uses Google Cloud
Storage to allow sharing
On-premises hosting: Docker
● If you want your own Epsilon Playground:
○ https://github.com/epsilonlabs/playground-docker/
● You can provide your own examples
● “Share” still requires Google Cloud Storage
● Docker image can be used with Google Cloud Run as well:
○ Instead of static webserver + FaaS, GCR simply spins up/down
Docker containers and distributes load
○ You only pay for “real” CPU time
○ Trivially scalable as the API to invoke E*L scripts is stateless
What’s next?
● Domain-specific visualisations for models
○ Beyond the generic class and object diagrams we have now
○ Looking at Eugenia-style annotations on metamodel concepts
● Supporting more Epsilon languages
○ ECL: model comparison
○ EML: model merging
○ Pinset: tabular dataset generation
● Smoothen the transition to a full IDE-based project
○ For now, “Download” button can generate Maven/Gradle projects on the fly
○ Future idea: migrating samples to cloud IDE (Gitpod / Theia?)
Thank you!
● Contact us at:
○ Dimitris: @kolovos / dimitris.kolovos@york.ac.uk
○ Antonio: @antoniogado / a.garcia-dominguez@york.ac.uk
● MDENet will host a panel on teaching modeling:
○ “Using MDE tools in teaching MDE: the good, the bad and the ugly”
○ November 8th 14:00 BST
○ Join our community: https://community.mde-network.org/

More Related Content

Similar to EduSymp 2022 slides (The Epsilon Playground)

Why scala for data science
Why scala for data scienceWhy scala for data science
Why scala for data scienceGuglielmo Iozzia
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !Cédric Brun
 
Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018Holden Karau
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
 
ELMS:LN 2020 update @ Apereo
ELMS:LN 2020 update @ ApereoELMS:LN 2020 update @ Apereo
ELMS:LN 2020 update @ Apereobtopro
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologiesPT.JUG
 
Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Miguel Pardal
 
ECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling toolsECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling toolsmelbats
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlowJeongkyu Shin
 
Build and run applications in a dockerless kubernetes world - DevConf India 18
Build and run applications in a dockerless kubernetes world - DevConf India 18Build and run applications in a dockerless kubernetes world - DevConf India 18
Build and run applications in a dockerless kubernetes world - DevConf India 18Jorge Morales
 
Clojure.tokyo.descjop
Clojure.tokyo.descjopClojure.tokyo.descjop
Clojure.tokyo.descjopKazuhiro Hara
 
[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic EditorMickael Istria
 
Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific languageVicente García Díaz
 
Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentationMiguel Pardal
 
Taskfile - makefiles are fun again
Taskfile - makefiles are fun againTaskfile - makefiles are fun again
Taskfile - makefiles are fun againBertold Kolics
 
Tests immutable when refactoring - SegFault Unconference Cracow 2019
Tests immutable when refactoring - SegFault Unconference Cracow 2019Tests immutable when refactoring - SegFault Unconference Cracow 2019
Tests immutable when refactoring - SegFault Unconference Cracow 2019Grzegorz Miejski
 
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
 

Similar to EduSymp 2022 slides (The Epsilon Playground) (20)

Bootstrap4 x pages
Bootstrap4 x pagesBootstrap4 x pages
Bootstrap4 x pages
 
Why scala for data science
Why scala for data scienceWhy scala for data science
Why scala for data science
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Eclipse Vs Netbeans
Eclipse Vs NetbeansEclipse Vs Netbeans
Eclipse Vs Netbeans
 
ELMS:LN 2020 update @ Apereo
ELMS:LN 2020 update @ ApereoELMS:LN 2020 update @ Apereo
ELMS:LN 2020 update @ Apereo
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)
 
ECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling toolsECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling tools
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlow
 
Build and run applications in a dockerless kubernetes world - DevConf India 18
Build and run applications in a dockerless kubernetes world - DevConf India 18Build and run applications in a dockerless kubernetes world - DevConf India 18
Build and run applications in a dockerless kubernetes world - DevConf India 18
 
Code-Hub
Code-HubCode-Hub
Code-Hub
 
Clojure.tokyo.descjop
Clojure.tokyo.descjopClojure.tokyo.descjop
Clojure.tokyo.descjop
 
[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor
 
Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
 
Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentation
 
Taskfile - makefiles are fun again
Taskfile - makefiles are fun againTaskfile - makefiles are fun again
Taskfile - makefiles are fun again
 
Tests immutable when refactoring - SegFault Unconference Cracow 2019
Tests immutable when refactoring - SegFault Unconference Cracow 2019Tests immutable when refactoring - SegFault Unconference Cracow 2019
Tests immutable when refactoring - SegFault Unconference Cracow 2019
 
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
 

More from Antonio García-Domínguez

MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...Antonio García-Domínguez
 
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...Antonio García-Domínguez
 
Boosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackBoosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackAntonio García-Domínguez
 
MODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsMODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsAntonio García-Domínguez
 
Tips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesTips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesAntonio García-Domínguez
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceAntonio García-Domínguez
 
MRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsMRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsAntonio García-Domínguez
 
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLHawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLAntonio García-Domínguez
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?Antonio García-Domínguez
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangAntonio García-Domínguez
 
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...Antonio García-Domínguez
 
Software libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de CádizSoftware libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de CádizAntonio García-Domínguez
 

More from Antonio García-Domínguez (17)

MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
 
MODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demoMODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demo
 
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
 
Boosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackBoosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedback
 
MODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsMODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patterns
 
Tips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesTips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tables
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
MRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsMRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph models
 
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLHawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQL
 
Software and product quality for videogames
Software and product quality for videogamesSoftware and product quality for videogames
Software and product quality for videogames
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLang
 
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
 
ECMFA 2016 slides
ECMFA 2016 slidesECMFA 2016 slides
ECMFA 2016 slides
 
BMSD 2015 slides (revised)
BMSD 2015 slides (revised)BMSD 2015 slides (revised)
BMSD 2015 slides (revised)
 
Elaboración de un buen póster científico
Elaboración de un buen póster científicoElaboración de un buen póster científico
Elaboración de un buen póster científico
 
Software libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de CádizSoftware libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de Cádiz
 

Recently uploaded

Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...Call Girls in Nagpur High Profile
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 

Recently uploaded (20)

Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 

EduSymp 2022 slides (The Epsilon Playground)

  • 1. The Epsilon Playground Dimitris Kolovos, Antonio Garcia-Dominguez
  • 2. What is Epsilon? ● Family of programming languages for model management: ○ Model querying and manipulation (Epsilon Object Language) ○ Model-to-text transformation (Epsilon Generation Language) ○ Model-to-model transformation (Epsilon Transformation Language) ○ Model comparison, merging, migration, pattern matching, validation… ● Open source project (https://eclipse.org/epsilon) ● Dev tools based on the Eclipse IDE
  • 3. You watched this video… You feel like trying this thing out for a spin - what to do?
  • 4. Steep learning curve ahead “I heard about this thing called MDE, what do I need to do?” 1. Install Java + Eclipse + Epsilon and make them play nice 2. Learn the complex UI in Eclipse (editors vs views, perspectives, workspaces, projects, launch configurations…) 3. Learn the EMF complexity (metamodels vs models, EPackage registration, reflective vs generated editors…) 4. Still here? Now you get to actually learn Epsilon!
  • 5. Do we need all this complexity? ● Webdev community has CodePen, JSFiddle, etc. ● Try new things, share them ● Real projects come later
  • 6. The Epsilon Playground ● Web-based tool to learn Epsilon ● www.eclipse.org /epsilon/live/ ● Covers: ○ Querying ○ Validation ○ M2T ○ M2M
  • 7. Model Querying 1. List of examples 2. EOL program 3. Model (in Flexmi format) 4. Object diagram 5. Output 6. Metamodel (Emfatic) 7. Class diagram
  • 8. Model Validation ● Same model and metamodel ● EVL script (1) validating start (2), duration (3), and engagement (4) ● Problems view (5) shows errors (6), warnings (7)
  • 9. Model-to-Model Transformations ● ETL script (1) turns task model to deliverable model ● Source model uses YAML flavour of Flexmi (3) ● Object diagram for target model (5)
  • 10. Model-to-Text Transformations ● EGL script for Graphviz of state machine (1) ● Text output in (2) ● Visualization in (3)
  • 11. Educational use ● Easy sharing of half-done exercises to be completed ○ Much easier than “import this zipped Eclipse project to your workspace” ● Minimal (non-)working examples ○ If a student struggles with some part of an exercise, they can isolate the failing part in a small Playground project and send it to us ● Examples during lectures ○ If a question comes up, whip up the closest Playground example and demonstrate to students ○ After the lecture, the link to the example can be shared with students
  • 12. High-level design decisions ● Textual input is easier to implement effectively ○ All editors come with syntax highlighting ○ Errors are limited to console view for now ● Graphical visualisations help students confirm their understanding ○ Can produce HTML code and use many good JS-based viz libs ● Standalone, not based on web-based IDE like Theia ○ Educational purpose: minimise complexity and distractions! ● Examples are configurable via JSON and an examples server folder
  • 13. ● For metamodels, we chose Emfatic: ○ Common in Epsilon docs - Xcore / OCLinEcore could have been used, instead ● For textual models, we chose Flexmi: ○ Raw JSON / HUTN is not as forgiving as Flexmi’s “fuzzy” parsing ○ Xtext / Langium would require generating code based on metamodel ● Graphical views were kept to read-only Graphviz drawings: ○ GLSP / Sirius Web could have been used, but would increase complexity ○ Not sure how to adapt serverless approach to the above technologies ● Model management is based around Epsilon at the moment: ○ Keeps tech stack contained for the time being - could look at ATL/Acceleo Technological alternatives
  • 14. Scalable deployment via FaaS ● Playground is available 24/7: “serverless” approach is inexpensive and scalable ○ UI is static HTML/CSS/JS ○ E*L scripts / viz run in stateless GCF functions spun up/down based on user demand ● /short-url uses Google Cloud Storage to allow sharing
  • 15. On-premises hosting: Docker ● If you want your own Epsilon Playground: ○ https://github.com/epsilonlabs/playground-docker/ ● You can provide your own examples ● “Share” still requires Google Cloud Storage ● Docker image can be used with Google Cloud Run as well: ○ Instead of static webserver + FaaS, GCR simply spins up/down Docker containers and distributes load ○ You only pay for “real” CPU time ○ Trivially scalable as the API to invoke E*L scripts is stateless
  • 16. What’s next? ● Domain-specific visualisations for models ○ Beyond the generic class and object diagrams we have now ○ Looking at Eugenia-style annotations on metamodel concepts ● Supporting more Epsilon languages ○ ECL: model comparison ○ EML: model merging ○ Pinset: tabular dataset generation ● Smoothen the transition to a full IDE-based project ○ For now, “Download” button can generate Maven/Gradle projects on the fly ○ Future idea: migrating samples to cloud IDE (Gitpod / Theia?)
  • 17. Thank you! ● Contact us at: ○ Dimitris: @kolovos / dimitris.kolovos@york.ac.uk ○ Antonio: @antoniogado / a.garcia-dominguez@york.ac.uk ● MDENet will host a panel on teaching modeling: ○ “Using MDE tools in teaching MDE: the good, the bad and the ugly” ○ November 8th 14:00 BST ○ Join our community: https://community.mde-network.org/