Wednesday, 12 October 2022

Java Versions and Features link

Often, a Rhapsody team may choose to get a toolsmith on board to extract the best power with the least effort from what is probably the most configurable UML tool of them all. Although Rhapsody is natively and C++ application, plug-ins for Rhapsody make use a Java API. It's not always the case, however, that the toolsmith is a software engineer by trade and hence just a little foundation knowledge can go a long way. I found this article that helps explain a bit of foundation knolwedge wrt Java and JDKs. It's quite well written I thought and hence thought I'd share the link: Java Versions and Features (marcobehler.com)

Wednesday, 27 July 2022

v4.1.a.PreRelease version of SysMLHelper toolkit on Github

I published first version with business value profile (target for visio import) plus some important tables views for showing traceability in the requirements, use case and feature function packages in the Executable MBSE profile. 

See my Making Executable MBSE fun with IBM Rational Rhapsody website if you want to know what the latest enhancements were and where to download this set of open source profiles and process automation helper toolkit. 

Tuesday, 12 July 2022

IBM Engineering Rhapsody Tip #105 - Simplification of SysML for early context analysis

This video gives an impression of where I've moved to in the 7 years since I left IBM and started to support customers using Rhapsody. Broadly speaking  to get users with less experience to be able to model, I've moved from delivery of generic SysML training to customizing Rhapsody with profiles that automate the modeling experience; the richest one being the Executable MBSE Profile in the SysML Helper toolkit (www.executablembse.com). This open source GPL 3.0 licensed profile takes a jigsaw approach to following reusable modeling patterns to create models developed by a team where different team members work in different packages. Although it started life as supporting executable mbse methods, this video demonstrates how it as evolved much wider than that. I show just some concept and early system definition phases work including the simplification of SysML IBDs, in Rhapsody, to create a Visio-like context diagrams with flows.  

Monday, 27 June 2022

SysMLHelper incl. ExecutableMBSEProfile v4.0.w, 27-JUN-2022: Step up in terms of usability and automation

FYI that I have pushed my latest v4.0.w Executable MBSE Profile to Github. It's quite formidable in scope now covering both executable MBSE methods based on DOORS Next requirements or a workflow involving functional decomposition and associated bdds and ibds. The profile is available on a GPL 3.0 license (i.e. you can do what you like but must keep the license, i.e. it's copy left license). Further details on changes are found here: Making Executable MBSE fun with IBM Rational Rhapsody.

Saturday, 16 April 2022

IBM Engineering Rhapsody Tip #104 - Rhapsody's support for SysML callout notation

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 ;-)



Transcript:

00:00:00 

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. 

00:00:11 

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. 

00:00:25 

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. 

00:00:42 

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). 

00:00:56 

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. 

00:01:17 

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. 

00:01:29 

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. 

00:01:53 

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. 

00:02:17 

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. 

00:02:42 

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. 

00:03:10 

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. 

00:03:50 

What is actually shown in that callout, is controlled through properties. The "Callout" new term type is essentially a stereotype in the SysML profile. 

00:04:13 

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. 

00:04:53 

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. 

00:05:13 

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. 

00:05:34 

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. 

00:05:57 

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. 

 

Friday, 18 February 2022

Copyleft and Ownership

Some people have asked me about open source code. The following link is interesting. What it essentially highlights, is that someone who owns the copyright can license the same code under different licenses to different people. Of course, this different license would need a license agreement in place which would need mutual agreement between the parties, e.g., you could buy under a non-GPL agreement but we'd need a contract for this. Potentially, this is an option if anybody wants to establish a different license with me and build on my resources but not comply with the copy-left principals of the GPL, for example:

https://hackaday.com/2018/09/27/can-you-take-back-open-source-code/