We are all familiar with the “chicken and egg” dilemma. The question is: which of the two came first and where to begin – with the chicken or the egg? – in order to reach a specific goal. For example, how do you get a chicken without having an egg? It might surprise you to learn that this is also a common dilemma in automotive technology. Today, we are used to our vehicles offering us superlative comfort and excellent driver support in both everyday and critical situations. And everything needs to be absolutely reliable. The key here lies in sensor technology and, above all, the software that goes with it. This is why modern vehicles run more software than any other mobile system. And there is no end in sight to the ever-growing lines of code required.
Today, software has become so important in cars that it is the vehicle electronics (hardware) that are being adapted to the requirements of the software. Nowadays, it is the software that calls the shots. The electrical and electronic architecture of vehicles is therefore being completely overhauled, and the concept on everyone’s lips is the software-defined vehicle (SDV). Here, the most important step is to make the software independent of the hardware. This separation makes it possible to develop software one-time only and then run it on a variety of hardware – that is, to reuse it. Separating the two components allows the different development cycles for software and hardware to be maintained. Software updates generally happen much more often than hardware ones.
In order to host this mass of software (after all, it needs to “run” somewhere), a car needs to be equipped with high-performance computers. This is where the new high-performance computer (HPC) device class comes in. These devices are home to the massive amount of in-car software needed for today’s vehicles. The small “catch” is that the sheer volume of software and the degree of networking between the systems, plus the large number of people involved in software projects, makes the programming so complex that software development for cars is one of the most challenging tasks for engineers to master. Automotive software development only works with tools, processes and automated routines that are sophisticated and provenly reliable down to the last detail – not to forget: testing, testing and more testing. Because in the “end product” car, the software must operate reliably without any ifs or buts.
Which brings us back to our chicken-and-egg dilemma: the de facto situation today is that hardware prototypes are only available in limited quantities. Moreover, these prototypes only become available later on in the development process, while development cycles are simultaneously becoming ever shorter and faster. This leaves less time for development – and even less time for testing new software. So what’s the solution?