Over the past decade, software complexity in cars has increased in a breathtaking manner. In automotive projects, developers today have to deal with 15.000 to 60.000 requirements (Doors items). The volume of a typical project is 500.000 to 3 million lines of code, and the work has to be coordinated among 100 to 250 developers, explained Karl Fuchs who oversees quality management for Infotainment and Connectivity for automotive supplier Continental AG, in his keynote speech. To make things even more complicated, the time to market does not grow in lockstep with the requirements - quite in the contrary, it is declining.
One possible way out of the dilemma is the reuse of software. However, in some cases, the use of cost-optimized hardware poses limits to software reuse. In order to maintain control of design complexity, Continental suggests making as much use of modeling as possible. "Software developers should transform requirements in use cases - and users should extensively use modeling techniques", Fuchs said. This helps designers go get a top-down vision of the problem to be solved instead of digging into details and lose track of the big picture. Fuchs compared the situation of an automotive software developer to VLSI chip design. "No chip designer needs to exactly understand the way millions of transistors interact in such a chip. Instead, chip designers rely on RTL level abstractions. Similarly, no software developer can keep track of the interaction of thousands of C++ classes. "Examples show that modeling techniques make it possible to generate code with significantly less program errors", he said, adding that the code generated by modeling is also much more compact than by conventional methods.
Christian Salzmann, responsible for software development for body and driver assistant systems at BMW, shared Fuchs' assessment that there is potential to improve the software design process. BMWs vision towards this end leads through a reduction of the hardware complexity. The carmaker's E/E architects