Saturday 15 June 2019

Rational Rhapsody Tip #59 - Using a Perspectives toolbar to simplify the user interface

One of the challenges for a tool vendor is how to make the product more consumable to a wider user base. Often, new users can be overwhelmed by the range of options available in a tool that has over 23 years of active development behind it. One of the ways the development team attempted to address this challenge was to add something called a Perspectives toolbar.

I did this video in response to a client in my Rhapsody training a week or so ago. They were complaining that the user interface of Rhapsody had the old type of SysML ports (standard and flow ports) still available as well as the new ones (proxy and full). My explanation was really that different users still want to use them and it's difficult to keep everybody happy. The perspectives toolbar, however, offers the potential to do this because you can simplify the menus based on a pull-down list. Here's the catch, the standard SysML Perspectives toolbar isn't something I'd use. For me, the savvy user would create their own. In this video I show both the out-of-the-box perspectives toolbar and one I created myself. Like most things in Rhapsody, everything is customizable with Rhapsody properties.

IBM Rational Rhapsody's perspective toolbar simplifies the Rhapsody menus based on a pull-down list on the user interface. It is designed to allow users to simplify the user interface to make Rhapsody and UML or SysML easier to consume by new users.

Two perspective toolbars are provided out-of-the-box, one for SysML and one for UML. The perspective toolbars are conveyed to a project using a Setting, a special type of Profile that conveys just properties rather than stereotypes/tags.

If we create a SysML (or UML) project without specifying the Perspective settings then Rhapsody will ask us if we want to add the corresponding setting to the model.

We can choose Don't ask me again, if we wish, in which case the choice would be preserved in the rhapsody.ini file as SetSysMLPerspectivesSettingsForNewSysMLProject=TRUE (or FALSE).

When a project opens, a hint will be displayed to warn the user that the menus are simplified. Perspectives will influence many things.

Note how the drawing toolbar changes when we switch between Basic:

... and Advanced:

The toolbars and main menus are also affected. For example, when we switch from Advanced to Basic then the Simulation toolbar disappears, and the Diagrams toolbar looses a couple of diagrams.

The use of system simulation, for example, could be considered to be advanced, hence when we switch from Advanced to Basic the complete Simulation menu structure is removed.

This is all powerful stuff, of course. Designed, ultimately, to present a simpler tool UI to users with different roles. However, there are some catches.  Why does the Windows toolbar disappear for Basic users? Personally I always teach new users about the value of this toolbar. It allows you to easily show and hide parts of the workspace.

Also, if I create the BDD and have the Basic role selected then the Directed Composition is removed.

These are not what I would call optimal. The power brought by the perspectives feature, however, remains compelling once you realise that you can create your own.

Here’s an example. I’ve added it to the Settings folder in the standard installation, but it’s really just a way of conveying properties and hence could be done by setting properties in a model directly.

The thing is that different projects and methods will want to use different parts of the language. This is quite natural in any language. For you decide, for example, that you want to make use of proxy ports for everything then you can easily set up Rhapsody to remove the flow ports, standard ports and full ports. If you decide that you only want to use control flow on activity diagrams then a similar approach can be used.

Here's an example of a favoured BDD toolbar in the ChosenSysMLPerspectives.prp. This is just an example that shows how you can easily do stuff like remove UML and flow ports, if you want, as well as add new Term relationships such as Allocation and Satisfaction dependencies. 

And here's the IBD:

The good thing about the perspectives is that you can filter stuff out, but you can switch the menus back, with relative ease. 

No comments:

Post a Comment

Note: only a member of this blog may post a comment.