如何管理嵌入式开发中产生的数字资产?ACT 汽车电子与软件技术周演讲回顾
2023 ATC 汽车电子与软件技术周已于 8 月 18 日在中国上海落下帷幕。展会现场,龙智技术支持部负责人、Atlassian 认证专家叶燕秀与龙智技术工程师邱洁玉共同为观众带来了主题为“更好、更快、更安全:嵌入式开发中的最佳实践与工具链构建”的演讲,分享她们在嵌入式开发中的最佳实践和经验。
上一期,我们呈现了叶燕秀分享的如何精细化管理汽车嵌入式软件项目,点此回顾。
本期回顾将呈现龙智技术工程师邱洁玉的演讲部分,分享如何管理汽车软件开发中产生的庞大数字资产,以及汽车行业的代码合规实践。
以下是演讲视频:
以下是演讲文字实录:
大家下午好,我是龙智技术工程师邱洁玉,很高兴在此与大家分享我在汽车嵌入式开发领域的经验与见解。
此次演讲分为两大部分,分别是数字资产管理与代码合规实践。
在汽车嵌入式开发领域,版本控制是一种常见且极其重要的软件工程实践。它能够帮助管理代码变更、追溯问题,以及促进团队协作。然而,随着项目规模和复杂度的增加,它也会面临到一些挑战。
第一个问题,版本、分支管理难度增加。当涉及到车型时,可能客户对每款车型都有独特的需求。这时,技术人员需要针对不同特性、不同车型来定制化相应的版本,创建出一些分支。技术人员需要确保每一个分支都能及时地合并到主干代码更新中,例如新增特性和修复问题,同时还需确保分支之间的隔离性。
第二个问题,海量数据分散在不同的地方,共享和使用困难。因为无法存储大数据量,或是根据部门实际情况数据会存在多个分散的版本控制系统。这些系统需要独立地管理和维护,团队和部门需要付出额外的努力来保障资源共享。比如在汽车嵌入式领域,很多代码需要进行复用,这些复用的代码存在于不同的项目、不同的服务器中。开发人员需要先找到对应的服务器,再开通各种服务器权限,整个流程非常繁琐。
第三个问题,需要高效的跨地域协作。团队成员分散在不同地区,难以面对面交流。如果版本控制系统无法保证开发工作的同步以及自身的稳定性,就会导致团队成员响应速度变慢,解决问题的时间变长,最终影响质量和交付。
另一个问题,安全及审计需求难以满足。在汽车嵌入系统中,可能涉及很多知识产权,像专利、商业机密等。针对这类敏感文件,需要灵活的分配权限,并且在需要的时候将权限收回。
还有,在有新增团队成员的情况下,或是现有的团队成员的角色变更时,能迅速顺利地调整和分配权限。这也是很多客户的共同诉求。
另外,审计日制对版本控制系统也非常重要。如果没有审计日制,就无法记录用户的活动,也就无法监控开发工作中的违规行为和异常情况。当真正出现安全事件时,追溯事件源头会变得非常困难。
在数字化时代,设计资料、代码、配置项生成物……这些都是数字资产。数字资产不仅是储存在电脑上的一个个文件,也是个人和团队的智慧结晶。它可能经过日日夜夜的精心设计,或是经历反复思考和验证。在这个研发流程中,版本控制软件一直处于核心位置。它管理着这些宝贵的资产,确保它们安全、有序。
那么,既然版本控制系统如此关键,我们必须要一款强壮的版本控制系统来提供服务。
强壮的版本控制系统需具备高性能,高性能体现在多个方面。
首先,能够同时支持上万名用户的使用,并处理数百 TB 级别的数据。
其次,具备出色的分布式部署能力,可随时根据需要在不同地区部署集群节点,以便异地用户访问。
此外,能支持每天数以千计的流水线构建,因为自动化构建是当前的主流方法之一。
兼容性也是强壮版本控制系统的特点之一,它可以同时兼容不同用户的偏好,例如像 Git 这样的常见工具,在开发领域有广泛的应用。这种兼容性使开发者能够继续使用他们熟悉的 Git 工具,同时享受企业级版本控制系统的强大功能。
另一个特点是安全性,强壮的版本控制系统确保数据的安全性,它是唯一可信的数据源,并具有多种方式进行用户认证的能力。它还提供了灵活而强大的授权控制,可以精细到文件级别,根据用户组、角色和访问 IP 实现授权控制。此外,它还允许将权限授予非管理员用户,以协助管理权限。
审计日志也是关键特点,管理员可以利用审计日志跟踪文件的访问细节,了解哪个用户在什么时候对什么文件进行了什么操作。这对于管理数字资产的创建和维护非常重要。
最后,强壮的版本控制系统可以与当前领域中的常用工具(如 Lapview 和 MatLab 等)无缝集成,确保整个工作流程的顺畅。
在这里,和大家分享一款 Perforce 旗下的版本控制系统——Helix Core。作为一款企业级的版本控制系统,Helix Core 具备可信数据源、高速存储的能力、强大的分支管理、高度的可伸缩性、企业级的安全性,并且能够与常用工具无缝集成等。它已为国内外许多汽车领域的企业提供了服务。
在芯片行业,经常会提到一个词“IP”,它指的是具有独立功能的电路模块设计。实际上,IP 的概念可以更广泛地泛化,包括软件模块、硬件图纸和配置文件等。Perforce 旗下的 Methodics IPLM 是一款在 IP 层级进行数字资产管理的工具。这个工具构建在版本控制系统(Helix Core、Git、SVN 等)之上。
Methodics IPLM 可以使用独立的服务器来管理存储在不同版本控制系统上的资产,并且能够追踪 IP 版本的变更历史以及 IP 之间的关系。例如当前的 IP 被哪些项目所使用、每个 IP 包含了哪些子 IP。
另外,仅用一条命令,IPLM 就可以把包含很多 IP 的复杂项目加载到本地工作区。当数据量很大时,可以使用公用缓存技术,能够有效减少加载时间,节省本地的磁盘空间。
在汽车嵌入式的推进过程中,每个阶段都会产生很多的交付。例如图纸版本、软件版本、测试报告版本等,这些版本之间的关系需要额外记录。而 IPLM 可以将这些信息集中起来,明显展示它们之间的关系,并在需要时,通过一条命令将所有的 IP 统一加载到本地工作区。
Methodics IPLM的一些特点包括:
帮助团队追溯所有的 IP 和元数据
帮助企业建立一个通用的发布方法
管理所有设计的 BoM
简化复杂 IP 体系结构的管理
支持与周边系统(例如 Jira、EDA 等)无缝集成
这张图展示了 Methodics IPLM 的可视化界面。展示了当前 IP 的属性以及发布版本。像这样的发布版本的背后,可能是多个文件的多次提交。例如当前提交了一次文件后,如果企业需要进行一次内部验证,我们就可以发布一次 IP 版本。
质量与合规
在汽车嵌入式开发领域,代码质量会直接影响到产品的性能和安全。一起来看下这张图,有 85%的缺陷都是在开发阶段引入的。
如果通过传统的方式,我们会在测试阶段和发布阶段发现很多问题。红色的曲线表示,在开发阶段解决问题的代价很低,在测试阶段解决问题的成本成倍增加,到了发布阶段,成本已经呈指数级增长了。
因为开发阶段的代码量相对较少,复杂性也不高,定位问题和修复问题的成本都较低。到了开发的中期,解决问题可能涉及多个模块的更改,特别是到了发布阶段,解决问题的手段可能是紧急的软件更新或召回。所以,越早发现问题解决的代价就越低。
那么,为何不将发现问题的时机左移到开发阶段呢?在开发阶段,可以依靠开发人员的专业素养或评审发现问题。但在汽车嵌入式领域,可能涉及到很多项目或源代码,如果想要提高代码质量,就需要借助静态扫描工具。
好的静态扫描工具需具备以下特点:
误报率、漏报率低
检查规则全面
扫描速度快
对开发人员友好
易与 CI 工具集成
静态扫描工具不仅能提高代码质量,还可以帮助满足各种合规要求。汽车行业通常会要求企业满足各种合规性要求,常见的行业合规标准有 ISO 26262 和 ISO 21434 等。
可以通过代理标准来满足汽车合规标准。具体请看这张图:
其中,ISO 20202 要求低复杂度。静态扫描工具可通过圈复杂度或路径复杂度这两条指标,也可通过 Misra 质量标准,来满足低复杂度的行业标准要求。
通常,企业在进行合规认证时需要准备大量资料。大部分企业无法很好地掌握满足合规的方法。静态扫描工具提供了合规指导包,其中包含了工具本身的认证证书、工具覆盖率详情、生成报告的插件、产品的认证报告,以及行业标准和代码质量标准之间的关系。它能够有效减轻企业认证的工作量。
我在此分享两款 Perforce 旗下的静态扫描工具。它们不仅能够帮助提高代码质量,同时也能满足合规性要求。Helix QAC在 C/C++静态代码分析领域有 30 多年的历史,符合功能安全标准(如 ISO 26262),能够帮助您满足合规需求。它的代码标准覆盖率很高,并且准确率高、漏报率低。
Klocwork这款工具支持多种语言,包括 C,C++,C#,Java, JavaScript, Python, Kotlin 等。它本身通过多种行业标准,如 ISO 26262 等。它的特点是支持千万行代码的大型项目,界面友好、易于使用。这两款工具已被行业中多家客户所使用。
以上是我的分享,希望对大家有所帮助,谢谢!
评论