Author: rhapsody207 (Page 2 of 15)

Post-COVID Travel & iFix

Back on the road

Traveling has started again. I have already had a few trips, and I am now writing this from Lounge 52 on Schiphol, ready to fly to Detroit for the third time in 3 months.
Everybody must have heard the airport, road, and train horror stories by now, and I can say: a lot of them are correct.
Schiphol, my home airport, is really busy. I am privileged because I have an AirFrance/KLM Platinum Frequent-Flyer Pass. this gives you “Sky Priority” which means I can sneak in smaller queues for Check-In, Security Check and Passport Check. But lately I was with my son, who does not have that, and I had to join the full 2hr Security queue. Not funny. And apperently we were lucky, on some days the queues are longer than four hours and loads of people miss their flights.
As an “Airport Professional” I always know ways to shorten the waiting time, and I do not have to search my way, I know the way. (Which on Schiphol is a lot easier than on other airports) That helps a lot but it is annoying to do something that used to take minutes but now takes hours.
Also on the road the traffic jams are increasing and the trains are fuller (because shorter…) and sometimes even not driving due to staff shortage.
Add to that the increased change that one or more of your flights can be cancelled at random and you have the ingredients for “Travel Roulette”

Back on the release

Also delayed for quite a while were the Rhapsody releases. It was not entirely COVID that caused this but also exchanging the outsourcing crew to another country and then back to internal development (Which I definitely approve of and, although it does not make me happy, willing to accept the long delay )
But finally, now is the time for the first update in a long time.
The mechanism has changed. The new release is an iFix. IBM is changing to a more agile release schedule, there will be more often releases in the future.
Same for the extensions, we already have a 3 month release schedule. And teh extensions are available as iFixes

Naming Confusion

A while ago, IBM decided to rename all of its products. It happens more in large companies where decisions are not made by the people that deal with stuff but by the ones without a clue…
Sometimes there are new “Buzzwords du Jour” because marketing wants that.
Well, it is what it is. Just ignore it (I do)
The annoying thing is that it is challenging to find Rhapsody on FixCentral. It is known under different names:

NameVersions
Telelogic Rhapsody< 7.4.0.1
Rational Rhapsody7.5 – 8.4
IBM Engineering Systems Design Rhapsody (Rational)9.0 –
IBM Engineering Systems Design Rhapsody (IBM Engineering)9.0 –

So search for the correct names when you need an iFix.

9.0.1 iFix3

That is the name of the latest iFix. You must de-install the current 9.0.1 Rhapsody since it is a “new” install. The installer will check and will inform you about that.

Back in Europe

So the last trip was again challenging. The flight to Detroit was OK (Just 2 hours late, that’s peanuts nowadays) The next day to New Orleans was cool. I was sitting next to an older lady that had not flown for 30 years. Her last flight was a horror flight, and she went back by car.

I was busy comforting her and explaining the noises of an aircraft, and at the same time, realizing I just ignored a lot of stuff myself because I’m used to it. I never realize that I equalize the pressure when starting or landing. We arrived in New Orleans on time, and I like to think I made a difference for somebody.

The flight back was not as cool. I received a text message when I was already trying to sleep. ( KLM and Delta are on my VIP list… they can disturb me in all iPhone Focus Modes) The first flight from New Orleans (MSY) to New York (JFK) was delayed (How do they know that a day before???), which left me with a 59-minute step-over time. Not enough.
So i started calling with the KLM Platinum Hotline, they couldn’t help me, the flight was handled by Delta and I was checked-in. Then back to the Delta Website and I could reschedule my flight to take a later flight from New York. All good.
Until I was, again, disturbed by a text that promissed a further delay. (…. many curse words censored ) So I, again, rebooked. Just to find out after an hour that the flight I selected now had an 8 hour stop-over. Not Good.
So I rebooked again (At 5 am) to a flight via Detroit. Losing my Economy Premium seat and the KLM flight (Delta hates KLM Platinum passengers) And then finally I slept for like 2 hours.

That flight went, and I managed to upgrade my seat, at least to have a free seat next to me. But sleeping just wasn’t in it. Too much noise. So after a second night with just 2 hrs of sleep i was lightly tired. But at home.

I still like travel. And Zoom/WebEx/GoToMeeting/Skype//.. are fine instruments. But they do not replace the need for an occasional face-to-face(F2F) meeting. That is always worth the trouble.

So happy upgrading with Rhapsody

Walter van der Heiden ( wvdheiden@sodiuswillert.de )

Automotive Systems und Software Engineering zwischen Standards, Effizienz und Qualität

Nutzen Sie unseren Automotive Day, um von den Erfahrungen Ihrer Peers zu profitieren und Ihre eigenen Ideen und Fragen einzubringen. Unsere Kunden Mercedes, Continental, Hella und Marquardt werden über ihre Projekte berichten, und gemeinsam mit unseren Partnern IBM, Method Park und pure-systems ergänzen wir Erfahrungen aus der erfolgreichen Anwendung von Prozessen, Methoden und Tools.

Alle Infos und das Programm finden Sie hier

Outsmart the Installer

Introduction

have you ever had that? Ready installing, looking at the result and then think @#$%^&*() i forgot something?

Mo problem, you can run the installer again! But unfortunately you’ll see that this doesn’t help you.You can select repair (Which just replaces all files you had already installed), uninstall (Yes, cool, then I can start over) or modify. The last option looks promising but it only allows you to install extra add-ons. not change your existing installation. So de-install? Not so fast, my friends…

Re-using the code has interesting side-effects..

Apparently IBM has re-used the code of the installer. So when you select “Modify” you will notice a “Back” button. Press it and you see that you go back in your installer and you actually CAN change stuff!

So. That’s it for today!

Happy re-installing Rhapsody!

Walter van der Heiden (wvdheiden@sodiuswillert.com)

Uninstalling

WHAT??? Why would you want to uninstall???
Hold your horses…. It happens… You might want to re-install, install in a different sequence, or… IBM withdraws an iFix. As happened this week when the Rhapsody 9.0.1 iFix2 was removed from the FixCentral.

FixCentral

You download your Rhapsody versions from IBM. But apart from new versions there are also iFixes, these do not offer new functions but bug fixes.

How do I get an iFix?

At the FixCentral Website from IBM. https://www.ibm.com/support/fixcentral/

I only see new/old versions of Rhapsody?

That is because the name of Rhapsody has changed. Since 9.0 the name is IBM Engineering Systems Design Rhapsody. Older versions (until 8.4) were called “Rational Rhapsody”. You have to enter the correct name in the search field.

How do I download an iFix?

You can figure it out, I think, on the website. There are 3 possibilities to download, HTTP, FTP and DownloadDirector. The last one is comfortable but you have to install java for it and then run a java installer, that is not aways a possibility.

How do I install an iFix

When you have downloaded the correct iFix, unpack it and click on the setup.bat file.
The older iFixes had a “By Hand” iFix, you had to unpack that over your Rhapsody install directory and then run a batch file to update the registry.

Do I have to install all iFixes?

If you are about to install an iFix: only install the latest one. It will contain all previous iFixes as well. (Cumulative)

How do I uninstall an iFix

Normally you should not have to do that but when you have to (When IBM redraws an iFix like 9.0.1 iFix2): IBM states that you use the Windows Uninstall Feature. ( https://www.ibm.com/support/pages/how-uninstall-rhapsody-interim-fix )
I have not found the iFix in there, i could not de-install it. So IMHO there is only one solution: uninstall Rhapsody and re-install. (And if necessary after that instal the right iFix. Sorry.

That’s it:

Happy modeling with Rhapsody!

Walter van der Heiden (wvdheiden@sodiuswillert.com)

MESCONF 2021

Finally, the MESCONF will be….. online again…
Luckily it is still packed with awesome stuff!
The rest of this BLOG entry will be in German….

Model based Engineering – Hype oder Hope?

Das erfahren Sie auf der MESCONF – DIE Konferenz zum Thema Modellierung

Treffen Sie Top-Experten, Anwender und Toolhersteller. Lassen Sie sich inspirieren, bringen sie Ihre ganz konkreten Fragestellungen ein und diskutieren Sie Lösungen mit gleichgesinnten Praktikern und Experten. Machen Sie sich schlau über aktuelle Trends, Methoden, Tools und Lösungen. Ein Tag rund um das Thema Modellierung von Embedded Systemen im Systems und Software Engineering sind ein gut angelegtes Investment in Zeiten des rapiden Wandels und der Komplexitätsfalle.Zum 6. Mal tagt diese jährlich stattfindende Konferenz und diesmal wird Sie folgendes erwarten:

Innovative Formate für innovativen Wissensaustausch

Fachvorträge

  • 1 – “Mehrwert von Modellierung und Simulation für die Produktentwicklung”
    Dr. Wladimir Schamai
    – Head of Modeling & Simulation (M&S) bei Danfoss
  • 2 – “Und wo soll ich anfangen?” Wie Einführung von MBSE in Organisationen klappen kann
    Prof. Dr. Andreas Vogelsang
    – Professor für Software & Systems Engineering am Institut für Informatik der Universität zu Köln

Open Space

Neben den Fachvorträgen bietet die Konferenz in Form von Open Space viel Raum für den direkten Erfahrungsaustausch zwischen Anwendern und Experten (angefangen von Methoden-Experten bis hin zu Werkzeug-Herstellern).

Fachvorträge der Hersteller

Vortrag, Mini-Workshop oder Tutorial 

Mehr Informationen

Die Konferenz findet dieses Jahr online und nur an einem Tag statt – 23.09.2021 – Seien Sie dabei!

Warum MESCONF?

Wenn bei einer konstruktiven Tätigkeit mehr und mehr Zeit für Änderungen aufgewendet wird und eine Vielzahl von Beteiligten in Kontext gehalten werden müssen, macht es Sinn, erst einmal Modelle zu erstellen. Das ist ganz und gar nicht neu und hat in Folge immer zu mehr oder weniger großen Revolutionen geführt. 3D in der Mechanik und VHDL in der Mikroelektronik sind gute Beispiele dafür. Aber Hoffnung alleine hat niemals geholfen. Beim Modellieren von Systemen und Software wird vieles falsch gemacht und wer glaubt, 
der Komplexität mit Simplifizierung zu begegnen, darf keine Revolution erwarten.

Einige Experten und Anwender haben sich darüber Gedanken gemacht und die konkreten Erkenntnisse in einem „Modeling Manifest“ ( http://mdse-manifest.org ) definiert und dokumentiert.Was sich darin einfach liest und logisch anhört, ist in der Praxis aber auch häufig nicht so gradlinig umsetzbar und es stellen sich immer wieder neue Fragen.

Deshalb gibt es die MESCONF, eine Konferenz mit hohem Fokus, genau auf diese Problematik hin zugeschnitten und hocheffizient. Am 17. September 2020 treffen sich Experten mit Anwendern, um „best-practices“ auszutauschen oder auch ganz neue Erkenntnisse zu gewinnen.

mehr lesen
Organisatoren der MESCONF
SodiusWillert SAS – Germany
Hannoversche Str. 21
31675 Bückeburg
05722 9678 60

oose innovative Informatik
Schulterblatt 36
20357 Hamburg
040 4142500

SiSy Solutions GmbH
Promenadenring 8 B
02708 Löbau
03585 470222 

M2M Magic

Introduction

M2M is a product from SodiusWillert that helps you to save large amounts of time. It converts Rhapsody models made with certain profiles to other profiles. For example, taking a SysML model and convert that to an AUTOSAR model.

How does it work?


It is not really magic… actually you do your own magic. M2M uses a ruleset to define what elements are moved to which other elements, for instance: take a SysML Block and transform it to an AUTOSAR Block.
Now that would be an easy one. You can also make it more complicated. E.g.: You can define that a SysML Block with stereotype “SWC” will be converted into an AUTOSAR SWC.

That is already more interesting. But it doesn’t stop there. The rules allow you to define multiple elements to convert to one element or one element to convert to multiple elements (1:1, 1:m, n:1, m:n)
But then the fun really starts because you can also add functions (written in JavaScript) to do pre-conversion checks (“Do I want this specific element to convert?”) or post-processor actions (:e.g. “Rename this element” or “Create other elements on other places”)

You only sync once?!?

This opens a lot of posibilities to transfer model element between models from different profiles. Using M2M in combination with DiffMerge opens even more possibilities.
This helps you in keeping different models up-to-date, no matter where you make changes.
So you can have multiple different views on your System under Development, a Systems Engineering view, an AUTOSAR view, a Software View and maybe even a source-code view of the used BSW (Basic SoftWare) all of them subject to changes but all of them in sync thanks to M2M.

Put the power where you need it.

Some models have certain possibilities that others don’t have and vice-versa.
This means that you should model in the profile that offers you what you need.
SysML is perfect to model requirements and use-cases and link them, the AUTOSAR model gives you feel insights in all parts of your software and the UML model has a bit of both (and state machines…)
M2M allows you to add your own information exactly where it fits best.

I want to have this!!

That is cool. Contact me to get an evaluation version and an evaluation license.

Rhapsody vs Preevision

Introduction

When developing systems or software for an Automotive environment you cannot avoid using AUTOSAR. This is the standard for exchanging information between involved parties inside Automotive projects, can be an OEM requesting a TIERx to do the development of a certain ECU or small companies doing parts of software applications that will run on that ECU.
AUTOSAR also defines a standard software layer (BSW or in Adaptive ARA) that helps you developing on different microcontrollers without really knowing all details.
Then there is the Operating system, which on the Classic Platform is almost completely statically defined an generated out of the information in your AUTOSAR model. Also called RTE.
There are several companies where you can purchase tools to help you creating applications and generate the stuff that you need to make a complete production ready application.
They are from companies like Vector, Elektrobit, dSpace, Dassault but also from Siemens (former Mentor). We used to use ArcCore but they have been purchased by Vector and integrated in their tools now.
The problem with most of these tools is that they are looking at things from the “low-level” side. There is a lot of detailing necessary before you can work with these tools and that certainly is not helpful when you only want to create an overview of the blocks you are going to implement.
You can use Visio or a cheap UML tool for that, this will not give you the benefits you want since they are solutions that will not allow you to incorporate that information in a dynamic way in your AUTOSAR model.
There are also tools from previous named companies that try to overcome this disadvantage but these tools still work in a proprietary world, not with an open standard like UML or SysML

Why UML (or SysML)?

These are standards. And standards that were developed quite a while ago with many people that have knowledge of them. Standards that are taught on universities.
The UML was made out of lots of other smaller pieces of standards that were already available, hence the “Unified” in the name. It was made especially for handling the growing complexity of software projects. Source code (generation) played a role, of course, but the emphasise was on the handling of complexity. This was done with different diagram types for different aspects of the system to be developed. Every person that is involved in the project can enter information and extract information from the UML model and the exact right level without being disturbed by information that is not relevant for that person.

Rhapsody AUTOSAR profile

Rhapsody has, for quite a while now, an AUTOSAR profile. This allows Rhapsody to read in and write ARXML files. They are then stored in a Rhapsody Model so they can be edited on an AUTOSAR level. Rhapsody can even convert information between AUTOSAR versions!!
All AUTOSAR Elements are implemented and can be edited. This is not always the most comfortable way, some things are better done by using an AUTOSAR dedicated tool like Vector’s DaVinci for instance.
For use with the Code Generation from Rhapsody we also have an “AUTOSAR lite” profile

Rhapsody Rulezzz!

So, how do we do that with Rhapsody then?
Rhapsody is a UML tool that exists since 1996. It also does SysML (Because that is a UML profile, although that will change in the SysML 2.0 release).
But that is not all, the tool is part of the IBM Engineering Tools and can exchange information with DOORS, DNG and many other tools via OSLC on the Jazz platform.So your requirements from DOORS or DNG can be seen and linked inside Rhapsody. The same platform also allows you to use widespread external tools like Jira from Atlassian or even link to your production using WindChill from PTC.
And as already said above: Rhapsody can read ARXML files and exchange them with all other AUTOSAR enabled tools. You can even use MATLAB Simulink models linked to Rhapsody models.
This all enables you many different views on your application or system but still have these views synchronized (or even linked when they use OSLC)

Doing the Magic: M2M

Of course Linking informations is ALWAYS better than synching information, sometimes linking is just not possible. For that we have M2M (Model to Model) that can convert Rhapsody models with different profiles. It is rule-based, you create rules like:

When a certain element of MetaClass “SourceMetaClass” and a stereotype “SourceStereoType” is found
Then see if certain conditions “Conditions” apply
If that is the case, convert the element to an element of MetaClass “TargetMetaClass” with stereotype “TargetStereoType”. If there is a linked operation “Operation” then execute that.
All Rules have a sequence number, lower numbers will be executed first and exclude higher sequence rules.

After applying the rules, the resulting model must be merged back using (built-in) DiffMerge. This ensures that changes can be made to single model elements without redoing the whole model.

This allows a very sophisticated way of maintaining different views to the same information.

Happy Modeling with Rhapsody

Walter van der Heiden (wvdheiden@sodiuswillert.com)

Rhapsody vs Preevision

Introduction

When developing systems or software for an Automotive environment you cannot avoid using AUTOSAR. This is the standard for exchanging information between involved parties inside Automotive projects, can be an OEM requesting a TIERx to do the development of a certain ECU or small companies doing parts of software applications that will run on that ECU.
AUTOSAR also defines a standard software layer (BSW or in Adaptive ARA) that helps you developing on different microcontrollers without really knowing all details.
Then there is the Operating system, which on the Classic Platform is almost completely statically defined an generated out of the information in your AUTOSAR model. Also called RTE.
There are several companies where you can purchase tools to help you creating applications and generate the stuff that you need to make a complete production ready application.
They are from companies like Vector, Elektrobit, dSpace, Dassault but also from Siemens (former Mentor). We used to use ArcCore but they have been purchased by Vector and integrated in their tools now.
The problem with most of these tools is that they are looking at things from the “low-level” side. There is a lot of detailing necessary before you can work with these tools and that certainly is not helpful when you only want to create an overview of the blocks you are going to implement.
You can use Visio or a cheap UML tool for that, this will not give you the benefits you want since they are solutions that will not allow you to incorporate that information in a dynamic way in your AUTOSAR model.
There are also tools from previous named companies that try to overcome this disadvantage but these tools still work in a proprietary world, not with an open standard like UML or SysML

Why UML (or SysML)?

These are standards. And standards that were developed quite a while ago with many people that have knowledge of them. Standards that are taught on universities.
The UML was made out of lots of other smaller pieces of standards that were already available, hence the “Unified” in the name. It was made especially for handling the growing complexity of software projects. Source code (generation) played a role, of course, but the emphasise was on the handling of complexity. This was done with different diagram types for different aspects of the system to be developed. Every person that is involved in the project can enter information and extract information from the UML model and the exact right level without being disturbed by information that is not relevant for that person.

Rhapsody AUTOSAR profile

Rhapsody has, for quite a while now, an AUTOSAR profile. This allows Rhapsody to read in and write ARXML files. They are then stored in a Rhapsody Model so they can be edited on an AUTOSAR level. Rhapsody can even convert information between AUTOSAR versions!!
All AUTOSAR Elements are implemented and can be edited. This is not always the most comfortable way, some things are better done by using an AUTOSAR dedicated tool like Vector’s DaVinci for instance.
For use with the Code Generation from Rhapsody we also have an “AUTOSAR lite” profile

Rhapsody Rulezzz!

So, how do we do that with Rhapsody then?
Rhapsody is a UML tool that exists since 1996. It also does SysML (Because that is a UML profile, although that will change in the SysML 2.0 release).
But that is not all, the tool is part of the IBM Engineering Tools and can exchange information with DOORS, DNG and many other tools via OSLC on the Jazz platform.So your requirements from DOORS or DNG can be seen and linked inside Rhapsody. The same platform also allows you to use widespread external tools like Jira from Atlassian or even link to your production using WindChill from PTC.
And as already said above: Rhapsody can read ARXML files and exchange them with all other AUTOSAR enabled tools. You can even use MATLAB Simulink models linked to Rhapsody models.
This all enables you many different views on your application or system but still have these views synchronized (or even linked when they use OSLC)

Doing the Magic: M2M

Of course Linking informations is ALWAYS better than synching information, sometimes linking is just not possible. For that we have M2M (Model to Model) that can convert Rhapsody models with different profiles. It is rule-based, you create rules like:

When a certain element of MetaClass “SourceMetaClass” and a stereotype “SourceStereoType” is found
Then see if certain conditions “Conditions” apply
If that is the case, convert the element to an element of MetaClass “TargetMetaClass” with stereotype “TargetStereoType”. If there is a linked operation “Operation” then execute that.
All Rules have a sequence number, lower numbers will be executed first and exclude higher sequence rules.

After applying the rules, the resulting model must be merged back using (built-in) DiffMerge. This ensures that changes can be made to single model elements without redoing the whole model.

This allows a very sophisticated way of maintaining different views to the same information.

Happy Modeling with Rhapsody

Walter van der Heiden (wvdheiden@sodiuswillert.com)

AUTOSAR

Introduction

AUTOSAR is the standard created to support software development in automotive environments.
Why is there a special standard for that? Is software for cars special?
No, the software itself is not, it’s just plain ‘C’ (lately also ‘C++’) But the circumstances are different.
Are there special Tools for that? Yes there are. Wouldn’t it be nice to just use the normal Development Tools? YES Of Course!
Willert has all these tools and the add-ons necessary to use them in an AUTOSAR environment!

Differences

  • Timing is critical, in more than one way.
    There is the timing in the software itself, which is still critical although CPU performance increased severely last years. This is partly because most software in cars is “polled”. Due to the fact that there are algorithms in cars where developers use Simulink (and code generation in TargetLink and/or Embedded Code) that is “control loop software”, so does stuff every 10 milliseconds.
    That is OK, it works but your software is ALWAYS doing “something”. And while different paths through your code are taken (with different execution times) this is difficult to manage.
    Then there is the timing in the release of cars. That is different than most projects…. A cars introduction and production is planned years ahead and there is NO DELAY possible. Period. You can easier shift the timing of a solar eclipse that the intro of a car. So software development cycles must be predictable (they aren’t but they must be….)
  • Cooperation not only between colleagues but worldwide between multiple companies.
    Yes. Cars are defined by OEM’s, parts are made by Tier 1,2,3 etc by companies that have developers everywhere over the world.
    The environment supports exchanging information on buts and bytes and, for all, the possibility to exchange pieces of software built by one company for other pieces. AUTOSAR (ARXML) makes this possible.

How can Rhapsody help?

That is not too difficult. Rhapsody has the AUTOSAR Profile. This allows you to read-in ARXML files and make them visible, graphically, in Rhapsody.

AUTOSAR Menu


You can also edit the AUTOSAR model in Rhapsody. Or even create it there and export what you’ve mad to an ARXML file that can be read by an AUTOSAR Authoring Tool like e.g. DaVinci.

AUTOSAR Importer

Here you can import any ARXML file. Rhapsody will import it (Remember: Use the 64Bit version to import, 32Bit is way too slow)

Rhapsody AUTOSAR model

Another possibility to fill your AUTOSAR model is by using plain SysML or UML with the simplified AUTOSAR profile. This gives you stereotypes for the most used AUTOSAR elements. The M2M Tool will then synchronize your 2 views, the AUTOSAR view and the SysML/UML View.

M2M Workflow

In this way your models will always be up-to-date, wherever you make your changes.
The second step to use Rhapsody is then to generate code that can directly be used inside your AUTOSAR environment!

This picture shows the workflow. Mixing this with other tools like Simulink (even with co-simulation) is no problem!

The AUTOSAR Workflow

Reverse Engineering

This allows you to use the code from your AUTOSAR Tool (Basic Software and other RTE functions) in your Rhapsody state-machines or functions.
In contrast to the previous Rhapsody Workflow (RIMBO and then link your Rhapsody App in the AUTOSAR code) this is the much easier way: Just use a few stereotypes and you can use the Rhapsody Code you already know (If you’ve used Rhapsody for non-Automotive environments) in an AUTOSAR environment.

Contact me if you need more information. I can arrange an evaluation version!

Happy driving with Rhapsody!

Walter van der Heiden (wvdheiden@sodiuswillert.com)

Code generation

Introduction

I am a heavy FaceBook user. ( I know, I know….) One of the things FaceBook does is some kind of daily report with things that you posted exactly x years back.
I used to really like that but in this COVID times these now start to annoy me because they remind me of the travelling times I had before.
I am now officially no longer the “Travelling Modeler” but the “Stay at Home Modeler”…
Well, it is what it is. Since 2 weeks I am not even allowed to travel to the office anymore since Germany does not want to have Dutch people without being tested or quarantined.

Now I assumed my life would be a lot less stressful but nothing is more untrue, I’m now clicking myself from online meeting to online meeting with Zoom via Webex, Skype and Teams back to my own desktop.
When there is time at night, the family takes up that time. Don’t get me wrong, I love that and it’s fantastic but there is hardly time left to write a BLOG. Like I used to have in Airport Lounges and Hotel Rooms.

So I just have to take that time otherwise and I hope I will succeed in giving you the Rhapsody info you need from my home.
The main picture of this post is the view from my living room. Could be worse I think.

Conspiracy Theory

They’ve always been there but in the Netherlands it’s a hot item nowadays: Conspiracy Theories about everything but now more than ever about COVID. I am not going to discuss that here, that is where I have FaceBook for, but I want to discuss one work related “Conspiracy Theory”: People are denying Code generation. This is where I want to stand up and convince people.

Because this hits me, time after time. Why on earth would you want to use UML and SysML to just draw pictures and then write software by hand if your tool can generate the code for you???

The sad thing about people believing in Conspiracy Theories is that it is extremely hard to convince them otherwise. They always have arguments “out of the blue” mostly lacking any truth or “conveniently” bending truths.

Same with the “Anti-CGers”. All their arguments have been wiped away years ago but they keep popping up.

  • Code Generation makes code too slow/big/unreadable
    Not true. In fact, our Code generator makes smaller code than the average developer does. Certainly when projects get either large or old or both. We all have seen “old” code that is no longer understandable. certainly if the developer is a fan of “It was hard to write, it should be hard to read”.
    Generated code is also faster and perfectly readable. in fact, the consistent structure of the code makes that you can read ALL code. Also the stuff your colleagues have written. The fact that you can make changes to your state-machine and the whole code is written new, from the ground up, instead of decorated with all sorts of work-arounds is saving valuable development and testing time.
  • creating a model that is suitable for Code Generation takes longer than simply write the code.
    Not even closely true. When using Code generation from a UML model you have to create a correct model anyway. Otherwise your model is something that only you can understand. UML and SysML have a very precise semantic, if you don’t follow that,your code has nothing to do with your model.
  • Generated Code can not be certified.
    On the contrary: Certifiers love the consistency and, for all, the traceability of generated code. Yes, traceability. Automatically generated if you create the links fro the requirements to your model, the code generator automatically inserts the requirements numbers and text in your code. Without an error. Since testing can be done from the model (but also in the generated code) automatically, setting up that for a certification is easy. I know, I’ve done it. Multiple times.
  • Code generators are expensive.
    Well that depends on what your perception on “expensive” is. But for less than 5k you have a UML Tool that generates code in ‘C’, ‘C++’ or ‘JAVA”, including highly optimized framework and debugger. Including a full year of support. By me. Or my colleagues. I think that is a great deal.

In times where we have less social contact between the developers of projects, using a good structured code is becoming even more important. Cooperating is hard enough, let’s cooperate on model level so the communication is much clearer. Let the Code Generator do the hard work.

The truth is that for many die-hard ‘C’ and even ‘C++’ programmers it is hard to leave their “guru-status” behind and use a code-generator that writes better, smaller, faster and more readable code.
But like with COVID: it is what it is. You will not become a “lesser Guru” by letting a code generator do the largest (and mostly boring) part of your job.
Even the best code generator needs a smart human being to operate it the right way: you.

So! Happy code generating (at home!) with Rhapsody!

Walter van der Heiden (wvdheiden@sodiuswillert.com)

« Older posts Newer posts »

© 2025 Rhapsody TechBlog

Theme by Anders NorenUp ↑