Software applications today control some of the most important functionalities in an automobile, ranging from basic safety functions like brake and airbag control, to driver assistance systems like adaptive cruise control and automatic parking and finally to infotainment systems.
These applications currently contain around 100 million lines ofsoftware code and this number is expected to grow to 200 – 300 million in the near future according Frost & Sullivan. It has been reported that an S-class Mercedes Benz requires 20 million lines of code for its radio and navigation system and that there are as many electronic control units (ECUs) in this car as in the Airbus A380 (excluding the in-flight entertainment system).
Current validation, testing and debugging methods developed within the software engineering communityprimarily focus on functional verification. But timing predictability and hence timing analysis is an important and still largely unsolved problem for automotive software, in part,because of its high complexity.
In addition to the increasing amount of software, automotive electrical/electronic (E/E) systems are highly elaborate. There are currently 80 to 100 ECUs in individual high-end cars, which often feature diffierent – increasingly multi-core – processor architectures. These ECUs are connected by several communication busessuch as CAN, LIN, FlexRay and MOST in a hierarchical setting.
Timing analysis in such a setting involves several stages – from worst-case execution time (WCET) analysis to system level timing analysis, percolating through several layers of software and the underlying platform (ECUs,communication buses and gateways) architecture.
Often separate timing estimates for the diffierent modules and/or software layers lead to overly pessimistic estimates that are not acceptable in the cost-sensitive automotive domain (in contrast to, e.g.,avionics ). But there has been lately a number of advances towards standardizing automotive software and systems (e.g., AUTOSAR and JasPar) and model-based software development and code synthesis are also on the rise, resulting in new opportunitiesfor timing analysis.
In this paper, we outline some of the major issues in this domain, as an attempt to initiate a discussion and involve the mainstream software engineering community to join the embedded systems community towards addressingthis problem. Our aim is also to influence software architectures and development processes in order to improve its timing predictability, since currently the softwaredevelopment and timing analysis processes are largely disjointed.
To read this external content in full, download the paper from the author archives on line at TU Munich.