SlideShare a Scribd company logo
Picto: Model Visualisation
via M2T Transformation
Dimitris Kolovos
dimitris.kolovos@york.ac.uk
Textual vs. Graphical Syntax
• Choice that needs to
be made when
implementing a DSL
• Textual: Xtext, Spoofax,
MPS
• Graphical: Sirius,
GMF/Eugenia,
MetaEdit+
User -> ATM: Inserts card
ATM --> User: Requests PIN
User -> ATM: Provides PIN
ATM -> Bank: Check PIN against card
Bank --> ATM: Accepts PIN
ATM --> User: Asks for type of transaction
25/11/2019 Enterprise Systems Seminars 2
Graphical Syntax
+Taps into the power of
the visual system
• Visual representations
processed in parallel
+Essential for
engagement with non-
CS stakeholders
- Only editable with a
dedicated editor
- Find, replace, copy,
paste, comment out,
version control not
always straightforward
25/11/2019 Enterprise Systems Seminars 3
User -> ATM: Inserts card
ATM --> User: Requests PIN
User -> ATM: Provides PIN
ATM -> Bank: Check PIN against card
Bank --> ATM: Accepts PIN
ATM --> User: Asks for type of transaction
25/11/2019 Enterprise Systems Seminars 4
Textual Syntax
+Editable with any text
editor
+Find, replace, copy,
paste, comment out,
version control
practically solved
- Text processed serially
by the auditory system
- Inaccessible to many
non-CS stakeholders
25/11/2019 Enterprise Systems Seminars 5
User -> ATM: Inserts card
ATM --> User: Requests PIN
User -> ATM: Provides PIN
ATM -> Bank: Check PIN against card
Bank --> ATM: Accepts PIN
ATM --> User: Asks for type of transaction
Textual vs. Graphical Syntax
• Text better for editing
• Once you are familiar
with the DSL and in the
zone
• Even for languages
which are traditionally
graph-like (e.g. state
machines)
• Diagrams better for
understanding and
presenting models to a
wider audience
25/11/2019 Enterprise Systems Seminars 6
User -> ATM: Inserts card
ATM --> User: Requests PIN
User -> ATM: Provides PIN
ATM -> Bank: Check PIN against card
Bank --> ATM: Accepts PIN
ATM --> User: Asks for type of transaction
Multiple Syntaxes
• Implement a graphical
and a textual editor
• Edit on both sides and
keep in sync
• Challenging in practice
• Graphical/textual
frameworks developed
by different vendors
• Lots of plumbing
involved
• A few prototypes but
cutting many corners
25/11/2019 Enterprise Systems Seminars 7
User -> ATM: Inserts card
ATM --> User: Requests PIN
User -> ATM: Provides PIN
ATM -> Bank: Check PIN against card
Bank --> ATM: Accepts PIN
ATM --> User: Asks for type of transaction
Graphical Views
• Textual syntax for
editing models
• Generation of read-
only graphical views
• Challenges
• Diagram layout
• Fine-tuning (e.g. size,
colour of
elements/labels)
25/11/2019 Enterprise Systems Seminars 8
User -> ATM: Inserts card
ATM --> User: Requests PIN
User -> ATM: Provides PIN
ATM -> Bank: Check PIN against card
Bank --> ATM: Accepts PIN
ATM --> User: Asks for type of transaction
Layout
• Several decent options
for automated graph
layout e.g.
• Graphviz
• Eclipse Layout Kernel
• DagreJS
• Important that
diagrams are kept
reasonably small
• But this is desirable
anyway
25/11/2019 Enterprise Systems Seminars 9
User -> ATM: Inserts card
ATM --> User: Requests PIN
User -> ATM: Provides PIN
ATM -> Bank: Check PIN against card
Bank --> ATM: Accepts PIN
ATM --> User: Asks for type of transaction
Fine-Tuning
public static void main(String[] args){
System.out.println("Hello world");
}
25/11/2019 Enterprise Systems Seminars 10
Fine-Tuning
public static void main(String[] args){
System.out.println("Helloworld");
}
25/11/2019 Enterprise Systems Seminars 11
Flexmi and Picto
• Flexmi: XML-based syntax for EMF models
• Reflective and fuzzy parsing
• Instantiable model element templates
• Presented in a previous ES Seminar
• Picto: Framework for model view generation and
rendering
• EMF models (for now)
• Views in Graphviz, SVG, HTML
• Views generated using M2T transformations (in EGL)
• Both tools in the latest interim version of Epsilon
(eclipse.org/epsilon)
25/11/2019 Enterprise Systems Seminars 12
Live demo
25/11/2019 Enterprise Systems Seminars 13
Picto – Future Work
• Layers
• Declarative graphical syntax specification
• Similar to Sirius/GMF/Eugenia
• Navigation from view to model editor
• Generation of views from multiple models
• Integration with model validation
• Change visualization
• Web application
25/11/2019 Enterprise Systems Seminars 14

More Related Content

Similar to Picto: Model Visualisation via M2T Transformation

Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
Huxing Zhang
 
Modern Architecture in the Cloud of 2018 (IT Camp 2018)
Modern Architecture in the Cloud of 2018 (IT Camp 2018)Modern Architecture in the Cloud of 2018 (IT Camp 2018)
Modern Architecture in the Cloud of 2018 (IT Camp 2018)
Marius Zaharia
 
2018 08-13-ib ms-latest-buzz-share-final
2018 08-13-ib ms-latest-buzz-share-final2018 08-13-ib ms-latest-buzz-share-final
2018 08-13-ib ms-latest-buzz-share-final
David Morlitz
 
Dubbo in Internet Finance Industry
Dubbo in Internet Finance IndustryDubbo in Internet Finance Industry
Dubbo in Internet Finance Industry
Huxing Zhang
 
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
Michael Erichsen
 
Node.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontendsNode.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontends
Eugene Fidelin
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
ITCamp
 
2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdf2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdf
LuisJonathanBahamaca
 
MIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity DisruptionMIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI Alliance
 
GE Capital Legacy Modernization and Mainframe Conversion
GE Capital Legacy Modernization and Mainframe ConversionGE Capital Legacy Modernization and Mainframe Conversion
GE Capital Legacy Modernization and Mainframe Conversion
guatham
 
Gcf blockchain meetup frankfurt final
Gcf blockchain meetup frankfurt finalGcf blockchain meetup frankfurt final
Gcf blockchain meetup frankfurt final
Matthias Reiss
 
IBM POWER8 as an HPC platform
IBM POWER8 as an HPC platformIBM POWER8 as an HPC platform
IBM POWER8 as an HPC platform
Alexander Pozdneev
 
IBM Z Cost Reduction Opportunities. Are you missing out?
IBM Z Cost Reduction Opportunities. Are you missing out?IBM Z Cost Reduction Opportunities. Are you missing out?
IBM Z Cost Reduction Opportunities. Are you missing out?
Precisely
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svenssonrajivmordani
 
MM Presentation for Philips CE (2000)
MM Presentation for Philips CE (2000)MM Presentation for Philips CE (2000)
MM Presentation for Philips CE (2000)Michael Dobe, Ph.D.
 
Cmdb intro 2012 v1
Cmdb intro 2012 v1Cmdb intro 2012 v1
Cmdb intro 2012 v1
Pini Cohen
 
Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013
Min Fang
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008codebits
 

Similar to Picto: Model Visualisation via M2T Transformation (20)

Hitesh's Profile
Hitesh's ProfileHitesh's Profile
Hitesh's Profile
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
 
ATM_ppt
ATM_pptATM_ppt
ATM_ppt
 
Modern Architecture in the Cloud of 2018 (IT Camp 2018)
Modern Architecture in the Cloud of 2018 (IT Camp 2018)Modern Architecture in the Cloud of 2018 (IT Camp 2018)
Modern Architecture in the Cloud of 2018 (IT Camp 2018)
 
2018 08-13-ib ms-latest-buzz-share-final
2018 08-13-ib ms-latest-buzz-share-final2018 08-13-ib ms-latest-buzz-share-final
2018 08-13-ib ms-latest-buzz-share-final
 
Dubbo in Internet Finance Industry
Dubbo in Internet Finance IndustryDubbo in Internet Finance Industry
Dubbo in Internet Finance Industry
 
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
 
Node.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontendsNode.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontends
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
 
2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdf2016-Automation-Summit_PA_SIMIT.pdf
2016-Automation-Summit_PA_SIMIT.pdf
 
MIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity DisruptionMIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
 
GE Capital Legacy Modernization and Mainframe Conversion
GE Capital Legacy Modernization and Mainframe ConversionGE Capital Legacy Modernization and Mainframe Conversion
GE Capital Legacy Modernization and Mainframe Conversion
 
Gcf blockchain meetup frankfurt final
Gcf blockchain meetup frankfurt finalGcf blockchain meetup frankfurt final
Gcf blockchain meetup frankfurt final
 
IBM POWER8 as an HPC platform
IBM POWER8 as an HPC platformIBM POWER8 as an HPC platform
IBM POWER8 as an HPC platform
 
IBM Z Cost Reduction Opportunities. Are you missing out?
IBM Z Cost Reduction Opportunities. Are you missing out?IBM Z Cost Reduction Opportunities. Are you missing out?
IBM Z Cost Reduction Opportunities. Are you missing out?
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svensson
 
MM Presentation for Philips CE (2000)
MM Presentation for Philips CE (2000)MM Presentation for Philips CE (2000)
MM Presentation for Philips CE (2000)
 
Cmdb intro 2012 v1
Cmdb intro 2012 v1Cmdb intro 2012 v1
Cmdb intro 2012 v1
 
Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
 

More from Dimitris Kolovos

The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern Language
Dimitris Kolovos
 
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Dimitris Kolovos
 
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Dimitris Kolovos
 
Partial Loading of XMI Models
Partial Loading of XMI ModelsPartial Loading of XMI Models
Partial Loading of XMI Models
Dimitris Kolovos
 
Merging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade LaterMerging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade Later
Dimitris Kolovos
 
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software ProjectsAssessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Dimitris Kolovos
 
Code Generation as a Service
Code Generation as a ServiceCode Generation as a Service
Code Generation as a Service
Dimitris Kolovos
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Dimitris Kolovos
 
Eclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the DataEclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the Data
Dimitris Kolovos
 
Adding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE ToolboxAdding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE Toolbox
Dimitris Kolovos
 
Programmatic Muddle Management
Programmatic Muddle ManagementProgrammatic Muddle Management
Programmatic Muddle Management
Dimitris Kolovos
 
Managing XML documents with Epsilon
Managing XML documents with EpsilonManaging XML documents with Epsilon
Managing XML documents with Epsilon
Dimitris Kolovos
 
Epsilon
EpsilonEpsilon
COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)
Dimitris Kolovos
 
Eugenia
EugeniaEugenia

More from Dimitris Kolovos (15)

The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern Language
 
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
 
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
 
Partial Loading of XMI Models
Partial Loading of XMI ModelsPartial Loading of XMI Models
Partial Loading of XMI Models
 
Merging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade LaterMerging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade Later
 
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software ProjectsAssessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
 
Code Generation as a Service
Code Generation as a ServiceCode Generation as a Service
Code Generation as a Service
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
 
Eclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the DataEclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the Data
 
Adding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE ToolboxAdding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE Toolbox
 
Programmatic Muddle Management
Programmatic Muddle ManagementProgrammatic Muddle Management
Programmatic Muddle Management
 
Managing XML documents with Epsilon
Managing XML documents with EpsilonManaging XML documents with Epsilon
Managing XML documents with Epsilon
 
Epsilon
EpsilonEpsilon
Epsilon
 
COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)
 
Eugenia
EugeniaEugenia
Eugenia
 

Recently uploaded

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 

Recently uploaded (20)

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 

Picto: Model Visualisation via M2T Transformation

  • 1. Picto: Model Visualisation via M2T Transformation Dimitris Kolovos dimitris.kolovos@york.ac.uk
  • 2. Textual vs. Graphical Syntax • Choice that needs to be made when implementing a DSL • Textual: Xtext, Spoofax, MPS • Graphical: Sirius, GMF/Eugenia, MetaEdit+ User -> ATM: Inserts card ATM --> User: Requests PIN User -> ATM: Provides PIN ATM -> Bank: Check PIN against card Bank --> ATM: Accepts PIN ATM --> User: Asks for type of transaction 25/11/2019 Enterprise Systems Seminars 2
  • 3. Graphical Syntax +Taps into the power of the visual system • Visual representations processed in parallel +Essential for engagement with non- CS stakeholders - Only editable with a dedicated editor - Find, replace, copy, paste, comment out, version control not always straightforward 25/11/2019 Enterprise Systems Seminars 3 User -> ATM: Inserts card ATM --> User: Requests PIN User -> ATM: Provides PIN ATM -> Bank: Check PIN against card Bank --> ATM: Accepts PIN ATM --> User: Asks for type of transaction
  • 5. Textual Syntax +Editable with any text editor +Find, replace, copy, paste, comment out, version control practically solved - Text processed serially by the auditory system - Inaccessible to many non-CS stakeholders 25/11/2019 Enterprise Systems Seminars 5 User -> ATM: Inserts card ATM --> User: Requests PIN User -> ATM: Provides PIN ATM -> Bank: Check PIN against card Bank --> ATM: Accepts PIN ATM --> User: Asks for type of transaction
  • 6. Textual vs. Graphical Syntax • Text better for editing • Once you are familiar with the DSL and in the zone • Even for languages which are traditionally graph-like (e.g. state machines) • Diagrams better for understanding and presenting models to a wider audience 25/11/2019 Enterprise Systems Seminars 6 User -> ATM: Inserts card ATM --> User: Requests PIN User -> ATM: Provides PIN ATM -> Bank: Check PIN against card Bank --> ATM: Accepts PIN ATM --> User: Asks for type of transaction
  • 7. Multiple Syntaxes • Implement a graphical and a textual editor • Edit on both sides and keep in sync • Challenging in practice • Graphical/textual frameworks developed by different vendors • Lots of plumbing involved • A few prototypes but cutting many corners 25/11/2019 Enterprise Systems Seminars 7 User -> ATM: Inserts card ATM --> User: Requests PIN User -> ATM: Provides PIN ATM -> Bank: Check PIN against card Bank --> ATM: Accepts PIN ATM --> User: Asks for type of transaction
  • 8. Graphical Views • Textual syntax for editing models • Generation of read- only graphical views • Challenges • Diagram layout • Fine-tuning (e.g. size, colour of elements/labels) 25/11/2019 Enterprise Systems Seminars 8 User -> ATM: Inserts card ATM --> User: Requests PIN User -> ATM: Provides PIN ATM -> Bank: Check PIN against card Bank --> ATM: Accepts PIN ATM --> User: Asks for type of transaction
  • 9. Layout • Several decent options for automated graph layout e.g. • Graphviz • Eclipse Layout Kernel • DagreJS • Important that diagrams are kept reasonably small • But this is desirable anyway 25/11/2019 Enterprise Systems Seminars 9 User -> ATM: Inserts card ATM --> User: Requests PIN User -> ATM: Provides PIN ATM -> Bank: Check PIN against card Bank --> ATM: Accepts PIN ATM --> User: Asks for type of transaction
  • 10. Fine-Tuning public static void main(String[] args){ System.out.println("Hello world"); } 25/11/2019 Enterprise Systems Seminars 10
  • 11. Fine-Tuning public static void main(String[] args){ System.out.println("Helloworld"); } 25/11/2019 Enterprise Systems Seminars 11
  • 12. Flexmi and Picto • Flexmi: XML-based syntax for EMF models • Reflective and fuzzy parsing • Instantiable model element templates • Presented in a previous ES Seminar • Picto: Framework for model view generation and rendering • EMF models (for now) • Views in Graphviz, SVG, HTML • Views generated using M2T transformations (in EGL) • Both tools in the latest interim version of Epsilon (eclipse.org/epsilon) 25/11/2019 Enterprise Systems Seminars 12
  • 13. Live demo 25/11/2019 Enterprise Systems Seminars 13
  • 14. Picto – Future Work • Layers • Declarative graphical syntax specification • Similar to Sirius/GMF/Eugenia • Navigation from view to model editor • Generation of views from multiple models • Integration with model validation • Change visualization • Web application 25/11/2019 Enterprise Systems Seminars 14

Editor's Notes

  1. 1/3 of our brain is dedicated to processing visual input. Retyping is also a challenge.
  2. Won’t comment on scalability of graphical syntaxes: there are good ways to make graphical syntaxes scalable e.g. through the use of multiple diagrams.
  3. If you buy the argument that text is better for editing, two challenges remain.
  4. This doesn’t mean that your model should be small – but that each view you generate from it should be small. Actually, this diagram is auto-generated from the textual syntax above using a tool called PlantUML.
  5. Fine tuning is a matter of expectation.
  6. We would probably frown upon an IDE that allowed programmers to write code like this. Yes – fine-tuning would be nice to have but we have more important problems than that.
  7. UI polishing (e.g. custom icons, multiple Picto views/editors)