Autonomous vehicle software orchestration demands a unified platform
Continued progress toward full vehicle automation is shifting core competencies in the automotive industry from mechanical systems to software and electronics. Autonomous vehicles will rely on immensely complex software systems built on artificial intelligence (AI) algorithms and neural networks. In fact, experts estimate that self-driving vehicles will require hundreds of millions, or even billions of lines of code. Software will be responsible for passenger, pedestrian, and bystander safety as it interprets sensor data and takes action in response (Figure 1). Even non-safety-critical software will be crucial to the success of an autonomous vehicle platform. A large portion of the user experience inside a self-driving vehicle will be software-based. Unresponsive or unstable software interfaces will have a direct effect on customer evaluations of a vehicle.
As a result, software is already becoming inextricable from vehicle design and engineering. Currently, product engineering and software engineering follow inherently different development lifecycles, with software-hardware interfaces only being validated at pre-defined checkpoints. This pseudo-separation between hardware and software development has proven deficient as the vehicles become integrated cyber-physical systems-of-systems. To compete in the technological race for autonomous vehicles, companies must evolve their software development processes today. A common digital thread connecting software and physical systems development is the only way to take control of the complexity of autonomous vehicle development.
For automotive software engineering teams, this means establishing a unified platform to track and manage the entire application development process (Figure 2). This platform must connect with the vehicle-level digital thread. This will help engineers ensure that software features are fully compatible with the vehicle in which they are deployed, and complete with evidence showing that all related tasks and deliverables are available on time. The application development platform will also track accountability for changes regarding not just who, but how and why, and create a closed-loop behavioral representation of a vehicle’s software and hardware systems for continuous validation throughout the product lifecycle.
A unified platform for automotive embedded software development
Creating a unified platform for automotive embedded software development facilitates collaboration, traceability, and accountability throughout the vehicle lifecycle. Such a platform can coordinate activities across the software development flow, which can be broken into three sub-processes (Figure 3):
- Application definition and planning
- Application development and quality assurance
- Application delivery and monitoring
Such a platform allows companies to maintain consistency and ensure compatibility between the work that various stakeholders are performing across many development platforms and organizations. By unifying various software teams and processes, such a platform will help engineers deliver fully verified and validated software builds to vehicles and monitor them after deployment. This unified platform may be built on an advanced application development coordination solution, such as Polarion ALM software.
Application definition and planning
During application definition and planning, the software engineers derive software requirements from the vehicle-level product definition. The application development coordination solution can track the vehicle-level product definition to create a direct link between system-level changes and application development, ensuring individual applications stay in sync with the overall system. Software teams can use the application coordination solution to assign tasks for modeling, coding, test-execution, build production, and more to engineers working in various tools.
If software requirements are created or changed, the application coordination software will trigger engineers to update software architectures and models. After updating, software engineers can execute detailed model-in-the-loop (MiL) tests to verify and validate that desired outcomes are achieved at the application and system-level before undertaking code development. This allows engineers to discover critical risks, issues, and defects early in the process while staying aligned with system-level directives.
Application development & QA
Application development and quality assurance focuses on maturing software models, implementing application code, and verifying these implementations. As software models are verified and validated, engineers can develop application code and test its operation. This can be completed at the software-in-the-loop (SiL) level, and further down with hardware-in-the-loop (HiL) testing, in which applications are tested on virtual and physical hardware. The application coordination platform keeps track of every test result and each update made to models or code. This enables the engineers to focus on engineering tasks while the application coordination software manages process adherence, traceability, and the lifecycle of the data created.
Application delivery and monitoring
Finally, the embedded application must be delivered to the software assembly that will be included in the final vehicle bill of materials (BoM). Vehicle platforms spawn dozens of discreet vehicle variants with a mix of shared and unique features, components, and embedded hardware. Automotive companies are also beginning to employ embedded operating systems (OS), making application configuration less dependent on hardware but adding another layer of compatibility (Figure 4). Engineers must configure applications to be compatible with the embedded operating system, hardware variants, and vehicle platform variants.
Integrations between the application development coordination and product lifecycle management (PLM) solutions allows software engineers to identify the specific OS and ECU hardware for each vehicle variant. They can then supply appropriately configured applications to each vehicle with full traceability of where applications are deployed.
A unified automotive embedded software platform is fundamental to the coordination of complex software application development because it supports real-time and on-demand access to design data, requirements, test results, and much more directly in the engineering view. Such a platform also contributes to a strong digital thread and makes collaboration between disparate teams and organizations organic and intuitive, boosting the productivity of each stakeholder.
Companies that are able to effectively manage the development of software applications across organizations, engineering domains, and functional abstractions will be in the best position to thrive in the digitalized automotive industry. This will be especially true as software functionality becomes less dependent on ECU hardware due to an increased use of vehicle operating systems and firmware. A robust methodology to track each application, its functional contents, system constraints, and potential hardware constraints will be key to success.