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

Category: Rhapsody (Page 12 of 14)

Your flight is delayed….. No

Story of my life…

People who fly often, like I do, know that there is always a big risk that something is happening. Either on your airport, or on the airport where your plane came from or the airport where your plane is heading to. Also the plane is a mechanical and electronic device with software in it. I repeat…. with software in it.

There is a lot that can go wrong there and, experience shows, that will go wrong. A lot is mostly safety stuff, flying would be possible but safety precautions prevent that. And that is a good thing. Flying is safe because we care a lot about safety.

That all is apart from other annoyances. Expensive mediocre food, people who think they are alone in the airplane and many more. But in spite of all that…I still love flying.

This BLOG is about Rhapsody isn’t it?

Yes, yes, it is. I mix stories about my life that mostly consists of traveling the world to spread the word about Rhapsody and some technical stories about Rhapsody itself.

Today we had a discussion with my colleagues from development about Container Classes is Rhapsody. Container classes are Classes that have a 1:* relationship with another class. (See picture) So Class ProductDatabase has a 1:* relation with the Class Product. What does that mean? And especially for the Code Generation in Rhapsody. That depends on the language you are using in Rhapsody.

OK. in ‘C’ first.

relationsDiagram.JPG

In ‘C’ the 1:1 association or aggregation between A and B mean that you have a pointer to B in your A class (struct) A composition will have a complete struct B inside A.  The “*” relation will generate a RiCCollection B. What is a RiCCollection? This is basically an Array where items of “B” can be stored. You don’t know where the items are stored so when you are searching through your collection you will have to look in every item in the collections and compare to see if you found the right one. (On average you have to search half of the array) When that is no problem you can use this. There is a property you can set “Ordered” that will create a linked list instead of jus an array (a RiCList). That means you still have to search through half the list (on average) to find a specific item but you can order the items to find them quicker. Here is the code belonging to the 3 relations in C and in C++:

The “qualify” field will allow you to select one of “B”‘s attributes as a key. (It creates a RiCMap). The items are stored in a balanced binary tree, storing takes a while since the tree might have to be re-balanced again, but searching is way faster, on average 2log(n) (For searching 1024 items you need to compare a maximum of 10 times)
You can also just use multiplicity to do this, just create a 1:10 relation and you will have a static array of 10 “B”‘s that you can use in the same way.These constructs doe not only are generated inside the structure that represents your class, there are also functions generated (Yes also in case of the static array!) to add items, to delete items, to delete the complete structure and depending on the kind of container some search functions.

What about ‘C++’?

C++ does not know Container Classes by itself but the Standard Template Library does. Since not all compilers support the STL, tree are also non-STL container classes.

The property:

CPP_CG::Configuration::Containerset

can be set to:

  • OMContainers, OMContainer, OMList and OMMap
  • STLContainers, vector, list and map
  • OMUContainers, OMUContainer, OMUList and OMUMap

As you can see there are even Templateless versions for the poor amongst us that use a compiler that does not support templates. The STL versions use list, vector and map from the STL. The same functions are available, in ‘C++’ they are all inherited from the container type. Something to keep in mind is that searching the structure will have a different way if using iterators.

Now where’s the drawback?

There is no real drawback here, the only thing is that this will use memory. But there are enough properties to limit that to just the amount you need. The routines are consuming some of your ROM as well of course. But they make your life easier. A lot easier. But check your map file to see what is used there. TODO- pictures from the advanced trainings, list of the functions in C and the different iterators in C++.

The model I used to make the pictures is here: ContainerClasses

OK, that’s it for today!

Happy Holidays! And have fun 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. Bot 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 bout 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 prefect 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 extend) 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 extend 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)

Time to Evaluate!

Getting nostalgic

In the days of Windows XP (Who’d ever thought I would say that I gladly wanted to go back to XP…) installations were easy. Your PC basically belonged to you and the OS would not interfere in anything you do.
How different is that now. Since Vista (may it burn in …..) we are plagued with an OS that tries to force its will upon us. And installing a complex environment like Rhapsody and a few add-ons becomes a nightmare.
We used to let people install everything during a one day training. INstall took about 30 minutes and would work 99% of the time.
Now it takes hours and the success rate is 50% or so. Even with our own installer, install manual and physical presence of somebody that “knows what he is doing” it is just too difficult to get everything running reliably. Have I already mentioned that I hate Windows?

Brave new world…

At Willert we use Macs. Since 10 years, give or take, we have kicked out our Windows laptops and buy expensive Macs, just to prevent us from hiring multiple sysadmins to keep our stuff running.
Unfortunately, IBM, (a large Apple user itself ! ), does not deliver Rhapsody on a Mac. Yes there is an Eclipse plugging but that is just a “facade” plugin. It calls the Rhapsody DLL’s to do the real work. It won’t work on Linux or Mac OS. Duh…
So we use VmWare (we kicked out Parallels because they’ve become too greedy) to run Windows on our Macs. Works OK. So we are used to virtualize.
IBM has now taken this virtualization to a new level. You can have images that you can instantiate and distribute.
So after installing all tools and testing that they work correct, we can now let other people access it using Remote Desktop Connection. This will work from a Windows PC (It is built-in there) and from a Mac (download Microsoft Remote Desktop for free from the App-Store) And apparently even on a Linux Computer, you have to download a 3rd party tool there but it works.
Using RDC requires an internet connection but not an extremely fast one, it only transfers the screen using compression.

Provisioning an Image

Once an image is provisioned, you will receive data on how to access it:

  • IP address, mostly 169.x.y.z
  • Login name, mostly administrator
  • Password,8 character random generated

On a Windows PC

It is pretty easy on Windows, everything that you need is built-in. In the menu under “Windows accessories” you will find “Remote Desktop Connection”.

RDC1.JPG

This is how that looks. First you click on “Show Options”.

RDC2

After “Computer” you type in the given IP address, 169.x.y.z:3333 (Important, the 3333 is a port number and needs to be there.)
After “Username” you type “administrator” (Or the username that was given to you.
The password will be asked when you connect. As you see it is possible to store the login credentials on your PC. You might want to do that, it is easier to restart your image.
Click on Connect and RDC will now ask you for your password. Copy it from the data you have received.

rdc3

Then Windows gets suspicious about the certificate of the WebSite. It will display it. You have to tell Windows that it is OK, otherwise…. no go… so click on “View certificate”

rdc4

Then click on “Install Certificate”

rdc5

This is OK, click “Next”

rdc6

Again click “Next”

rdc7

 

And now on “Finished”.

rdc8

The Certificate is now installed, you only need to do this once.

rdc9

On a Mac

You first need to download and install the RDC App from the App store. App Store iconApp store RDC

Click on “install” and then on “open”. Confirm that you trust Microsoft and RDC starts.Mac RDC1.png

Click on “+” (“New”) and fill in the credentials you were given.MAC RDC2.png

  • Connection name, You can give your connection a logical name.
  • PC name, the IP address that you were given, i.e. 169.x.y.z:3333 (The 3333 is mandatory)
  • User name, the name given, mostly “administrator”
  • Password, what you were given
  • The rest can be changed if you like. Lower resolution and colors mean less data.

Now just close the window and press “Start” with your image selected.

And now?

Your image will be ready and started. Login is automatically, you can start using the tools that are installed in the image.

Images are valid for a certain period of time, I’m still trying out the facility so I can not say how long this is exactly.

So contact me when you want to try Rhapsody and our tools, I will provide you with an image.

Happy evaluating 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 anther 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 hoe 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 l 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, slighty 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 co-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 take 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, know 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 too 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 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 refered 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 and then you can open the original model, ditch the package you just copied and do “Ad To Model” again, this time adding the packag 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 ittle 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)

 

Engineering@Scale Tech Day

Join us for Engineering@Scale Tech Day. Learn how new solutions and technologies are helping to lead the innovation agenda while addressing the complexity challenge in the automotive industry.

This event will focus on engineering systems and software development.  We will feature sessions around industry best practices and the core processes of requirements management, architecture design, collaboration, change and configuration management, test and quality management, product line engineering and variant management. Improve your skills, network and collaborate with industry experts.

What to expect:

  •  Keynote session by the American Center for Mobility
  •  Technical sessions for novices to experts, with topics ranging from:
    •  Scaling Agile to the Automotive Enterprise
    •  Convergence of MBSE and the Product Innovation Platform in Automotive
    •  Connected Product initiatives with Digital Twin and Digital Thread
    •  Improving your processes with Automtoive SPICE
    •  Feature-based Product Line Engineering and Operations for the Automotive Enterprise
    •  Certifiable framework for AUTOSAR
    •  And more
  •  Networking Lunch (no charge)
  •  Plus, tour the spectacular automotive collection at the GM Heritage Center.

 Register today and share wtih a colleague!

General Motors Heritage Center
6400 Center Drive
Sterling Heights, MI 48312

Thursday, October 12, 2017 from 8:00 AM to 4:00 PM (EDT)

« Older posts Newer posts »

© 2025 Rhapsody TechBlog

Theme by Anders NorenUp ↑