SlideShare a Scribd company logo
1 of 21
© 2014 Zeligsoft
Improving embedded software development productivity
PapyrusRT: modelling and code generation
Ernesto Posse
Zeligsoft
September 29, 2015
OSS4MDE’15 – Ottawa, Canada
Improving embedded software development productivity
© 2014 Zeligsoft
What is PapyrusRT?
• A new open-source MDE environment for
UML-RT
• Based on Papyrus, a Eclipse-based
environment for UML
• UML-RT: UML-based language for real-time
embedded systems
Improving embedded software development productivity
© 2014 Zeligsoft
Collaboration
• Zeligsoft (codegen, runtime, CDT int.)
• CEA List (tooling, validation, import, CDT int.)
• Bran Selic (profile)
• Ericsson (req., C++ profile, interm. repr.)
• Peter Cigéhn (req., testing)
• IncQuery Labs (interm. repr.)
Improving embedded software development productivity
© 2014 Zeligsoft
Why?
• UML-RT history:
– 1987: Telos project at BNR
– 1992: ObjectTime
– 1994: ROOM (Selic, B., Gullekson, G. and Ward, P.)
– 1998: UML-RT (Selic, B., Rumbaugh, J.)
– 2000: Rational RoseRT
– 2006: IBM RSA Real Time Edition
Improving embedded software development productivity
© 2014 Zeligsoft
Why?
• Proprietary tools limit extensibility and
customizability
• Need to support existing user base
• Need of an open-source solution
Improving embedded software development productivity
© 2014 Zeligsoft
Why Papyrus?
• Already supports UML 2.5
• Rich UI
• Open-source
• Rich Eclipse ecosystem
Improving embedded software development productivity
© 2014 Zeligsoft
UML-RT
• Object-Oriented
• Concurrent
• Real-Time systems
• UML with constraints
– Composite Structure Diagrams
– State Machine Diagrams
Improving embedded software development productivity
© 2014 Zeligsoft
UML-RT
• Capsules (Actors):
– Active classes
– Strong encapsulation and well defined interfaces
(ports typed by Protocols)
– Behaviour: hierarchical state machines
– Structure: May contain parts (sub-capsules)
– Communication by message-passing (connectors)
Improving embedded software development productivity
© 2014 Zeligsoft
UML-RT: capsules
Improving embedded software development productivity
© 2014 Zeligsoft
UML-RT: state machines
Improving embedded software development productivity
© 2014 Zeligsoft
UML-RT cont.
• Protocols:
– Port types
– Protocol messages (signals):
• Input
• Output
• Input/output
– Protocol message parameters
– Port role: base/conjugated
Improving embedded software development productivity
© 2014 Zeligsoft
UML-RT dynamic structure
• Capsule roles:
• Capsule instances are associated to threads
• Services:
– SAPs and SPPs with dynamic wiring
– Library: Timing, Log, Frame
Role Instantiation Ownership Life-time
Fixed static container = container
Optional dynamic container <= container
Plugin dynamic independent independent
Improving embedded software development productivity
© 2014 Zeligsoft
UML-RT execution semantics
• Runtime system
• Controllers
– Each capsule is associated to a controller
– A controller executes a “main” loop
– Handles messages addressed to its capsules
– Manages the capsule’s lifetimes
Improving embedded software development productivity
© 2014 Zeligsoft
Code generation
• Target language:
– Now: C++03
– Later: Java
• Target OS:
– Now: Linux
– Later: Windows, others
• Legacy applications
Improving embedded software development productivity
© 2014 Zeligsoft
Demo (early adopters version)
Improving embedded software development productivity
© 2014 Zeligsoft
Code generation
• Transformation
• Implemented in Java and Xtend
• Supports incremental generation
Improving embedded software development productivity
© 2014 Zeligsoft
Code generator structure
Improving embedded software development productivity
© 2014 Zeligsoft
Some challenges
• Introducing an intermediate meta-model:
– Designing the meta-model
– Introducing an additional step
– Transforming an existing step
– … while development continues on the existing
transformation
– … and the meta-model changes too
Improving embedded software development productivity
© 2014 Zeligsoft
Some more challenges
• Dealing with inter-element dependencies
• Generating code from non-valid models
• Dealing with partially defined models
Improving embedded software development productivity
© 2014 Zeligsoft
Wish list
• Impact analysis
– Internal
• Dependency: E.g. How does changing the way we
generate/transform protocols affect the way we
generate/transform capsules?
• Consistency: E.g. Does a change break something?
– External
E.g. How does changing the way we generate/transform
protocols affect the runtime, and viceversa?
Improving embedded software development productivity
© 2014 Zeligsoft
Links
• Website
https://www.eclipse.org/papyrus-rt/
• Wiki
https://wiki.eclipse.org/Papyrus-RT
• Bugzilla
https://bugs.eclipse.org
• Git/Gerrit
https://git.eclipse.org/r/papyrus-
rt/org.eclipse.papyrus-rt

More Related Content

What's hot

2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings
Haufe-Lexware GmbH & Co KG
 
04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements
04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements
04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements
Walid Maalej
 

What's hot (20)

Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
 
Immutable infrastructure - Plain Concepts DevOps day
Immutable infrastructure - Plain Concepts DevOps dayImmutable infrastructure - Plain Concepts DevOps day
Immutable infrastructure - Plain Concepts DevOps day
 
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - LondonPCF: Platform for a New Era - Kubernetes for the Enterprise - London
PCF: Platform for a New Era - Kubernetes for the Enterprise - London
 
The Automated Monolith
The Automated MonolithThe Automated Monolith
The Automated Monolith
 
2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings
 
Your own kubernetes castle
Your own kubernetes castleYour own kubernetes castle
Your own kubernetes castle
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
 
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
Selenium Testing your Kubernetes Apps with Machine Learning and TestimSelenium Testing your Kubernetes Apps with Machine Learning and Testim
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
 
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a ProSkip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
 
MDT Papyrus - Eclipse Con 2010
MDT Papyrus - Eclipse Con 2010MDT Papyrus - Eclipse Con 2010
MDT Papyrus - Eclipse Con 2010
 
Kubeflow at Spotify (For the Kubeflow Summit)
Kubeflow at Spotify (For the Kubeflow Summit)Kubeflow at Spotify (For the Kubeflow Summit)
Kubeflow at Spotify (For the Kubeflow Summit)
 
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
 
Spinnaker workshop
Spinnaker workshopSpinnaker workshop
Spinnaker workshop
 
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
Multi-cloud CI/CD with failover powered by K8s, Istio, Helm, and Codefresh
 
04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements
04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements
04 The Papyrus tool as an Eclipse UML2-modeling environment for requirements
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 

Similar to PapyrusRT: Modelling and Code Generation

Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
Ankit Chohan
 
Ananth_Ravishankar
Ananth_RavishankarAnanth_Ravishankar
Ananth_Ravishankar
ananth R
 
DaveSailors-resume-v9.6.8.save
DaveSailors-resume-v9.6.8.saveDaveSailors-resume-v9.6.8.save
DaveSailors-resume-v9.6.8.save
Dave Sailors
 

Similar to PapyrusRT: Modelling and Code Generation (20)

Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
 
desktop_resume
desktop_resumedesktop_resume
desktop_resume
 
High Performance Continuous Delivery - Versioning and Release Management Aligned
High Performance Continuous Delivery - Versioning and Release Management AlignedHigh Performance Continuous Delivery - Versioning and Release Management Aligned
High Performance Continuous Delivery - Versioning and Release Management Aligned
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Papyrus for System Engineering - Papyrus for Real Time v1.0
Papyrus for System Engineering - Papyrus for Real Time v1.0Papyrus for System Engineering - Papyrus for Real Time v1.0
Papyrus for System Engineering - Papyrus for Real Time v1.0
 
Mannu_Kumar_CV
Mannu_Kumar_CVMannu_Kumar_CV
Mannu_Kumar_CV
 
Ananth_Ravishankar
Ananth_RavishankarAnanth_Ravishankar
Ananth_Ravishankar
 
Vinayak_Sdet_DevOps_Bigdata_5_years
Vinayak_Sdet_DevOps_Bigdata_5_yearsVinayak_Sdet_DevOps_Bigdata_5_years
Vinayak_Sdet_DevOps_Bigdata_5_years
 
MLOps in action
MLOps in actionMLOps in action
MLOps in action
 
Dimitri SCHMITT - CVEN
Dimitri SCHMITT - CVENDimitri SCHMITT - CVEN
Dimitri SCHMITT - CVEN
 
DaveSailors-resume-v9.6.8.save
DaveSailors-resume-v9.6.8.saveDaveSailors-resume-v9.6.8.save
DaveSailors-resume-v9.6.8.save
 
Vikash_Kr_Singh_CV
Vikash_Kr_Singh_CVVikash_Kr_Singh_CV
Vikash_Kr_Singh_CV
 
.Net Framework & Languages Supported by .Net Frmaework
.Net Framework & Languages Supported by .Net Frmaework.Net Framework & Languages Supported by .Net Frmaework
.Net Framework & Languages Supported by .Net Frmaework
 
Diwakar Nag
Diwakar NagDiwakar Nag
Diwakar Nag
 
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
 
Coding Secure Infrastructure in the Cloud using the PIE framework
Coding Secure Infrastructure in the Cloud using the PIE frameworkCoding Secure Infrastructure in the Cloud using the PIE framework
Coding Secure Infrastructure in the Cloud using the PIE framework
 
A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkins
 
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
 
OS for AI: Elastic Microservices & the Next Gen of ML
OS for AI: Elastic Microservices & the Next Gen of MLOS for AI: Elastic Microservices & the Next Gen of ML
OS for AI: Elastic Microservices & the Next Gen of ML
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

PapyrusRT: Modelling and Code Generation

  • 1. © 2014 Zeligsoft Improving embedded software development productivity PapyrusRT: modelling and code generation Ernesto Posse Zeligsoft September 29, 2015 OSS4MDE’15 – Ottawa, Canada
  • 2. Improving embedded software development productivity © 2014 Zeligsoft What is PapyrusRT? • A new open-source MDE environment for UML-RT • Based on Papyrus, a Eclipse-based environment for UML • UML-RT: UML-based language for real-time embedded systems
  • 3. Improving embedded software development productivity © 2014 Zeligsoft Collaboration • Zeligsoft (codegen, runtime, CDT int.) • CEA List (tooling, validation, import, CDT int.) • Bran Selic (profile) • Ericsson (req., C++ profile, interm. repr.) • Peter Cigéhn (req., testing) • IncQuery Labs (interm. repr.)
  • 4. Improving embedded software development productivity © 2014 Zeligsoft Why? • UML-RT history: – 1987: Telos project at BNR – 1992: ObjectTime – 1994: ROOM (Selic, B., Gullekson, G. and Ward, P.) – 1998: UML-RT (Selic, B., Rumbaugh, J.) – 2000: Rational RoseRT – 2006: IBM RSA Real Time Edition
  • 5. Improving embedded software development productivity © 2014 Zeligsoft Why? • Proprietary tools limit extensibility and customizability • Need to support existing user base • Need of an open-source solution
  • 6. Improving embedded software development productivity © 2014 Zeligsoft Why Papyrus? • Already supports UML 2.5 • Rich UI • Open-source • Rich Eclipse ecosystem
  • 7. Improving embedded software development productivity © 2014 Zeligsoft UML-RT • Object-Oriented • Concurrent • Real-Time systems • UML with constraints – Composite Structure Diagrams – State Machine Diagrams
  • 8. Improving embedded software development productivity © 2014 Zeligsoft UML-RT • Capsules (Actors): – Active classes – Strong encapsulation and well defined interfaces (ports typed by Protocols) – Behaviour: hierarchical state machines – Structure: May contain parts (sub-capsules) – Communication by message-passing (connectors)
  • 9. Improving embedded software development productivity © 2014 Zeligsoft UML-RT: capsules
  • 10. Improving embedded software development productivity © 2014 Zeligsoft UML-RT: state machines
  • 11. Improving embedded software development productivity © 2014 Zeligsoft UML-RT cont. • Protocols: – Port types – Protocol messages (signals): • Input • Output • Input/output – Protocol message parameters – Port role: base/conjugated
  • 12. Improving embedded software development productivity © 2014 Zeligsoft UML-RT dynamic structure • Capsule roles: • Capsule instances are associated to threads • Services: – SAPs and SPPs with dynamic wiring – Library: Timing, Log, Frame Role Instantiation Ownership Life-time Fixed static container = container Optional dynamic container <= container Plugin dynamic independent independent
  • 13. Improving embedded software development productivity © 2014 Zeligsoft UML-RT execution semantics • Runtime system • Controllers – Each capsule is associated to a controller – A controller executes a “main” loop – Handles messages addressed to its capsules – Manages the capsule’s lifetimes
  • 14. Improving embedded software development productivity © 2014 Zeligsoft Code generation • Target language: – Now: C++03 – Later: Java • Target OS: – Now: Linux – Later: Windows, others • Legacy applications
  • 15. Improving embedded software development productivity © 2014 Zeligsoft Demo (early adopters version)
  • 16. Improving embedded software development productivity © 2014 Zeligsoft Code generation • Transformation • Implemented in Java and Xtend • Supports incremental generation
  • 17. Improving embedded software development productivity © 2014 Zeligsoft Code generator structure
  • 18. Improving embedded software development productivity © 2014 Zeligsoft Some challenges • Introducing an intermediate meta-model: – Designing the meta-model – Introducing an additional step – Transforming an existing step – … while development continues on the existing transformation – … and the meta-model changes too
  • 19. Improving embedded software development productivity © 2014 Zeligsoft Some more challenges • Dealing with inter-element dependencies • Generating code from non-valid models • Dealing with partially defined models
  • 20. Improving embedded software development productivity © 2014 Zeligsoft Wish list • Impact analysis – Internal • Dependency: E.g. How does changing the way we generate/transform protocols affect the way we generate/transform capsules? • Consistency: E.g. Does a change break something? – External E.g. How does changing the way we generate/transform protocols affect the runtime, and viceversa?
  • 21. Improving embedded software development productivity © 2014 Zeligsoft Links • Website https://www.eclipse.org/papyrus-rt/ • Wiki https://wiki.eclipse.org/Papyrus-RT • Bugzilla https://bugs.eclipse.org • Git/Gerrit https://git.eclipse.org/r/papyrus- rt/org.eclipse.papyrus-rt

Editor's Notes

  1. When we generate code we generate a main file that spawns these controllers.
  2. Why xtUMLrt? (1) common core with xtUML (sort of); not final, but a starting point towards unification. (2) simpler than UML2 => simplified transformations. (3) issolate from the tool. Why C++ model? (1) avoid regeneration of source C++ files (reduce target build times) (2) automatic synch of header/implementaiton files. More on xtUMLrt: far from a unified language; work on real unification of UML-RT and xtUML is ongoing (= not finished); work on PSCS is ongoing), but we needed something to work with; we couldn’t wait until that work was finished, so we (Zeligsoft, IncQuery, Ericsson Budapest) develop this to get the ball rolling.
  3. Create plugin project Add dependencies to org.eclipse.papyrusrt.codegen.cpp org.eclipse.papyrusrt.xtumlrt.common org.eclipse.papyrusrt.codegen.lang.cpp Add extension to org.eclipse.papyrusrt.codegen.cpp.generator Define a subclass of oep.codegen.cpp.AbstractCppGenerator implement AbstractCppGenerator.Factory The generator extension: Type: ClassGenerator, CapsuleGenerator, etc. Class: your AbstractCppGenerator.Factory
  4. Dealing with inter-element dependencies Incremental generation Code for an element depends on code generated for another element