BLOG about IBM Rhapsody. Contains technical information as well as more private travel stories.

Tag: USA (Page 2 of 2)

Florida 2: The Keys

The Keys

The Florida Keys are the small string of Islands that lie south of the Florida peninsula. They are connected to each other via a couple of bridges and a long highway.
I’ve been there before but that had to happen on one day and before the flight back so I had not much time to enjoy the beautiful scenery and the islands itself.
The attraction is of course Key West where you are very close to Cuba (90 miles, 145km)

distance-from-cuba-to-key-west-1

So this time we planned a bit longer visit and even an overnight stay. Getting a room was OK, apparently it was not the tourist season. Still it was quite busy on Duval Street that is the main attraction. Lots of cruise-ships stop at Key West, unloading lots of passengers. That is the main income of the islands.

The trip to the island is (for me…) the main attraction. We were driving there in a BMW 430i convertible. That was pretty cool.

Hemingway’s House (& cats)

One of the attractions of Key West is the house of Ernest Hemingway.

IMG_1123.jpg

It is now a museum (you have to pay for it… very undutch…) and shows the house in its original state. The walls are full with Hemingway memorabilia and explanations about his life.
I had heard of Hemingway of course but never read anything from him. I immediately started to read “The old man and the sea”.
The house is populated by many cats that are all descendants of Hemingway’s cat “Snow White” who had 6 toes on each foot. The cats there all (as far as i could see) have that too and is quite remarkable.

How to associate Rhapsody model files in the explorer with a specific Rhapsody version

After installing a new Rhapsody version, e.g. for testing purposes, you might still want to let the Windows Explorer open your .rpy or .rpyx Rhapsody model files with another Rhapsody version you are still using for production. This how-to briefly describes where to configure the file extension to application association.

how to associate rpyx

Step-by-step guide

  1. Open the Windows Registry Editor (regedit.exe)
  2. Navigate to “HKEY_CLASSES_ROOT\.rpyx” (or “HKEY_CLASSES_ROOT\.rpy”)
  3. Make sure the value name “(Default)” contains the data “rpyxFile” (or “rpyFile”) (without quotes)
  4. Navigate to “HKEY_CLASSES_ROOT\rpyxFile\Shell\Open\command” (or “HKEY_CLASSES_ROOT\rpyFile\Shell\Open\command”)
  5. Modify the value named “(Default)” to contains the data (including quotes):
    <Full path to your desired Rhapsody version program path>\Rhapsody.exe” -cmd=open “%1”
    If you have a multi language installation but per default want to open Rhapsody in a specific language or edition, you can add additional arguments before “-cmd…”.
    Examples:

    1. Development Edition in C: -dev_ed -lang=c
    2. Architect for Software: -architect
  6. You might also want to check HKEY_CLASSES_ROOT\rpy[x]File\DefaultIcon

Thanks to Eike for writing this down!

Here some pictures of the keys.

That’s it! Happy modeling with Rhapsody!

Walter van der Heiden (wvdheiden@willert.de)

Animation in Florida

Vacation

Even traveling modelers have vacation, sometimes. Although my life sometimes looks like a long vacation, it still is work. I usually have only limited time to really look at something.
So I decided to spend 2 weeks in the United States, in Florida. Finally time to see more than airports and security checks.
My youngest son joined me and on may 1 we left in the morning to fly to Fort Myers via Detroit. I will tell a lot more about where we went and what we did.

The planning is to visit The Keys, Tampa, Orlando, Daytona Beach, Bahamas, Miami and of course my friend Arno in Fort Myers.
That is quite a program for 10 days but we’ll see. First we spend a day at Arno’s to join the pool….

Animation

Not really a theme for me… The Willert Version of Rhapsody does not support Animation (Therefore we include our “world-famous” Target Debugger.
A question came in from a customer about the use of animation with more than one Rhapsody version (So you can animate different applications)
This is actually quite easy once you understand how Animation works.
Rhapsody generates extra code when you switch on Animation, every function has some Macro in it, different macros for different functions.
Also the framework includes the Animation and tracing Framework, that provides the functions you need to animate.
If you start the Rhapsody developer it will reserve a TCP/IP Port for the Animation communication. The number is 6423. This is the reason that when you start a second instance of the developer there is an error message that says: “Rhapsody cannot create socket” or something like that.

Solution

There are multiple solutions.
They both involve the Rhapsody.ini file, this file must be right next to your Share directory.

  • Create a second Data directory for Rhapsody and change the Animation Port Number. Create shortcuts that start Rhapsody in different directories.
    Advantage is that you gave control over the port number and you can decide which one to start.
  • Add a line AnimationPortRange=10 to your Rhapsody.ini file. Now Rhapsody will use a new port number (after 6423 or whatever you have configured in rhapsody.ini) each time you start a new Rhapsody instance.
    You have to generate and build your code (It contains the correct port number) to use the correct port.

That’s it for today, Happy Modeling with Rhapsody!

 

Walter van der Heiden (wvdheiden@willert.de)

Think!

This is the week of the IBM Think! in Las Vegas. I actually hate Las Vegas, it is a very aggressive place to be for my poor Asperger brain. I already had some serious “Sensor Overload Errors” there. I prefer Florida but you can’t win them all. IBM wants me to go to Vegas…

Also the IBM Conferences get bigger and bigger every year. I loved the Innovate in Florida, not just because of Florida but also because it was much smaller. You could really find all the people you need. In LV it is almost impossible to meet somebody.

Luckily there is the German IoT Conference (and hopefully the US IoT Conference) I feel a lot more at home there.

At least “Think!” is a great name, thinking is generally a good idea.

Hyperlinks

To gather information in your model it is a good idea to use Hyperlinks. You can use hyperlinks to save links to:

  • model elements (Change the view of your elements)
  • websites (Compiler, CPU, Willert!)
  • documents on your disk (For use in the project)

For documentation it is better to use “controlled files”, they will be part of the model and can be transferred to others.

Package Hyperlinks are a bit hidden, you have to right-click on a package and select “Add New”, “Relations” , “Hyperlinks”. Don’t forget that a click on a hyperlink will not open the features but the target of the hyperlink.

 

Explorer Helperhelper_explorer.JPG

I often search for my Model directory. Rhapsody does not always show it in the File Menu and you then have to open the configuration, go to the Settings Tab and look where the generated source is. There is a better way to do that.
Goto “Tools” “Customize” “Helpers…”.
Add a new item there, call it Explorer (or what you like) and fill in “explorer” at the command and “.” at the arguments.
This will give you a menu item under Tools that opens an explorer window with your project directory. Cool eh?

Happy Modeling with Rhapsody!

Walter van der Heiden ( wvdheiden@willert.de )

Task, Process, Thread

Introduction

On the way back from the US I decided to write something about a question that I received multiple times.

What is a task in Rhapsody? Or equivalent questions using different words but are all about the same topic: task, process, thread.
You can use Wikipedia to read about it, I did too and it will help you, but I will give you my interpretation. which is not necessarily the correct one but I can live with it.

The main difference between a process and a thread is the memory space. threads share the same space, processes have their own memory space. A task can be both, it just indicates that something is running independent from other tasks.

So what is an active class in Rhapsody? That is not specified in particular but for most frameworks it is a thread. “Normal” Rhapsody code runs in the same memory space, it has to, if you send an event to another object, you need to know the “me-Pointer” of that object, which, inevitably has to be in the same memory space.

Hmm so it is not possible to use processes as Rhapsody “tasks”? Oh that is possible but you need a different framework. And a not so easy framework, It is called “distributed Framework” or short”DOX”. The adaptation to an operating system is much trickier in such a system since there is a lot of difference between the methods of inter process communication. You basically have to “register” all tasks and create a function that can communicate between tasks using shared memory or whatever mechanism your OS offers you.

Sending an event means that you have to serialize the event (and, if there, its parameters) then store it in shared memory, notify the OS. Then the OS in its turn will provide it to the receiver that receives it, unserializes it and put it back in the structure.

Solutions

There are other ways to still use Processes when writing an Application in Rhapsody.

  1. You can, as described above, implement a different Framework and use the available interprocess communication. The advantaged is that the Rhapsody model can be kept unaware of that and is still portable to other environments.
  2. On some CPU’s (for instance ARM Cortex) you can use memory protection in a special way. In that way you can use the same memory space but only allow certain functions access to certain memory ranges. This is a proprietary solution, not portable but since the hardware will check everything, safe and small.
  3. The last way is to use a normal framework, create processes when you have an active class and then implement the shared memory in a class that has all communication addresses “Pre-compiled” You can take an instance of that class in each process. You cannot send events since the message queues are in different memory spaces so you have to communicate differently.
    There is no real difference between a single app with multiple processes at multiple apps. You might as well create a component for every process and include the communication in each and every one.

So. Hope this helps. Happy Modeling with Rhapsody!

Walter van der Heiden ( wvdheiden@willert.de)

Bourbon Street Shortcuts

I have never been to New Orleans before, so for those who read my BLOG more often: I have added State #35 to the state-chart! And I really have to say: New Orleans is pretty cool, It has a flair that you hardly find anywhere else in the USA. I didn’t really know that in most of the US it is not allowed to drink alcohol in the streets openly. Hence the brown paper bags you see everywhere. As a European you don’t notice that, for us its normal that you just drink wherever you like. Not so in the USA but in Bourbon Street you can openly drink whatever you want. You can also walk around as you please, i saw people there that were “dressed” (or actually showed a lack of dressing) that I normally only see in the capital of my country. (For those that don’t know: I live in the real land of the free, the Netherlands)

That is cool but the coolest thing is the music. Literally every bar has a couple of musicians that play. Mostly Jazzy but also other kinds of music.Raz and I landed in a pub where the band was building up the stage. they told us the band would start in 45 minutes or an hour and that suited us, we wanted to speak anyway. But after some discussion (Raz and I do, luckily, not always share the same opinion) we looked around us and noticed that we were, by far the youngest people in the bar… I’m 56 so that tells you something. And yes, when the band started we soon figured out that this was definitely not our Jazz…

So we moved to another one where the band was already playing. That was much more OK.

Shortcuts

Rhapsody has a lot of keyboard shortcuts. They are described in the manual but unfortunately this is pretty hidden. there are a few websites where you can find more info on that, I will add some here.

Search (and find)

In Rhapsody 8.1.5, when you were in the Rhapsody editor (or in active code view) the CTRL-F command would give you a search dialog. This would search for the string that you typed in. After that F3 would give you the next search-hit.
This no longer works. the reason for that is that the Rhapsody developers have unified the search dialogs in Rhapsody. There were (historically grown…) four different searches in Rhapsody. None of them worked for 100% so Raz and his crew decided to clean that and make a search app that would not only search but also find…. This comes with a (temporary) price, the search lacks some “hidden” features that were previously there.
Screen Shot 2017-11-23 at 18.33.55.pngThe find-dialog in the editor has a field “Mark All”, that will put a red ball with a white cross before each line where the searched string occurs. Not a perfect solution but definitely workable.

2 Very useful ones…

The shortcuts that are hard to find in the documentation are the Shift and the Alt key. When you are in a Diagram, State-chart or Object Model Diagram or so, as soon as you draw an element inside another element (when this makes sense according to the UML of course) then Rhapsody notices the hierarchy and will treat the outer element as the container of the inner element. That also means that if you want to resize an element that has other elements inside it, resizing seems impossible without also resizing the content. Resizing is done by selecting the element and take one of the dots that surround the element and drag it.
Now try to press the “Alt”-key when dragging, you will see that the content of the element will stay intact. Now that is cool eh?

In a sequence diagram something similar happens. When you notice that you don’t have enough space in the middle of a sequence, shifting all elements down is pretty tiresome. This can also be done by clicking on the place where you want to make space and press the “Shift”-key while dragging down (or up if you want to close gaps!) This will take the entire content and moves it with your mouse.

I hope this will help you in your Rhapsody life! Have fun modeling with Rhapsody

Walter van der Heiden (wvdheiden@willert.de)

 

Even Paradise has Requirements

Just another day in Paradise

Just before flying back to Europe I spend a weekend at my Friend Arno’s place in Florida. The USA contains both paradise and hell. Florida is paradise, Las Vegas is hell. I hate Las Vegas. But I love Florida, especially South-West Florida. Weather is really nice there, nature is beautiful. You can see all kinds of plants and animals that we don’t have at home. Hence the title picture. Normally I buy photo’s, this one was taken by me.

The USA has it’s nice things, Unsweetened Ice-Tea, free Re-Fills, brilliant weather. It has its flaw-backs as well…. But not too much in Florida…

This morning I woke up early to have some time to take a cup of coffee with Arno, who has to work today, before leaving for the airport. When I got out to the terrace next to the pool I noticed that it was not too warm. My friend Arno and his wife were both freezing… they already live in Florida for a long time and think that 14º C is very very cold. My European body reacted totally different, i thought it was nice and almost warm… That was 7am, on 9am it was already way over 20º…. things were back to normal… Also paradise has its requirements…. no temperature under 70ºF….;-)

Requirements

Speaking about requirements…. How do you get requirements in Rhapsody? There are a number of ways to do so. It also depends on what Requirements management tool you are using.

  • Managing them in Rhapsody. You can do that but you will not like it that much. It is tiresome to handle requirements, there is not much overview and linking is a pain in the….. For a small program like a Stopwatch it is OK but anything bigger this is a no-go.
  • Use DOORS to manage your requirements. Wait… Doors is old? Well, that depends. There are a large number of companies out there that use Doors since years and have large databases full of requirements, and mostly a complete workflow around the Tool using scripts and much more. Since Doors is still supported and even developed (to some extent) by IBM it is not a bad choice. You can synchronize your Requirements from Doors to Rhapsody using GateWay (Which is actually a Tool called Reqtify and is being maintained by a french company called Dassault (Yes, the ones that bought NoMagic) It can sync your Requirements between Rhapsody and Doors and it is fully configurable so you can also use it for other tools then Doors and you can select how you sync the Doors information in Rhapsody. It is and add-on tool, you have to pay for it. A cheaper and also very nice way to sync your Requirements between Doors and Rhapsody is the Willert Software Tools ReqXChanger. It uses the ReqIF format to exchange Requirements, it is also configurable so you can determine the exact information that you want to sync. In the latest version it can also exchange diagrams between Doors and Rhapsody!
  • Use Doors Next (DNG) to manage your Requirements. This uses the Jazz Database to store Requirements and something called OSLC to sync the Requirements with other Tools. You would have to use Design Manager or the new Model Manager in Rhapsody to sync your Requirements with that. Design Manager and in lesser extent Model Manager need powerful hardware to run on. So if you are looking for a more “light-weight” solution, you can also consider our ReqXChanger, it is a low-price and low-performance using solution to exchange your requirements. You can still use it in a batch way (For instance in a nightly-build) to automatically keep Requirements and tracing information up-to-date.
  • Use non-IBM Tools (like Polarion) to manage your requirements. Syncing can still be done with ReqXChanger. This is a big advantage of the ReqXChanger, it is very flexible in where you can use it. If you change your Requirement Management Tool (Or even your modeling tool…. but we will not talk about that….) you can continue using the ReqXChanger. If you use another tool then the named one and you would like to sync with Rhapsody, feel free to contact me!

Kicked out of Paradise

So. It’s time to pack and leave paradise… Modeling is definitively nicer if you do it in the sun with a glass of Ice-Tea. But modeling beats text-based programming always. Even when it’s cold outside.

Happy Modeling (and requirements implementing) with Rhapsody!

Walter van der Heiden (wvdheiden@willert.de)

A380

I have spent a lot of my time in airplanes, certainly more than a whole month. That is a lot of time. I used to be afraid of flying due to an “unlucky” experience when flying from Austria back to Rotterdam.
That flight had everything, storm, and I mean a real serious storm, a broken of landing, emergency landing on another airport, crying flight attendants, not to mention the other passengers.
It took me a while to get over that but since the first US flight I don’t care anymore. Or better, I like flying. In spite of hundreds of flights, I still like it very much.

As said I’ve seen lots of different airplanes, Boeing 737, 747, 767, 777, 787, Airbus 319, 320, 330, 340 and the 380. Also Embraer, Fokker, Dash, Ilyushin, Bombardier and even some smaller ones.

But the A380 is something special. Very very silent and of course: Huge. And I mean, really huge. I’m an engineer, i know how planes fly but even I am wondering how something this size can just fly.

My Facebook timeline told me this morning that it was exactly 5 years ago since I went to India. The flight was via Dubai so I’ve flown with the A380 of Emirates from Schiphol to Dubai and back. I was already impressed that time.

This time i flew from Paris (CDG, the worst airport in the world) to Miami with Air France. But… Business Class (Yes!!!) So upper deck and a real lot of space.

So… back in the USA. After just a bit over 3 weeks…. This time I have an AUTOSAR conference in San Jose (November 7-8) and the IBM IoT CE Conference in New Orleans (November 14-17)

I will be speaking on both events and on November 17 we will have a Rhapsody Workshop.

I hope to see you there!

Happy modeling with Rhapsody

Walter van der Heiden ( wvdheiden@willert.de )

State-chart

USA

Screen Shot 2017-10-22 at 13.35.47

Table of states visited

My first visit to the US was in november 1999. I had to be in Salt Lake City for work and took the opportunity to visit my friend Arno, who lived in Philadelphia back then. He worked in DC and I flew there to drive with him to Philly.
From there I went to Utah but  on the way back I took a small stop in New York to complete a real cool trip with a visit to already a number of states.

Cancelled flight

From that moment on I flew to the US almost once a year on average. And kept on visiting states. In 2004 I was on the way to Las Vegas together with Andreas Willert for the I-Logix Kick-Off Event. We booked the flight from Amsterdam via Minneapolis. We travelled a few days before the conference and wanted to drive around Las Vegas to see some of the Parks there. I already booked a hotel for the first night in Vegas and we planned on driving around and find ourselves places to stay on the go.
Unfortunately, KLM/North-West were not able to produce a working plane on the day we were supposed to fly so we had a forced night out in Amsterdam.
I phoned the hotel in LV to shift our stay for one day, just to find out that the next night was “Superbowl night” and the hotel price would not be $49,- but $249,-…
So I told the to shove their room somewhere dark and let KLM deal with it. It was their fault. (But my problem……as I found out later)
Luckily a have a friend who lives in “020”(As we from Rotterdam call our Capital, it’s the telephone area code) guided us through the city and after some beers (and some more) the next day we stood, slightly hangovered, before the KLM desk to get a room in LV for the next night.
They could not help us, this would have to be sorted out in Minneapolis they said.
So we first flew to Minnesota and went to the KLM desk over there to find out how they planned to get us in LV. It turned out to be a quite late flight that would arrive in LV on 00:30. They also told us to sort the hotel thing out when we arrived in Las Vegas.
This is where I intervened and said: no way I fly to LV without a hotel room.
So after some negotiations KLM booked us a room in Minneapolis and we rented a car to drive to LV because: What’s the difference? We wanted to drive around in LV and now we were driving around in the USA. No difference?

A small difference…

As it turned out, there was a small difference. We landed in Minneapolis, we noticed that it was snowing there. What we first noticed after we rented a car and went to five (5!) sliding doors to pick up our rental car. After each door the temperature dropped for more than 10ºC….
It was cold there. And I mean really cold. On the way to the hotel we were overtaken by a snowmobile. That was the first time I saw a sno-bolie in my entire life….
In the hotel we watched television just to find out that the USA was in something they called “The Blizzard of the Century”….
So the driving thing turned out to be a so-called “Bad Idea”
( “Bad Idea” is a trademark of  Microsoft Corporation )
So we decided to drive south as soon as possible to find better weather and to avoid going through the Rocky Mountains where this would certainly be worse.
So we did 3500 kilometers USA with at least 95% of that through the snow. Even on the Grand Canyon there was 50cm of snow. We have seen more crashed trucks and cars than in the rest of my life.
But we arrived in LV where is was nice and warm. And we passed about 12 states on the go.

State Count

As you can see in the state-chart, my current state count is 33, I hope that the next trip will bring me at least 2 more.

State-machines

OK, now a little about UML and Rhapsody. State-charts or state-machines are an important part of UML but certainly of Rhapsody. This, of course, stems from the fact that Mr. State-machine, David Harel, is the founder of I-Logix, and one of the fathers of Rhapsody and Statemate, it’s predecessor.
Although it is said that David Harel invented state-machines, this is not true, he merely described them thoroughly for the first time. His definition was taken into the UML.
There are many more implementations and definitions of state-machines.

State-machines are excellent when you implement behavior that has discrete logic. For Control loops, it may look tempting to use a state-chart but that is a mistake. There are far better mechanisms to model continuous behavior.

Example

Picture: You have a new job at the software department of “El Cheapo” a manufacturer of computer LCD monitors, known for it’s really good value for money displays.
Your new boss gives you the assignment to make the software for a new monitor that El Cheapo will release soon. The monitor is aimed at the lower end of the market so it has only 4 buttons: one for on/off, one for switching between brightness and contrast and 2 to control whatever you have selected (plus and minus)
You remember from your last job that you had a UML Training with Rhapsody (from some Dutch guy…) and decide to use that for your new job.
After 2 hours of thinking you have your first version ready:

Monitor Statechart

Not bad for a new guy, you think and you are on your way to your boss to tell him about your success.

Your boss is impressed until he starts asking you about the “evMode”, “evDown” and “evUp”. “Where are these events coming from?” he asks.
“Easy”, you say, “The hardware guys have to send these events from the button interrupts when they program the hardware drivers”.
Your new boss starts rolling his eyes and drops backwards back in his chair. “INTERRUPTS???” he shouts! “No interrupts allowed over here!”. “Do you have any idea how dangerous interrupts are??”.
You ask: “But how do you detect that buttons are pressed then?”. “The safe way”, your boss replies, “by polling all inputs every 100 milliseconds”. “Sigh”, you think.
But no matter how you try to explain that this is so wrong, you are eventually forced to curb your enthusiasm and go back to the drawing board.

But… you never give up without a fight and you come back with another plan. You have learned in your Rhapsody Training (from that vague Dutch guy…) that you can tweak the generated code from Rhapsody using properties (see Properties. Stairway to heaven, highway to hell….) and you start tweaking the state-chart. You ignore the Framework (see Real-Time Framework, the robust base for your embedded applications. ) and you come up with this solution:

Monitor Statechart 2

All events are replaced by guards. The state-chart code is now tweaked so that the generated function (rootstate_dispatchevent() ) can be called by the 100mS loop.
Some quick tests prove that this also works and now without interrupts.

Really???

Is the second state-chart really a functional copy of the first?

NO!!! it is not. In this example nobody would notice because 100mS is fast enough to fool humans. But suppose you press both the “mode” and the “up” button within the 100mS time frame. Which one is pressed first?
You can never know since you were not looking. The first state-chart knows while that uses interrupts and the framework. Events are stored in the queue and processed according to the FIFO principle.

You have to choose which of the variables “mode”, “up”, and “down” has the highest priority. And react to that. So the state-machine should actually look like this:
That is the big difference between these methods.

You have to take the priority into account and then create the state-chart like this:

Monitor Statechart 3

If I show this state-chart during training, people tell me: “Walter… you always told us to use state-charts because they make it easier to understand your application.”, “This is not understandable”.
And they are right… this is not what I call a good and understandable state-chart. It’s a chaos. I checked it multiple times but I’m still not convinced that it is really 100% OK…

An easier way!

What!!?!! there is an easier way? Yes, there is… This is actually the state-chart that does the exact same as the one above here.

Monitor Statechart 4

Does that state-chart remind you of something? Another diagram maybe?

It should… It is an activity diagram. Or flow chart (As the activity diagram of an operation is called in Rhapsody). Check it out here:

activityDiagram

An activity diagram…. does the exact same that the state-chart does. And.. If you compare the LOC (Lines Of Code) you will see that the real state-chart (the first example with the events) uses more code then the activity diagram but it is more correct. The other examples (And certainly the incomprehensible one) use way more code and are much slower!

Conclusion

Use state-charts when you have discrete logic. For continuous logic or polling solutions: use activity diagrams or flow charts. Or use Matlab Simulink for control loops.

That’s it for today, happy modeling with Rhapsody

Walter van der Heiden (wvdheiden@willert.de)

 

USA II – The Falls.

And…. back…

Well not completely. Just sitting at the Delta Terminal in Detroit and waiting for the flight back to Schiphol Airport.
It has been a busy week with many customer visits, conf-calls and our Engineering@Scale event at the GM Heritage center.
Thanks for everyone that was there, it was cool. I think I have sent my presentation to everybody, if not… it is here: Pres – UML Modeling vs Coding E@S TD Detroit
The Willert Software Tools Movie that explains the use of tools in an Automotive field is here: Seamless Model-Based Development Process for Embedded Software Engineering

AUTOSAR

I had a cool demo with me, we (or actually Clemens….) managed to bring a first prototype of the RXF ArcCore RTE Connection. Still some “WorkToDo” but we have already a good working example where we can base the rest on. We are working in parallel on reading ARXML and extracting the relevant UML elements like ports, interfaces, variables, defines, types, runnable names, software components, so we can automate the process of using UML for the embedded automotive engineers. We are working to implement at least 2 use cases for the use of Rhapsody in Automotive environments:

UseCase 1 – Architecture

If you want to do your architectural work with Rhapsody, we want to offer a way to export stereotyped UML/SysML elements to an ARXML file. We’re currently not completely sure what we want to export, if you have ideas: SEND THEM!!

UseCase 2 – Behavior

You already have an architecture, you have defined SWC’s (or Runnables) and you want to implement (some of) them in Rhapsody. This is the UseCase that we are pursuing first (Because it is easier, we more or less know what to do, we have done it already for an older version of Rhapsody and an older version of AUTOSAR)

Niagara Falls

So. A brief overview of what we are working on. In 3 weeks I am back in the USA for more visits, AUTOSAR Conference and the IBM ICE Meeting.
This weekend we did a “round Lake Erie”. That takes you through Canada, Niagara Falls, Buffalo, Cleveland and back to Detroit. That was pretty cool, here are some pictures.

That’s it! Happy modeling with Rhapsody!
Walter van der Heiden (wvdheiden@willert.de)

 

USA

Travel fun

This week I’m in the US, Detroit to be precise. Flew in last week on Friday. First to Fort Myers of course, my good friend Arno lives there and I always visit him when I’m in the US.

I always say: Florida is Paradise. Nothing better than drive around in a convertible in South-West Florida. Weather is always good (Well… if there is no hurricane….) and the life is generally good there.

But on sunday afternoon, we (Me and my son Robbert) had to leave paradise to go to Motown.

That was easier said then done, Delta had an airplane ready but apparently some important piece was missing and it was not allowed to fly without it. (They referred to the part as “cover” which sounded pretty innocent to me…) So they had to get a new part, it turned out they had one in Fort Lauderdale. Close enough (100 miles, 160km through the air) but somehow they could not really get an airplane ready to fly it over. They’d also sent a car and that finally arrived 4 hours after the original time of start….

Fixing the plane took 2 minutes and then we could board. We had planned to arrive in Detroit at 19h but it became 23:30. Not cool. The hotel was also almost 50km from the airport so after checking in and unpacking it was 1 o’clock. The alarm was set to 6… short night.

What are we going to do in Motown? Well… as usual I cannot give any names but I’m visiting a couple of automotive companies (Now that is a tough guess….) and on Thursday we have our engineering@scale Tech Day. In the GM Heritage center, that’s going to be fun.

Rhapsody Q&A

We had a Rhapsody Q&A Session on monday. In German. There were some interesting questions, I’ll try and copy some of the questions and answers.

Rhapsody Tips ‘n Tricks

Roundtrip?

Rhapsody has some default settings that are chosen, lets say, “unluckily”…. One of them is the setting for showing so-called SourceArtifacts. That is default set to “Hide” which leads to very confusing situations with people who just started using Rhapsody. The best way is to, when you start a new model, immediately select “View”, “Browser Display Options”, “Show Source Artifacts”. This will make your life easier. If you see Source Artifacts in your Browser and you didn’t change anything: Loose them! (Right click, delete from model)

Another good one is to set the “C_Roundtrip::General::RoundtripScheme” Property to “Basic” or “Advanced”. This will prevent Rhapsody to try to include your typing errors in a model. You can still edit the body of your operations and the Enter/Exit code of state-charts/actions. With Advanced you can even add operations and attributes in an editor.

Rhapsody performance

Rhapsody is slow when model are bigger. That was not a question but the actual finding of a user. How can I make Rhapsody faster, especially the loading of “larger” models?

  • You can do load on demand. If you call the “Open” dialog you seen on the far right a few fields that you can tick: “With/Without Subunits”, “restore Last Session” and “Load on Demand”. You can only load the base rpy file and load the rest when you need it (Right click, “Load…” or “Load with subunits”, speaks for itself) When you close the model, “Restore..” will open only the stuff you had already opened and “Load On Demand” should open only the stuff you are using, unfortunately it is not implemented 100% yet. But try it, it will save some time.
  • Using your model from an SSD drive will greatly improve user experience… Using your model on a network drive will drive you nuts.
  • Having many properties seem to slow down the loading also, apparently Rhapsody needs to build the property tree and that takes time when it has a lot of overrules.
  • If you can: divide your model into multiple sub-models that you load “by reference”

Larger Models

Divide your model into multiple models that you can include where needed. If you have a model that has a certain driver in there, you can copy that into another model (Open a new model, do “Add to Model”, locate the .rpy file, click on “As Unit” and “Copy Into Model”. Then select the package you want “Tick “Add Dependencies” as well) This way the model has new GUIDs and there will be no conflicts when you use the package.
Save and then you can open the original model, ditch the package you just copied and do “Ad To Model” again, this time adding the package from the new model “As Reference”.

You can no longer edit the package(But you shouldn’t either!!) You can, however, create a Workspace and load all the models you use into it. You can then switch projects without opening and closing Rhapsody. (“File”, “Insert Project”, “Existing Project”)

So. I hope we have enough time this week to explore Detroit (Motown) a little bit better. The Skyline at night looks good!

dreamstime_l_10513728

That’s it for now: Happy Modeling with Rhapsody!

Walter van der Heiden (wvdheiden@willert.de)

 

Newer posts »

© 2026 Rhapsody TechBlog

Theme by Anders NorenUp ↑