In this video, which does have voice narration, I delve into some of detail around IBM Engineering Rhapsody's support for OMG SysML callout notation. Callout's in Rhapsody are supported with a new term stereotype that conveys properties that define what to show in the callout. By default, this will be allocated to and allocated from relationships related to the anchored element. However, we're not limited to these. In the video I show how it's possible to show Satisfaction relations. I start the video by also covering how compartment properties can be tailored to allow Satisfactions. This is also a useful tip, that will not be immediately obvious to the untrained eye. Lot's of power here really. As always, if Rhapsody is not doing something by default, there's probably a property you can set ;-)
Saturday, 16 April 2022
IBM Engineering Rhapsody Tip #104 - Rhapsody's support for SysML callout notation
Hello, my name is Fraser Chadburn. I'm a specialist in IBM Rhapsody (in particular) and SysML (in general) and in this video, I'm going to cover the call out notation in SysML.
So firstly, let's have a look at it. Essentially callout notation is the use of comments which are anchored to an element, where the element owns a relationship, and the relationships that are owned are shown in that comment.
Here's the allocation relationship, which is essentially a dependency with the allocate stereotype applied in SysML. Comments with this call out notation applied can also be used for showing traceability to requirements, for example, satisfactions.
Let’s have a quick look. Here we've got trace, refines, verifies and satisfies. These are all SysML stereotypes for traceability (actually trace is UML but it works in a similar way).
Let's go to Rhapsody now and see how comments are supported with callout notation in the SysML profile. Firstly, I'll create a SysML project. I'll call it ‘CalloutComments’ and use the SysML profile to create it.
I'm not using any other customizations at this point. I'll add a block definition diagram and we will look firstly at how compartments work.
Here I have a block and I might have another block, and I'm going to show there's an allocate relationship. This is a dependency with the allocation new term stereotype. Using the display options for this, I can change the compartments on the diagram to show that allocation.
With requirements, I can do something very similar. Let's add a requirement and show traceability using a satisfaction dependency. Note that the display options are not allowing me to show satisfactions as a compartment for a block, by default.
These display options are covered by properties on the model. If I look at the properties on the model, I'll just search for “AdditionalCompartments” you can see that this property has been overridden by the SysML stereotype on the project to add certain compartment options which pertain to SysML.
If I want to show satisfactions in a compartment, one way I can do this is to set properties on the project. I'll override the AdditionalCompartments property on the project here, so that satisfactions are available. This means I can show the Satisfaction traceability to the requirements now in a compartment.
Call Out notation is very similar to compartment, is that we're showing these relationships, but on a comment. If I put a standard comment on here and I anchor that comment to the element, establish that then if I do a change to “Callout” then the same, or similar, display is presented. What would be shown in a compartment, is now shown in the comment albeit that this is with the system modeling language notation.
What is actually shown in that callout, is controlled through properties. The "Callout" new term type is essentially a stereotype in the SysML profile.
It's the stereotype applied to a comment that carries with it some properties. Callout comments by default will show allocated to and allocated from relationships in the comment which means if I wanted to show satisfactions, I'd need to override those properties. In this case I'm overriding them just on this particular comment, which is part of the model, and I want to show satisfactions.
I've overridden that property on that particular comment and it's showing satisfactions so if I establish new relationships in the model then the compartments and comment notation will update to show them.
So it's powerful notation but it relies on you to be able to set properties and understand how properties are conveyed to a model. Callout notation is aligned to the systems modeling language specification and can be updated for new term types that you define by tailoring properties in Rhapsody.
So hope that helps. My name is Fraser Chadburn and I run consultancy and training company specifically focused on Rhapsody. If you look at some of my feedback around the type of training I provide, it's about deep knowledge in the tools and having interesting interactive training that's focused on your needs.
So if anybody needs to get in touch on the, then probably the best thing to do is send an email. Thank you very much.