The software powering today's vehicles surpasses mechatronics as the dominating engineering challenge due to its fast evolving and innovative nature. In addition, the software and system architecture for upcoming vehicles with automated driving functionality is already processing 750MB s - corresponding to over 180 simultaneous 4K-video streams from popular video-on-demand services. Hence, self-driving cars will run so much software to resemble "small data centers on wheels" rather than just transportation vehicles. Continuous Integration, Deployment, and Experimentation have been successfully adopted for software-only products as enabling methodology for feedback-based software development. For example, a popular search engine conducts 250 experiments each day to improve the software based on its users' behavior. This work investigates design criteria for the software architecture and the corresponding software development and deployment process for complex cyber-physical systems, with the goal of enabling Continuous Experimentation as a way to achieve continuous software evolution. Our research involved reviewing related literature on the topic to extract relevant design requirements. The study is concluded by describing the software development and deployment process and software architecture adopted by our self-driving vehicle laboratory, both based on the extracted criteria.
Another related work focusing on the architectural level was discussed in our previous work @cite_13 , where the results of a systematic literature review and a multiple case study are presented. The authors summarized their findings highlighting the following key aspects that characterized the resource-constrained system and software architectures for self-driving vehicles they analyzed:
@cite_13
2397446945
Context: Self-Driving cars are getting more and more attention with public demonstration from all important automotive OEMs but also from companies, which do not have a long history in the automotive industry. Fostered by large international competitions in the last decade, several automotive OEMs have already announced to bring this technology to the market around 2020. Objective: International competitions like the 2007 DARPA Urban Challenge did not focus on efficient usage of resources to realize the self-driving vehicular functionality. Since the automotive industry is very cost-sensitive, realizing reliable and robust self- driving functionality is challenging when expensive and sophisticated sensors mounted very visibly on the vehicle’s roof for example cannot be used. Therefore, the goal for this study is to investigate how architectural design decisions of recent self-driving vehicular technology consider resource-efficiency. Method: In a multiple case study, the architectural design decisions derived for resource- constrained self-driving miniature cars for the international competition CaroloCup are compared with architectural designs from recent real-scale self-driving cars. Results: Scaling down available resources for realizing self-driving vehicular technol- ogy puts additional constraints on the architectural design; especially reusability of software components in platform-independent algorithmic concepts are prevailing. Conclusion: Software frameworks like the robotic operating system (ROS) enable fast prototypical solutions; however, architectural support for resource-constrained devices is limited. Here, architectural design drivers as realized in AUTOSAR are more suitable.