SlideShare una empresa de Scribd 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

Más contenido relacionado

Similar a Picto: Model Visualisation via M2T Transformation

Hitesh's Profile
Hitesh's ProfileHitesh's Profile
Hitesh's Profile
Hitesh Thakkar
 
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
 
ATM_ppt
ATM_pptATM_ppt
“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...
“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...
“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...
Edge AI and Vision Alliance
 
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 Svensson
rajivmordani
 
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
 

Similar a 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
 
“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...
“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...
“Deploying Large Models on the Edge: Success Stories and Challenges,” a Prese...
 
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
 

Más de 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

Más de 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
 

Último

Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 

Último (20)

Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 

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

Notas del editor

  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)