Not many software engineers get their very first assignment developing software for the medical sector. It happened to Saurav Paul, who shortly after his degree in Embedded Systems started working as a software engineer for ICT Group. The challenge was to design a software system for a service tool used to check complex x-ray machines. Needless to say, the software had to be delivered error proof, reliable and fast. Philips Healthcare develops innovative x-ray systems for image guided medical procedures. These machines are powered by a so-called startup/shutdown controller that guarantees the machines’ safety and reliability. The functionality of the startup/shutdown controller is regularly checked through a service tool. Philips Healthcare asked ICT Group to develop the software for this service tool.
Software engineer Saurav Paul was chosen to execute the task. He used a new methodology of software design called Model Driven Engineering. This new approach demands a completely different way of thinking and designing suited to create robust, reliable software systems. “During my university studies I’ve had some experience with Model Driven Engineering, so I was able to begin right away,” Saurav says. In the traditional way of working the software engineer starts programming right away after a short briefing by the customer. In Model Driven Engineering the engineer and the customer first create a model that functions as the blueprint for the later software design. In the model all functionalities and components of the software as well as their internal relations are described. This is done in a language that is easy to understand for both the software engineer and the customer. “From the model the customer can see whether the software does what it has to do,” Saurav explains. “If the design does not correspond with the customer’s wishes it can be modified immediately.”
“I’ve learned a lot and I believe this experience will add immense value to my future projects.”
What makes the Model Driven Engineering approach unique is that computer code can be generated from the model with a single mouseclick. That automation prevents human programming errors and leads to a software system that is much more robust. Saurav worked with the program Dezyne, that has a feature that tests for unwanted properties in the software design, such as deadlocks and race conditions. “In traditional software design you only get feedback about errors when you are testing the software,” Saurav says. “Moreover, it’s quite hard to locate those errors in the computer code. Dezyne not only points out the error, but also shows you its exact location. It forces you to think very deeply about your design.” Ultimately the new approach saves a lot of time. “You spend more time in the beginning on designing the model and correcting errors, but you win all that time back in the end because there are hardly any coding errors left.”
The end result was much to the customer’s satisfaction. Saurav was happy as well. “I felt a strong sense of pride and satisfaction in completing such a challenging project. Especially since this was the first assignment in my engineering career.”
Do you want to work on challenging projects?
Take a look at our website: www.ict.eu/jobs.