Improving embedded software development productivity 
© 2014 Zeligsoft 
Papyrus-RT 
Charles Rivet 
Senior Product Manager 
charles@zeligsoft.com 
Zeligsoft 
2014-10-28
Improving embedded software development productivity 
© 2014 Zeligsoft 
Good!
Improving embedded software development productivity 
© 2014 Zeligsoft 
GBoeottde!r! 
C++ 
(existing)
Improving embedded software development productivity 
© 2014 Zeligsoft 
Best! 
C++ 
(in progress)
Improving embedded software development productivity 
© 2014 Zeligsoft
Improving embedded software development productivity 
Today 
• UML-RT Profile (already available) 
– Structure, behavior, constraints, validation 
• UML-RT C++ Code Generator 
– Structure: Capsules, protocols, Ports, connectors 
– Behavior: Flattened State machine & C++ Opaque Behavior 
• UML-RT Runtime Services (C++) 
– Structure: capsule, part, controler, port, protocol 
– Basic services – wired communication, timer 
• Platform: Linux 
© 2014 Zeligsoft
Improving embedded software development productivity 
Tomorrow 
• Eclipse project proposal 
• Progress towards full UML-RT support 
– Complete structure and behavior generation, 
inheritance, multi-threading support 
– Improved UI: towards a UML-RT DSML 
– Improved runtime service library 
© 2014 Zeligsoft
Improving embedded software development productivity 
With Mars 
• Open-source, Papyrus-based UML-RT support 
on Linux 
– Papyrus-based DSML 
– Customizable C++ code generation 
– Customizable runtime support library for Linux 
• Commercial support, training, and consulting 
services 
© 2014 Zeligsoft
Improving embedded software development productivity 
© 2014 Zeligsoft 
Papyrus expertise 
UML & UML-RT expertise 
Code generation 
Moka 
UML-RT expertise 
Architectural guidance 
User perspective 
Code generation 
UML & ALF expertise 
Metamodeling 
Project/product lead & management 
UML-RT expertise 
Code generation 
Runtime services 
Contributions
Improving embedded software development productivity 
© 2014 Zeligsoft 
Demo? 
Come and find me during the conference! 
charles@zeligsoft.com

EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT

  • 1.
    Improving embedded softwaredevelopment productivity © 2014 Zeligsoft Papyrus-RT Charles Rivet Senior Product Manager charles@zeligsoft.com Zeligsoft 2014-10-28
  • 2.
    Improving embedded softwaredevelopment productivity © 2014 Zeligsoft Good!
  • 3.
    Improving embedded softwaredevelopment productivity © 2014 Zeligsoft GBoeottde!r! C++ (existing)
  • 4.
    Improving embedded softwaredevelopment productivity © 2014 Zeligsoft Best! C++ (in progress)
  • 5.
    Improving embedded softwaredevelopment productivity © 2014 Zeligsoft
  • 6.
    Improving embedded softwaredevelopment productivity Today • UML-RT Profile (already available) – Structure, behavior, constraints, validation • UML-RT C++ Code Generator – Structure: Capsules, protocols, Ports, connectors – Behavior: Flattened State machine & C++ Opaque Behavior • UML-RT Runtime Services (C++) – Structure: capsule, part, controler, port, protocol – Basic services – wired communication, timer • Platform: Linux © 2014 Zeligsoft
  • 7.
    Improving embedded softwaredevelopment productivity Tomorrow • Eclipse project proposal • Progress towards full UML-RT support – Complete structure and behavior generation, inheritance, multi-threading support – Improved UI: towards a UML-RT DSML – Improved runtime service library © 2014 Zeligsoft
  • 8.
    Improving embedded softwaredevelopment productivity With Mars • Open-source, Papyrus-based UML-RT support on Linux – Papyrus-based DSML – Customizable C++ code generation – Customizable runtime support library for Linux • Commercial support, training, and consulting services © 2014 Zeligsoft
  • 9.
    Improving embedded softwaredevelopment productivity © 2014 Zeligsoft Papyrus expertise UML & UML-RT expertise Code generation Moka UML-RT expertise Architectural guidance User perspective Code generation UML & ALF expertise Metamodeling Project/product lead & management UML-RT expertise Code generation Runtime services Contributions
  • 10.
    Improving embedded softwaredevelopment productivity © 2014 Zeligsoft Demo? Come and find me during the conference! charles@zeligsoft.com

Editor's Notes

  • #3 Modeling, by itself, is a good way of coming to grips with large, complex, software intensive systems. Papyrus already provides this by supporting UML 2.5 along with many of its profiles and extensions, such as SysML and MARTE. But what could be better?
  • #4 Better is being able to generate some code out of this. Again, Papyrus provides a UML to C++ code generator, driven by a C++ profile and domain library. However, you are still left with the need to build some code to ensure that the application compiles and builds. So what could be even better?
  • #5 The best is to be able to specify everything you need to actually generate a running model. For reactive systems described by state machines, this is achieved with the UML-RT (UML-RealTime) tools being developed for Papyrus.
  • #6 UML-RT is a variant of ROOM (RealTime Object-Oriented Methodology) based on UML – it is a UML-based DSML targeted at reactive embedded systems. The main building blocks are capsules, which are UML composite structures, that are driven by state machines. The example here shows a simple PingPong system designed in Papyrus with the UML-RT profile.
  • #7 As of today, we have a UML-RT profile implementation that can be found as an incubation component within Papyrus. The rest of the UML-RT tooling is based on this profile, along with the already existing C++ profile and model library. Although not yet available as part of the Papyrus Build, we have a code generator that will create everything that is required to produce a running executable from capsules, protocoles, ports and connectors, as well as being able to transform a hierarchical state machine into a flattened code representation. State machine actions are coded using C++ opaque actions. The code generator uses Xtend, another Eclipse technology, as its transformation engine. Supporting all of this we have a basic C++ runtime service library providing capabilities such as thread controllers, communication mechanisms, and timers. At this point, we are only supporting Linux targets.
  • #8 The next step will be to create an Eclipse project proposal to bring what we have done into the Eclipse family. At the same time, we will continue to advance the code generation and service library capabilities, as well as taking a look at creating a full UML-RT DSML based on Papyrus’ extensibility and configurability capabilities.
  • #9 Our main goal is with Mars, when we intend to release the first version of the tool. Zeligsoft is also planning on announcing commercial support, training, and consulting services for the UML-RT tooling at that time.
  • #10 Note that this has not been a single-company initiative. The organizations on this slide have all made contributions to this project. Notes on slide: Moka is a Papyrus module for execution of UML models, which natively includes an execution engine complying with OMG standards fUML and PSCS (which deal with execution semantics of UML). Moka is integrated with the Eclipse debug framework to provide control, observation and animation facilities over executions. Moka can be easily extended to support alternative execution semantics, and thereby be adapted to multiple usage scenarios and domains.