News in RSA-RTE 9.1.2 Mattias Mohlin, June 2015
Overview of New Features (1/2) Project Explorer Outline nodes for contents of artifact code snippets Generalization node now visible in Capsule Development viewpoint Nodes for type descriptor functions for classes Properties View Editing properties for model elements in CDT editor Compare/Merge New Compare/Merge Tasks view Grouping of Operation and OpaqueBehavior changes Code Editor and Code View Extended context menu with additional CDT commands Possible to toggle display of operation signature in Code Editor title Diagrams Usability improvement for reordering partitions in activity diagrams 2
Overview of New Features (2/2) Transformations Changed C++ code for initializing multi-dimensional member variables Upgrading transformation warnings to errors New validation rule for detecting inconsistencies in multiplicites of connected ports Possible to exclude class operations from code generation Search & Navigation Search history in Find NamedElement dialog Displaying the number of selected search result items in the status bar Documentation New and updated context sensitive help for RSARTE preference pages Documentation index page and new documentation about navigation commands Miscellaneous Improvements Preference for controlling the default name of new fragment files Tool version number now present in files 3
Project Explorer Contents for Artifact Code Snippets The Project Explorer is now populated with nodes for the contents of artifact code snippets Makes navigation within artifact code snippets easier 4
Generalizations Shown in Project Explorer Previously Generalization nodes were filtered out from the Project Explorer when working in the Capsule Development viewpoint They are now visible to make it easier to edit the Property Set properties for generalizations (visibility, virtuality etc.) 5
Increased Visibility for Type Descriptor Functions To be handled correctly by the Target RTS a class needs one or several type descriptor functions: Destroy, Init, Copy, Encode and Decode These are now visible by means of special nodes in the Project Explorer Double-click such a node to edit the function body using the Code Editor 6
Editing Properties for Model Elements in CDT Editor The Properties View can now be used for editing a model element while looking at user code snippets in the CDT Editor A typical usecase which now is easier is to edit the parameters of an operation while coding its body 7
Compare/Merge Tasks Tasks can now be created during a compare or merge session to write review comments on changes to follow-up on necessary post-merge activities to remember how certain conflicts were resolved Compare/Merge tasks are shown in a new view and can be exported and imported 8
Improved Reporting of Changes in Compare/Merge An OpaqueBehavior change is now combined with the corresponding Operation change OpaqueBehaviors are not visible in the Project Explorer when using the Capsule Development viewpoint so they should normally neither be visible in Compare/Merge before now 9
Extended Context Menu for Code Editor/View Some additional CDT commands are now available in the Code Editor and Code View context menu Declarations References Search Text They search for declarations, references or selected text in various scopes. The file and project scopes refer to the CDT file and CDT project respectively. Most of these new commands require that generated source code has been loaded 10
Toggling Operation Signature in Code Editor Title For an operation with many parameters the full signature can be very long The Code Editor now respects the preference Development Real Time Project Explorer Show Operation Signature. If unset only the operation name will be shown in the Code Editor title. Hiding the operation signature can make it easier to switch between open editors using the Quick Switch Editor command (Ctrl + E). If you prefer to show operation signatures, and signatures are long, the Switch to Editor command (Ctrl + Shift + E) is a better alternative. 11
Reordering Activity Partitions To move a partition in an activity diagram simply drag and drop it onto the name compartment of another partition It s no longer necessary to drop the partition onto the thin border line anywhere inside the name compartment will work 12
Changed Multi-Dimensional Array Initialization Previously the copy constructor and assignment operator of a class would initialize a multidimensional array variable using a single for-loop Some static analysis tools report warnings for such code Now the initialization is done using nested for-loops instead (one for each dimension) For example: before MyClass::MyClass( const MyClass & rtg_arg ) { int rtg_index; for( rtg_index = (2) * (5) - 1; rtg_index >= 0; -- rtg_index ) a[ 0 ][ rtg_index ] = rtg_arg.a[ 0 ][ rtg_index ]; } now 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 ]; } 13
Report Warnings as Errors A new preference has been added for upgrading transformation warnings to errors 14
Detecting Inconsistent Port Multiplicities RSARTE now detects inconsistent multiplicities for connected ports Previously such problems were not detected until at run-time when sending messages at unconnected port indices 15
Exclude Class Operations from C++ Transformation By using the «cpp_excluded» keyword on an operation it will not be translated to C++ This can be useful when integrating generated C++ code with frameworks which require functions to be declared in special ways, for example using macros. The Public/Protected/Private Declaration properties of the class can then be used for declaring the function, while the «cpp_excluded» operation gives it visibility in the model. 16
Search History in Find NamedElement Dialog Previously used search strings (the 10 most recent) are now available in a drop-down list The search history is updated when the dialog is closed 17
Show Number of Selected Search Result Items When selecting search result items in the Search view the number of selected items are now displayed in the status bar Makes it easier to know the number of interesting matches of different kinds without manually counting them 18
Documentation Improvements New Index page on RSARTE wiki for better overview of available documentation: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/w0c4a14ff363e_436c_9962_2254bb5cbc60/page/index New documentation about navigation commands: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/w0c4a14ff363e_436c_9962_2254bb5cbc60/page/navigating%20rsarte%20models Context Sensitive Help was significantly extended for all RSARTE specific preference pages (UML Development and below) 19
Setting the Default Name of New Fragment Files A new preference has been added to control the naming of new fragment files It is used when fragments are created by the commands Refactor Create Fragment and Refactor Fragment All Sub-Packages The name pattern may contain variables $(NAME) : Name of root element in the fragment $(INDEX) : Number to ensure unique file names $(OPT_INDEX) : Optional number to ensure unique file names If the pattern does not generate a unique file name, an implicit index will be added 20
Tool Version Number in Files A version number is now included as an XML comment in the top of model files, TC files etc. Makes it easier to know which version of RSARTE that was last used for editing the file Does not affect model-based Compare/Merge, but will show up as a change if running a textual Compare/Merge between older and newer versions of a file 21
Performance Improvements The Code View now updates significantly faster when multiple operations are selected in the Properties view 22
THANK YOU!