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

Month: April 2018

Moving Rhapsody

Kings Day

Today is Kings Day in the Netherlands. We celebrate that our King (“Willem Alexander” but we may call him “Willy:) has his birthday. That is quite a party over here, I can certainly recommend being in the Netherlands on that day (and the night before)

Koningsdag-Op-Vrijdag

Kings Day Party in the Netherlands

So everybody in the Netherlands has a day-of. Unfortunately I work in Germany… so I have to work. Therefor I have many other holidays that are unknown to the Dutch…

Willy en Familie.jpeg

Willy and family

Happy 51th Birthday, Willy!

How to move Rhapsody (or parts of it)

I’m sure it has happened to you and it did happen to me yesterday. I always install Rhapsody in “C:\Dev Tools” (Yes, with a space, we need to test that…)  but I mistyped (These characters get smaller every year….) and I typed: “C:\De Tools”.
The cowards way out is to de-install and then re-install.
I decided to try out if i could repair it…. As the Germans say: “Nur die Harten kommen in Garten” (Means something like: “Only the tough ones go to heaven”)

I just moved all files and then started thinking that I might have traces left in the registry. So i started…. not regedit. That is a bad tool, come on Microsoft… you can do better. If you dump a very bad idea known as “The Registry” on us, then give us something useful to work on it.
luckily there are better tools, I have the pro version of Registrar (there is a free version that works fine) where you can search and replace in the complete registry. And much more.

So I searched and replaced “c:\De tools” with “c:\DevTools” and it started to look better. Of course i had to repair the shortcuts and now I also “moved” the Rhapsody “Share” directory, Rhapsody was whining when I started it. I had to edit the Rhapsody.ini and the DiffMerge.ini files. Then it was OK. This did not really saved time but it was fun to do.

Splitting the Data Directory

What I forgot is that on our development systems we cannot use the convenient way of installing outside of the Windows “Program Files” directories and then “Install all files in one directory”. i did that but because we have to generate install and setup files from our development installation automatically we need to split the directories. So I had to move the “Data Directory”
If you already installed the Data separately it is easier, you only have to edit the Rhapsody.ini and the DiffMerge.ini (Even if you do not use the latter: edit it! If you ever want to use it it won’t work and you have no clue why!)

Moving the “Share” directory

Well… if you have everything Rhapsody in one directory it’s actually a bit more than just the “Share” dir. You also have to move:

  • Share
  • Samples
  • Sodius
  • Gateway,
    • NOT completely… just the “examples” subdirectory!!
  • Test Conductor
    • A bit more complicated….Screen Shot 2018-04-27 at 10.09.28.png
      This are the files that you have to move to the “Data” part.
  • DiffMerge.ini
    • Search and Replace all instances of the “old” directory
  • Rhapsody.ini
    • Search and Replace some of the instances of the “old” directory, if you had the paths splitted it is easy, if you want to split the installation by hand note this:
      • NOT!!! The paths under the “WelcomeWizard and the WelcomeScreen_Gateway!!! These need to be pointing to the “Program” directory!
      • NOT!! The JavaClassPath and the other Paths under JVM! They also need to point to the “Program” directory!
      • There is also an Entry: “WORKSPACE_ROOT”, you can make that point to a directory where you want to start new Projects by Default!
      • Other directories: check if they point to something that exists…

And then your are OK! At best use a decent editor (Notepad++ or so) and do Search and replace with confirmation.

It does not seem to affect anything but you can repair the Registry so that it seems that Rhapsody was really installed the way you have moved it now.
Just take care that you do not make any mistakes…

Having everything installed in one place is not really making things easy when moving and splitting up Rhapsody. With a decent Registry Editor you can do it quite quick, in case of Test Conductor I think that de-install and re-install (All add-ins can be re-installed! Just call the installer and press “Modify”!) is a lot faster than setting everything by hand.

Note: I installed 32Bit and 64Bit next to each other on one system. Perfectly possible, just rename the Data and program directories (I used 8.3 for 64Bit and 8.3-32 for 32Bit)

Happy Kingsday and have fun modeling with Rhapsody!

Walter van der Heiden (wvdheiden@willert.nl)

Deploy back

Introduction

The title is a bit double today, i was deployed back from india to home and I will explain how you can deploy to your Rhapsody project and not lose the “roundtrip” feature!

Deploy back Rhapsody

The purpose is to deploy and leave all files exactly where Rhapsody has generated them so that you are still able to do roundtripping.
It is not completely straightforward but certainly doable.

Assuming that you have a directory c:\work. In that you have 2 directories, Model and Code. The structure is as follows:

  • c:\Work
    • \Model
      • \MyModel
        • \MyComponent
          • \MyConfiguration
            • “This is where Rhapsody generates your code”
    • \Code
      • “This is where the project file for the IDE is
      • “Generated Model”
      • “RXF”
  • RXF install
    • Tools
      • WSTDeployer
        • WSTDeployyer.properties

The trick is to map the “Generated Model” directory to the “MyConfiguration” Directory. Depending on the age of your deployer this is very easy, easy or just a bit of work….

In some deployers you can edit the name of the “Generated Model” directory in the dialog. If not than there is a deployer.ini file in the RXF installation directory, you can change the name of the “Generated Model” directory to the name of MyConfiguration.

Then move the project file (or the complete project if you have already content in it) to the MyComponent directory, start the Deployer Configuration (In Rhapsody under “Tools”) and select the just moved project file.

That’s it.

Deploy back the traveling modeler

Now that turned out to be a lot more difficult… The planning was to fly home on Sunday Evening. Or technically on monday morning, the flight from Delhi to Paris would leave at 00:15 Delhi Time, 19:45 CET ) I had a late flight (19:30-21:50)  from Hyderabad to Delhi and so less than 1,5 hours for my stop-over. From the trip to India I had learned that this was not nearly enough.
At first I thought, well lets just see what happens but since I did not book the flight as a complete flight, missing the plane from Delhi (to Paris) would not be an option.
So I checked the goindigo.in website and I found out I had been clever enough to book a flight with rebook and cancel options. Yeah….
So I rescheduled that flight to be early enough (16:00-18:25) That would be more than enough.
So I left the hotel exactly at 12:00 (CET: 7:30 Sunday )packed and paid. On my way home! I took a Uber to the airport, that was almost an hour drive ( and almost €8.- )

There I tried to figure out where I had to be. That is not too easy, the airport did not make announcements and I was pretty early so my flight did not yet show up on the monitors. But I could check in my luggage (I had booked the Fast Forward Option, a good idea in India…) quite fast. I did not have to stand in line.
So I was there hours too early but hee… better than 1 minute too late…. Spend some time shopping for home, drinking a Mango Lassi, eating something.
The plane left in time and flew on-time. My suitcase was in-time, the bus was easy to find and even waited for me so I was on the correct airport terminal early. checked in my suitcase within an hour of landing…. So it is possible.
But I seriously doubt if that is reproducible, So i did not mind being early. What I did mind is that just before boarding time, Air France started to make announcements about delays.

The plane was delayed. For more than an hour. Not cool, my connection in Paris was only 1:20…. not too long.
The plane left too late but promised to make up for lost time. It was an old Airbus 330. Also no USB chargers and very limited seating room for a continental flight..
On top of that the two ladies in front of me immediately reclined their seats the moment the “Fasten your Seatbelts” light went of. Sigh.

Next to me sat an old lady, very friendly but she only spoke French. i do speak a little French but not nearly as much as English or German… This was going to be a long flight.
Normally (I’m used to KLM) on long flights, you first get a drink, then dinner, with drinks and another drink or coffee after dinner. Then the lights go out and you can sleep (if you like) Air France pushed out drinks together with the food as fast as possible.
The ladies in front of me continued “sleeping” and did not eat. And refused to put her chair back. So I had about 30cm for my food. Thanks!
I managed to eat and drink that without accidents and noticed that there was not going to be anything more to drink or eat.
The ladies in front of me thought that this was the right time to change their minds and to order food and drinks. Thanks!
Chairs were kept in the sleep position, of course.
I got my earplugs and my face-mask and prepared to sleep. At take-off the family in the middle row, 2 rows before me already had trouble with their 3 kids but as soon as the lights went out the kids decided that it was time to start waking up the other passengers. Thanks!
The seats in the old A330 were clearly out-dated. So with a back that hurt, no sleep what so ever I ate my breakfast. The pilot had broken his promise and did not make up for the lost time so I would arrive an hour late in CDG, not really my favorite airport..
Flight attendents could not give much information, just that we landed on terminal 2F and that I had to go to 2E. Sounds close, but I know CDG, it is not close…
I gathered my luggage before the landing so I could run out of the plane fast, I even ignored the ladies in front of me and as soon as the plane was stopped I ran to the door. There I waited until it opened and I started my morning sport… I had less than 20 minutes but…. I made it! In spite of passport check and even a security check (WHY???) that cost me my water (grrr) I made it to the plane in time.
I crashed in my seat, luckily here there were some better tempered passengers, they had fun about me sweating and panting.
I didn’t care, I made it in time. I was pretty sure that my suit-case would not but I did not care. Air France would take care of that.

And then the pilot announced that we would have some delay because of the fog in the Netherlands… To make a long story short… that took 3,5 hours. Leaving the plane was not allowed (They would not let you in again…. many passengers with connecting flights left because they would not make their flights) so I stayed. There was water and a sandwich and finally we took off.
I arrived at Schiphol around . I thought: well there is a sunny side: My suitcase has made it now: not. CDG was not able to adapt. So I waited at the luggage belt for nothing. Then to KLM, report missing luggage, then the train home. I arrived home at 5:30pm, 32 hours after I left the hotel…

 

Happy modeling with Rhapsody!

Walter van der Heiden (wvdheiden@willert.de)

 

Deploy back

Introduction

The title is a bit double today, i was deployed back from india to home and I will explain how you can deploy to your Rhapsody project and not lose the “roundtrip” feature!

Deploy back Rhapsody

The purpose is to deploy and leave all files exactly where Rhapsody has generated them so that you are still able to do roundtripping.
It is not completely straightforward but certainly doable.

Assuming that you have a directory c:\work. In that you have 2 directories, Model and Code. The structure is as follows:

  • c:\Work
    • \Model
      • \MyModel
        • \MyComponent
          • \MyConfiguration
            • “This is where Rhapsody generates your code”
    • \Code
      • “This is where the project file for the IDE is
      • “Generated Model”
      • “RXF”
  • RXF install
    • Tools
      • WSTDeployer
        • WSTDeployyer.properties

The trick is to map the “Generated Model” directory to the “MyConfiguration” Directory. Depending on the age of your deployer this is very easy, easy or just a bit of work….

In some deployers you can edit the name of the “Generated Model” directory in the dialog. If not than there is a deployer.ini file in the RXF installation directory, you can change the name of the “Generated Model” directory to the name of MyConfiguration.

Then move the project file (or the complete project if you have already content in it) to the MyComponent directory, start the Deployer Configuration (In Rhapsody under “Tools”) and select the just moved project file.

That’s it.

Deploy back the traveling modeler

Now that turned out to be a lot more difficult… The planning was to fly home on Sunday Evening. Or technically on monday morning, the flight from Delhi to Paris would leave at 00:15 Delhi Time, 19:45 CET ) I had a late flight (19:30-21:50)  from Hyderabad to Delhi and so less than 1,5 hours for my stop-over. From the trip to India I had learned that this was not nearly enough.
At first I thought, well lets just see what happens but since I did not book the flight as a complete flight, missing the plane from Delhi (to Paris) would not be an option.
So I checked the goindigo.in website and I found out I had been clever enough to book a flight with rebook and cancel options. Yeah….
So I rescheduled that flight to be early enough (16:00-18:25) That would be more than enough.
So I left the hotel exactly at 12:00 (CET: 7:30 Sunday )packed and paid. On my way home! I took a Uber to the airport, that was almost an hour drive ( and almost €8.- )

There I tried to figure out where I had to be. That is not too easy, the airport did not make announcements and I was pretty early so my flight did not yet show up on the monitors. But I could check in my luggage (I had booked the Fast Forward Option, a good idea in India…) quite fast. I did not have to stand in line.
So I was there hours too early but hee… better than 1 minute too late…. Spend some time shopping for home, drinking a Mango Lassi, eating something.
The plane left in time and flew on-time. My suitcase was in-time, the bus was easy to find and even waited for me so I was on the correct airport terminal early. checked in my suitcase within an hour of landing…. So it is possible.
But I seriously doubt if that is reproducible, So i did not mind being early. What I did mind is that just before boarding time, Air France started to make announcements about delays.

The plane was delayed. For more than an hour. Not cool, my connection in Paris was only 1:20…. not too long.
The plane left too late but promised to make up for lost time. It was an old Airbus 330. Also no USB chargers and very limited seating room for a continental flight..
On top of that the two ladies in front of me immediately reclined their seats the moment the “Fasten your Seatbelts” light went of. Sigh.

Next to me sat an old lady, very friendly but she only spoke French. i do speak a little French but not nearly as much as English or German… This was going to be a long flight.
Normally (I’m used to KLM) on long flights, you first get a drink, then dinner, with drinks and another drink or coffee after dinner. Then the lights go out and you can sleep (if you like) Air France pushed out drinks together with the food as fast as possible.
The ladies in front of me continued “sleeping” and did not eat. And refused to put her chair back. So I had about 30cm for my food. Thanks!
I managed to eat and drink that without accidents and noticed that there was not going to be anything more to drink or eat.
The ladies in front of me thought that this was the right time to change their minds and to order food and drinks. Thanks!
Chairs were kept in the sleep position, of course.
I got my earplugs and my face-mask and prepared to sleep. At take-off the family in the middle row, 2 rows before me already had trouble with their 3 kids but as soon as the lights went out the kids decided that it was time to start waking up the other passengers. Thanks!
The seats in the old A330 were clearly out-dated. So with a back that hurt, no sleep what so ever I ate my breakfast. The pilot had broken his promise and did not make up for the lost time so I would arrive an hour late in CDG, not really my favorite airport..
Flight attendents could not give much information, just that we landed on terminal 2F and that I had to go to 2E. Sounds close, but I know CDG, it is not close…
I gathered my luggage before the landing so I could run out of the plane fast, I even ignored the ladies in front of me and as soon as the plane was stopped I ran to the door. There I waited until it opened and I started my morning sport… I had less than 20 minutes but…. I made it! In spite of passport check and even a security check (WHY???) that cost me my water (grrr) I made it to the plane in time.
I crashed in my seat, luckily here there were some better tempered passengers, they had fun about me sweating and panting.
I didn’t care, I made it in time. I was pretty sure that my suit-case would not but I did not care. Air France would take care of that.

And then the pilot announced that we would have some delay because of the fog in the Netherlands… To make a long story short… that took 3,5 hours. Leaving the plane was not allowed (They would not let you in again…. many passengers with connecting flights left because they would not make their flights) so I stayed. There was water and a sandwich and finally we took off.
I arrived at Schiphol around . I thought: well there is a sunny side: My suitcase has made it now: not. CDG was not able to adapt. So I waited at the luggage belt for nothing. Then to KLM, report missing luggage, then the train home. I arrived home at 5:30pm, 32 hours after I left the hotel…

 

Happy modeling with Rhapsody!

Walter van der Heiden (wvdheiden@willert.de)

 

Hyderabad

Indian Traffic

My destination was Hyderabad this time. Never been there before but I have been to India before. I really like india, nice people, beautiful country. The country is big (certainly compared to the Netherlands…) and the amount of people is huge (1.3 Billion!)
The traffic is just amazing. In Europe we mostly drive on the right side of the road, in the UK they drive on the left side and in India they drive wherever there is place…

The first time i was in India I was picked up at the airport in Mumbai (Bombay) for a taxi-drive to Pune, a 160 kilometer drive that too almost 4 hours.
The first half hour I spent saying goodbye to my life. I was pretty sure I would not survive the drive. After a while, however, you figure out the (actually very simple) rules of driving in India.

  • What’s behind you is not important. It’s their problem, not yours.
  • Honk at least once a minute. (Otherwise your car will explode, I think)
  • use every free space on the road.
  • use all available room next to a road as well.
  • You have priority if you are there first.
  • don’t be aggressive or mad, the others know what they are doing.

That’s about it. The last one is important. Most drivers know pretty well what they are doing. “But India has the highest mortality rate in traffic” i hear you say. Yes true. But that happens only outside of the city. In the city you just cannot drive fast enough to die in an accident.
In the same way you can cross the very busy streets. Have confidence in the others, they will see you and decide which side they will pass you. So just cross the street and don’t hesitate.

Indian Food

The main reason I really like to go to india is the food. Indian food is really awesome. Spicy and very different from our european food. I found out that Hyderabad is famous for its Biryani and that they eat spicier than in the rest of India.
I don’t mind, i’m used to eating quite spicy.
In India they also eat in a special way: with the hand. Only the right hand, the other hand is used for “other purposes” (Do the math…) That is a bit difficult being a lefty but I managed. Yes I ate with my hands as well. When in Rome, do as the Romans.

Deployer

I learned that the system of “Generate Code, Generate RXF files, Deploy, switch to IDE, compile” is still difficult for people to understand.

if you follow the IBM way of creating an adapter for Rhapsody, you generate code in Rhapsody, that will also generate a makefile and you build from Rhapsody. As already said, we decided to do this differently because:

  • command-line length in Windows. Large Applications cannot be built like this
  • too many settings and extra files you need for embedded targets

So we use a different approach.

  • Generate
    Still generates Code from the Rhapsody model
  • Build
    Does not really build but generates the RXF include files that provide the static settings for e.g. the Memory Blocks etc.
  • Deploy
    Depending on the version of the RXF, we have called deploy in the “run” phase but now we call that mostly in the “Build” phase.
    It takes your Rhapsody generated sources (And the RXF includes _and_ the complete RXF and inserts them in a prepared IDE project.
  • Switch to your IDE
    Windows TAB, your IDE will probably show you that files have changed
  • Compile
    Use your IDE to compile. And Debug.

What you lose in this way is the roundtripping, unless… you select the Rhapsody Generated Source Directory as Home for your IDE Project.

Common misunderstandings/problems:

  • using Tools, <RXF> Deployer Configuration only configures the deployer. It does NOT deploy!
  • You have to prepare your IDE project. We deliver the “Getting Started” project (And a backup) that works. Your own project must include some things like “RXF” and “Generated Source” Folders. Check your Documentation.
  • If you have made changes to your IDE project: SAVE!!!! Deploy will use the IDE settings on the disk and will also overwrite your changes…
  • Clean up your old Rhapsody sources in Rhapsody (Code, Clear Redundant Source Files) to prevent them from being deployed.

I hope this helps you in understanding the RXF!

Back to India

 

OK, that’s it, have fun with Rhapsody and the RXF!

Walter van der Heiden (wvdheiden@willert.de)

Development of Safety-critical Software

Content

This is also published TechLetter 6, written by Eike Römer. Translated by me and published on the Rhapsody BLOG to allow more people to read it.

The development of safety-critical software is often associated with a certification process. Experiences from the certification environment are presented together with possible work steps.

The procedure is based on the V-model. This Tech-letter covers requirements management, implementation, testing, and end-to-end traceability.

The presented experiences can be adapted to own projects.

Grph - Entwicklung sicherheitskritischer Software-290.png

Practical experience and possible work steps

Creating software for embedded systems in safety-critical areas often requires certification as well. Standards such as IEC 61508 or industry-specific standards are intended to ensure functional safety for safety-critical application areas. In this Techletter practical experiences of the Willert Software Tools GmbH in the range of the software certification are presented.

Example RXF-Cert

Willert develops a so-called semi-finished product, that, being only a part of the software, is being built together with the application software of customers later to create a unit. This unit then must be certified as a whole.

In the specific case, it is the “RXF-Cert” [1], a framework on which the code generator can be based on the UML tool IBM Rational Rhapsody [2] (see Figure 1). In addition to the framework source code and UML model, a “Certification package” is delivered consisting of documents and test suites that facilitate certification in the overall context.

Screen Shot 2018-04-03 at 16.43.06

Figure 1 – RXF-Cert as semi-product in the context of the customers application

Management of Requirements

Probably the most important part of the accompanying documents are the requirements. In order to manage their relationships, versions and status changes, many tools have become established in the market. Such tools are, for example, IBM Rational DOORS® [3] and Polarion [4]. Willert has chosen Polarion for his own use as part of the RXF-Cert project.

Screen Shot 2018-04-03 at 16.44.55

Figure 2 – Specifications and their links in the V-Model

The organization of the requirements has been made in the following levels (see Figure 2)::

  • Customer Requirements (Role of the Customer)
  • System-specification (Role of the SW-Architect)
  • (Software-)Module- and Operation-specification (Role of the developer).

The linking should be defined fixed from the lower level to the next highest level, as a “Satisfies” relationship.

A specification should always have one or more relationships with overlying specifications or requirements. Also links from the resulting software or the source code to the specifications are required here. This makes it clear which code section is used to implement which request (s).

The RXF-Cert comes with a Rhapsody UML model. In addition to the module specification and implementation with the associated code generation, this also contains visualizations of the architecture and of scenarios for more complex processes. In case of a certification diagrams bring the advantage that an auditor can more quickly grasp the construction and implementation of the software. Model elements should also have links to the specifications here.

To create representations for requests in UML tools, there are, for example, the IBM Rational Rhapsody Gateway tools [5] and the Willert ReqXChanger [6] tools. For the RXF-Cert the ReqXChanger, developed by Willert Software Tools, is used that connects e.g. Polarion via the standardized Requirements Interchange Format (ReqIF) and directly supports Rhapsody. Thus, representations for UML elements are also created in the requirements management tool and related to the associated requirements. The associated workflow is visualized later in the document in Figure 5

 

Ensuring functionality through Testing

Certification also requires proof that the functionality is being verified by testing. In a first RXF-Cert project, unit tests and code coverage analyzes were conducted on the basis of manually written C test cases and the gcov tool (from the gcc package) [7] in a test environment. Currently, the effort has been greatly reduced by using the model-based Test-tool BTC TestConductor [8]. In addition, these tests are also performed on the hardware of the target system instead of a PC environment. The results are returned to the test model from the target environment (see Figures 3 and 4).

The test case specification for the unit tests has been linked in the UML model with the implementations of the modules, so that also the test specifications from the model are mirrored in the requirements management tool and in conjunction with the specifications, herewith also a cover and Impact analysis up to the unit tests possible (see Figure 1).

Test Conductor

Figure 3 – Test execution on the target with feedback of the test results into the test model.

Coverage

Figure 4 – Results of the Code Coverage Analysis on the target environment

Cross-phase coverage and impact analysis

Coverage analyzes are important in order to determine, for example, whether all requirements have a test or whether all requirements are linked with software elements. In the approach presented above, coverage analyzes of the UML model can also be performed. From this documents can be generated that can be presented to an auditor.

Impact analyzes are necessary if, for example, requirements are changed during development. One goal is to be able to determine through all levels what needs to be adjusted as a requirement changes. The ReqXChanger can mark changed requests with stereotypes when retransferring requests to the UML tool (see Figure 6). For the certification process, it can be ensured that the software always takes into account the current state of the requirements.

Preparation of documents for certification

Traceability

Figure 5 – Exchange between UML Model und requirement Management

Impact Analysis

Figure 6 – Changed Requirement / Specification obtains Stereotype “Changed” in the model

Creating Certification Documents

From the standard it can be extracted which documentation components are expected. However, combining these into suitable documents and maintaining them involves some work. It therefore makes sense to create an overview document of all delivered goods. Here are source texts, documents and other artifacts of the delivery described and clearly identified including the consistent version numbers. The basics also include adding structure elements to each document, such as a table of contents with page references, a version history, and a cover page with the unique identifier and version. Likewise, a page number indicating the total number of pages on each page in order to be able to verify the completeness.

When recording the requirements, it should be noted from the outset that the corresponding documents must be created for certification. Printing the documents from our internal requirements management with Polarion in an appropriate form requires a lot of effort. The documents managed in Polarion itself can not be used to print the specifications if the links and thus the traceability should also be printed. It is not possible to filter only for specific link types or links to desired targets in the view. One of the consequences of this is that requirements list a relation to the IDs of their chapter headings (these have a hierarchical relationship in the document to each other). A certifier will now stumble upon references that he can not find because headings in the references show the Polarion internal ID, but the header itself does not display an ID. It is therefore strongly recommended that when selecting a tool it is taken into account that it can generate the documents accordingly or how to configure it accordingly. Also with Polarion it is possible via wiki or info pages to prepare the documents for printing accordingly.

Conducting (internal) Reviews

The review of the specification and elements of the software should be done in the requirements management tool. It is helpful to specify that for a “review attribute” (here: “status”) of work items (eg requirements) certain values ​​can only be set one after the other (see Figure 7).

Req Review.png

For the “Specify action”, Polarion has been configured to invite specified users to “approve” the work items. Here are two responsible persons. Only when these persons have both given their “Approval”, a status transition to “Reviewed” is possible. This fact is explained in the supplied validation plan and thus ensures the four-eyes principle in the review process.

Also reviews of models can be managed with this mechanism. In addition, the module specifications specify which SVN revision number (of a checked-in model unit) a review was carried out for. For new revisions, new reviews must be made accordingly.

At the code level, we have had good experience with the Crucible tool [9] and have created a PDF export plugin there that can be used to create code review reports suitable for certification.

Evaluation by a certification consultant

In order to assess the described status independently, we have obtained an evaluation of our procedure by an external certification consultant. This has brought many valuable experience. Among other things, we understood better what content and documents are required by the standard. For example, A security officer must be named in the company, who of course also lives up to his task, and there must be a corporate policy statement on the handling of software security in a “Safety Policy” document.

We have received a lot of positive feedback on the approach and process in development, as well as the approach to meeting the standard. For us in the consultation also the large difference in the standard, whether something is certified as software or as a tool (tool), clear. When you certify a tool, you only have to deal with about one-tenth of the IEC 61508 requirements than with a complete software certification. Nevertheless, we strive to classify our RXF-Cert as software in general. This must also be clearly documented and the user should be made aware of the field of application. If our RXF-Cert were e.g. Not only supporting the development of software, but also the systems engineering, would be added to several other requirements.

In conclusion, we still see the effort associated with certifying software as considerable – but it also shows for us that the requirements of the standard are absolutely meaningful. The development process becomes more sophisticated, the software quality can improve significantly and almost as a by-product the software becomes certifiable.

Passed certifications

The RXF-Cert has now been deployed in several functional safety software projects along with the customer applications. The areas Railway, Automotive and Space are represented. Some of these projects have already successfully passed the certification with the RXF-Cert package, others are currently or will only be in the project status in which the certification will be carried out in the near future. Thus, it has already been shown that the general procedure, meaningful use of tools and careful work steps described in this Techletter make it possible to plan and implement certification according to a standard based on IEC 61508.

Referenced Tools

[1] Willert RXF-Cert, Framework for modeling and code-generation of safety-critical Software:
https://www.willert.de/uml-rxf-cert

[2] IBM Rational Rhapsody, UML-Tool:
https://www.willert.de/rhapsody

[3] IBM Rational DOORS®, Requirements Management:
     https://www.willert.de/doors

[4] Siemens Polarion, Application Lifecycle Management:
https://www.willert.de/polarion/

[5] IBM Rational Rhapsody Gateway, Tool for the exchange and trace of Requirements:
https://www.willert.de/gateway

[6] Willert ReqXChanger, Tool for the exchange and trace of Requirements:
https://www.willert.de/reqxchanger

[7] gcov (from the gcc packet), Open Source Tool for Code Coverage Analysis:
https://gcc.gnu.org/onlinedocs/gcc/Gcov.html

[8] IBM Rational TestConductor, Model-based Testing:
http://www.willert.de/testconductor/

[9] Atlassian Crucible, Code Review Tool:
https://de.atlassian.com/software/crucible

 

Happy Modeling with Rhapsody!

Walter van der Heiden (wvdheiden@willert.de)
Eike Römer (eroemer@willert.de)

 

 

Incredible India

Recently I visited India for a 10 days. In Hyderabad to be precise. So after arriving at home Friday night after a week of training in Bückeburg I had to unpack and re-pack my bags. Saturday morning early my KLM plane for Delhi would leave from Schiphol.
It was an old 747, I haven’t flown a 747 since a long time, i didn’t even know that they were still in use. But I saw a couple of them so KLM is still using them, On the inside you could clearly see that the 747 is a bit old. No USB chargers, I tried to operate the miniature inflight entertainment screen (That was not much larger than my iPhone) and just before i started to get annoyed because it wouldn’t accept my inputs I realized it wasn’t a touch-screen… The rest was also outdated but…. still OK. The plane left a bit before 13:00u (1pm) and would arrive 7,5 hours later in New Delhi. Too early to sleep, but I had a connecting flight with a long stop-over so I thought I could find some other time to sleep a bit.

I had an Economy plus seat, a bit more room and… luck because the middle seat stayed empty. You could choose between Indian food and Western food. Easy choice… for me. Nice detail: all the food on the flight was vegetarian! And very, very good… I tried a nap after the lunch but i was not tired enough. So after almost 8 hours we landed on Indira Ghandi International Airport in New Delhi.

I got out pretty early, just after the Business Class and I was in line for the customs early. Unfortunately, KLM had forgotten to supply us with the visa papers… so I had to go back and fill it in and then line up behind the rest of the plane… Took quite a while but in the end they let me in. I’ve been to India before, last time it took me 2 days at the embassy in The Hague to get a Visum, the online Visum is a huge improvement.

After that searching for my suitcase (I had a big case with Training Material) and after I finally found that I went to an exchange shop to change some euro’s into Rupees. A bit of cash money is always convenient. I brought some (Well.. actually a lot…) from my last visit but India decided to use new banknotes and make the old ones invalid. Thanks India!
I had 4,5 hours for my stopover so I was very relaxed, going to the last check at the customs, bought myself a SIM-card so I could use Mobile Data in India (My mobile plan covers much but it does not cover India…) and then I started searching for the place where I could check-in my luggage for the flight with IndiGo Airway… That turned out to be in the domestic terminal. And that was on an airport with the same name but that name was also used for an older airport on the other side of Delhi… So I had to cross the airport to the shuttle terminal and drag my stuff into an old bus together with 50 other people with too many suitcases and other luggage. I managed to get a ticket and waited for the bus in the most air polluted place I’ve ever been. Half an hour equaled 10 packs of cigarettes. Yikes.

Slowly however… time ran out. The bus came and had to drive almost an hour… after arriving only 40 minutes would be left. If you have ever been to an airport in India you know that is not nearly enough… Luckily a nice Indian gentleman next to me in the bus understood my problem and helped me out. He arranged 2 guys on the airport that took my suitcases and led me through some “secret” airport elevators and hallways. They spoke with a lady behind the counter and I was the first one in a long, long line… Costed me EUR 10,- Not “compliant” I’m afraid but saved a lot more… With 1 minute left I made it to the bus to the plane.

At the plane it was time for a surprise, it was an Airbus A320neo. Almost brand new (although I read today that some of them are grounded due to Pratt&Whitney engine trouble) It took off precisely in time at 5am and flew to Hyderabad in just over 2 hours. The fight was more or less OK but I learned one more thing: Indian pilots fly just as Indian taxi drivers drive….

After 2 hours we were in Hyderabad. We tried landing twice and twice it made a fly-over. (According to the pilot “a completely safe maneuver “) Yes please….
After circling for an hour the plane accelerated and the pilot told us we would fly to Chennai. Cool, I did not expect to ever go there and before you know… But information was scarce and I did not really know what to expect. Directly after the landing and parking all other passengers stood up and started moving to the door and shouting through each other. Some guy from IndiGo got in the plane and mastered the chaos. He let he passengers out that had to be in Chennai anyway. We waited for 2 hours in the burning sun. We got a lunch box with chips and (Yeah!!) water. After 2 hours we took off again and an hour later we landed in Hyderabad.

After a non successful search for the hotel shuttle I gave up and took a taxi to the hotel where I arrived 24 hours after leaving home.

OK… this is a Rhapsody BLOG….

I have some news on Rhapsody as well. Some of it was written by Eike Römer on our Download Portal. I copied it here.

  • The 8.3 Version is now OK to use from our point of view with restrictions:
    • only with iFix 2 (all available on our Download Portal)
    • Be ware if you use it for existing projects! Either your Version history is lost (or retained with much effort) or you have to meticulously save in the old format.
    • for new projects it is OK
  • The 64Bit version is also free to use! read here how you can update the frameworks.

 

Rhapsody 8.3 with the RXF Frameworks

Our existing Realtime eXecution Frameworks (RXF) available on the Willert Download Portal (https://download.willert.de/) can be used together with Rhapsody 8.3 iFix 2. However, RXF versions that have been tested and released with an earlier Rhapsody version than 8.1.5 need the applied JDK workaround documented on: https://download.willert.de/rhapsody-8-1-5-support/

RXF-Cert is Rhapsody Version Specific

RXF-Cert frameworks (prepared for safety critical software development certification) are an exception, as they have been documented, tested and prepared for certification for one specific Rhapsody version. Please contact us and discuss the Rhapsody upgrade path for your specific certification environment if you want to migrate to Rhapsody 8.3 iFix 2.

Rhapsody 32- vs. 64-Bit

Until today we highly recommended only installing Rhapsody in the 32-bit edition. The main reason was a limitation in features like roundtripping, reverse engineering etc.

With Rhapsody 8.3 iFix 2 this has changed. You may now also work with the 64-bit edition of Rhapsody. However the Willert Installer (Setup.exe as part of an RXF release) needed to learn how to handle Rhapsody 64-bit installations. All RXF releases after 2018-03-13 can handle Rhapsody 64-bit installations out-of-the-box. For older RXF releases you need to replace the old Setup.exe with the one you can download here:

https://download.willert.de/downloads/setup_2018-03_64bit/

 

That was it! happy modeling with Rhapsody

Walter van der Heiden (wvdheiden@willert.de)

 

Incredible India

Recently I visited India for a 10 days. In Hyderabad to be precise. So after arriving at home Friday night after a week of training in Bückeburg I had to unpack and re-pack my bags. Saturday morning early my KLM plane for Delhi would leave from Schiphol.
It was an old 747, I haven’t flown a 747 since a long time, i didn’t even know that they were still in use. But I saw a couple of them so KLM is still using them, On the inside you could clearly see that the 747 is a bit old. No USB chargers, I tried to operate the miniature inflight entertainment screen (That was not much larger than my iPhone) and just before i started to get annoyed because it wouldn’t accept my inputs I realized it wasn’t a touch-screen… The rest was also outdated but…. still OK. The plane left a bit before 13:00u (1pm) and would arrive 7,5 hours later in New Delhi. Too early to sleep, but I had a connecting flight with a long stop-over so I thought I could find some other time to sleep a bit.

I had an Economy plus seat, a bit more room and… luck because the middle seat stayed empty. You could choose between Indian food and Western food. Easy choice… for me. Nice detail: all the food on the flight was vegetarian! And very, very good… I tried a nap after the lunch but i was not tired enough. So after almost 8 hours we landed on Indira Ghandi International Airport in New Delhi.

I got out pretty early, just after the Business Class and I was in line for the customs early. Unfortunately, KLM had forgotten to supply us with the visa papers… so I had to go back and fill it in and then line up behind the rest of the plane… Took quite a while but in the end they let me in. I’ve been to India before, last time it took me 2 days at the embassy in The Hague to get a Visum, the online Visum is a huge improvement.

After that searching for my suitcase (I had a big case with Training Material) and after I finally found that I went to an exchange shop to change some euro’s into Rupees. A bit of cash money is always convenient. I brought some (Well.. actually a lot…) from my last visit but India decided to use new banknotes and make the old ones invalid. Thanks India!
I had 4,5 hours for my stopover so I was very relaxed, going to the last check at the customs, bought myself a SIM-card so I could use Mobile Data in India (My mobile plan covers much but it does not cover India…) and then I started searching for the place where I could check-in my luggage for the flight with IndiGo Airway… That turned out to be in the domestic terminal. And that was on an airport with the same name but that name was also used for an older airport on the other side of Delhi… So I had to cross the airport to the shuttle terminal and drag my stuff into an old bus together with 50 other people with too many suitcases and other luggage. I managed to get a ticket and waited for the bus in the most air polluted place I’ve ever been. Half an hour equaled 10 packs of cigarettes. Yikes.

Slowly however… time ran out. The bus came and had to drive almost an hour… after arriving only 40 minutes would be left. If you have ever been to an airport in India you know that is not nearly enough… Luckily a nice Indian gentleman next to me in the bus understood my problem and helped me out. He arranged 2 guys on the airport that took my suitcases and led me through some “secret” airport elevators and hallways. They spoke with a lady behind the counter and I was the first one in a long, long line… Costed me EUR 10,- Not “compliant” I’m afraid but saved a lot more… With 1 minute left I made it to the bus to the plane.

At the plane it was time for a surprise, it was an Airbus A320neo. Almost brand new (although I read today that some of them are grounded due to Pratt&Whitney engine trouble) It took off precisely in time at 5am and flew to Hyderabad in just over 2 hours. The fight was more or less OK but I learned one more thing: Indian pilots fly just as Indian taxi drivers drive….

After 2 hours we were in Hyderabad. We tried landing twice and twice it made a fly-over. (According to the pilot “a completely safe maneuver “) Yes please….
After circling for an hour the plane accelerated and the pilot told us we would fly to Chennai. Cool, I did not expect to ever go there and before you know… But information was scarce and I did not really know what to expect. Directly after the landing and parking all other passengers stood up and started moving to the door and shouting through each other. Some guy from IndiGo got in the plane and mastered the chaos. He let he passengers out that had to be in Chennai anyway. We waited for 2 hours in the burning sun. We got a lunch box with chips and (Yeah!!) water. After 2 hours we took off again and an hour later we landed in Hyderabad.

After a non successful search for the hotel shuttle I gave up and took a taxi to the hotel where I arrived 24 hours after leaving home.

OK… this is a Rhapsody BLOG….

I have some news on Rhapsody as well. Some of it was written by Eike Römer on our Download Portal. I copied it here.

  • The 8.3 Version is now OK to use from our point of view with restrictions:
    • only with iFix 2 (all available on our Download Portal)
    • Be ware if you use it for existing projects! Either your Version history is lost (or retained with much effort) or you have to meticulously save in the old format.
    • for new projects it is OK
  • The 64Bit version is also free to use! read here how you can update the frameworks.

 

Rhapsody 8.3 with the RXF Frameworks

Our existing Realtime eXecution Frameworks (RXF) available on the Willert Download Portal (https://download.willert.de/) can be used together with Rhapsody 8.3 iFix 2. However, RXF versions that have been tested and released with an earlier Rhapsody version than 8.1.5 need the applied JDK workaround documented on: https://download.willert.de/rhapsody-8-1-5-support/

RXF-Cert is Rhapsody Version Specific

RXF-Cert frameworks (prepared for safety critical software development certification) are an exception, as they have been documented, tested and prepared for certification for one specific Rhapsody version. Please contact us and discuss the Rhapsody upgrade path for your specific certification environment if you want to migrate to Rhapsody 8.3 iFix 2.

Rhapsody 32- vs. 64-Bit

Until today we highly recommended only installing Rhapsody in the 32-bit edition. The main reason was a limitation in features like roundtripping, reverse engineering etc.

With Rhapsody 8.3 iFix 2 this has changed. You may now also work with the 64-bit edition of Rhapsody. However the Willert Installer (Setup.exe as part of an RXF release) needed to learn how to handle Rhapsody 64-bit installations. All RXF releases after 2018-03-13 can handle Rhapsody 64-bit installations out-of-the-box. For older RXF releases you need to replace the old Setup.exe with the one you can download here:

https://download.willert.de/downloads/setup_2018-03_64bit/

 

That was it! happy modeling with Rhapsody

Walter van der Heiden (wvdheiden@willert.de)

 

© 2025 Rhapsody TechBlog

Theme by Anders NorenUp ↑