Migration to Rational Rhapsody 8.0.4
This document contains information about issues that you might encounter when you migrate existing Rational Rhapsody projects to version 8.0.4.
Prior to release 8.0.4, there were cases where an #include directive was generated for an implicit dependency but the annotation preceding the #include directive just said "auto_generated" rather than indicating the actual reason that the directive was generated. This issue was fixed in 8.0.4.
To preserve the previous code generation behavior for pre-8.0.4 models, the CG::Dependency::AutoGenAnnotationsForImplicitDependencies property was added to the backward compatibility settings for C++ with a value of False.
Changes to frameworks
OXF C++ framework
- In OMProtected, the method getGuard is now defined as virtual.
- The signature of the delete operator was modified in order to fix a compilation error that occurred when using the latest versions of gcc.
- The OMDELETE macro was modified in order to prevent a compilation warning.
- An adaptor for QNX was added.
- Two macros were added: RiCOSFailure and RiCOSSuccess.
- In the RiCTaskEM_init method, one of the parameters was removed.
Using existing Rational Publishing Engine templates
The following change was made to the REST schemas in Rational Rhapsody release 8.0.4:
AllUseCasees was changed to AllUseCases. Notice the difference in spelling.
As a result of this change, you might have to make some adjustments to any existing Rational Publishing Engine templates that you use for generating reports for models.
To update such templates:
- Open the template in Rational Publishing Engine Document Studio.
- Replace the schema with the new schema provided with Rational Rhapsody 8.0.4.
- If Rational Publishing Engine reports a missing query error, remove the problematic sections of your template. Repeat this process until no more errors are reported.
- Use the terms from the new schema to replace the items that you removed from your template.
Importing ARXML that contains unnamed elements
Prior to Rational Rhapsody 8.0.4, if you imported ARXML into an existing model (in merge mode), there were cases where the resulting model had duplicate entries for unnamed elements (for elements that can have multiplicity greater than 1). To resolve this problem, in release 8.0.4, a change was made to the way that unnamed elements are stored in the model. This change resolves this issue for new models created with 8.0.4.
However, if you try to import ARXML into an existing pre-8.0.4 model (in merge mode), you might still encounter this problem. To work around this issue, use the following steps:
- Discard the merged model, and open the existing model again.
- Export the entire model to ARXML.
- Import the resulting ARXML back into an empty Rational Rhapsody project.
- After exporting and importing the original model, take the ARXML file that you originally tried to merge and import it again.
After you carry out the above steps, the merged model does not contain duplicates for unnamed elements.
Obviously, if your model contains non-AUTOSAR elements such as diagrams or requirements, you cannot use the approach of exporting and then importing your entire model. In such cases, you can use the following steps to manually remove the duplicate elements:
- Copy the value of the AUTOSAR::ARXML::UnNamedCalculatedName property from the new element to the existing element.
- Delete the new duplicate element that was created.
Instance references belonging to RTEEvent elements (relevant for AUTOSAR 3 only)
Beginning in release 8.0.4, the instance references belonging to RTEEvent elements are represented by context tags rather than dependencies.
If you import ARXML containing RTEEvent elements into an existing pre-8.0.4 model that already contains these elements, the existing RTEEvent elements in the model then has both the original dependency and the new context tag. When you export such a model to ARXML, Rational Rhapsody exports only the context tags for these elements and ignores the dependencies (because they are redundant). If you want to "clean up" the model, you can manually delete these redundant dependencies.
For elements of type RTEEvent, this change is relevant for "modeDependency" instance references.
For the elements derived from RTEEvent, this change is relevant for the following instance references:
- "mode" instance references for ModeSwitchEvent
- "data" instance references for DataReceivedEvent
- "data" instance references for DataReceiveErrorEvent
- "operation" instance references for OperationInvokedEvent