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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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 a 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 a 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
 

Último

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
+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
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
+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...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 

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

Notas del editor

  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