IBM® Rational® Rhapsody® Version 7.5.2 broadens the current systems engineering, embedded software development, and testing capabilities of IBM Rational Rhapsody assisting companies to deliver innovation and improve productivity. This release includes these new capabilities among others:
- Visual development environment to develop, analyze and simulate applications that target multicore processors and the Android platform
- Support for solving of SysML parametric constraints for more informed design decisions and trade studies
- C# support for developing in a mixed language environment
- Architect Data Distribution Service for Real-Time Systems (DDS) applications to manage the complexity of interconnected components
These new features, plus other enhancements, help systems engineers and real-time or embedded software developers increase productivity and deliver innovative products to market. The following describes the new capabilities of Rational Rhapsody 7.5.2.
Many companies are looking at multicore processors as an opportunity to realize significant price and performance improvements. Yet they are concerned that it also makes the product development process more complex with many more design options to consider such as number of cores, communications, and load distribution. Specifying the wrong architecture can significantly reduce or even eliminate multicore benefits.
Rational Rhapsody 7.5.2 assists with the development of multicore products by providing:
- System and software models describe design options early in the development process
- Profile for modeling multicore a affinity to a set of cores to reduce development time (see Figure 1 )
- Matrix for understanding core allocation
- Generation of code allocated to specified cores to automate manual coding tasks
- Visualization of multicore execution by creating sequence diagrams during execution, highlighting core allocation to better understand core utilization (Figure 2 )
- Simulated time mode for animation to help support time calculations on multicore applications
- Simulation of generated code on third party host simulators for early design validation
See the Multicore Development page for more information on IBM Rational solutions for targeting multicore processors.
Figure 1. Allocate tasks to a set of hardware cores by using diagrams, tables, and matrices
Figure 2. Animated sequence diagrams highlight allocation to cores during run time
Version 7.5.2 provides a visual representation of the Android framework API that developers can reference from within Rational Rhapsody. The references are then generated into Java™ code to automate the manual coding task. By using the full behavioral code generation that IBM® Rational® Rhapsody® Developer for Java™ has provided for years, Android developers can quickly create the behavior of applications that references Android and deploy to their Android targets (see Figure 3). Additionally, Rational Rhapsody can read the AndroidManifest.xml file to visualize activities, services, broadcast receivers, main activity and content provides specified for better understanding of the application. Support for Android development is also provided with IBM® Rational® Rhapsody® Architect for Software with generation of the structural code.
Figure 3. Visually debug behavior of Android applications
Rational Rhapsody 7.5.2 provides improvements for developing, testing, and reuse of Java™ applications. The following features have been added:
- Improved reverse engineering and round trip operations better handle the following code statement:
- Import statements to external code
- import statements of nested classes
- Implement or extends from external code
- Implements or extends from nested classes or interfaces
- Optimizations on generation of import statements to improve code quality
- Reverse engineering preserves initialization of associations by creating attributes with initial values to leverage that information from the code.
- Improved panels to support control and update of attributes
Rational Rhapsody TestConductor 7.5.2 improves its support for testing of Java applications modeled in Rational Rhapsody by providing these capabilities that are currently available for the C++ and C languages:
- Automation of test architecture creation based on UML testing profile to automate manual tasks
- Options to define test cases with sequence diagrams, statecharts or code to visualize complex tests
- Reporting of test results and model coverage to monitor quality status
Systems applications are becoming more hybrid in nature, mixing embedded, real-time, and more traditional technology platforms. Many systems might contain C or C++ language components that interact with C# or Java components, all developed by the same engineering teams. It is possible to reverse engineer and generate structural code for C# with Version 7.5.2, thereby providing another programming language option for IBM Rational Rhapsody Developer for C++, C, and Java, IBM Rational Rhapsody Developer, and IBM Rational Rhapsody Architect for Software.
For a better understanding of the architecture, you can visualize existing code that is written in C# within Rational Rhapsody by exporting it from Microsoft® Visual Studio. You can also generate structural C# code from the UML model, which enables you to produce applications faster.
An updated Rational Rhapsody toolbar in Visual Studio makes it easier to work with multiple projects and components in Visual Studio and Rational Rhapsody. The new Synchronization button helps maintain synchronization when the model or code changes without dynamic synchronization enabled. Additionally, it is now possible to export all projects in a Visual Studio solution to Rational Rhapsody, which creates components and packages within Rational Rhapsody synchronized with each Microsoft Visual Studio project in the solution. The roundtripping of model and code information is improved by allowing synchronization to occur without the need to switch the active project in Visual Studio or an active configuration in Rational Rhapsody. The changes are synchronized without that added step.
Reacting to data in real time is a key ingredient for smarter, interconnected systems. The Data Distribution Service for Real-Time Systems (DDS) middleware provides support for building distributed real-time systems enabling to share information among multiple components in a global data space. The exchange of information is done by using a data-centric publish-subscribe architecture that loosely couples components, thereby enabling anonymous exchange of data between disparate systems. Rational Rhapsody Developer for C++ for Microsoft® Windows® provides a profile-based on the Unified Modeling Language (UML) profile for DDS that enables users to design publisher and subscriber components for the middleware standard, to describe the architecture and generate code and IDL that leverages DDS, and to automate development of data-centric publish-subscribe applications. The support for DDS is not provided with the Eclipse platform plug-in.
Developers often need to incorporate existing code within their applications (for example, Android SDK). Often, the external code bases could be very large and, in many cases, are relevant only in the interface to the code. Rational Rhapsody 7.5.2 simplifies the process of visualizing external C++, C, Java, and C# code to be used within the model as a reference. The import brings in only the public and protected information without operations bodies to optimize the size of the model for faster loading, saving, and navigation. See Figure 4.
Figure 4. Select "Interface visualization" to import only public and protected information
This release includes improvements to the Rational Rhapsody TestConductor Add On to enable model-driven testing of external or existing code so that design teams can reap the benefits of automated testing with model-driven testing. It is now possible to apply model-driven testing to a compiled library that contains just a library specification (header file), existing source code not generated by Rational Rhapsody, and existing source code that was reverse-engineered by Rational Rhapsody yet is partly changed by it. This enables development teams to automate creation of graphical test architectures, visualize test cases that drive and monitor execution results, provide traceability to requirements within Rational Rhapsody, and manage testing with results and coverage reports
Many designs contain complex, user-defined types. For the Rational Rhapsody animation feature to render these complex types the way that you want, serialize and unserialize operations are needed for each type. Automation is added to create serialize and unserialize operations for use during animation on sequence diagrams and for the instance Features window for structure and enumerations to reduce the manual steps required to animate these complex types.
The Rhapsody Developer Rules Composer Add On provides the ability to use rules to customize the code generation of Rational Rhapsody to target almost any language. Metamodels and connectors are added for Mathworks Simulink, Microsoft® Excel®, and AUTOSAR in Rational Developer Rules Composer Add On 7.5.2 so that you can perform transformations by leveraging these technologies. Additionally, it is now possible to obfuscate the rule sets so that they are not readable, to protect their contents.
Many applications, particularly those that involve safety concerns, require code that meets MISRA-C guidelines. The MicroC framework for Rhapsody Developer for C Version 7.5.2 includes refactoring of the event mechanism to improve the compliance with the MISRA-C coding standard by making the events type-compatible and by allocating memory by using a single event pool for events without parameters. Additionally, the reactive statechart and task mechanism were changed to use inline code to improve performance and MISRA-C compliance. The MicroC framework now contains fewer macros for events and ports to further improve MISRA-C compliance.
It is important to understand the run-time performance of the application to ensure that it is meeting design requirements. During execution, data is collected on the actual execution times per executable element, thus allowing validation of the real-time execution against the scheduling algorithm defined in the model. The information is sent to Rational Rhapsody by using the target monitoring with a log file of the execution showing the beginning and end time of the
doExecute operations in scope. The resulting log can be used for further analysis to determine whether there is a scheduling problem. In addition, the execution results can also be reflected in a scheduling table, described below here
Rational Rhapsody Developer for C V7.5.2 (see Resources) adds a new scheduling tab in the components Features window that enables scheduling of the periodic elements in scope, such as its offset time from startup until first activation, period of time between activations, and estimated duration, see Figure 5. The dialog visually shows the period of the elements providing feedback where potential conflicts might occur to correct them early in the design phase.
Figure 5. Visualize and specify scheduling of periodic elements with actual execution times denoted with internal marks
IBM® Rational® Rhapsody® Developer for C introduces a new set of checks to help users identify design errors faster when using the MicroC framework. The checks will flag parts with a multiplicity greater than one, non-executable elements that contain executable elements, existence of the MISRA 98 profile, conflicts in the planned schedule and the unsupported simulated time model.
The Object Management Group (OMG) Systems Modeling Language (SysML) defines parametric diagrams to describe mathematical constraints Rational Rhapsody 7.5.2 provides a parametric constraint evaluator that uses Maxima or The Mathworks Matlab Symbolic Math Toolbox for solving algebraic and time-dependent ordinary differential equations, validation of mathematical constraints, and doing linear optimization for maximizing or minimizing selected values. Plots can be produced showing how values behave over time and over a range of values of other attributes. Systems engineers can use the results to determine the most optimum system architecture and specification or perform trade studies to make better informed design decisions.
Finding design errors early in the development process reduces the total cost of product development. Systems engineers who use SysML or the IBM® Rational® Harmony™ for Systems Engineering process can now benefit from testing automation offered with the Rational Rhapsody TestConductor Add On. It is now possible to automatically create a test architecture for SysML blocks and parts to make it easier to run tests. It is then possible to test the specification with sequence diagrams, flowcharts, statecharts, or code-based tests. Existing sequence diagrams can be reused as test cases. For example, sequence diagrams for Harmony Functional Analysis Phase or Architectural Design Phase can be used for test cases. Even if you are not using Rational Harmony, the sequence diagrams can be reused as test cases. It is possible to specify preconditions in the testing scenarios to help ensure that the proper design conditions are specified before a service is requested (see Figure 6). The Rational Rhapsody TestConductor Add On provides reports on the SysML model coverage to assist in understanding where there are gaps in the design validation. The Rational Rhapsody Automatic Test Generation Add On can be used to compute missing scenarios for complete use case coverage.
Figure 6. Preconditions can be specified in sequence diagram test cases to help validate proper design behavior
The Rational Rhapsody DoDAF, MODAF and UPDM Add On provides updates to better align with terms and updates defined in the UPDM 1.1 profile (Unified Profile for DoDAF and MODAF) and improves support for DoDAF 1.5. The main changes were made to terms. For example, OrganizationType (a type of organization) and ActualPost (an instance of a post) were changed to Organization and PostRole respectively. The support for DoDAF 1.5 is improved by allowing the ability to use a "change to" operation to switch between DoDAF and MODAF and adding the following DoDAF elements types: OperationalNode, Systems, and SystemsNode, which can be used in conjunction with the MODAF resources if further clarity is required.
The UPDM profile provided with the Rational Rhapsody DoDAF, MODAF and UPDM Add On is updated to also provide support for DoDAF 2.0, thereby enabling users to develop models targeting DoDAF 2.0. There are two profiles provided, based on the same underlying metamodel as UPDM, which contain all the DoDAF 2.0 views. One is based on UML (UPDM_DODAF20_L0), and one is based on SysML (UPDM_DODAF20_L1). The profiles employ DoDAF 2.0 view names and a new menu structure.
Rational Rhapsody 7.5.2 improves reverse engineering of existing Ada code stored in separate folders so that you can leverage this code within the modeling environment. During reverse engineering, separate packages are created in IBM® Rational® Rhapsody® Developer for Ada, representing each folder where the code was located. When subsequently generating code from the model, the folder structure is recreated to reflect the existing structure.
You can now use Rational Rhapsody Developer for Ada to model and generate code for multicast ports. A port can now send events or messages to several other ports that it is connected to with links. (See Figure 7.)
Figure 7. Ada code is generated for ports connected to multiple ports
Most Ada developers want to work on the code directly, in a code-centric fashion where the code updates are synchronized with the model. To accommodate code-centric development, Rational Rhapsody Developer for Ada improves the round-trip capability to respect the ordering in the code. This enables developers to work in a more flexible fashion that keeps the model and code synchronized, while also accommodating the strict ordering requirements of Ada.
Rhapsody Developer for Ada now provides an integration with the IBM® Rational Apex® integrated development environment that enables development of Ada applications that target Apex on the Linux® platform.
Rational Rhapsody usability is a focus area for each product release. In Rational Rhapsody 7.5.2, several improvements were added to help improve the overall performance and user experience.
Rational Rhapsody 7.5.2 includes many improvements to the graphical editors to help automate drawing tasks and make it easier to manage the diagrams in several ways:
- Visualize generalizations as a tree structure to produce cleaner diagrams (see Figure 8).
Figure 8. Display generalizations as a tree
- Align better with UML naming by making class diagram available
- Move boxes on diagrams by using just arrow keys (Ctrl + arrow keys performs nudge)
- Bird-s eye window dynamically refreshes to stay synchronized with diagram
- Save time because relationships automatically complete after you drag an element onto a diagram
- Retain element ownership when drawing nested elements on diagrams
- Use the additional drawing toolbar operations for Include and Extend on a use case diagram
- Use the new drop-down menu to the right of the diagram tabs to open diagrams (Figure 9)
- Control the order of diagram tabs displayed by dragging them
- Use Ctrl with the + key to zoom in, Ctrl with the – key to zoom out (this is especially helpful when using full-screen mode)
- Double-click tabs for diagrams to close or enter full-screen mode (see Figure 9)
Figure 9. Close diagrams directly from tabs and view diagrams from a new control
The following improvements to the overall user interface make it more intuitive and improve the overall workflow for users:
- Descriptions are shown in tool tips with the property: General::Graphics::ToolTipFormat
- Capability to create hyperlinks to model elements in descriptions with drag-and-drop
- New option to set stereotypes from the context menu makes it easier to set or unset stereotypes (Figure 10)
Figure 10. Set stereotypes from the context menu
- New menu available by right-clicking in toolbar area to manage visibility of toolbars (Figure 11).
Figure 11. Manage tool bar visibility from context menu
- New properties added to stereotypes that are new terms are applied to table views to specify the default scope and layout for tables and matrices so that it is easy to create new tables with a particular layout
- An operation to switch rows and columns of a matrix helps you quickly change the matrix view
- Features window "remembers" the last tab or property selected to help you maintain context while you are working
- Overall performance is improved by dynamically loading combo boxes only when information is required to be displayed.
- The default setting for Add to Model operations is changed to "As Reference" to reflect the most common use
New tutorials are available with this release:
- "Building a basic model in C++," which shows how to build a simple model of a vehicle sensor system by using UML
- "Basic systems engineering design in Rational Rhapsody," which describes how to design an outdoor spa pool temperature controller with SysML.
In addition, there are new tutorials for Rational Rhapsody TestConductor Add On for C and Java testing, as well as a new Rational Rhapsody Automatic Test Generation tutorial available from the documentation. Links to the latest tutorials and information for Rational Rhapsody are available on the Rational Rhapsody Wiki page.
In addition to improvements for the support of SysML, Rational Harmony, Java, and testing of existing code mentioned previously, there are several other improvements to the Rational Rhapsody TestConductor Add On.
The test execution window for Rational Rhapsody TestConductor Add On is enhanced to function as another window integrated within Rational Rhapsody for the standalone client and Eclipse platform plug-in, thus making it easier to view the model and test execution (see figure 12). Additionally, operations are provided to re-execute test cases, cancel test execution, debug test cases, and auto-expand the test case information in the window as the tests are running.
Figure 12. Rational TestConductor is integrated within Rational Rhapsody
A new Create Test Case wizard is provided with the Rational Rhapsody TestConductor Add On to automate the creation of a test case that is based on an existing operation, requirement or sequence diagram. You can create a test case that is based on a sequence diagram, code, flowchart, or statechart based test case, and it will be automatically mapped to the instance of the test architecture. This helps to automate the steps of creating test cases.
Sequence diagram test cases visualize how the system under test should be interacting with other instances over time. The sequence diagram test cases are improved in this release by providing support for the new auto-generated serialize statements for complex types and by providing the ability to specify test actions (see Figure 13). You can use test actions to define complex test data for individual messages to help test the passing of complex data, perform complex checks to help validate output values, and perform complex checks within stubbed functions to help validate that they are behaving properly.
Figure 13. Test actions help define complex input and validate complex output
When a test case fails, you can use the new debug option for Rational Rhapsody TestConductor Add On to step through the test case by using the animation toolbar to help identify where the problem is located. Breakpoints can be set on the sequence diagram by using the RTC_BREAK conditional statement. (See Figure 14.)
Figure 14. Debugging mode helps find problems with test cases
The integration with IBM® Rational® Quality Manager is improved with a custom user interface within Rational Quality Manager that improves performance of executing test cases. It provides a new adapter type called "Rhapsody TestConductor" to specify the type of test for Rational Quality Manager, an interactive test case selection window, buttons and list boxes for test execution settings to make it easier to specify test options, and an option to leave Rational Rhapsody open to improve performance when running multiple test cases (Figure 15).
Figure 15. Updated integration with Rational Quality Manager helps you run tests faster
The Rational Rhapsody Gateway is included as part of the Rational Tools and Utilities Add On. It provides bidirectional synchronization of requirements with Rational DOORS and integration with other requirements management and capture tools.
The Rational Rhapsody Gateway now includes a dashboard view where managers can quickly check the current status of different project phases, such as traceability achievements, requirement errors, and global quality metrics (Figure 16).
Figure 16. Quickly check project status in the management dashboard
It is now easier to interface with Rational DOORS software from the Rational Rhapsody Gateway. You can directly set up different server profiles within Rational Rhapsody Gateway for use during import and export operations so that it is easier to work with different Rational DOORS versions and servers. Additionally, the export to Rational DOORS operation now includes these options:
- Show the Project View
- Create a DOORS folder or project when exporting new documents
- Remove the heading number from export results
- CCreate a view showing the exported attributes
The bidirectional synchronization of data between Rational Rhapsody and Rational DOORS is enhanced to better synchronize data. A new, unified progression status window shows current progression of individual and global operations. Rational Rhapsody Gateway can now process a reverse synchronization of links defined from the mirror of the UML model exported to Rational DOORS. The operation is invoked using the "Updated model from its DOORS mirror" from the Synchronization window.
Additionally, it is possible to create high-level requirements in Rational DOORS when they are created from a Rational Rhapsody package tied to the Rational DOORS document by using the
<<fromDOORS>> stereotype. This operation is performed when the "Update high level requirements from Rhapsody" check box is selected (Figure 17).
Figure 17. Reverse synchronization options control updating of data
There are performance and usability improvements, too. For a complete list of new features, check the Help section of the Rational Rhapsody Gateway release notes.
IBM and Sodius, an IBM business partner, are working with the Model Interchange Working Group (MIWG) to improve the interchange of model information between tools. Rational Rhapsody Tools and Utilities Add On V7.5.2 provide improvements for the import and export of XMI to improve the exchange of information with other tools to better meet MIWG goals. The XMI import and export is improved to support UML 2.2 XMI files and new elements from activity diagrams to support interchange of more constructs.
Rational Rhapsody now supports Microsoft® Windows® 7, thus Windows 7 providing users another environment where they can use Rational Rhapsody. The installation on Windows 7 separates the application files and user data into different places to meet Window 7 installation requirements.
IBM Rational Rhapsody 7.5.2 provides systems engineers and embedded software developers with many new capabilities to help deliver high-quality, complex systems and products by visualizing architecture and behavior, enabling early requirements validation, and automating development of embedded systems. This release provides a visual development environment for targeting multicore, C#, DDS, and Android and parametric diagram analysis. This helps systems engineers determine the optimum system architecture and specification.
You can find more detailed information about the new features in the Rational Rhapsody Information Center.
- To learn more about this tool for collaborative, model-driven development for embedded systems, start with these overviews:
- Explore the various Rational Rhapsody editions on the product overview page
- The Rational Rhapsody page on IBM developerWorks
- Rational Rhapsody wiki provides articles, videos, tutorials and samples.
- Visit the Rational Multicore solutions page to learn how Rational supports multicore development
- Learn detailed product information at Rational Rhapsody Information Center and follow tutorials to help you get started.
- Learn about other applications in the IBM Rational Software Platform for Systems, including collaboration tools for parallel development and geographically dispersed teams, plus specialized software for architecture management, asset management, change and release management, integrated requirements management, process and portfolio management, and quality management. You can find product manuals, installation guides, and other documentation in the IBM Rational Online Documentation Center.
- Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
- Explore Rational computer-based, Web-based, and instructor-led online courses. Hone your skills and learn more about Rational tools with these courses, which range from introductory to advanced. The courses on this catalog are available for purchase through computer-based training or Web-based training. Some of the "Getting Started" courses are available free of charge.
- Subscribe to the IBM developerWorks newsletter, a weekly update on the best of developerWorks tutorials, articles, downloads, community activities, webcasts and events.
Get products and technologies
- Download Rational Rhapsody Developer and try it free for 30 days.
- Download trial versions of other IBM Rational software.
- Download IBM product evaluation versions and get your hands on application development tools and middleware products from DB2®, Lotus®, Tivoli®, and WebSphere®.
- Join the discussion in the Rational Rhapsody forum.
- Check out developerWorks blogs and get involved in the developerWorks community.
Paul Urban has more than 20 years experience in the embedded and real-time systems industry developing systems, software and hardware. Currently, Paul works for IBM as a senior market manager for systems and medical devices. He has worked with Rational Rhapsody since 1995 in various roles including application engineer, consultant, and product marketing. Prior to this Paul focused on the development of custom hardware for high performance computing applications.