Rhapsody TipOfTheDay

IBM Rhapsody-TipOfTheDay: 

25.09.2022 Enabling SysML TestCases in the IBM-Rhapsody Context Menu and Drawing Toolbar

Unfortunatly there is no option to directly create a SysML TestCase in Rhapsody SysML. Neither in the ContextMenu nor in the Drawing Toolbar you will find this option. This can only be achieved via detours. In this Video I explain how to create a TestCase in Rhapsody SysML and how to switch On the hidde TestCase entries in the Context Menu and in the Drawing Toolbar.

27.01.2022 Setup Compiler for Rhapsody Model Execution and Software Build

A compiler is required to create executable application models in Rhapsody Designer or to compile and create SW components from generated code out of Rhapsody Developer. 

 

Out of the box, Rhapsody supports a number of commercial, as well as open source compilers.  However, these are not part of the Rhapsody installation, but must be obtained and installed separately.  When you install Rhapsody, Rhapsody usually recognises the compilers which are installed on your computer and configures itself accordingly.

 

But what if you have already installed Rhapsody and only later realise that you want to execute your model for example  and thus need a compiler ?

 

This is exactly what this video is for:


In this RhapsodyTipOfTheDay video, I will show you how to configure an existing Rhapsody installation so that you're able to  create executable system-models from the Rhapsody Designer for Systems Engineers or to compile SW components from Models including code, generated by the Rhapsody Developer for Software Engineers.

14.01.2022 UML one-to-many relationship in the context of Rhapsody code generation


In order to communicate or, send messages or to exchange data, objects need to know each other.

UML provides different kinds of relationships: Like Association, Aggregation or Composition, to show, how things are grouped together or relate to each other. 


This IBM Rhapsody TipOfTheDay Video explains, how UML one-to-many-relationships are implemented in Rhapsody in the context of Rhapsody code generation by using container classes.

 05.08.2021 Using SysML CallOperation for model execution

In this Rhapsody TipOfTheDay Video  I'm going to show you, how to use a SysML Call-Operations in an Activity Diagram in the context of an executable Rhapsody SysML Model -

 

For this purpose I have prepared a simple Model in IBM Rhapsody Designer:

An overall DigitalOfficeSystem Block that consists of a Printer with an operation print(), that prints a "hello from Printer"

 

The Video is a step by step guide  that specifyies the behaviour of the DigitalOfficeSystem Block by using an ActivityDiagram, so  that it calls the print operation of its Printer -


Model can be downloaded at https://link.www.rhapsody.guru/CallOperationModel further instructions how to setup the execution environment on www.rhapsody.guru

19.01.2022 Locate and access the Rhapsody Share directory with Helpers

One of the most important Rhapsody directories is the Rhapsody Share directory.

It contains many important content and settings of the Rhapsody installation: including profiles, properties, framework and configurations...

 

This directory is usually centrally managed and made available to the developer via a distribution mechanism. e.g. Shared Network  or with  Version Control Software

 

If you want to check certain settings e.g. compiler-integration like cygwin,  and you don’t know, where the directory is located, you can be ending up searching  for it forever.  This is frustrating and doesn’t need to happen. There is a simple trick to locate  and open the share directory quickly, e.g. to check your compiler settings if necessary.

24.07.2021  How to get the direction arrow on the ProxyPort

A ProxyPort’s direction (In/Out) can be indicated by an arrow - But how do you get these in Rhapsody?

14.07.2021 Using Hyperlinks to access external content or for model navigation

In Rhapsody Hyperlinks can be used in the model  to open external content (such as files or web pages) or for model navigation. You can add a Hyperlink to any text amd also as an explicit model element , which can be visualised and used diagrams in various ways...


In this Rhapsody TipOfThe Day Video we go through a couple of scenarios where and how Rhapsody Model Hyperlinks can be added applied and used....Neuer Text


23.06.2021   Adding external files to the Rhapsody Model

Sometimes it can be useful to add a small file with important information directly to the model.

This feature is known in Rhapsody as  controlled file. 


Adding ControlledFile will copy the external file into the Rhapsody Project repository. 


With this step the file is thus part of the model and managed (controlled) by Rhapsody

Llike any other model elemen you can perform steps  like, Relocate in the browser, Drag and drop to diagram, Perform traceability, Version Control etc

12.06.2021 Resize  the shape of an element in a diagram without its contained parts

If you resize the shape of an element in a Diagram , IBM Rhapsody will also resize its contained elements - In case you just want to resize the surrounding elements and not its contained elements , simply press ALT while resizing. The overhal behaviour is shown in this short IBM Rhapsody TipOfTheDay Video.

 01.06.2021 Navigate from a Block to its IBD with Rhapsody Quick Navigation

To enhance navigation from individual graphic elements in diagrams, you can add a list of shortcuts that are accessible from the title bar of the element -  These elements are called QuickNavigation -  In this Rhapsody TipOfTheDay Video we go through an example and show, how to create a Navigation Entry to navigate from the Block to its IBD underneath-.


The options for Quick-Navigation is accessible though the Display Option of the element in the diagram. First we enable the QuickNavigation option for this Block.

Then we can define the navigation categories - After the defintion the block will get an icon in the Diagra.  If you right click on the icon , you can access the list of IBD's - If you click on the icon , you navigate to the first one in the list. The list of shortcuts is linked to the graphical representation of the element, not the element itself. you can have different lists of shortcuts for each appearance of the element in a diagram.


23.03.2021 Co-Simulation of Event- and Flow-Based Behaviour in one context

A State machine is used to describe the state-dependent behaviour of the block throughout its lifecycle, which is defined in terms of its states and the transitions between them.

 

On the other side Activity Diagram might be used to express in more detail,  what happens when a block is in certain states or when it transitions between states or when it enters or exits a state.

 

This leads us to a model, that consists of both:   An event based State machines with  flow based activities !  In this Rhapsody TipOfTheDay Video we go through a simple model, that consists of both Statemachines and Activity Diagrams that we co-simulate in a single context. A couple of further intereting points are covered in more detail, like, SysML CallBehaviour, IBM Rhapsody Animation Toolbar, Rhapsody Debugging,  Time Event, Signal Triggers, etc.

17.03.2021  Do you know the IBM Rhapsody Object Model Diagram (aka OMD)

When you create a new UML project - in IBM Rhapsody Software Developer or IBM Rhapsody Architect for Software -  then Rhapsody creates an initial Package, to locate UML elements and Diagrams components and its configurations – for code-generation and model execution and a so called Object Model Diagram (OMD)-


If you asked yourself the Question "But , what is an Object Model Diagram ?" then you have to watch this Rhapsody TipOfTheDay Video, where we compare the  UML Diagram taxonomy with The Rhapsody Diagram taxonomy.

13.03.2021 Create an executable model with SysML ProxyPorts and the ProxyPort-Wizard.

In this short IBM Rhapsody TipOfTheDay , step by step video, a simple and executable sender and receiver model is created. The exchange of data takes place via SysML ProxyPorts. First create a Block in the Block Defintion Diagram (BDD) that serves as Sender and a flow property count,. We want to have the values of the flow-property count to  "flow" out  of this Block. With the proxy port wizard we can create the appropriate SysML proxy port and InterfaceBlock automatically. The InterfaceBlock gets automatically created and defined on the ProxyPort thanks to the proxyport wizard.


For the model execution we create the runtime objects (parts) and connect both ports via connectors.

 

To interact with the executable model, we create a “Panel Diagram” To track and see the interactions between the runtime elements we add a sequence Diagram for model execution .

25.02.2021 Modeling and behaviour of external & internal state transitions in Statemachines

Each state in a StateMachine can have an associated  state entry-  and state-exit- behaviour, ... but when are these executed, and when are they not ?  You will learn that two main types of state-transitions exist for state-machines: (1) «External-transitions» and  (2) «Internal-transitions»    and how you can model these internal & external state transitions in IBM Rhapsody.

 

The «External  transition» goes from one state to another (or to the same state, aka self-transition) which results in exiting and re-entering a state.   When this kind of transition is triggered, any associated behaviour are executed . The «internal transition» is always a  self-transition, such that the state is never exited and thus, not re-entered. As a result: Triggering an internal transition will only execute the actions on that transition. 

17.02.2021 State of the Art interfacing with third party libraries


In this Rhapsody TipofTheDay video,  I present a collection of best practises how to interface with third party libraries in IBM Rhapsody. We will take a Paho MQTT-Client library in C as an example that we're going link to our application in order to  publish and subscribe messages to a broker.  In general third party libraries are associated with their corresponding header file. There are several options how to interface and integrate these libraries into your application under development  So for example you could use the configuration-settings on component level and properties. This is  Quick & Easy but invisible / not documented in model


A better approach is to visualise external elements through reverse engineering and to add the  model-dependencies  - In this video we mainly focus on the second option :

03.02.2021 Show / Hide autogenerated model elements (like getter and setter) in model and browser.

The IBM Rhapsody browser only shows model elements, that are created by the user. Supporting model elements , for which Rhapsody generates code, like accessors and mutators operations (a.k.a. getter and setter) for attributes and relations etc,  remain invisible in the browser.  This greatly improves the understanding of the model under development.


To display  these autogenerated  elements in the browser and diagrams,  enable the property GeneratedCodeInBrowser” and regenerate the code. You will also be able to use them with IntelliVisor in the model or or code. To make these autogenerated operations visible in Rhapsody animation (a.k.a. Rhapsody simulation) , you have to take their ownership (detach them from from auto-generation scope.  If accessors and mutators are not needed for attributes, then these properties can be set,  to stop their generation. This and a couple of more ttricks are shown in this short Rhapsody TipOfTheDay Video.

02.02.2021 Show Hide SysML Diagrams frames in an UML Model

All SysML diagrams include a diagram frame that encloses the diagram header and diagram content. While the frame is mandatory in a SysML model, it is optional in an UML model. To show a diagram frame in anIBM Rhapsody UML model,  right click in  diagram and select show / hide diagram frame. You have no chance to resize the diagram frame with the mouse-  The frame resizes automatically, when you rearrange the diagram elements. But there is a trick: You can add a dummy element - or use the Rhapsody properties.

All this is shown in this Rhapsody TipOfTheDay Video.  :-)

30.01.2021 Rhapsody Flowcharts

Rhapsody UML supports Activity Diagrams but also Flowcharts. Although Flowcharts are not part of UML you can think of a Flowchart as a lightwide subset of an activity diagram,  that can be used in Rhapsody, to illustrates the methods (implementation) of an operation.  In this context, code generation with flowcharts is more efficient than with Activity-Diagrams.


Rhapsody supports Flowcharts in two ways:

  • From existing method code of an operation --> Populate Flowchart.
  • From the Flowchart of an operation --> Generate method code

In this video both ways are shown in action

26.01.2021 Changing Rhapsody default behaviour for Accessor and Mutator generation

IBM Rhapsody automatically generates Accessors and Mutator (a.k.a. Getters and Setters) for Attributes.


The visibility area in the features dialog on the attribute only affects the visibility of the accessor and mutator methods, not of the Attributes itself. The Attributes is always protected and its visibility (public, private, protected) can only be changed through its property.


This is the intended Rhapsody default behaviour, but we can change it. In this Video we present the following properties,  that affect the Code-generation and UI behaviour for attributes and its  accessor and mutators, to change the behaviour to our needs  (CPP_CG::Attribute::AccessorVisibility, CPP_CG::Attribute::MutatorVisibility, CPP_CG::Attribute::Visibility)

21.01.2021 Model Execution - Activity Diagram simulation in Rhapsody [SIMPLE]

Model Execution - Activity Diagram simulation in Rhapsody.

This Video shows , how to build and execute/simulate an Activity Diagram in IBM Rhapsody Designer.

Starting point: A Block with some initial Value Properties. Step by Step creation of a simple Activity Diagram using actions, pins, generated Accessors and Mutators to read and write the ValueProperties.

During model execution we will read and write its ValueProperties for a simple calculation (Z=X+Y) within an Activity Diagram, obersving its token.

17.01.2021 Expressing Physical Quantities in a System Model using ValueTypes

Every Rhapsody SysML project references a Predefined Types package and a ModelLibrary with some initial primitive Types. These types are mainly useful for a Software Model but not very suitable for a Systems Model where physical types of quantity (i.e length) with its unit (i.e meter or feet), would be more appropriate. Here, SysML offers so-called ValueTypes which can be characterized by a Quantity Kind (aka Dimension) and a Unit. In this RhapsodyTipOfTheDay Video I show you , how to create a ValueType in Rhapsodyt to express Physical Quantities in your System Model.

16.11.2020 Wrap long element names in diagram

Long Elements names will result in "long elements" to show and represent the complete text of the element in the diagram. If you resize  the element, IBM-Rhapsody will simply cut the text .


Fortunately, Rhapsody offers the possibility to wrap the text. Right click on the diagram to open ist feature dialog. Look for the property General::Graphics::WrapNameCompartmentText

After enabling/checking it you can and enjoy the new representation. This property can be set on Diagram, package or project leevel.

This  IBM Rhapsody-TipOfTheDay video is dedicated to David Hetherington from Asattepress, who likes to have long names in his Rhapsody models  ;-)

22.10.2020  Changing Rhapsody's default project directory

In this RhapsodyTipOfTheDay Video I show you, how to customize the default path setting of the Rhapsody New-Project dialog window. By default the Rhapsody's New-Project dialog box points to the Rhapsody installation folder. To change this we can customize the rhapsody.ini file. The rhapsody.ini file is located in the rhapsody installation folder. Before you continue, make sure that rhapsody is closed and create a backup copy of it. Open the rhapsody.ini file. Locate to the [General] section in the ini file. Add the line ProjectsDirectory pointing to your path… and you're done. Hope that helps!

14.08.2020 Rhapsody iFixes - Download and install Updates for Rhapsody

IBM has always been known for its diversity of infrastructure. (It's as if you want to make sure that their products are never used)

For software downloads there is #PassportAdvantage, for licenses the #IBMLicenseKeyCenter, for software updates (so called patches or in IBM language interim Fix , iFix) the #iFixCentral.


Fortunately, mysupport (https://www.ibm.com/mysupport/) is an elegant help page where you can even open cases. Easy to handle, I don't know this from any other manufacturer.


In the Rhapsody TipOfTheDay video I show how to download, install and check an ifix (aka Software pacth) for IBM Rhapsody. For this you need, as with everything, an IBMID (account login), which everyone can create himself.


13.08.2020 Operation Mode in Sequence Diagrams:

When adding a Sequence Diagram the Operation Mode specifies whether to add a constructive (Design) or a non-constructive (Analysis) sequence Diagram.

 

In constructive Design Mode each added message becomes a model element

In non-constructive Analysis mode , you can draw elements without adding them into the model

In early phases,  analysis mode is the preferred option as it allows to add, remove , rename elements without impacting the model. When finished ,  the elements can be realized into the model with one click.

12.08.2020 Rhapsody Licensing

IBM Rhapsody requires a license to run. This license can be for a single user  (Authorized User) or for many users (Floating). Floating licenses are managed by  the IBM License Key Server.  An Authorized User License is tie to the client machine (node locked). During installation you can determine the location of the license file or license server. But what if the location of the license has moved ? For all licenses types, the system environment variable  TELELOGIC_LICENSE_FILE can be created on the client machine  - pointing to the new license file or license server …


Side Note:

In Rhapsody, the authorized user license is technically a node locked license, which is tied to exact one client machine via the host ID (Ethernet/MAC ) or Volume serial number.


The IBM concept of a server based Authorized User license ( one user many client machines aka USER_BASED licenses or NamedUser)  is not possible with Rhapsody.

11.08.2020 How to use a Block or Image as Actor in a UseCase Diagram

In a UML or SysML UseCase diagram you can add Use Cases and Actors (stick figures).

But what if you want to use a class or block as actor?

First create the classifier in the browser - Then drag the classifier into the Use Case Diagram.

To differentiate between System Boundary and Classifier, you can assign the stereotype "Actor" to it k and then display it in the diagram via Display Options.

It is also popular to use images as actor ... with different options of their representation...

10.08.2020 Repetitive drawing and formatting with Stamp Mode

Before you draw in #Rhapsody an element in an #UML or# SysML Diagram , you have to select it every time from the Hovering Drawing toolbar or the drawing toolbar.


If several elements of the same type have to be drawn, this back and forth can become quickly annoying. Here the Stamp mode shows its advantages:  This lets you draw elements of the same type.


In the same way Stamp Mode works with the Format Painter to apply formatting to multiple items!

07.08.2020 Display existing relations in diagram

06.08.2020 Turning a Statechart into a tabular state representation

05.08.2020 SuperState: The RockStar in transition- and state explosion avoidance

Traditional Finite State Machines (FSMs) are an excellent tool for describing smaller problems.

It's also generally known that they tend to become unmanageable due to the phenomenon known as state and transition explosion. The complexity of a traditional FSM grow much faster than the complexity of the system it describes.


UML state machines introduced by David Harel (STATECHARTS: A VISUAL FORMALISM FOR

COMPLEX SYSTEMS) address this shortcoming of the conventional FSMs. They provide a number of features like (Orthogonal regions, or hierarchically nested states  )for eliminating  the complexity. One  important innovation and concept  is the introduction of hierarchically nested states. The surrounding state is called superstate and has a couple of great advantages which are shown in this video.

04.08.2020 Model navigation with textual hyperlinks

03.08.2020 Generate report on overwritten Rhapsody properties

The IBM Rhapsody Properties reference guide (https://www.ibm.com/support/pages/ibm-engineering-systems-design-rhapsody-property-reference) consists of almost 3000 pages full with properties to customize Rhapsody. With this powerful mechanism you can do almost everything with and within Rhapsody. As great as it is , it has its danger .. Properties settings are somehow behind the Rhapsody scene. A good quick and effective  way to see and report all changed or customized properties , is via the build in Report on Model reporter to generate a report on overwritten properties. In this #TipOfTheDay, I change the property ShowHoveringToolbar on an #UML Model and present how this is represented in the generated report in a couple of seconds.

31.07.2020  Project History - how to rapidly open previous projects

With customer projects or training it often happens that a participant wants to open one of his  last project. The standard way is often a reflex, starts with File-Open,  to end up in a painful search. I then say: "look, this is how it works very simple, though the project history ! " and you will not believe the reaction :-) . Every time I am amazed with what joy and enthusiasm the training participants appreciate this hint, which is probably not obvious to everyone ... So today I take it as an occasion to present this tip in IBM-Rhapsody TipOfTheDay how to rapidly open one of the previous projects and give even more extensive hints:  I present a way to show the full path names in the project history.

30.07.2020  Navigation History

Presenting a model  is an important part of the Model Based Systems Engineering (MBSE) with SysML . Keyfeatures during the presentation are the model navigation capabilities of the tool.

A  popular and comfortable way of navigation in Rhapsody is by using the navigation history.


Similar to the  browser history, you can navigate back and forth during your model presentation. In this short Rhapsody-TipOfTheDay Video , I will show you , how you can use the navigation history to enhance your model presentation experience in Rhapsody .

29.07.2020 How to identify misplaced elements in the diagram

"What is the reason for my dashed lines" is probably one of the most asked questions in the context if Internal Block Diagrams [IBD]. Dashed lines in a diagram means: From the graphical viewpoint, it looks like the element is contained in another element , but physically it isn't ...  Rhapsody indicates this with a dashed line  to avoid misinterpretation and helps you to identify elements that are "misplaced" in your diagram. If you moved an element for purpose into another element, then you can change the owner. In this IBM Rhapsody-TipOfTheDay I also show the "Browse Hierarchy - Browse Parts Feature of the Rhapsody browser.

28.07.2020 Import requirements from Excel the easy way

In this IBM RhapsodyTipOfTheDay I show you another way of importing requirements from Excel. Instead if using the Rhapsody Gateway (aka Reqtify from Dassault Systems  ) I use the Rhapsody build in  CSV import feature. This allows you to perform initial and  lightweight Requirements traceability in Rhapsody in an easy way.

27.07.2020 Active CodeView

The Active Code View window displays code for an element selected in the browser or in the diagrams. Whenever you make changes to the model, IBM Rhapsody regenerates the code and updates it in the Active Code View window.

To open the Active Code View window, choose View-Active Code View.



The Active Code View window has two tabs, Specification and Implementation.

The Specification tab displays the specification code. The Implementation tab displays the implementation code.

24.07.2020 Fixing Rhapsody or Doors Help issue

Does the HTTP ERROR 403 look familiar to you when launching the Help inside Rhapsody or DOORS ?

When you press *F1* or select *Help-Help Contents* in Rhapsody or Doors  you might have noticed that your Help is no longer working  (in all releases before Mai 2020) !

Reason: The online IBMHelpPortal (aka IBM Knowledge Center) has changed its infrastructure.

We can solve this issue by pointing to the new infrastructure ....

23.07.2020 Show Diagram Description in Diagram

Models are not self-documenting. Its a good practice to add a description to each model element,

 that gives us information as to their use, purpose, and scope.In the Features dialog of the diagram you can add a description of its mission or purpose, preconditions, and post-conditions. Since IBM Rhapsody 9.0.1 you can also show the Diagram description - This Video shows you how to enable this


22.07.2020 Enabling containment relationship

The Containment relationship represents the containment of elements on the diagram. A Containment replaces the  nesting representation. For example, instead of drawing one package nested into another, you can have a containment relationship from one package to another. This Video shows how to enable the containment relationship through the property ObjectModelGe::ClassDiagram::TreeContainmentStyle in Rhapsody.


Model from the book "Simple SysML for Beginners: Using Sparx Enterprise" by  David Hetherington

15.07.2020 Rhapsody Favorites  - Make model Presentation like a pro

14.07.2020 Create professional Diagrams with the Rhapsody Layout Toolbar

With just a few clicks you can create a pretty professional diagram by using the Rhapsody Diagram Layout Toolbar

13.07.2020 How to hide Rhapsody's predefined packages

IBM Engineering Systems Design Rhapsody always adds standard type definition packages which are used for model execution, simulation and code generation. These packages can't be removed, but you can hide them if they bother you. 

Share by: