Introduction

DevOps Model RealTime is a product made for the development of soft real-time applications. It is the next generation of the Rational Rose Real-Time (RoseRT) tool. Model RealTime takes an evolutionary leap from the RoseRT technology base for two main reasons:

From a practical point of view, the Eclipse integration has significant benefits in terms of functionality, usability, and customizability. One example is the tight integration with the C++ development environment CDT, which provides a full-fledged development environment for C/C++. Model RealTime uses CDT for all code-level aspects of developing a real-time application. In addition, Eclipse provides numerous other tools that can be used together with Model RealTime. See www.eclipse.org for more information.

Many of the new features added in Model RealTime are intended to support collaboration and agile development methods. For example, the support for agile methods is visible in the focus on efficient build system integration, including enabling various continuous integration schemes. It is also visible in the extended support for parallel development in cross-functional teams. The logical model merge functionality in Model RealTime enables the development of different features in separate feature branches, allowing, for example, rebasing and delivering to a main release branch.

However, the change in underlying technology means that the migration from the RoseRT tooling is not completely straightforward and necessitates some paradigm shifts to accommodate the integrations into Eclipse and Model RealTime. The purpose of this topic is to share the past migration experiences and offer practical guidance to help overcome common challenges.

The Good News

The good news is that Model RealTime is specifically designed to be a replacement product for RoseRT. Some key aspects are as follows:

The Model RealTime importer can directly translate RoseRT models to the Model RealTime model format. It also includes many options to customize and fine-tune the import process.

The preserved RoseRT modeling style, using capsules, ports, and other UML-RT concepts, makes it easy for developers experienced in RoseRT design to recognize and use the modeling constructs of Model RealTime because they are, to a large extent, the same as in RoseRT. The design language is still the same, even if the tool is new and the modeling scheme is updated to be compliant with UML2.

The C++ runtime kernel that is the key to the development of applications based on RoseRT is preserved with very few (backwards compatible) modifications in Model RealTime. The implication is that if special-purpose modifications have been done to the run-time kernel in RoseRT to adapt it to different target environments, they will be easy to port to Model RealTime. In most cases they are likely to work out-of-the-box.

From a migration point of view, the implication is that for a C++ modeling project, the following steps are necessary:

To summarize, Model RealTime is designed to be a replacement for RoseRT, benefiting from the enhanced features that the Eclipse-based development environment provides. The focus is on C++ based application development, where the concepts and the runtime kernel from RoseRT are preserved to enable an easy migration path.

The Bad News

The bad news is that migrating from one development environment to another is NEVER a trivial exercise and migrating from RoseRT to Model RealTime is no exception. Development environments are complex, and even though RoseRT and Model RealTime are designed to facilitate the migration effort, both environments contain a massive amount of detailed settings and options that needs to be understood and taken into account during the migration efforts.

From a workflow perspective, Model RealTime is not a copy of RoseRT; some use cases are performed in a similar fashion in both tools, some are done differently, and some RoseRT scenarios are not supported by Model RealTime. It is important to understand the consequences of these differences when implementing a migration effort.

Expect that migration will take a good amount of time. You’ll need to do test migrations, review the results, and set up training for the team that will use the new tool.

The effort is less for simple specification or analysis models used only for viewing, and greater for projects that generate code and run applications. Larger projects take longer - migration often lasts months, not weeks. For a code generation project with 40-50 developers, expect about 6 months from the initial migration to full production use of Model RealTime.

It's imperative to compare the workflows and features used in RoseRT with those available in Model RealTime before starting the migration. Model RealTime behaves differently in many areas and doesn’t support some of the less-used RoseRT features. While it fully supports importing C++ models, C models require extra manual adjustments, and mixed C/C++ models have limited support and need additional work. Because every project is unique, new challenges may arise during migration. For larger projects, you might need to adjust workflows or customize Model RealTime or its import tools to handle these issues effectively.

The conclusion is that migration needs careful planning. But with realistic expectations and good preparation, migration from RoseRT to Model RealTime is doable and effective.