Time-to-Market for automotive infotainment features can be improved by accelerating the software development process, but this must not compromise the reliability of the software components. An automation of the process and a parallelization of its steps are typical methodologies to speed up software development. However, this means that development tools need to support those methodologies.
The convergence between end-user devices and computing networks is another challenge coming from the consumer electronics world. Here the proportion of products that support Internet connectivity, especially when using wireless technologies, is rising sharply. User data is shared between different devices, Internet services and enterprise applications as well. The next step is to provide the customer with the opportunity to keep all the data in the cloud and let the devices be synchronized with it. The infotainment system in the vehicle will be a part of this environment, of course, with limitations according to automotive safety requirements. A tool that automates the communications between automotive devices and end-user products can simplify and speed up development.
Figure 1: Car of the future
Software Development Process
Let's consider the software development process. Usually, a project starts with the following steps: an analysis, creation of a specification and a prototype. Those steps are an iteration, and may be repeated. After several iterations, the artifacts such as the requirements, architecture- and design documents specifications are available. The software implementation based on these artifacts must be tested and verified. It is essential to note that several participants from different companies are usually working on such automotive projects.
In the analysis step, a Unified Modeling Language (UML) abstract system model is created, which includes specific requirements, use cases, etc. UML is the widespread modeling language used in software development. The mature UML tools may be a great help in verifying the integrity of the model, so the usage of UML reduces the time needed to create such a model.