SlideShare a Scribd company logo
Xtext + Sirius : ♥
Maxime Porhel
Obeo
« BirthofNature »AndrewHamrockhttp://500px.com/photo/17743557
EclipseCon North America
March 9-12, 2015
● Focused on domain specific modeling technologies
● 50+ people working on products and customer projects
● Services : training, consulting and Open Innovation


● Tool vendor


www.obeo.fr
«Xtext brings the capability of defining fairly quickly a textual
editor supporting your domain specific concepts.»
« Sirius brings to anybody the capability of defining fairly
quickly graphical, tree or table editors supporting your
domain specific concepts. »
Textual + Graphical ?
Text is better:
● at operations and sequences
● when combining (expressions)
● ...
● for some users
Diagram is better:
● relationships
● analyzing a design
● ...
● for some users
Two complementary approaches
The world of Sirius
The world of Sirius
The world of Sirius
The world of Sirius
The world of Sirius
The world of Xtext
The world of Xtext
The world of Xtext
The world of Xtext
Unexpected situations ?
Not so frequent situations for Sirius:
● thousands of ressources in a single project
● instance changes its URI/loose identity
● serialization is not possible
Not so frequent situations for Xtext :
● state is not serializable
● model graph could not have been constructed
through Xtext
Two views of the same model
File/Workspace level integration
DSL syntax used as the serialization format
DSL AST used in the Sirius Editor
The StateMachine Demo
Xtext 2.7.2
Sirius 3.0.0 (pre M6)
Eclipse Luna SR2
https://github.com/ObeoNetwork/Xtext-Sirius-integration
Caveats: parsing errors
Caveats: parsing errors
Caveats: the referencing
href="my.statemachine#//@states.4"
href="my.statemachine#//@states[name='active']"
Caveats: am I serializable ?
Caveats: am I serializable ?
Provide graphical feedback ASAP
Tools should create serializable elements by default
Tools cleaning up the graph (Association like instances..)
Specific Integration with Xtext
Instantiate an XtextResourceSet
Configure the ResourceSet with the project.
Change the saving policy
Caveats: limitations addressed
[430724] Sirius might Serialize a bit too much
[432931] Xtext prevent Serialization with false positives
[448304] Xtext is not updating cross-ref names
[458841] Xcore model can't resolve references to
standard types.
The Best of both
Embedding syntax in a diagramEmbedding
Embedding syntax in a diagram
Embedding syntax in a diagram
How To ?
Example and « base framework » here:
https://github.com/ObeoNetwork/Xtext-sirius-integration
Behind the Scene
Behind the Scene
Behind the Scene
delta merge
Caveats: Cross-References Consistency
Model is parseable but not resolvable
Either prevent it* or warn the user !
These caveats should be considered upfront, it either
impact the user experience or your DSL itself
Caveats: Merging
Only as good as how the content matching perform
Bad matching : nodes are re-created in diagram
React to external changes
Sirius detects changes in the workspace :
Domain model is reloaded when externally changed.
Experimental approach:
Do not reload
Compute the delta between the resource on the disk
and the loaded state and merge differences.
Example and «experimental framework» here: https://github.com/mporhel/Xtext-sirius-integration
Core modification in Sirius not yet integrated but available here: https://git.eclipse.org/r/#/c/43489/
How to ?
Caveats: Merging
Only as good as how the content matching perform
Bad matching: nodes are re-created in diagram
External validation markers
« Validate action » in your Xtext Editor
Marker in the Problems view
Referencing the file
Double click opens your Xtext Editor
« Validate diagram » action in Sirius diagram editors
Call semantic validation rules and rules defined in the VSM
Marker in the Problem view
Referencing the representations files, and the validated representation
Double clic opens your Sirius editor
External validation markers
How to ?
Takeaways
● Sirius tuning: refresh and saving policy
● Think about the referencing
● Add editor feedback when not serializable
● Design create/update/delete operations to stay
serializable
● When embedding, display elements which should not
have cross-refs (or take care of those)
● EMF Compare can help
Takeaways
● As long as it's an EMF model Sirius will handle it.
● If you want to embed : think about what you expect
● Get involved : give feedback and or patches on the
embedding, reload or validation layers 
https://github.com/ObeoNetwork/Xtext-Sirius-integration
What Next ?
Sirius 1.0.2 released with Luna SR2
Sirius 2.0 (*)
● UX improvements for diagrams and layouts
● Performance, scalability
● Ecore Tools 2, UML Designer 4 are based on Sirius
● 2.0.4 released on Feb 12, 2015 (~40 Bugzillas delivered since 2.0.0 in October)
Eclipse Mars : 
● Sirius goes 3.0 (*)
● Performance, Scalability: hitting the 1 Million mark
● Reduced memory footprint
● Edges connected to real outline of shapes
(images with transparency, basic shape style)
(*) Model migrations are taken care of by Sirius
Other Talks
● Tuesday
● Arduino designer: the making of! – Mélanie
● Grand Peninsula EFG – 13:30 to 14:05
● Wednesday
● Sirius + Xtext = ♥ - Maxime
● Grand Peninsula D - 13:30 to 14:05
● Poster session – Etienne, Maxime, Mélanie
● Atrium – 18:00 to 19:30
● Thursday
● On the road to Mars with Mars, thanks to Polarsys – Thales
● Harbour AB – 15:15 to 15:50
Sirius http://www.eclipse.org/sirius/
+1 0 -1
Sign in: www.eclipsecon.org
Evaluate the sessions

More Related Content

Similar to Xtext + Sirius = <3

Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari
 
SiriusCon17 - Eclipse Sirius at a glance
SiriusCon17 - Eclipse Sirius at a glanceSiriusCon17 - Eclipse Sirius at a glance
SiriusCon17 - Eclipse Sirius at a glance
Obeo
 
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
VMware Tanzu
 
BI Environment Technical Analysis
BI Environment Technical AnalysisBI Environment Technical Analysis
BI Environment Technical Analysis
Ryan Casey
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Obeo
 
Creating a SPA blog withAngular and Cloud Firestore
Creating a SPA blog withAngular and Cloud FirestoreCreating a SPA blog withAngular and Cloud Firestore
Creating a SPA blog withAngular and Cloud Firestore
TMME - TECH MEETUP FOR MYANMAR ENGINEERS IN JP
 
[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...
[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...
[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...
Obeo
 
CIKB - Software Architecture Analysis Design
CIKB - Software Architecture Analysis DesignCIKB - Software Architecture Analysis Design
CIKB - Software Architecture Analysis Design
Antonio Castellon
 
Sirius talk at EclipseCon Europe 2013
Sirius talk at EclipseCon Europe 2013Sirius talk at EclipseCon Europe 2013
Sirius talk at EclipseCon Europe 2013
pcdavid_
 
Balancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem FormulationBalancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem Formulation
Alex D. Gaudio
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010
MD DAY
 
Evolving your api architecture with the strangler pattern
Evolving your api architecture with the strangler patternEvolving your api architecture with the strangler pattern
Evolving your api architecture with the strangler pattern
dwcarter74
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
Gary Pedretti
 
The Future of GlusterFS and Gluster.org
The Future of GlusterFS and Gluster.orgThe Future of GlusterFS and Gluster.org
The Future of GlusterFS and Gluster.org
John Mark Walker
 
How to design an application correctly ?
How to design an application correctly ?How to design an application correctly ?
How to design an application correctly ?
Guillaume AGIS
 
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
DicodingEvent
 
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game  - Build diagram, table and tree editors in 20 minutesSirius Role Playing Game  - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
Cédric Brun
 
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
CloudStack - Open Source Cloud Computing Project
 
Azure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the CloudAzure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the Cloud
Cameron Vetter
 
Domain driven design: a gentle introduction
Domain driven design:  a gentle introductionDomain driven design:  a gentle introduction
Domain driven design: a gentle introduction
Asher Sterkin
 

Similar to Xtext + Sirius = <3 (20)

Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
SiriusCon17 - Eclipse Sirius at a glance
SiriusCon17 - Eclipse Sirius at a glanceSiriusCon17 - Eclipse Sirius at a glance
SiriusCon17 - Eclipse Sirius at a glance
 
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
 
BI Environment Technical Analysis
BI Environment Technical AnalysisBI Environment Technical Analysis
BI Environment Technical Analysis
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight Session
 
Creating a SPA blog withAngular and Cloud Firestore
Creating a SPA blog withAngular and Cloud FirestoreCreating a SPA blog withAngular and Cloud Firestore
Creating a SPA blog withAngular and Cloud Firestore
 
[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...
[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...
[SiriusCon 2018] Your models and diagrams published on a web server with Obeo...
 
CIKB - Software Architecture Analysis Design
CIKB - Software Architecture Analysis DesignCIKB - Software Architecture Analysis Design
CIKB - Software Architecture Analysis Design
 
Sirius talk at EclipseCon Europe 2013
Sirius talk at EclipseCon Europe 2013Sirius talk at EclipseCon Europe 2013
Sirius talk at EclipseCon Europe 2013
 
Balancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem FormulationBalancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem Formulation
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010
 
Evolving your api architecture with the strangler pattern
Evolving your api architecture with the strangler patternEvolving your api architecture with the strangler pattern
Evolving your api architecture with the strangler pattern
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
The Future of GlusterFS and Gluster.org
The Future of GlusterFS and Gluster.orgThe Future of GlusterFS and Gluster.org
The Future of GlusterFS and Gluster.org
 
How to design an application correctly ?
How to design an application correctly ?How to design an application correctly ?
How to design an application correctly ?
 
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
Dicoding Developer Coaching #31: Android | Menerapkan Clean Architecture di A...
 
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game  - Build diagram, table and tree editors in 20 minutesSirius Role Playing Game  - Build diagram, table and tree editors in 20 minutes
Sirius Role Playing Game - Build diagram, table and tree editors in 20 minutes
 
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
 
Azure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the CloudAzure Notebooks - Jupyter for the Cloud
Azure Notebooks - Jupyter for the Cloud
 
Domain driven design: a gentle introduction
Domain driven design:  a gentle introductionDomain driven design:  a gentle introduction
Domain driven design: a gentle introduction
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 

Xtext + Sirius = <3

  • 1. Xtext + Sirius : ♥ Maxime Porhel Obeo « BirthofNature »AndrewHamrockhttp://500px.com/photo/17743557 EclipseCon North America March 9-12, 2015
  • 2. ● Focused on domain specific modeling technologies ● 50+ people working on products and customer projects ● Services : training, consulting and Open Innovation

 ● Tool vendor

 www.obeo.fr
  • 3. «Xtext brings the capability of defining fairly quickly a textual editor supporting your domain specific concepts.» « Sirius brings to anybody the capability of defining fairly quickly graphical, tree or table editors supporting your domain specific concepts. »
  • 4. Textual + Graphical ? Text is better: ● at operations and sequences ● when combining (expressions) ● ... ● for some users Diagram is better: ● relationships ● analyzing a design ● ... ● for some users Two complementary approaches
  • 5. The world of Sirius
  • 6. The world of Sirius
  • 7. The world of Sirius
  • 8. The world of Sirius
  • 9. The world of Sirius
  • 10. The world of Xtext
  • 11. The world of Xtext
  • 12. The world of Xtext
  • 13. The world of Xtext
  • 14. Unexpected situations ? Not so frequent situations for Sirius: ● thousands of ressources in a single project ● instance changes its URI/loose identity ● serialization is not possible Not so frequent situations for Xtext : ● state is not serializable ● model graph could not have been constructed through Xtext
  • 15. Two views of the same model File/Workspace level integration DSL syntax used as the serialization format DSL AST used in the Sirius Editor
  • 16. The StateMachine Demo Xtext 2.7.2 Sirius 3.0.0 (pre M6) Eclipse Luna SR2 https://github.com/ObeoNetwork/Xtext-Sirius-integration
  • 20. Caveats: am I serializable ?
  • 21. Caveats: am I serializable ? Provide graphical feedback ASAP Tools should create serializable elements by default Tools cleaning up the graph (Association like instances..)
  • 22. Specific Integration with Xtext Instantiate an XtextResourceSet Configure the ResourceSet with the project. Change the saving policy
  • 23. Caveats: limitations addressed [430724] Sirius might Serialize a bit too much [432931] Xtext prevent Serialization with false positives [448304] Xtext is not updating cross-ref names [458841] Xcore model can't resolve references to standard types.
  • 24. The Best of both
  • 25. Embedding syntax in a diagramEmbedding
  • 26. Embedding syntax in a diagram
  • 27. Embedding syntax in a diagram
  • 28. How To ? Example and « base framework » here: https://github.com/ObeoNetwork/Xtext-sirius-integration
  • 32. Caveats: Cross-References Consistency Model is parseable but not resolvable Either prevent it* or warn the user ! These caveats should be considered upfront, it either impact the user experience or your DSL itself
  • 33. Caveats: Merging Only as good as how the content matching perform Bad matching : nodes are re-created in diagram
  • 34. React to external changes Sirius detects changes in the workspace : Domain model is reloaded when externally changed. Experimental approach: Do not reload Compute the delta between the resource on the disk and the loaded state and merge differences.
  • 35. Example and «experimental framework» here: https://github.com/mporhel/Xtext-sirius-integration Core modification in Sirius not yet integrated but available here: https://git.eclipse.org/r/#/c/43489/ How to ?
  • 36. Caveats: Merging Only as good as how the content matching perform Bad matching: nodes are re-created in diagram
  • 37. External validation markers « Validate action » in your Xtext Editor Marker in the Problems view Referencing the file Double click opens your Xtext Editor « Validate diagram » action in Sirius diagram editors Call semantic validation rules and rules defined in the VSM Marker in the Problem view Referencing the representations files, and the validated representation Double clic opens your Sirius editor
  • 40. Takeaways ● Sirius tuning: refresh and saving policy ● Think about the referencing ● Add editor feedback when not serializable ● Design create/update/delete operations to stay serializable ● When embedding, display elements which should not have cross-refs (or take care of those) ● EMF Compare can help
  • 41. Takeaways ● As long as it's an EMF model Sirius will handle it. ● If you want to embed : think about what you expect ● Get involved : give feedback and or patches on the embedding, reload or validation layers  https://github.com/ObeoNetwork/Xtext-Sirius-integration
  • 42. What Next ? Sirius 1.0.2 released with Luna SR2 Sirius 2.0 (*) ● UX improvements for diagrams and layouts ● Performance, scalability ● Ecore Tools 2, UML Designer 4 are based on Sirius ● 2.0.4 released on Feb 12, 2015 (~40 Bugzillas delivered since 2.0.0 in October) Eclipse Mars :  ● Sirius goes 3.0 (*) ● Performance, Scalability: hitting the 1 Million mark ● Reduced memory footprint ● Edges connected to real outline of shapes (images with transparency, basic shape style) (*) Model migrations are taken care of by Sirius
  • 43. Other Talks ● Tuesday ● Arduino designer: the making of! – Mélanie ● Grand Peninsula EFG – 13:30 to 14:05 ● Wednesday ● Sirius + Xtext = ♥ - Maxime ● Grand Peninsula D - 13:30 to 14:05 ● Poster session – Etienne, Maxime, Mélanie ● Atrium – 18:00 to 19:30 ● Thursday ● On the road to Mars with Mars, thanks to Polarsys – Thales ● Harbour AB – 15:15 to 15:50
  • 45. +1 0 -1 Sign in: www.eclipsecon.org Evaluate the sessions