AI-assisted automotive software engineering (I)
Language-dependent, standardized, and process-oriented tasks are prime candidates for automation, optimization, and replacement by Large Language Models #LLMs. In the last decade, generative AI #GenAI has evolved into an integral assist for software developers seeking enhanced productivity and efficiency. Open AI team have analyzed occupation exposure to LLMs capabilities by combining both human expertise and GPT-4 classification to investigate impacts of LLMs on American labor market, this research (Eloundou et al. 2023) demonstrated that around 80% of the American workforce may have at least 10% of the associated work affected by LLMs.
Automotive software engineering faces the challenge of dealing with overly complex and safety-critical hardware/software systems. Recently, the complexity of automotive software, such as autonomous driving / smart cockpit functions, has witnessed a dramatic increase. Interestingly, while the complexity grows, the development cycle has shortened from the previous 5-6 years to a mere 2 years. This leads to higher R&D costs and more failure rates. Recognizing the imperative for adaptation, numerous automotive corporations have initiated an organizational transformation, transitioning from traditional development processes to more agile methodologies. However, in this rapidly evolving landscape, the application of generative AI emerges as a potential game-changer. This white book aims to explore how Generative AI can elevate collaboration efficiency, mitigate costs, and seamlessly integrate into the existing tool and process framework. As demonstrated in Figure 1, the development of automotive software systems requires processes for requirement engineering, daily implementation task management, ECU integration, and other essential components. Technically, we now have many digital tools, e.g. DOORS, Polarion, Architect Enterprise, JIRA, etc., which are suitable for certain development phases. But the transfer of the respective results is based on human communication and domain specifical knowledge, which is almost always individual and emotional.
For a team collaboration, how to make complex communication and collaboration between different stakeholders more fluid and automated, enable experts to better leverage their capabilities in their own tech stacks, make projects lighter and easier to manage, and capacitate companies to complete more complex products at lower costs - We believe the huge potential of generative AI is yet to be realized.
1.???The particularities of automotive software engineering
Automotive software engineering introduces unique challenges in the application of LLMs, setting it apart from the conventional landscape of IT software development:
Project complexity and teamwork: Project complexity and teamwork: Current AI-tools are typically designed for individual developer and single task on the code level. In the automotive series project, the size of a project team is often more than twenty even hundred experts from diverse organizations and with specifical domain knowledge. AI-assisted tools for automotive should work at any scale.
Safety and traceability: Automotive organizations used to work with processes and standards (e.g. #APICE, #V-Model and #FunctionalSafety) to ensure the development quality and product safety. An integration of new tools powered by LLMs into the existing processes can remove ambitions and keep the product ownership by the experts.
Domain specificity and customization: The implementation scope of an automotive software product is not only limited in several million lines of code, but also the documents, specifications, and tests. It requires domain-specifical expert knowledge including system engineering, requirement engineering, etc. Also, OEMs seek to develop own specifical products for their customers. Therefore, the LLM should be optimized for users' technical domain and development tasks.
Data privacy and private enterprise data: Technologies like GPT are trained and tailored to public data. The most companies would like to protect private enterprise data and protect the data privacy. This can be realized by on-prem deployment of LLMs.
Deterministic hypothesis and domain-specifical experiences: As we know, language models exhibit non-deterministic behavior. The implementation of sophisticated prompt engineering, coupled with access to a private knowledge base, can enhance accuracy and consistency of outcomes.
2.? The landscape of AI-assisted software engineering
Different technologies and concepts are being applied to AI-assisted scenarios, here we introduce briefly the most relevant items as follows:
AI-assisted software engineering refers to the use of an intelligent collaborator (IC) empowered by AI and big data techniques to enhance the efficiency and professionalism of engineers and programmers in their workflows. Through interactive dialogues, the IC assists in analyzing, specifying, and optimizing customer requirements, as well as generating, refining, and tracking internal development tasks. Furthermore, the IC facilitates code generation, command execution, testing of use cases, and simplifies the management of synchronization and change requests. IC does not take the ownership of technical responsibilities but accelerates collaboration within the team, thereby improving the overall efficiency of building software systems. This, in turn, allows developers to unlock greater productivity in domain-specific tasks, particularly at an expert level.
Private knowledge base (PKB) refers to a set of information that is specific to a particular user or organization. This knowledge base can include proprietary data, internal documents, and private code base. When employing a Large Language Model (LLM) for text or code generation, the model can be configured to access and integrate this PKB. This enables the LLM to deliver output that is not only more pertinent but also more precise, addressing the user's specific requirements. By leveraging private knowledge, LLM can enhance the quality and specificity of its generated content, making it particularly valuable for organizations with specialized internal information that they want to incorporate into their AI-generated text. Technologies that are commonly used in the knowledge base include word embedding, natural language processing, vector search, semantic retrieval, etc.
Tool connectivity and workflow automation are the most important part for an efficient data transfer. Automotive system/software development consists of several tasks like requirements engineering, task management, architecture design, coding, integration, testing and validation. Various tools are therefore designed and used within each step. Given the diverse nature of the data involved, frequent inter-tool data exchanges are a routine aspect of the process. To facilitate seamless operations, tools can establish connections by converting data formats, enabling automatic data transfer, and streamlining tasks within a workflow.
领英推荐
Retrieval-Augmented Generation (RAG), a critical methodology for developers aiming to refine and optimize responses from language models, particularly in domains requiring expert-level knowledge. In the absence of responsible and thoughtful prompt engineering, outcomes from Large Language Models (LLMs) can tend towards the absurd. Hence, it is imperative to seamlessly integrate domain-specific knowledge into prompt design. RAG is a technique that optimizes the output of a large language model by referencing an authoritative knowledge base outside of its training data sources before generating an answer. Large language models (LLMs) are trained with huge amounts of data and use billions of parameters to generate original output for tasks such as answering questions, translating languages, and completing sentences. RAG extends the already powerful capabilities of LLMs to specific domains or an organization's internal knowledge base without having to retrain the model. It is a cost-effective approach to improving LLM results so that it remains relevant, accurate and useful in different contexts.
3.? Technical advantage of AI-assisted automotive software engineering
Which kind of specific scenarios can AI provide a technological advantage? Some, such as code automation, are already familiar to us, while the technical management category is still less accessible to us.
Assisted requirements generation Developer or user describes their need. LLM analyses and summarizes the requirements. After the clarification, the requirements will be breakdown into technical requirements.
Auto breakdown and refinement of daily tasks in the dynamic software development landscape changes are frequently and finicky. Using a private knowledge base the LLM can breakdown and refine the development tasks in a fine quantity.
Automatic code generation and auto-comment: This refers to the ability to suggest code/comment completions as developers type and turn natural language prompts into coding suggestions based on the project's context and style conventions. This can help speed up the coding process and improve code readability and maintainability.
Automatic test case generation: This involves automatically generating test cases for functions and software applications based on certain criteria or algorithms. It can help improve test coverage, reduce manual effort in writing test cases, and uncover potential bugs or issues in the software. Jumpstarting the hardware integration process: This refers to streamlining the process of integrating hardware components into a system or device by providing tools, frameworks, or guidelines to quickly get started with the integration. This can help reduce development time, minimize errors, and ensure smooth interoperability between hardware and software components.
Code auto-completion: This feature assists developers by automatically suggesting code snippets or completing code as they type in an integrated development environment (IDE) or code editor. It can help improve coding speed, reduce syntax errors, and provide suggestions based on context, libraries, or previously code.
4. Customer value of AI-assisted software engineering?
AI assistants, which do not replace specialists, but assist them to work more effectively. We have attempted to assign these benefits to currently established roles in the project in order to illustrate the technical value of the AI assistant.
Release the experts from rudimentary to advanced tasks. By freeing up experts from basic tasks, it allows them to focus on more complex and strategic aspects of software development, leading to higher productivity and innovation within the team.
Enable a transparent and traceable project management. It enables transparent and traceable agile project management by providing insights, automated tracking, and real-time updates, enhancing collaboration and decision-making processes for better project outcomes.
Reducing the career entry barrier. AI-assisted software engineering reduces the career entry barrier for newcomers, junior employees or teams by guiding users to understand the problem and solving it in partial solutions based on the previous and existing experiences and artifacts like documents, specification and code.
Exponential speed of development. The exponential speed of development achieved through AI assistance accelerates the software development lifecycle, enabling faster delivery of products or features to market, gaining a competitive edge and meeting customer demands more efficiently.
Self-enforcing mechanisms. Self-enforcing mechanisms embedded in AI-assisted software engineering to ensure adherence to best practices, standards, and guidelines throughout the development process, promoting consistency, quality, and reliability in the final deliver.
great summary??. I like it very much. Thank you. Common issue to my use cases are the assisted requirements generation and the tranparency of project management. Maybe have an exchange on it soon.
Co-Founder of Altrosyn and DIrector at CDTECH | Inventor | Manufacturer
11 个月Absolutely, the intersection of generative AI and automotive software engineering holds immense potential. Considering the dynamic nature of R&D projects, how do you envision balancing the creativity of genAI with the need for precision and reliability in the automotive domain? Additionally, regarding your implemented approaches, are there specific challenges you've encountered or unique insights gained that you'd like to share with the community? Looking forward to delving deeper into the transformative impact of genAI in your blog's second part!