Modified on by andersek
Sprint 2016.26 is now finished and the results are available for download. As usual we deliver both updated 9.1.2 CP1 and 10.0 versions and both of these versions are recommended for production use. Most of the work is aimed at improving the RSARTE 10 version, the 9.1.2 CP1 stream is mainly for maintenance and we only fix urgent problems in this stream
In the new (still experimental) search feature we have in this sprint focused on performance improvements and the usability and stability of the core work flow: Search, explore search results and navigate to found matches. The result is available in the RSARTE 10 drop.
In the build and code generation area we have fixed an issue with Lint warnings that was triggered by an equality operator in generated code. We have also removed a validation check for lower bound port cardinality that did not make sense for UML-RT style models. So now less warnings when running the RSARTE code generator!
The project explorer has also been improved in the new drop: We now have an improved visualization of multiplicity values and a problem with unnecessary instance specification nodes have been resolved.
We also got some feedback on the installation instructions when using the Eclipse installer to script installation of RSARTE. As a result we have updated the installation document available at the RSARTE 10 release page. It now also contains an example setup file that can be used as a starting point for a customized automatic installation of RSARTE using the Eclipse installer.
More information about the changes can be found in the updated What's New presentation. New pages include 16-17 with project explorer improvements and and 20-21 for code generation changes.
The deliveries of sprint 2016.23 are now available for download. As usual we deliver both updated 9.1.2 CP1 and 10.0 versions. Both these versions are recommended for production use.
9.1.2 CP1 is in maintenance mode and only a few bugfixes have been done in this release. Note that the Included Changes page also mentions some other improvements, but these were actually present also in the previous 9.1.2 CP1 release (we reviewed our backlog in this sprint and found some bugs and enhancements which turned out to be already implemented).
For RSARTE 10 the following improvements are worth mentioning. Read more about them in the What's new presentation (page numbers within square brackets below):
-  The representation of guards in the Project Explorer was improved.
-  Template parameters are now supported by the RSARTE features that analyze references.
-  The C++ code generator now supports a class/capsule-scoped state entry operation.
-  An RSARTE User's Guide topic was added to the built-in help. It contains index pages to make it easier to navigate to the documentation on the RSARTE wiki. Also, a "Learning RSARTE" page was added with suggested reading for new users of RSARTE.
- [21-22] A new implementation of Search is now available as an experimental feature.
Our sprint 2016.20 has ended and as a result there are now two new versions available for RSARTE: 9.1.2 CP1 2016.20 and 10.0 2016.20. Both are recommended for production usage.
RSARTE 9.1.2 CP1 is now in maintenance mode and no new features have been implemented. The difference with the previous release is a few bug fixes.
For RSARTE 10.0 there were also many bug fixes and improvements in existing features. Among other things, the built-in help (a.k.a "online help") now contains 4 topics contributed by RSARTE. They contain technical documentation mainly intended for users who need to customize RSARTE. JavaDocs for public APIs and description of available extension points can be found there.
Modified on by MattiasMohlin
Today we deliver the result of our work in the past sprint 2016.17. As usual we deliver both updated 9.1.2 CP1 and 10.0 versions. Both these RSARTE versions are recommended for production use.
RSARTE 9.1.2 CP1 2016.17
- The preference UML Development - Real Time C++ Transformations - Preserve new line characters for code snippets has been removed. Instead, the C++ code generator now respects the preference General - Workspace - New text file line delimiter to decide what line delimiter to use in generated code. The preference is only respected by the multi-threaded source file generator.
Except for this, 9.1.2 CP1 only saw a few bug fixes in this release. Our goal is to keep 9.1.2 CP1 as stable as possible and most of our efforts will instead be spent on version 10.
RSARTE 10.0 2016.17
Our theme for this release of RSARTE 10 has been to improve "Compare/Merge". In particular we have worked on the usability of the Compare/Merge. Many model changes are now easier to understand due to improved grouping of changes and better change descriptions.
Also, there are two new preferences (in General - Compare/Patch - Modeling Compare/Merge - UML Compare/Merge):
Conflict suppression strategy: Defines which version of a change to select for conflicts that can be suppressed. By default the local version from your workspace (left contributor) will be selected. The corresponding command-line option is -CPconflictSuppressionStrategy=left|right
Pure presentation conflicts: Set this preference to "Ignore" if you don't care about conflicts in the presentation, for example position of symbols or routing of lines. Such pure presentation conflicts will then be suppressed. The corresponding command-line option is -CPconflictSuppression=notation=on|off
Modified on by ElenaS
Long-awaited RSA RTE 2016.14 has been released today. Major event of this sprint is finalization of first official version of RSA RTE 10! It is now the production quality. We also continue to work on improvement for RSA RTE 9.1.2 CP1 since main users are still extensively using this version.
RSARTE 9.1.2 CP1 2016.14
Main focus of this sprint was improvement of stability for key functionality of our tool: compare/merge, code generation and diagrams. We have fixed several issues reported by our customers. Impressive number of incidents received with our Feedback module has been analyzed and 14 of them were fixed.
Also we continue evaluation of "Context sensitive library build" feature and improved sources closure analysis, added a couple of new information messages.
1) Some dependencies are not informative for context sensitive closure and now they are ignored with an information message:
Ignoring dependency from "CPPModel::Capsule1" to Operation "CPPModel::Class1::Operation1" for Context sensitive library builds
Considering only dependencies to Classes, Capsules, DataTypes, Interfaces, Artifacts and Protocols.
2) Dependencies to nested class are considered as dependencies to enclosing class, and enclosing class is also included into the sources closure:
Dependency from "CPPModel::Capsule1" points to nested element "CPPModel::Class1::Class12", considering its top level element "CPPModel::Class1" for Context sensitive library builds
3) If an element has got NativeType defined then its UML type is ignored for context sensitive closure.
However, some more testing remains to complete this work, so hopefully this feature will be fully available during one of our future releases.
RSARTE 10.0 2016.14
This is the day that we have been waiting for a long number of sprints. Team efforts ultimately resulted in the first official release of RSA RTE 10 version. During this sprint we have been working on finalization of licensing, installation and performance issues for this major version. You can now check all advantages that goes with new eclipse Mars.2(1) and new CDT versions. Apart from that, we remind you that some of the functionality became optional to install (TargetRTS, Connexis, Feedback module, EGit integration, Sketcher, CORBA) and some were removed (RTJava, UAL), several RSA components were also excluded from our installation. All this together brought performance acceleration of main user workflows: starting from installation, models loading and ending up in code indexing.
Several things remain to be incomplete such as integration with ClearCase CTE. This work is planned to be finished during one of upcoming sprints.
We strongly recommend to follow your complete pre-deployment test routines before using this version in production.
Modified on by ElenaS
We have released new sprint drops for the week 2016.11. Several improvements were made for RSA RTE 9.1.2 CP1, and we continue to work on evaluation of new RSARTE 10. You already can test new eclipse and RSARTE functionality but it is not final release, so do not use it for production.
RSARTE 9.1.2 CP1 2016.11
A new experimental option has been added to transformation configurations: "EXPERIMENTAL Include unit header file without unit subdirectory path" for both C and C++ transformations. The unit header file is included in each generated C++ file. By default the #include directive looks like this:
However, if this setting is enabled the unit subdirectory path is omitted, and the #include directive will instead be:
In that case you would also need to add the unit subdirectory (or the current folder ".") to include paths in TC settings. By specifying the same folder for "Target configuration name" and "Unit subdirectory", and turning on the new option, and adding unit subdirectory to include paths in TC settings, you will be able to get the same identical generated *.cpp and *.h files for the same sources for different configurations, but still have different thread information generated to each TC sub-folder.
Also added support for $(TCONFIG_NAME) in "Unit subdirectory", "Unit name", "Target configuration name" for C and C++ transformations. So, for example, you would be able to use $(TCONFIG_NAME) as target configuration name and Unit subdirectory and get unit files generated into the target configuration folder.
RSARTE 10.0 2016.11
- Integrated p2 license manager into 10 version.
- Performance measurements of new CDT indexer version demonstrated 40-50% speedup compared to version used in 9.1.2 CP1.
- Continue to improve stability and quality of RSA RTE 10.
During this sprint we also released new version of ModelFixup plugin which is 4.0, new fixup has been added there as well as several fixes made.
Modified on by MattiasMohlin
We were slightly delayed, but today we are finally ready to deliver another version of RSARTE 9.1.2 CP1 which we recommend for production use. We also deliver an updated evaluation version of RSARTE 10.0. Remember to only use it for evaluation and testing.
RSARTE 9.1.2 CP1 2016.08
The implementation of the "context sensitive library" build feature has now been finalized. The feature is still marked as experimental in this release, but in the next delivery we expect it to be a standard (non-experimental) feature of the product.
The object files that are produced when building a TC in a context sensitive way are now put together into a library rather than being linked directly with. This avoids the problem with getting too long command-lines (something which we previously attempted to solve with the gcc specific @file argument). By placing the object files in a library we now have a solution that works on all supported compilers. Note that these libraries will be limited versions of the regular libraries that are built for a prerequisite TC since they only will contain object files for referenced elements. These libraries are therefore placed in the output folder of the TC that is built.
Other than this, the new version of RSARTE 9.1.2 CP1 also contains fixes for a few bugs that have been discovered.
RSARTE 10.0 2016.08
The following have been done in this version:
- The Sketcher component is now available and can be selected for installation in the update site.
- The latest version of EGit (4.2) is now supported
- License texts and copyrights are now in place. You have to accept the license texts when installing the update site.
In addition we have continued to improve the quality of the new version and it should now be very close to that of 9.1.2 CP1.
Modified on by MattiasMohlin
Another three weeks have passed and it's time for a new release of RSARTE. The release contains an updated version of RSARTE 9.1.2 CP1 which now is the latest and greatest RSARTE version which we recommend for production use. We also release an evaluation version of the upcoming RSARTE 10.0. Needless to say you should only use this version for testing.
RSARTE 9.1.2 CP1 2016.05
- We have continued to work on the "Context sensitive library" build feature, which was introduced in the previous release. Now, this feature can be enabled either on workspace level, or for individual transformation configurations:
If either of these preferences are set, the prerequisite libraries of a transformation configuration will be built in a context sensitive way, meaning that only those elements of the libraries that are referenced by source elements of the built transformation configuration will be built. They will be built into object files which are directly linked with the executable or library that corresponds to the top-level transformation configuration.
- Linking directly with a large number of object files will make the link command longer compared to when linking with libraries instead. The generated makefile therefore takes advantage of the GCC feature to specify the object files using a text file instead of listing them all on the command-line. A new file with the suffix *.prereq_olist is generated and it is referenced using the GCC '@' notation in the specification of the linker arguments. For example:
1_PREREQ_OBJS_LISTFILE = 1.prereq_olist
1_LIBS = @$(1_PREREQ_OBJS_LISTFILE)
Note that this feature only is supported when using inclusive makefiles and GCC.
- We have also improved the workflow when a team works on the same model on both Linux and Windows. Previously the platform-specific newline characters that are used on these operating systems would be present in code snippets in the model when using code-to-model synchronization for bringing code changes into the model. Now there is a new preference UML Development - Real Time C++ Transformations - Preserve new line characters for code snippets. When set, the original newline characters that are present in the model will be preserved when synchronizing code changes back to the model.
- Finally, there is a new experimental preference UML Development - Real Time - Resource Resolution - Refresh workspace before loading models. When it is set the workspace will be refreshed prior to invoking the Load UML Models command. This can be useful in case there are changes in the file system that may affect the result of loading all models.
RSARTE 10.0 2016.05
This is where the RSARTE development team now spends most of its efforts. For more information about the recent progress on this new major version please see this presentation.
The first release of RSARTE for the year is now available: 9.1.2 CP1 2016.02. You will notice that, except for a bunch of bug fixes, there are not so many news in this release compared to the previous one. The reason is that our development team now is spending most of their efforts on the upcoming version 10.0, which we expect should be ready approximately by the end of March.
The main new feature in this release is something we call "context sensitive library builds". It is an evolution of the work for detecting source dependencies automatically, and it's controlled by a preference UML Development - Real Time C++ Transformations - Context sensitive library builds. When this preference is enabled, full libraries for prerequisite TCs will not be built. Instead, only object files for those parts of the libraries that are actually used by source elements of the built TC will be produced. It is common that an executable only uses a small subset of everything that is present in its libraries, and by only building the parts of libraries that are really used, the total build time can be significantly reduced.
Note that "context sensitive library build" is currently an experimental feature, and further improvements are being worked on for the next release.
Today we release RSARTE 9.1.2 CP1 2015.49 which will be the last delivery for the year. As usual there are lots of improvements, and I'd like to mention the following:
Java API for compare/merge and EGit operations
We have extended the API based on the feedback we got from the previous release:
• Support for the EGit rebase command
• Possible to set fast forward mode for merge
• Support for auto-commit
• Improved behavior of the progress monitor for RTEGitMergeCommand
• Support for EGit visual compare
See the updated javadocs in the plugins com.ibm.xtools.umldt.rt.api and com.ibm.xtools.umldt.rt.api.egit for more details.
Internal transitions compartment for state chart diagram
The representation of the compartment in the presentation model was modified to avoid backwards incompatibility with previous releases. This means that it's now possible to use this new compartment, and still be able to open the model in an older version of RSARTE. Therefore this feature is no longer experimental.
The visual appearance of the compartment was also improved by placing it slightly below the diagram frame. Thereby overlap is avoided with border symbols on the bottom border of the diagram frame.
The product feedback utility helps us at IBM to improve the quality of RSARTE. It can collect reports on quality problems such as slow performance, hangings, crashes and internal errors, and send these reports to us. See this article for information on how to install, configure and use the product feedback utility.
Easier to edit Property Sets code snippets from the Properties view
If you want to edit several Property Sets code snippets for the same element it's convenient to do it from the Properties view where you can see the overview of all available code snippets. Previously when the "Edit" hyperlink was clicked in order to edit one of these code snippets, the opening of the code editor would lead to that the General tab in the Properties view got focus. Now this has been fixed so that the Property Sets tab stays active while you edit the code snippets.
Different ways of initializing multi-dimensional arrays
You can now choose between two different ways of initializing multi-dimensional arrays:
1) Using nested for-loops, one for each dimension. This leads to code that is easy to read, and which static analysis tools won't give warnings for. However, some compilers may generate somewhat less efficient assembler for this way of initializing the array.
MyClass::MyClass( const MyClass & rtg_arg )
for( int rtg_index0 = 2 - 1; rtg_index0 >= 0; -- rtg_index0 )
for( int rtg_index1 = 5 - 1; rtg_index1 >= 0; -- rtg_index1 )
a[ rtg_index0 ][ rtg_index1 ] = rtg_arg.a[ rtg_index0 ][ rtg_index1 ];
2) Using a single for-loop. This makes the code more compact, but slightly less readable. Also, some static analysis tools will give warnings for it. However, compilers sometimes translate this into more efficient assembler.
MyClass::MyClass( const MyClass & rtg_arg )
for( rtg_index = (2) * (5) - 1; rtg_index >= 0; -- rtg_index )
a[ 0 ][ rtg_index ] = rtg_arg.a[ 0 ][ rtg_index ];
The choice is controlled by a new preference in UML Development - RealTime C++ Transformations:
Modified on by MattiasMohlin
The latest and greatest RSARTE release is now RSARTE 9.1.2 CP1 2015.46. For this delivery I'd like to mention the following improvements:
Java API for compare/merge operations
RSARTE now contains a new API plugin com.ibm.xtools.umldt.rt.api. This plugin provides an API for invoking compare/merge operations programmatically. In the future the plugin will be extended to also contain other public APIs for RSARTE.
To learn more about the possibilities currently offered by the API, see this presentation: RTAPI.pdfView Details.
Improved feedback when reordering internal transitions and comments by drag/drop
The visual feedback you get when reordering items in an internal transitions compartment has been improved. It's now easier to see exactly where the moved transitions or comments will be inserted.
Hiding items in the internal transitions compartment
Comments and internal transitions shown in an internal transitions compartment can now be hidden without having to use the Sort/Filter Compartment Items dialog. Select the comments and transitions you want to hide, then perform the context menu command Hide Compartment Items.
Creating state comments
It's now easier to create state comments to be shown in the internal transitions compartment of a state or state chart diagram. You can create such comments either by the context menu command Add UML - State Comment or by using the popup toolbar that appears for the state or internal transitions compartment:
Highlighting non-visible labels
The highlighting for selected lines and their connected symbols that was introduced in the previous release has now been further improved. It's now possible to also highlight labels for the selected line, and its connected symbols, when these labels are outside the visible region of a diagram. Currently this is an experimental feature, which is enabled by setting the preference UML Development - Real Time - Diagrams - Highlight Connections - Show label highlight even if the label is not visible.
Highlights for non-visible labels contain a hyperlink. If you click it the diagram will scroll to make the label visible. This feature is hence useful as a means for navigating around in big diagrams with long lines. Here is an example:
The RSARTE EGit integration now supports squash merge. Previously the commit IDs were not correctly computed when using squash merge, but this has now been fixed.
Today we release the next cumulative delivery for RSARTE 9.1.2 CP1. We would like to bring your attention to the changes mentioned below.
An experimental feature is a feature that is still under development, but which we decide to include anyway in a release. By doing so we can get early feedback from users, which we can take into account when completing the feature. Experimental features are by default hidden in RSARTE, to avoid distracting users who don't need to use these feature. To enable experimental features you can choose one of the following methods:
1) Mark the checkbox "Enable EXPERIMENTAL features" that is available in Help - About Rational Software Architect RealTime Edition - Installation Details - Patch Info:
2) Set a system property in eclipse.ini: -DRSARTE_ENABLE_EXPERIMENTAL=true
3) Set the environment variable RSARTE_ENABLE_EXPERIMENTAL to true before starting RSARTE.
Experimental features are marked in the user interface by means of the word "EXPERIMENTAL". You are encouraged to try out experimental features and provide us feedback about them, but expect that these features may change in future releases of RSARTE.
Detect source dependencies automatically
Some users reported that they preferred the original implementation of this feature, where source dependencies specified in prerequisite TCs were added in addition to the ones that are detected automatically based on analyzing the top capsule. Therefore we have now restored the original implementation of this feature, and introduced an additional preference which can be set by users who prefer to ignore source dependencies specified in prerequisite TCs. This new preference is an experimental feature:
Reordering internal transitions by means of drag and drop
It is now easier to reorder internal transitions that are shown in a compartment on a state symbol or a state chart diagram. Previously you had to use the dialog "Sort/Filter Compartment Items" for doing this, but now you can simply reorder the transitions by drag and drop within the compartment.
We know of one limitation for this feature; if you drag the transition by clicking inside the outline rectangle there is no visual indication of where it will be dropped when you move the mouse. Avoid this by dragging it by clicking on one of the edges of the outline rectangle. We are working on fixing this issue.
Improved highlighting for selected lines
To make it easier to work in big cluttered diagrams where lines and labels may overlap each other we have introduced an improved visualization for selected lines. This visualization is controlled by the preference UML Development - Real Time - Diagrams - Highlight Connections:
This visualization was previously only available "On hover" (i.e. when the mouse was placed over a line in a diagram), but now you can also enable it "On selection" (i.e. when you select one or many lines in a diagram). The preference "Make labels stand out" can be set in order to highlight not only the line itself, but also the labels of the line and its source and target symbols. This makes it easier to know to which line a particular label belongs. Here is an example of how a connector line can be shown:
Currently this feature only applies to lines in state chart diagrams (transition lines), composite structure diagrams (connector lines) and sequence diagrams (message lines).
Saving files automatically before running a transformation
It's now possible to save files automatically before a transformation is run. Only the files that affect the transformation get saved. Enable this feature by setting the preference UML Development - Save affected files before running transformations. Note that this feature is experimental for the time being.
Both TC files and model files get saved, and there is a printout in the UML Development console for each model file that gets saved automatically. For example:
15:43:23 : Silent save before running transformation was performed for "/qwqwqw/CPPModel.emx"
Modified on by MattiasMohlin
The next cumulative delivery for RSARTE 9.1.2 CP1 is now available for download. In addition to bug fixing and performance improvements a few new features are also included.
Hidden structure view in the Compare/Merge editor
The Compare/Merge user interface has lots of buttons and views to fit in a relatively small window. To save some space the Structure view that appears when you do a sub-compare or sub-merge is now hidden by default. This view is intended to show the structure of code snippets, but since code snippets often cannot be parsed correctly by CDT in isolation, the view often is just empty (or contains a single "Translation Unit" node). If you want to show the Structure view you can do so by enabling the preference General - Compare/Patch - Modeling Compare/Merge - Show structure view in sub-merge sessions.
Comment texts visible in the Project Explorer
The text of comments is now visible in the Project Explorer. If the comment has multiple lines, only the first line is shown. Rich text annotations are ignored.
Showing comments for internal transitions
Comments for internal transitions can now be shown in the internal transitions compartment for a state symbol or state chart diagram. To make them visible enable the preference UML Development - Real Time - Diagrams - State Chart - Show Internal Transition Comments inside Compartment. This preference can also be set on individual state chart diagrams using the Appearance tab of the Properties view. The comment is shown on a separate line before the transition name and is preceded by '//'. For example:
Avoid warnings from gcc for unused variable 'rtg_list'
A macro ATTR_UNUSED is now generated for the variable 'rtg_list' which is not used by generated code, and often neither used by user code snippets.
unsigned char ATTR_UNUSED rtg_list;
This macro is defined in the unit header file (by default called UnitName.h). For gcc this macro expands to the compiler directive __attribute__((unused)) which avoids a warning to be reported for this variable. For other compilers the macro expands to an empty string.
Using external C++ libraries together with the preference "Detect source dependencies automatically"
When this preference is set the C++ code generator automatically computes the set of source elements to transform, based on the top capsule and which other model elements it depends on (directly or indirectly). This scheme now works better when C++ external libraries are used. All code for prerequisite TCs will be built with the settings specified in the top executable TC, and external libraries will be linked with the application as usual.
Modified on by MattiasMohlin
The latest version of RSARTE is now RSARTE 9.1.2 CP1-2015.37. In this release we have improved the Navigation History feature in the Project Explorer. If you are not already familiar with this useful way of navigating around in the Project Explorer, you may first want to watch this video Navigation history in the Project Explorer and read the chapter "Navigation History" in RSARTE Navigation.
It is now possible to navigate both backwards and forwards in the navigation history. If you press the button in the Project Explorer tool bar
you are taken to the previous element in the navigation history. That is, you navigate backwards in the history, just like before. Note that the command is now called "Navigation History Go Back". However, sometimes you may want to also navigate in the other direction. For example, assume you have a long list of elements in the navigation history and happen to navigate backwards one time to much. Then instead of continue to navigate backwards until you find the element you are looking for it's much faster to instead navigate one step in the forward direction. This is now possible by means of a command called "Navigation History Go Forward". To use this command you must assign a keybinding to it in Preferences - General - Keys. Here is an example where we have assigned a keybinding to both these navigation commands so that it becomes easy to navigate in both directions:
Another improvement in this feature is that now it's also possible to assign a keybinding to the command that clears the navigation history ("Clear History"). For example:
For a complete list of changes included in this release, see Included Changes.
Speak up - please take our 1-question survey what languages, if any, do you use with RSA?
Yesterday the RSARTE team delivered the first version of a plugin that provides a number of utilities for fixing subtle and hidden problems in an RSARTE model. Over time we have identified a number of such problems in models which have been migrated from Rose RT (often caused by limitations or bugs in the version of the Rose RT importer that was used in the migration). There are also examples where bugs in older versions of RSARTE have introduced problems in a model, problems that are hidden and hence can be really tricky to detect and fix without some kind of tool support.
The Model Fixup plugin can initially be used for checking if your model contains any problems that can be fixed by the plugin. If such problems are found, you can then use the plugin for correcting the model.
This first version of the plugin provides 5 different fixup utilities. You are encouraged to install the plugin and at least use it for checking if your model is affected by any of the known problems.
Modified on by MarianaAlu