Tuesday, 5 November 2024

Advanced Automotive Software Factory for Software-Defined Vehicles

 

As vehicles evolve into software-defined vehicles (SDV), they rely on a new development paradigm in which hardware and software are decoupled. The Automotive Software Factory (SWF) supports SDV by providing the infrastructure, tools, and processes necessary to develop and deploy complex software, often within a multi-platform environment that includes AUTOSAR, Embedded Edge software, and AAOS. This setup enables rapid, reliable delivery of software updates and fosters continuous innovation.


AUTOSAR Classic and Adaptive Platforms

AUTOSAR (AUTomotive Open System ARchitecture) is a global development partnership that provides standardized architecture, interfaces, and development tools for automotive software, enabling interoperability and modularity across suppliers and OEMs. The two main AUTOSAR platforms are:

1. AUTOSAR Classic Platform

  • Target: Primarily for ECUs (Electronic Control Units) managing safety-critical and time-deterministic tasks like engine control and braking.
  • Architecture: Based on a layered architecture (e.g., Basic Software, Runtime Environment, Application Layer).
  • Main Focus: Real-time systems with limited dynamic memory allocation.
  • Software Factory Context: In an SWF, AUTOSAR Classic modules are integrated, built, and validated against requirements using CI/CD pipelines. Classic AUTOSAR ECUs are simulated on virtual ECUs (vECUs) to verify functional safety and real-time constraints before physical testing.
  • Testing and Release:
    • Simulators: Tools like vECU, QEMU, or specific AUTOSAR emulators.
    • Hardware-in-the-Loop (HIL) Testing: Tools like dSPACE are used to simulate real-time responses for safety-critical ECUs.

2. AUTOSAR Adaptive Platform

  • Target: Designed for high-performance, non-safety-critical applications, such as ADAS (Advanced Driver Assistance Systems) and infotainment.
  • Architecture: Service-oriented architecture supporting dynamic memory management and multi-core processors.
  • Main Focus: Flexibility, Ethernet communication, and adaptive applications that can evolve over time.
  • Software Factory Context: In an SWF, the Adaptive Platform facilitates the rapid addition of new features. Adaptive AUTOSAR components are typically developed and tested in containerized environments or on the cloud for scalability.
  • Testing and Release:
    • Containerized Simulation: Deployed in a containerized format (e.g., Docker) for easy orchestration and testing.
    • Cloud-Based Testing: Simulation on cloud infrastructures like AWS Graviton for large-scale service validation and integration testing.

Embedded Edge Software: Yocto Linux, Eclipse LEDA, and Kanto Container Orchestration

Edge computing in automotive enables processing data closer to the source, reducing latency, and enhancing real-time decision-making. An Embedded Edge Software stack based on Yocto Linux and tools like Eclipse LEDA and Kanto Container Orchestration is used to support these requirements.

1. Yocto Linux

  • Purpose: Used to create custom embedded Linux distributions for automotive applications. Yocto supports high configurability and is ideal for building minimal Linux setups optimized for automotive systems.
  • Software Factory Context: Yocto configurations are part of the software build pipeline, allowing for cross-compilation and testing across various hardware setups (e.g., ARM-based ECUs).
  • Testing and Simulation: Yocto-based builds can be tested on virtualized setups like QEMU or cloud-based emulations, ensuring they work reliably before deployment.

2. Eclipse LEDA

  • Purpose: A tool for edge device management and application lifecycle. It integrates with IoT frameworks, managing deployment, configuration, and monitoring.
  • Software Factory Context: LEDA assists in orchestrating edge applications, pushing updates, and monitoring them across distributed devices, often used in conjunction with CI/CD tools for automated management.
  • Containerized Applications: LEDA supports containerized application deployment (e.g., Kanto-based), providing flexibility for different types of edge applications.

3. Kanto Container Orchestration

  • Purpose: Orchestrates edge applications and services within containerized environments, supporting multi-node deployment.
  • Software Factory Context: In an SWF, Kanto manages and deploys containers at the edge, integrating with cloud infrastructure for remote updates and over-the-air (OTA) or firmware-over-the-air (FOTA) upgrades.
  • OTA/FOTA Services: OTA/FOTA management is integrated into the factory’s pipeline, allowing edge software to be updated seamlessly, improving the user experience and minimizing in-service time.

Android Automotive Operating System (AAOS)

Android Automotive OS (AAOS) is a full-stack, open-source platform for infotainment systems, built by Google, based on Android. It enables rich user experiences through multimedia, navigation, and in-vehicle services.

Key Components of AAOS in an SWF:

  • Infotainment and App Ecosystem: AAOS supports a diverse range of apps, enhancing the in-car experience with real-time data, location-based services, and media streaming.
  • Customizable Framework: OEMs can customize the AAOS platform for their specific needs while leveraging Android’s extensive developer ecosystem.
  • Software Factory Context: In the SWF, AAOS applications undergo a comprehensive build, simulate, test, and release cycle. Developers can create, test, and update AAOS apps via CI/CD pipelines, while containerized testing or cloud-based simulations (e.g., AWS Graviton) emulate real in-vehicle environments.
  • Testing: Use of QEMU and vECU for simulating AAOS applications and system updates, facilitating pre-deployment validation and user experience refinement.

Simulation, Testing, and Release Tools for SWF and SDV

In an Automotive Software Factory, simulation and testing are fundamental to ensuring software reliability and performance. Key simulation and testing tools include:

  1. QEMU: A widely used open-source machine emulator and virtualizer for testing embedded systems like ECUs.
  2. vECU: Virtual ECUs allow for software testing independent of hardware, accelerating development and reducing dependency on physical prototypes.
  3. Cloud-Based Simulation (AWS Graviton): AWS Graviton-powered EC2 instances provide scalable cloud infrastructure for ARM-based simulation, essential for testing ARM-based automotive applications.
  4. HIL and SIL Testing: Hardware-in-the-loop (HIL) and software-in-the-loop (SIL) simulations enable realistic testing of automotive systems in the SWF, verifying integration with real hardware components when needed.
  5. CI/CD for Testing and Release:
    • Automated Test Frameworks: Tools like Google Test, Robot Framework, and Jenkins are used for automated testing across CI/CD pipelines.
    • Compliance Testing: Specialized tools (e.g., VectorCAST, Rapita Systems) ensure compliance with ISO 26262 and Automotive SPICE.
    • OTA and FOTA Updates: Integrated into the CD pipeline, OTA/FOTA services allow the SWF to deliver secure, real-time updates to vehicles in the field, enabling continuous improvement and new feature rollouts.

Summary: Automotive Software Factory for SDV

The Automotive Software Factory (SWF) for Software-Defined Vehicles (SDV) leverages cutting-edge technologies like AUTOSAR Classic and Adaptive platforms, Embedded Edge Software (Yocto Linux, Eclipse LEDA, Kanto), and Android Automotive OS to build, test, and deploy software with precision. Key processes such as CI, CT, and CD, supported by cloud-based simulations (AWS Graviton), HIL/SIL testing, and OTA/FOTA services, ensure automotive software can evolve rapidly while maintaining quality and safety standards.

This integrated approach provides the flexibility to innovate and the rigor to meet compliance, ensuring that SDVs remain secure, reliable, and capable of adapting to new demands. As a result, the Automotive Software Factory represents the foundation of next-generation automotive software development, leading to faster time-to-market, enhanced customer experiences, and sustained competitiveness in the evolving automotive landscape.

Automotive Software Factory: A Comprehensive Guide to Process, Methods, and Tools in CI/CT/CD with Cloud-Based Simulation Benefits

 

Introduction

The automotive industry is evolving rapidly, with software playing a critical role in vehicle functionality, safety, and user experience. Modern vehicles are embedded with sophisticated software systems that manage everything from engine control to infotainment. As the demand for more advanced features grows, so does the complexity of automotive software. To meet these demands, automotive companies have adopted the Automotive Software Factory concept, an integrated approach focused on optimizing software development and deployment. Key to this factory approach are processes like CI/CT/CD (Continuous Integration, Continuous Testing, and Continuous Delivery), coupled with cloud-based simulations for robust testing and verification.


Automotive Software Factory Overview

An Automotive Software Factory streamlines software development for the automotive industry. It encompasses tools, methodologies, and infrastructure designed to automate and accelerate the software lifecycle while ensuring high-quality and compliant software. A typical automotive software factory involves:

  • Continuous Integration (CI) for ongoing development and integration.
  • Continuous Testing (CT) to maintain quality across every code change.
  • Continuous Delivery (CD) for faster deployment cycles.

The ultimate goal is to maintain a seamless workflow, providing real-time insights into software performance and enabling fast, reliable delivery.


Key Processes in an Automotive Software Factory

  1. Continuous Integration (CI):

    • CI is the backbone of the software factory, allowing for regular code integration from multiple contributors. In an automotive context, CI ensures that new features or updates integrate smoothly into the existing software without causing system issues.
    • Key CI Activities:
      • Automated Builds: Frequent builds to compile, link, and package code.
      • Code Validation: Automatic code checks (e.g., static analysis, style checks) to maintain code quality.
      • Integration Testing: Basic tests to verify that new code doesn’t break existing functionality.
  2. Continuous Testing (CT):

    • CT is essential in the automotive industry, where safety and reliability are paramount. Automated testing is conducted across the software lifecycle, from unit testing to system-level validation.
    • Key CT Activities:
      • Unit and Module Testing: Verifies individual code units’ functionality.
      • Integration and System Testing: Ensures compatibility between modules and assesses performance within the complete vehicle system.
      • Regression Testing: Confirms that new updates haven’t disrupted existing functions.
      • Safety-Critical Testing: For functional safety standards like ISO 26262, ensuring that software adheres to strict safety requirements.
  3. Continuous Delivery (CD):

    • CD in the automotive context refers to the ability to push tested software updates or new features to production or for in-vehicle testing.
    • Key CD Activities:
      • Automated Release Pipeline: Smooth, error-free progression from development to deployment.
      • Rollback Mechanisms: Swift reversion to previous versions in case of issues.
      • Compliance Checks: Ensuring every release adheres to industry standards like Automotive SPICE.

Methods and Tools in CI/CT/CD for Automotive Software

The success of an Automotive Software Factory heavily relies on selecting the right methods and tools to support CI/CT/CD processes. Below are the commonly used methods and tools for each process:

  1. CI Tools and Methods:

    • Source Code Management: Git, GitLab, Bitbucket.
    • Build Automation: Jenkins, GitLab CI, Azure DevOps.
    • Static Code Analysis: Polyspace, CodeSonar, Klocwork.
    • Automated Testing: gtest (Google Test), CMocka for unit testing in C/C++.
    • Dependency Management: Conan, vcpkg for managing library dependencies.
  2. CT Tools and Methods:

    • Test Management: Jira, Zephyr, qTest for tracking and managing test cases.
    • Hardware-in-the-Loop (HIL) Testing: dSPACE, NI VeriStand for hardware simulation.
    • Software-in-the-Loop (SIL) Testing: MATLAB/Simulink, Vector CANoe.
    • Simulation and Model-Based Testing: MATLAB/Simulink for behavior modeling, IPG CarMaker for real-world scenario simulations.
    • Cloud-Based Testing: AWS Device Farm, Google Cloud for on-demand test environments.
  3. CD Tools and Methods:

    • Containerization: Docker for isolated environments.
    • Orchestration: Kubernetes for managing deployment clusters.
    • Release Automation: Jenkins pipelines, ArgoCD for Kubernetes-native CD.
    • Monitoring and Logging: ELK Stack, Prometheus, Grafana for real-time insights.
    • Compliance Verification: tools like VectorCAST and Rapita Systems for runtime testing and compliance.

Benefits of Cloud-Based Simulation in Automotive Software Factory

Cloud-based simulation has transformed how automotive software is developed and tested. With cloud-based simulation, developers can perform extensive tests on virtualized infrastructure, reducing dependency on physical prototypes. Key benefits include:

  1. Scalability and Flexibility:

    • Cloud platforms like AWS, Azure, and Google Cloud offer on-demand resources that scale up or down based on testing needs.
    • Multiple simulations can run concurrently, allowing for extensive testing in a fraction of the time required for physical testing.
  2. Cost Savings:

    • Cloud-based simulations reduce the need for physical hardware and testing facilities.
    • Companies save costs associated with equipment maintenance and space for physical prototypes.
  3. Faster Testing and Feedback Cycles:

    • Testing can be conducted in parallel across various virtual scenarios, accelerating feedback and fixing cycles.
    • Developers gain quicker insights, enabling faster adjustments and refinements.
  4. Enhanced Collaboration:

    • Cloud-based simulation platforms enable real-time collaboration among geographically dispersed teams.
    • Teams can access the same simulation environment, test results, and data from anywhere, facilitating a seamless collaborative environment.
  5. Improved Testing for Edge Cases and Rare Scenarios:

    • Simulations can replicate rare or hazardous conditions, such as extreme weather, to ensure the software behaves predictably.
    • This capability enhances the robustness of safety-critical systems, critical for autonomous and advanced driver assistance systems (ADAS).
  6. Data-Driven Development:

    • Cloud simulations generate large data volumes that can be analyzed for insights into software performance.
    • Data analytics tools help improve predictive maintenance, error detection, and optimization of vehicle performance over time.

Challenges and Considerations

Despite its advantages, adopting a CI/CT/CD model with cloud-based simulations in automotive software development comes with challenges, such as:

  • Data Security and Compliance: Ensuring data protection and compliance with industry standards like ISO 26262 and Automotive SPICE.
  • Resource Management: Cloud simulations, while flexible, require careful resource management to avoid unexpected costs.
  • Integration Complexity: Integrating cloud-based simulations with on-premise systems and HIL/SIL setups can be complex.

To mitigate these challenges, companies should adopt a strategic approach, focusing on compliance, cost-control mechanisms, and robust integration frameworks.


Conclusion

The Automotive Software Factory concept, with its CI/CT/CD model and cloud-based simulations, is reshaping the future of automotive software development. By adopting these practices, companies can build reliable, high-quality, and compliant software faster and more efficiently. The flexibility and scalability provided by cloud-based simulations not only accelerate development but also improve testing rigor, enabling the creation of safer and smarter vehicles.

As the automotive industry continues to evolve, companies that embrace CI/CT/CD processes and cloud-based simulations will be better equipped to meet the demands of the next-generation vehicle software market, maintaining a competitive edge and ensuring the highest standards of quality and safety.