Friday 30 August 2019

I've updated my installation guide on Slideshare to IBM Rational Rhapsody version 8.4

In my view it is a waste of your effort to install Rhapsody using its default settings as you won't get everything you may need and ultimately you'll need to uninstall and re-install to put things right.

The following is my latest installation guide. It provides the explicit steps that I recommend. In this guide, I've moved to suggesting you install for all users, rather than providing the choice, so that the decision is consistent. This seems to be the preference that most IT packaging teams want to opt for.

The guide includes steps to both obtain an evaluation and to validate that the compiler is working. The guide that therefore be used as a starting point for performing a Rhapsody evaluation.


Sunday 25 August 2019

Rational Rhapsody Tip #63 - Snippet-based auto-generated html reports (new in 8.4)

This short tips and tricks video shows a new feature added in IBM Rational Rhapsody 8.4 to auto-generate a html report based on the project's browser structure. The report uses a set of mini-template snippets in the Rhapsody installation to automatically create an RPE template based on the model structure. The resulting html report contains hyperlinks that can be navigated as well as a browser structure that uses javascript. The report generator doesn't require Rational Publishing Engine (RPE). However, if you have RPE document studio then you'd be able to modify the snippets.
















For more info have a look at the support page: https://www.ibm.com/support/knowledgecenter/en/SSB2MU_8.4.0/com.ibm.rhp.reporting.doc/topics/rhp_c_customizable_html_reports.html

Monday 19 August 2019

Rhapsody health checks

I recently did a Rhapsody health check for a large organisation that has been a Rhapsody user over multiple years. A health check is really 3 days of consulting with a report and recommendation read-back based on interviews and observations. It asks questions like whether there are quick wins that could be had from changing how Rhapsody is used, using new features, or learning new techniques and features.

1. More refined use of Gateway, particularly when dealing with multiple input documents.
2. Issues caused over time by sub-optimal property settings when managing Rhapsody units with Subversion (unresolved references).
3. Assessing potential and ease of upgrading to later versions (particularly related to use of 64 bit) and whether safe to do so.
4. Thinking about how internal teams share ideas and best practice.
5. Whats new review, esp around Jazz.

Rhapsody has so many hidden features, and teams change over time, so having an external expert engage for just a short time is an efficient way to oil the wheels and re-energize users with new ideas.

Sunday 11 August 2019

Rational Rhapsody Tip #62 - Orthogonal/parallel regions in state machines

This 4 min silent video explores some of the executable semantics around the use of orthogonal regions in state machines. Most of these semantics come from work done by Dr David Harel and his colleagues in the 1980/90's on statecharts, which were subsequently subsumed into the Unified Modeling Language, and inherited by SysML. Essentially orthogonal regions in a state machine are regions that execute concurrently as part of an owning state. Each region becomes active when its owning state is entered. In Rhapsody we can create any number of these using an And Line. It's possible for orthogonal regions to influence each other. These video explores 3 ways:

  1. We could get one of the regions to generate an event. Essentially, the event would be placed on the event queue for the thread and then consumed as a trigger in another parallel region. 
  2. A second approach would be for a parallel/orthogonal region to query the state of another region using IBM Rational Rhapsody's IS_IN macro. This macro allows you to query if the state machine is in a particular state. 
  3. A third approach would be to query the state of an attribute. As the scope of the state machine is a classifier, the attribute would be visible in the state machine and could be used in a guard-based transition. There's a caveat here. Guard-based transitions are tested on entry to a state or when an orthogonal region performs a transition. To get guard-based transition to be re-tested then a transition needs to be performed in one of the orthogonal regions. This silent video with captions highlights this.