The networking of smartphones and vehicle electronics enables new functions that further enhance the driving experience. One example is features that use a smartphone camera to record videos from the windshield and link them to live vehicle information. “One of the major challenges in implementing app functions based on the interaction between the two ecosystems, smartphone and vehicle, is the many strands that come together during development,” explains Thomas Pretsch, Director Infotainment, Connect & E/E at Porsche Engineering. To achieve the desired range of functions, the apps often access and read ECU information such as vehicle position, speed, engine speed, braking force, steering angle, as well as longitudinal and lateral acceleration via the in-vehicle WiFi connection of the vehicle infotainment system.
The software link between the app and vehicle electronics required for this is complicated by the different product lifecycles of the two ecosystems: The development team has to integrate fast-moving smartphone technology into vehicles with much longer development intervals. At the same time, it must ensure that the app runs reliably under all conditions on the different smartphones and is also compatible with older vehicle systems.
Always up to date
For the development of apps for vehicle applications, Porsche Engineering uses agile software development methods with which an app is continuously kept up to date. Individual work packages that can be implemented within a short period of two weeks are defined for processing the software. As a result, developers are no longer bound to the cycles of vehicle model updates, but have the option of creating a new software version at any time, which is then delivered to customers via the app store. Using agile software development, Porsche Engineering can ensure full implementation of an app for Apple and Android smartphones, from programming and testing to generating the release version for end customers.
“Porsche Engineering’s development advantage in this regard is the combination of extensive software expertise and comprehensive knowledge of vehicle technology. Added to this is our expertise in vehicle dynamics development, which enables us to predict exactly which vehicle parameters we need to implement a particular function," says Pretsch. Just as agile as the software development is the adaptation of the development methodology to new requirements or conditions. One aspect that plays a much greater role in the vehicle than in other app application areas is the testing of the software.
At Porsche Engineering, these tests are carried out during development so that the software code can be adapted quickly if errors arise: When defining the sprints, the development team sets milestones for the programming. Once the milestones have been reached, a specially trained test engineer checks the software maturity. To ensure that the high requirements for functional reliability can be implemented even more efficiently in the future, Porsche Engineering is broadening the test program for the apps in successive steps. “Additional tests during development do cost time, but the effort required to make changes for debugging is much lower the earlier you identify an error,” says Johannes Hubert, Development Engineer Infotainment & Connect at Porsche Engineering. Depending on the scope of the update, functional tests by simulation and in the vehicle itself are already an integral part of the development process.
“Additional tests do cost time, but the effort to make changes for debugging is much lower the earlier you identify an error.“ Johannes Hubert, Development Engineer Infotainment & Connect at Porsche Engineering
“The simulations are carried out by internal routines within the software,” as Hubert explains. Fabian Breisig, Specialist Project Engineer Infotainment & Connect at Porsche, adds: “These tests provide information about basic functions of the app. The in-vehicle tests, on the other hand, cover connectivity with the infotainment system and app functions while driving.” In the future, the driving tests will be supplemented and, in part, replaced by more far-reaching simulations and tests on the HiL (hard-ware-in-the-loop) test bench. During the simulation tests, the smartphone is integrated into a racing simulation. “For the app, this creates a situation similar to that in the vehicle. This brings us closer to the real scenario and allows us to replicate extensive functional tests without a vehicle,” says Breisig.
High flexibility through simulation
The HiL test bench allows the app to be integrated into the vehicle system even when no test vehicle is available. Instead of the complete vehicle, only the infotainment module of the vehicle is required as hardware, and the incoming and outgoing data streams to and from the other control units are reproduced by the test system as a simulation. This leads to a high degree of flexibility in app development—for example, functions for new vehicle model series can be integrated into the app at an early stage so that they are already available when the vehicle is launched, and customers can use them right away.
Agile software development methods can also be used for tasks other than the app application. Porsche Engineering also uses agile methods, for example, in the development of battery systems and operating strategies for electric vehicles, but interest is also growing in other areas. “Agile methods are ideal for software development projects that are subject to a continuous change process,” says Pretsch. “Due to the ever-increasing importance of networking and software in vehicles, I am assuming the use of this approach will increase in all vehicle areas.”
Agile Software Development
Agile software development is a project management approach widely used in consumer electronics, for example, which is characterized by the incremental creation of software in frequent iteration cycles (sprints). One advantage of the agile approach: It’s possible to react quickly to changes, as the development can be flexibly adapted to evolving requirements. Since the intermediate goals are always just software portions, the final objective of a development does not have to be clearly outlined or known. The definition of the scope of work (ticket) to be completed in the sprint takes place in a coordination meeting with all team members. In this context, they use a method known as planning poker.
Good to know
Agile development takes place in short cycles (usually two weeks) to ensure quick feedback. An iteration cycle is also called a sprint.
The daily stand-up is a short daily meeting where developers update each other on the status of their sprint. Ticket A ticket is a software development task (bugs, stories, tasks) that is transferred to one or more sprints in the story refinement.
The backlog is the list of all tickets that are to be implemented.
The maintenance of the backlog is called story refinement. In a continuous process, the tickets are elaborated and made ready for implementation in a sprint.
Planning poker is an agile method for estimating the effort for a ticket. This requires each developer to make a forecast with hidden poker cards. If there are discrepancies between the estimates, this is an indication of ambiguity—for example, an imprecise formulation of the ticket. The goal of planning poker is to ensure that all developers give the same forecast for the effort required for each ticket, meaning that they have a common understanding of the task.
Text first published in the Porsche Engineering Magazine, issue 2/2023
Text: Richard Backhaus
Illustrations: Pia Bublies
Copyright: All images, videos and audio files published in this article are subject to copyright. Reproduction in whole or in part is not permitted without the written consent of Dr. Ing. h.c. F. Porsche AG. Please contact email@example.com for further information.