Engineering System Design

 View Only

UML components in IBM Rhapsody

By Martin Stockl posted Mon October 07, 2024 10:34 AM

  

Is Rhapsody's component use not according to UML standard?

This topic was discussed again and again: Why doesn't IBM Rhapsody behave exactly as the UML standard specifies when using component diagrams? Why can't I model components at architecture level with IBM Rhapsody?

The reason is quickly explained: IBM Rhapsody has mature and frequently used functions, that support the generation and further processing of source code from UML models. To make this as convenient as possible, component diagrams in IBM Rhapsody are used to define helpful supplementary parameters, that are necessary for the compile and build process to run smoothly. The below figure 1 shows an example.

Figure 1 - component feature dialog and component diagrams defining build parameters and dependencies

While this functionality is highly appreciated by software developers, this meant a significant restriction of modeling options at the architecture level for software architects. But this is now a thing of the past!

With the new UML profile for IBM Rhapsody, which is now freely available, users also have access to the classic functionality of component diagrams. Architects can use the UML component diagrams to model the architecture, with ports, relations, nested structures and all other necessary elements, as shown in the next figure 2. 

Figure 2 - the new profile offers structural UML component diagrams for software architects

Additionally, deployment diagrams make it possible to define the environment context, e.g. on which controller a software component is to be executed, how controllers are connected to each other, etc.

These UML component diagrams can be used to represent different views to the software architecture; they thus serve to describe the software at a higher level of abstraction - comparable to the use of SysML BDDs (Block Definition Diagrams) and IBDs (Internal Block Diagrams) for the description of different views of the system architecture. In addition, these UML-compliant component diagrams can also be made accessible to other disciplines that do not work with IBM Rhapsody themselves, such as requirements engineers, test experts, etc., using the IBM Rhapsody Model Manager. They then have read access to the diagrams using a web browser like shown in below figure 3.

Figure 3 - RMM visualization of an UML component diagram in a web browser

Th new, additional profile can be loaded like any other profile and coexists with any other profile without problems. The user will have both variants of the component diagram at his disposal: the conventional variant known from IBM Rhapsody for build views and the new variant for architectural views conforming to the UML standard. The appropriate variant is selected according to requirements and the usual editing tools are available to the user.

The next figure shows Rhapsody deployed to a Windows VM, which runs on a MacBook, used to develop a dishwasher application, which is deployed to a Linux environment running on a RaspberryPI, with Rhapsody connected to the developed application via TCP/IP.

Figure 4 - UML deployment diagram and corresponding drawing toolbar of IBM Rhapsody

This new UML component profile is available for you to download from SodiusWillert:

https://ftp.willert.de/downloads/RATL_RHP_EXT/UmlComponentProfile/UmlComponentsV1.07a.zip
As an entry point, there is a sample model, showing the usage:
https://ftp.willert.de/downloads/RATL_RHP_EXT/UmlComponentProfile/SampleUmlComponentDemo.zip

Martin Stockl is a Senior Application Engineer and Embedded Real-Time Systems Modeling Specialist at SodiusWillert. With over 30 years experience in embedded real-time systems development, real-time operating systems, and model-based software engineering, Martin is an expert in the application and customization of IBM's Engineering Systems Design Rhapsody. Prior to joining SodiusWillert (via IBM, Telelogic and I-Logix) he spent 10 years in developing real-time applications and providing real-time operating systems support.

Permalink