Saturday 28 July 2018

Rhapsody Tip #39 - Nested states, the art of state-machine design (Intermediate)

Increasingly in my IBM Rational Rhapsody training I've been getting engineers to communicate with each other by drawing UML/SysML diagrams as a group exercise. Like with any natural language there is often more than one way to say the same thing. Knowing the best way is sometimes an art. The use of nested states is one such example. If you're building a state machine and I find I have many states reacting to the same event, then this little voice pops into my head which says "should I create a superstate?". Sometimes it's obvious whether a superstate is good, sometimes less so (that's the art). The key thing is that we do need to consider the readability of diagrams. We are, after all, using them to communicate. In this example I build a Rhapsody project from scratch with a simple state-machine that builds and executes and the user can interact with. I then show how the same behavior can be modeled in a different way by introducing a super state. Of course, knowing techniques like this also comes from experience. I like to think it also comes from training and the value of training is building people's confidence in using UML or the OMG Systems Modeling Language to communicate.


Monday 16 July 2018

Rhapsody Tip #38 - Introducing Diagram Views, new in 8.3.1 (Intermediate)

In my previous Rhapsody tips and tricks video I covered a feature of IBM Rational Rhapsody known as Custom Views. This capability worked in conjunction with things like Queries to create filtered views. The powerful thing about these views is that they can filter both the diagrams and the browser in Rhapsody. The thing is that the filtered diagrams would only be visible if the Custom View was active. In 8.3.1, the Rhapsody development team have expanded Rational Rhapsody’s capabilities by allowing these views to be persisted in the browser. These persisted views are known as diagrams views. As well as making it easier for users to access them, it also makes them easier to include in documents generated from the model. It’s a layer on top of other layers that adds a cool new capability. This short video demonstrates the base concepts of Diagram Views by building on the project created in the previous video.



Training material updated to 8.3.1 (Version 8 of Mastering MBSE with OMG SysML and IBM Rational Rhapsody)

My mission is provide up-to-date affordable and fun training for IBM Rational Rhapsody, i.e. latest release. I've just been through my Mastering MBSE with IBM Rational Rhapsody training labs to test and update to release 8.3.1 (Build 9835550). No major issues. Surprisingly good given that I had 650 tool training slides with no workarounds, hence my training can happily move to this version.










I did find occasional reload pop-up (not seen as an issue but will check).









I also had an issue with Notes populating correctly via API (presumably because it was changed to allow rich text hyperlinks). However, I then found that there is an iFix called 8.3.1-RAT-RHAPSODY-IFix1 that fixes this! (yep, should've installed this first. Doh!).

Summary is that 8.3.1 is worth for going over 8.3 but don't forget to check Fix Central for iFixes and install these at the same time. In terms of rational for 8.3 over 8.3.1 the RMM upgrades with 6.0.6 are enough to warrant this but also there's also polish in other areas worth keeping up with, e.g., I'm getting used to double-clicking to use stamp mode now.

Thursday 12 July 2018

Feedback from last week's MBSE with OMG SysML an IBM Rational Rhapsody training

Last week's Mastering MBSE with OMG SysML and IBM Rational Rhapsody 8.3 training was fun. This was the collated average feedback from the 9 attendees (where 5 = max, 1 = min):










Lot's of active participation again, with attendees from multiple companies (big auto-slant). I also learnt that the collective noun for a group of functional safety engineers is "a hazard" ;-)

Feedback/testimonials included:

"The presentation was clear and at a good pace. I feel I have gained a good understanding of the strengths of the tool" (senior electrical/electronics engineer)

"Trainer (Fraser) is very knowledgeable, very receptive and approachable to questions. Course provides a good overview of SysML" (software engineer)

"Good mixture of s/w, presentation & group activities" (engineer)

"I liked the flexibility on topics and insights / real-work experience of application" (snr engineer)

"I liked the entire class group exercises. Very much enjoyed the class. Fraser is a true expert and an excellent instructor" (director)

Tuesday 10 July 2018

Rhapsody Tip #37 - Filter diagrams and the browser with CustomViews (Intermediate)

You can easily get the impression with IBM Rational Rhapsody's CustomViews that they're too powerful for their own good. The possibilities are endless though, hence they have a lot of pent-up power you can unleash. First introduced in 8.2.1, this video actually uses 8.3.1 to show them (hence you'll see me double-click the drawing toolbar to enable stamp mode!).

Rhapsody's CustomViews are a layer on top-up of existing layers, hence this video tries to build things up from the ground level. I first create a tag for ASIL A to D ratings and use a stereotype to convey the tag value to multiple elements. I can then easily create Query elements in the browser able to find elements with particular tag values, e.g., a query that finds all the elements with an ASIL tag value of D. Once I have the Queries built then I form some simple CustomViews that use the queries. Like Query elements, CustomViews appear in the browser, hence can be shared between projects in a profile. They can also be used to filter the browser. This is a bit like putting your reading glasses on (if you have them). Unlike filtering the browser with queries, you can multi-select the CustomViews to show in the browser or on diagrams (like putting on bifocal glasses?). Of course, this video just shows one example of usage. There are many other possibilities (modeling variants is one that springs to mind). Hope it helps!