ACT汽车电子与软件技术周回顾 | 龙智技术专家分享汽车行业中版本控制与静态扫描的最佳实践

2023-09-22 14:00:20

在2023 ACT汽车电子与软件技术周期间,我们对话了龙智资深顾问、技术支持部门负责人李培,他聚焦结合行业趋势、自身经验与过往成功案例,分享了版本控制与静态代码扫描在汽车行业中的应用与实践。此外,还对比分析了包括Git、SVN等的多款工具,为大家提供帮助与参考。

对话龙智技术负责人、“Technical Hero”李培,探索汽车行业版本控制与静态分析的最佳实践

采访文字实录

Q:您如何看待汽车行业的开发管理?龙智在这个领域可以为大家提供哪些帮助?

在这么多年中,汽车行业依旧属于传统的制造业。但现在,很多车企面临着新能源企业的竞争,急需转型以缩减成本。他们需要采用全新的设计方法,在这个古老的行业展开全新模式的探索。

其中有一个方面我们能够提供帮助。现在,因为硬件基础相差不大,汽车行业的创新集中在了软件层面的应用。组织如何创造出有价值的软件应用成为重点。

说到软件,龙智在软件开发行业工具方面颇具经验,包括合规性工具、分布式开发工具、上游需求管理工具等,都是我们的强项。通过使用龙智精选的工具,客户能够降低引入软件开发思想的门槛,更快地取得成功。

Q:关于龙智汽车行业解决方案中的版本控制、静态分析工具,能否介绍一下它们在汽车软件开发中的应用场景?

知名汽车企业大多是百年老店,特点是规模大、重资产。他们有很多研发中心,(并且比较分散),甚至有些中国造车新势力的设计团队、重大研发团队分布在海外。这就需要一个能很好的支持分布式开发的版本系统,来为这些不同办公室之间的协作需提供支持。

现在,我们已经有客户采取这种实践。比如他们在英国和重庆都有研发中心,而这些研发中心之间的协作,包括各种研发资料的协作,都得益于Perforce Helix Core,让他们实现了更好的管控与共享。

Perforce的另一个优势是可以作为单一可信数据源。为什么反复强调单一可信数据源?"单一"意味着单一系统就有足够的能力来管理整个公司的数字资产,只有这样才能称之为单一可信数据源,这个词的含义正是如此。

无论团队规模是几人还是几万人,都可以统一使用一套系统来管理数据。这意味着在同一平台上进行资源共享和访问,相对于将数据散布在各处,这种方式显然更为便捷,这是另一个重要优势。

在静态扫描方面,考虑到汽车涉及人身安全,除了传统的ISO 26262公共安全协议和标准外,还要考虑较新的汽车网络化标准,例如ISO 21434。这些安全标准都需要一款权威的静态扫描工具来实现,Helix QAC是当仁不让的选择。

此外,还有一款名为Klocwork的工具,可用于分析车机系统。由于车机系统往往采用安卓开发,代码量非常大。Klocwork能够对这些项目进行深度分析。这些工具对汽车行业非常有帮助。

Q:与SVN、Git相比,Perforce Helix Core对于汽车行业的开发来说有哪些独特优势?

Git和SVN都是广泛使用的版本管理工具,但与Perforce Helix Core相比,它们在管理的数据量和用户数方面存在显著差异,当这些数据发生重大变化时,就会由量变产生质变。

虽然它们都是版本管理,但在不同数量级上,面临的问题却截然不同。如果要用Git来管200T的数据,简直是不可能的,世界上最大的Git仓库可能一组也只有几十个G,这是根本性的区别。另外,在审计、分布式部署、分支管理等方面,Git和SVN都与Perforce Helix Core存在明显差别。

对于小团队来说,Git和SVN可能足够使用,这点我是相信的。但在整个公司范围内,如果每个团队都使用不同的版本管理服务器,那就必然会面临整个组织的数据控制和共享问题。如果想在整个公司统一数据管理来源,Perforce Helix Core是最佳选择。在前端,可以考虑使用其他版本管理工具(如Git),以保留使用习惯,但在公司整体层面,可以规划统一的灾备计划、规则集和升级策略,来确保公司层面的数据安全。

Q:同样都是静态代码扫描工具,Helix QAC和Klocwork的区别在于?

在合规方面,特别是在公共安全标准,如Misra或AUTOSAR的标准覆盖方面,Helix QAC的覆盖率更高,Klocwork的覆盖率相对较低一点。这种区别主要源于产品定位的不同,尽管它们来自同一家公司,但仍然存在一些区别。Klocwork支持更多的编程语言,易用性更好,主要就是这些细微的差别。

Q:Helix QAC和Klocwork是如何帮助满足ISO 21434、ISO 26262等代码合规性标准的?

ISO 26262、ISO 21434这些标准相对抽象且专业,我只能简单地介绍一下。

比如想要低复杂度、代码稳定或健壮,为实现这一要求,需要采取具体的做法。例如,禁止使用语言特性中容易引发错误的部分,只允许使用一个子集。这样可能产生一套检查规则集,比如Misra、Misra C、AUTOSAR等。通过允许使用一个语言的子集,把容易出错的用法隔离在外,变成一个可执行的检查。只要代码在一定程度上通过这些规则的检查,就可以表明满足了该标准的要求。

然而,这中间仍然存在一个问题。即使使用合规的工具和合规的检查规则,但是仍然需要

一套文档来自证清白。在这方面,Perforce原厂提供合规认证,帮助提高申报成功率。

Q:Helix QAC和Klocwork与竞品相比有哪些优势?

Helix QAC有超过30年的历史,在合规认证方面被视为是必选项,而不是可选项。

Klocwork具有永久许可,并支持多种编程语言,这是其独特的优势。

Q:Digital Twin(数字孪生)作为汽车行业的一个新兴概念,请问Perforce产品在其中有什么应用示例?

Digital Twin技术不仅在汽车行业得到应用,游戏行业早已使用并逐渐成熟。其本质与具体行业关系不大,而是与技术本身紧密相关。无论是汽车行业还是游戏行业,只要采用了Digital Twin,Perforce为您提供卓越的管理支持,包括大数据量、大文件和分布式协作,并且能够很好地与Git等工具进行集成。

Q:整体介绍下龙智汽车行业解决方案?

(龙智集成了Atlassian和Perforce等全球知名厂商的工具,并且是久经市场验证的工具。)在上游需求管理方面,我们提供Perforce的Helix ALM,可以进行需求、变更、bug、测试等的管理。还有Atlassian公司的Jira,它可以用于项目需求管理,包括bug管理也可以实现,虽然可能需要通过插件。并且,它支持不同的开发模式。

从上游需求的维护往下延伸到版本控制系统,各种文档、代码、图纸甚至是芯片设计,都能够在Perforce Helix Core或Methodics IPLM上进行管理。

这些资料一旦存储在Perforce Helix Core或Methodics IPLM中,就可以进行定期的审查和检查。在软件层面,通过刚才提到的Helix QACKlocwork,能进行开源组件、静态扫描和合规性的检查。如果要发布制品,还有其他的一些知名的软件,我们的产品一般也会自带软件开发生命周期管理。

龙智在服务国内客户以及支持他们使用国际化产品方面积累了丰富的经验。我们拥有专业的团队,致力于提供对这些产品的高质量支持。当客户遇到问题或困难时,我们会迅速与原厂公司协调,共同解决客户的问题,并且我们有许多成功的案例作为参考。

我们以本土为基础,为客户提供最优质的国际化产品和最出色的本地化服务,这是我们的独特优势

Q:您在此前荣获了Perforce公司颁发的“2022 Technical Hero”称号,请问您是凭借什么从众多竞争者中脱颖而出?

这不单单是我一个人的奖项,我只是我们团队的代表。我们团队一直秉承着以用心服务为宗旨,这不仅是承诺,更是我们内心的坚持。当看到我们的努力帮助客户快速地解决了问题,或是在遇到困难时,我们通过迅速向原厂求助,确保了客户的问题得以迅速解决,我们的内心都是充满喜悦的。获得此奖项也正是说明了我们的专业和态度获得了原厂的认可。

Q:参加这次汽车电子与软件技术周,您有什么参会感触?

我参会的感触之一是硬件和软件之间的gap还是比较明显的。如果硬件团队能够借助软件这种快速的开发模式,这对他们将会非常有帮助。同样,如果软件团队能够更好地理解硬件的设计理念,他们的开发态度也将更为积极和合作。

更多推荐

【Vue】快速入门和生命周期

目录前言一、vue的介绍1.Vue.js是什么?2.库和框架的区别3.基本概念和用法:二、MVVM的介绍1.什么是MVVM?2.MVVM的组成部分3.MVVM的工作流程4.MVVM的优势5.MVVM的应用场景三、vue实例1.模板语法:2.双向数据绑定3.虚拟dom实例四、vue生命周期钩子总结前言Vue.js是一款流

数据在C++中的大小(占用内存)

C++中的大小(占用内存)摘要正文获取数据类型的大小注意结论摘要在C++中,了解数据类型的大小及其在内存中的占用情况对于编写高效的代码至关重要。本文将介绍C++中不同数据类型的大小以及如何计算它们所占用的内存空间。正文在C++中,每个数据类型都有不同的字节大小,这取决于编译器和操作系统的实现。下面是一些常见的数据类型及

fastjson反序列化漏洞(CVE-2017-18349)

文章目录fastjson序列化FastJson序列化操作反序列化漏洞原理漏洞复现(CVE-2017-18349)fastjsonfastjson是阿里巴巴开发的java语言编写的高性能JSON库,用于将数据在Json和JavaObject之间相互转换。它没有用java的序列化机制,而是自定义了一套序列化机制。提供两个主

Open Interpreter,一个让ChatGPT入驻你的电脑并获得联网能力成为贾维斯!

OpenInterpreter,一个让ChatGPT入驻你的电脑并获得联网能力成为贾维斯!介绍安装使用介绍最近看了Github最近大火的程序员终端大升级,发现了openinterpreter这个可以部署到本地命令行的对话AI,其依赖ChatGPT,可以使用联网功能和本地模型,很好地拓展了原有的功能并且能结合物理设备软硬

勇立潮头!高品质SFT语音数据实现Zero-Shot语音复刻大模型

文本到语音合成(TexttoSpeech,TTS)作为生成式人工智能(GenerativeAI或AIGC)的重要课题,在近年来取得了飞速发展。为了实现高效合成既自然又高质量的人类语音,有不少机构及企业都进行了相关项目的研究,包括微软亚洲研究院机器学习组和微软Azure语音团队去年推出的NaturalSpeech(htt

企业微信 API 接口调用教程:图文详解企业微信 API 的使用方法

本文通过access_token凭证的方式来讲解怎么调用企业微信API,并一步步介绍如何获取企业微信API的corpsecret、corpid、access_token凭证以及怎么向企业微信的应用发送消息。企业微信API在线地址为:概述-企业微信API,这个在线地址的项目你可以克隆到Apifox,以方便调试。话不多说,

基于深度学习的加密恶意流量检测

加密恶意流量检测研究目标定位数据收集数据处理基于特征分类算法的数据预处理基于源数据分类算法的数据预处理特征提取模型选择基于数据特征的深度学习检测算法基于特征自学习的深度学习检测算法训练和评估精确性指标实时性指标应用检验改进摘录自:MingfangZHAI,XingmingZHANG,BoZHAO.Surveyofenc

应用在苹果应用商店该如何进行优化

众所周知,ASO最大化的提高应用程序在商店中的可见性,其目标是获得更多的下载量,同时它也与下载的转化率有关。1、根据应用阶段追求不同的目标。它可以是有机增长或转化率的提高,获得更多安装并降低用户获取成本,增加收入或提高保留率,达到一定的参与水平或提高每日或每月活跃用户。2、应用的文本字段。应用名称需要包含一些主要关键词

PAT 1035 插入与归并

PAT1035插入与归并题目描述思路讲解代码展示题目描述思路讲解分析:先将i指向中间序列中满足从左到右是从小到大顺序的最后一个下标,再将j指向从i+1开始,第一个不满足a[j]==b[j]的下标,如果j顺利到达了下标n,说明是插入排序,再下一次的序列是sort(a,a+i+2);否则说明是归并排序。归并排序就别考虑中间

xen-timer

目的主要了解一下armtimerspec和xen项目中timer是怎么使用,如何实现的。同时也是对学习过程的一些记录。学习链接文章链接时间子系统http://www.wowotech.net/sort/timer_subsystemarmtimerspechttps://developer.arm.com/docume

阿里云服务器上CentOS 7.6使用rpm包安装MySQL 8.0.31

我这里下载的是最新版本,需要到MySQL官网最新版本下载地址。要是想要下载以前的版本需要到MySQL以前版本网址中。1)先使用wgethttps://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar(这个网址现在已经不

热文推荐