Papyrus-RT - an open-source UML-RT tool
Modelling tools targeting real-time, embedded software intensive systems have traditionally been the purview of large, commercial software vendors, whose tools are often based on decades-old technology. With the explosive growth, over the last decade, of open source software, we feel the time is right to bring out new, open source tooling taking advantage of modern technologies and up-to-date standards.
Papyrus, from Eclipse and part of the Polarsys offerings, is the ideal base on which to build such a tool. Papyrus provides extensive capabilities to define and implement domain specific modelling languages (DSML) based on UML, the ability to customize the user interface to align with the intended usage of the DSML, as well as providing existing implementations of UML profiles applicable to the full development lifecycle of complex real-time embedded domain products, such as UML-RT, MARTE, and SysML.
But the front end of the tool is just one of three essential parts of a successful real-time embedded development tool, there is also needs for a way to mark up the model for various development or target environments, to fully and correctly generate the code for the software application, and to have a proper runtime service layer that abstracts and adapts the underlying target platform (i.e., hardware, RTOS, etc.).
This presentation will describe the needs for such an offering, the key features and benefits such a tool will provide, and the benefits it will offer over current commercial offerings. Although we will cover the tooling in broad strokes, we will concentrate on discussing the code generation and runtime service layer (RSL) that will be provided as part of the offering. We will discuss the architecture of the code generator and RSL as well as the decisions that were made to ensure they are easily modified and extended, as can often be the need for proprietary platforms. We will also discuss how we plan on dealing with some of the more common concerns, such as performance, multicore support, tracing and debugging, and cross-target support.