Friday, 17 September 2021

IBM Engineering Rhapsody Tip #100 - An example of a general belly tickle problem

This is another one of my short, and silent, IBM Rhapsody tips and tricks videos. It actually came up in my tool training this week, as creating generalizations between the use cases and finding them in the browser, is part of one of my labs. The problem is sort of a user error, in that new users often press Delete on a diagram, and forget that a relation still exists in the model. When you do this because you've drawn an OO generalization relation the wrong way around, and then attempt to draw the generalization in the correct direction, then you get an error message from Rhapsody saying that you can't add a relation as it will create a cyclical relation in the inheritance structure. To fix the issue you can complete relations to populate the relation on the diagram and then properly delete it from the model, before redrawing.

Here's the transcript:

This is one of my "quickie" quick tips for IBM Rhapsody. The issue came up in my tool training delivery again this week, hence I've turned it into my video tip #100!

It's silent so you have to reeead tttthhhhe teeeext!

This "user error" basically relates to Rhapsody cleverly detecting that you're trying to add a cyclical generalization relation.

To demonstrate, I'll first add a couple of use cases and a generalization relation between them.

What I want to say is that "Give a belly tickle" is a specialization of a more general "Give a tickle" use case. 

Oops, I've drawn it the wrong way around! I'll press Delete so that I can draw it again.

Rhapsody stops me from doing this as it detects that this would create a cycle in the inheritance structure (which is illegal and would cause nasty issues).

Well, we all know why, of course? 

On a diagram, pressing Delete removes from view, it doesn't delete from model (so the relation still exists).

Tip: If we want to know if there are relations in the model not populated on a diagram then you can use the Layout > Complete Relations menu.

This will populate relations that exist but not shown. It's a good way to check for unexpected relations.

To really delete then we should choose Delete from Model from the right-click menu and we can then draw the relationship the correct way around, i.e., Give belly tickle "is a" Give a tickle use case ;-)

Tip #2: If you hold down Ctrl key and press Delete on the diagram, then it will Delete from model. When you Delete from model then you get a confirmation dialog. This is good way of knowing that you really are deleting.