Information about the migration of existing IBM Rational Rhapsody projects to version 8.0.
In version 8.0, the following changes were made in the code generated for statecharts:
- Prior to version 8.0, in cases where orthogonal states exited to a join connector that was followed by a termination connector, the code that was generated always used the exit action of the first state regardless of which of the orthogonal states the system was in. This problem has been corrected in version 8.0.
- Prior to version 8.0, in cases where a single trigger triggered multiple transitions, the code that was generated ignored any guards that appeared after a junction connector that followed any of the transitions. This problem has been corrected in version 8.0.
- Prior to version 8.0, in cases where a junction connector followed a condition that exited a condition connector, the code that was generated for the else part of the condition also included the action that followed the junction connector. This problem has been corrected in version 8.0.
- Prior to version 8.0, in cases where two states had transitions entering a join sync bar, and one of the states had a second transition that used a guard, the system proceeded past the join sync bar without waiting for the completion of the transition from the other state. This problem has been corrected in version 8.0.
To preserve the previous code generation behavior for pre-8.0 models, the CG::Statechart::UsePre80StatechartCG property was added to the backward compatibility settings for C, C++, and Java with a value of True.Statechart event-processing code
In version 8.0, changes were made to the statechart event-processing code in order to increase the compliance of the code with MISRA. To preserve the previous code generation behavior for pre-8.0 models, the CG::Statechart::GenerateMisraCompliantEventProcessingCode property was added to the backward compatibility settings for C and C++ with a value of False.Application of MISRA profiles (C and C++)
The way in which the MISRA profiles are applied to projects has been changed in version 8.0. The profiles are no longer globally applied. If you want to have a MISRA profile applied to your entire project, add a dependency from the project to the profile. If you only want to apply the profile to specific packages, add a dependency from each such package to the profile. This change applies to both the C and C++ MISRA profiles.Generation of S-functions
Prior to version 8.0, Rational Rhapsody would generate an *.mdl file containing the S-function block and a MexOpts.txt file. Beginning in this version, an *.m file is generated (create_sfunction_model.m) instead of an *.mdl file. Once this *.m file is generated, all you have to do is open MATLAB, go to the generated folder, and type
create_sfunction_model in the command window. This creates the *.mdl file and carries out the compilation as well.
Beginning in version 8.0, Rational Rhapsody no longer works with Microsoft Visual Studio 6.0 without manual configuration. The following entries are no longer included in the list of available environments: Microsoft, MicrosoftDLL, and MSStandardLibrary. If you want to use a pre-8.0 model in version 8.0 and continue working with Visual Studio 6.0, there are a number of manual steps that you must carry out. For detailed instructions, see Using Microsoft Visual Studio 6 with IBM Rational Rhapsody.Using Rational Rhapsody with Microsoft Visual Studio 2008 and Microsoft Visual Studio 2010
Beginning in version 8.0, Rational Rhapsody uses a single environment called MSVC for projects that use Microsoft Visual Studio 2008 and projects that use Microsoft Visual Studio 2010.
To indicate which version of Visual Studio you are using, you must use the MSVC::IDEVersion property.
The value of this property is passed as a parameter to the Build Framework command, and to the command that is used to build your application. The value of the property is also used in properties that affect the content of the generated makefile.
The default value of the MSVC::IDEVersion property is VC10:
- If you are using Visual Studio 2010, you do not have to modify the value of the property.
- If you are using Visual Studio 2008, you must change the value of the property to VC9.
Changes to names of metaclasses
In version 8.0, the names of two metaclasses were changed:
- CollaborationDiagram is now CommunicationDiagram
- PrimitiveOperation is now Operation
If you have scripts that use the old metaclass names, update them to use the new metaclass names. Similarly, if you have used the old metaclass names in the values of overridden properties, update the properties to use the new metaclass names.
Models containing double-byte characters in element names
For certain model elements, such as use cases and actors, Rational Rhapsody allows a more flexible name format. The purpose of this flexibility is to allow the use of spaces and a number of other ASCII characters that cannot be used in the names of elements that are included in the generated code.
Due to a defect, this flexibility unintentionally allowed the inclusion of double-byte characters (such as Japanese) in the names of these elements. This is causing a set of issues that the system was not designed to deal with. By design, double-byte characters are only allowed in the Label field, not in the Name field.
To prevent these problems, in version 188.8.131.52 Rational Rhapsody began enforcing the design that double-byte characters are only allowed in the Label field, not in the Name field.
In the 8.0 release, if you open an existing model that contains such multi-byte names, all multi-byte names in the model are automatically changed to the default Rational Rhapsody names (for example, class_0). The original names are copied to be the labels of the elements. In order to view the original names, switch to Label Mode (View > Label Mode).
Data Distribution Service for Real-Time Systems (DDS) modeling - Quality of Service dependencies
Prior to version 8.0, dependencies with the
<<qualityOfService>> stereotype were drawn from the quality of service entity to the DDS entity. Beginning with this release, dependencies with the
<<qualityOfService>> stereotype are drawn from the DDS entity (such as DataWriter) to the quality of service entity.
To allow correct code generation for existing models that use the pre-8.0 approach for such dependencies, the CPP_CG::Configuration::UsePre80DdsCG property was added to the backward compatibility settings for C++ with a value of True.
Note, however, that even with this property, the correct code will be generated only if you turn off the "load on demand" and "parallel code generation" options. If you want to use one of these options, you must reverse the direction of the
<<qualityOfService>> dependencies in your older model.
To have Rational Rhapsody make the necessary model changes automatically, select Convert pre-8.0 DDS model from the pop-up menu that is displayed for DDS models.
Opening 8.0 AUTOSAR models in previous versions of Rational Rhapsody
If you create an AUTOSAR model in version 8.0 and then want to open the model in an older version of Rational Rhapsody, you must copy the relevant AUTOSAR profile from 8.0 to your older installation.
Using existing Rational Publishing Engine templates
As a result of changes made to the REST schemas in Rational Rhapsody, 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 version 8.0.
- 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.
Was this topic helpful?
27 May 2022