Modern automotive systems utilize a large number of embedded processors to perform computation, control, monitoring, or simply to enhance the user experience. The design and development of such systems is not always an easy task, mainly due to their distributed nature being coupled with real-time constraints. Such processes and the systems they control also interact with each other and other external systems in a complex manner – at times in ways that were not expected or modeled in advance. Yet, such interactions must not digress from the fundamental functionality, timeliness guarantees and other important properties (such as security/privacy) that the system must provide for correct and safe operation. This paper discusses techniques to reason about, analyze, test and develop such systems from the ground up while still retaining the real-time properties of the system.