Monday, 22 February 2021

IBM Engineering Rhapsody Tip #94 - Downloading and installing Rhapsody 9.0.1 (Intermediate)

In my previous video, I covered adding Cygwin/gcc compiler to an existing Rhapsody installation. This video is actually the precursor to that, and covers installing the latest Rhapsody 9.0.1 (to date) without a compiler. The actual steps you may choose to use for your installation may different. However, I point out a couple of important things. Firstly, how the TELELOGIC_LICENSE_FILE environment variable is used by Rhapsody to find either a license server or a FlexLM license file, and secondly how the rhapsody.ini file is used by Rhapsody to determine default edition. I also create a simple test project that can be used to verify whether your compiler is installed correctly (actually the steps for doing this are in the previous video #93).

SysML v2 2021-01 Incremental Release

For those who may be interested:

Incremental release 2021-01 of SysML v2 is now available at https://github.com/Systems-Modeling/SysML-v2-Release.

This release includes language support for filtering of elements imported into a package (“smart packages”), enhanced support in the Tom Sawyer visualization tool to allow mixed views on a diagram, and a prototype implementation of pagination of return data for one API endpoint.

Complete release notes can be found at the links below.

SysML v2 Pilot Implementation: https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/releases/tag/2021-01

SysML v2 API and Services: https://github.com/Systems-Modeling/SysML-v2-API-Services/releases/tag/2021-01

Updated drafts of the specification documents and training material can be found at https://github.com/Systems-Modeling/SysML-v2-Release/tree/master/doc

Thursday, 11 February 2021

IBM Engineering Rhapsody Tip #93 - Adding Cygwin/gcc compiler to simulate systems (Advanced)

Always interested in new ideas. This ones actually at the suggestion of Bruce Powell Douglass. One of the questions he gets asked a lot...

You may have installed and used Rhapsody for UML/SysML for a while just drawing diagrams, only to discover later on that there are more advanced executable MBSE methods such as Harmony/SE and my ROCKETS-based modification of it (one of my passions). This narrated video covers what you need to do to your installation in order to extend it to simulate systems or compile C++ code down the line. 

At this point you will discover that you need to install a C++ compiler but, as the video highlights, it's possible to install this compiler after Rhapsody, without having to reinstall Rhapsody. In this video, I demonstrate by going through all the steps to install the minimal parts of the open source Cygwin/gcc compiler for system simulation purposes. I also show steps for verifying the gcc compiler is working, recompiling the framework (and what this means), and testing it with a model. Hope it helps.

SysML v2 Demonstration session from the INCOSE Internal Workshop

For those that way inclined, INCOSE UK put out an interesting link to a SysML V2 video last week. I thought I'd publish it here. This is a recording of the SysML v2 Demonstration session held on 1 February 2021 at the INCOSE International Workshop available for streaming here. The video can also be downloaded from this page. This is a 2-hour session including a demo of the SysML v2 language pilot implementation by Ed Seidewitz and a demo of the SysML v2 API and services pilot implementation by Manas Bajaj.

Thursday, 28 January 2021

IBM Engineering Rhapsody Tip #92 - Creating a simulation with panel diagram (Intermediate)

Been a bit busy recently but getting close to the magic 100th video! I save stuff for my training courses but this video's an ad-libbed demo in response to the question "how easy is it to create a simulation with panel diagram in Rhapsody?". It will work in pretty much any version of Rhapsody, as long as you have installed properly with a C++ compiler (I have separate guidance on this) and the necessary licenses. Certainly, making use of statecharts in a simulation is a lot easier than activity diagrams because it is a much smaller syntax. You do need to know more when it comes to the art of drawing state machines and techniques for expressing certain types of behavior, or getting multiple state machines to interact and interface (making choices about port types and interfaces). In summary, once you know what you're doing, then it's relatively easy. This is something that can come from a combination of experience and training. Hope it's of interest:

Monday, 25 January 2021

Reflections on 3 aspects of MBSE training

There are 3 aspects to MBSE training:

1. Training in how to use and configure the tool.

2. Training in understanding the modeling language (e.g. different diagrams in SysML/UML and their syntax).

3. Training in how to apply a method or process.

Obviously, type 3, above, depends on which process/method you are applying. However, it's hard to learn a process for a tool and language, if you don't understand the tool and the language.

Of course, if you do have a chosen method that applies to a team then you could do "role-based" training, i.e. teaching people just the bits needed for their role. What people often forget is that the role of the process/method is to enable teams to scale, e.g., getting people to be able to work in parallel on the same project. As you scale, you might use different types of enablement techniques, e.g., videos/tutorials. This is aided once you know your method as it can be targeted at segments that individuals need to know, rather than giving them a book on UML/SysML (which tends to lead to "mushrooms" of people pulling in different directions). 

Tuesday, 12 January 2021

Fix list for IBM Engineering Systems Design Rhapsody 8 onwards

One thing about IBM is that it puts a lot of its support information online. This link may be interesting for some, it lists the defects fixed and enhancements added in the various releases of IBM Engineering Systems Design Rhapsody (formerly IBM Rational Rhapsody), beginning with release 8.0: https://www.ibm.com/support/pages/fix-list-ibm-engineering-systems-design-rhapsody

Friday, 8 January 2021

IBM Engineering Rhapsody Tip #91 - Recap on the OMROOT variable and Share folder (Intermediate)

Welcome to 2021! In this short tips and tricks video I cover a topic that relates to how to set-up Rhapsody in a team environment. Typical use cases for this are where you might have customized the OxF (framework) libraries and model to remove or add code, or where you have user-defined profiles that you want all users to get updates for (because they're opening the same projects). Essentially this can be done by copying the Share folder from a local installation location to a shared network drive location, and then changing the rhapsody.ini file to point to it for all users that need it.  Of course, the caveat is that all users will need access to the folder. The drive path can be different, of course, because the OMROOT variable that points to it is in the rhapsody.ini file. This .ini file is part of the read/write component of the Rhapsody installation and the default OMROOT would've been set-up during the install. Enjoy. Hope it helps.


Here's the transcript (for those that need it):

This short caption-only tips and tricks video is quick reminder of what Rhapsody's $OMROOT variable is.

Let's start by creating a project with a pre-defined project type of SysML.

The SysML profile's unit is added by reference (REF). The path for the file starts with $OMROOT, a Rhapsody environment variable that is set up during installation.

The OMPATH path is setup in the rhapsody.ini file created in the read/write part of the installation. This file is editable, but always backup the .ini file before editing, and never edit when Rhapsody is open, as it’s a file that Rhapsody both reads and writes to.

If we wanted to move the OMROOT then we could. It points to something called the Share folder. The Share folder contains many important aspects of the Rhapsody installation including profiles, properties and settings, as well as framework code libraries used for model execution. E.g., here is the unit (file) for the SysML profile referenced by our project. 

Importantly, we may want to customise aspects of Rhapsody, such as the Framework code (OxF), or adding new settings or plugins. One way to enable all users to access these changes is to copy the Share folder to a network folder location that all users can access. 

We can then change the OMROOT in the .ini file for all the users to point to the network Share folder location. Remember, don't edit the .ini file while Rhapsody is open otherwise there's a risk of corruption.

The benefit of the shared location is that updating user-defined profiles, recompiling and linking framework code can be done centrally. To illustrate, I'll add this helper profile that I downloaded from my Github project. It's got a range of different profiles and plugins for different SysML project types. By adding it to the Share > Profiles subfolder, users with their OMROOT changed will be able to open projects that use the profile. The list of project types is now much wider than the factory set.

The project has referenced my project profile and plugin, including adding new right-click menu commands. The user-defined profile is being referenced from the Share folder that can be on a shared drive. Of course, if you can't access the drive then Rhapsody will complain when you try to open it.

If you're moving your machine to different locations then make sure the drive will still be accessible!

In summary, the OMROOT variable points to the Share folder. If you want to customize Share folder contents for all users then one way is to move it to a cental location and change their rhapsody.ini files to point to it.

Hope that helps. If you do have any questions about Rhapsody or want consultancy or training on how to customize and set-up to get high level value quickly, then feel free to email me.