如何管理嵌入式开发中产生的数字资产?ACT汽车电子与软件技术周演讲回顾

news2024/11/20 7:26:47

2023 ATC汽车电子与软件技术周已于8月18日在中国上海落下帷幕。展会现场,龙智技术支持部负责人、Atlassian认证专家叶燕秀与龙智技术工程师邱洁玉共同为观众带来了主题为“更好、更快、更安全:嵌入式开发中的最佳实践与工具链构建”的演讲,分享她们在嵌入式开发中的最佳实践和经验。

上一期,我们呈现了叶燕秀分享的如何精细化管理汽车嵌入式软件项目,点此回顾。

本期回顾将呈现龙智技术工程师邱洁玉的演讲部分,分享如何管理汽车软件开发中产生的庞大数字资产,以及汽车行业的代码合规实践。

以下是演讲视频:

演讲回顾 | 更好、更快、更安全:嵌入式开发中的最佳实践和工具链构建(2)

以下是演讲文字实录:

大家下午好,我是龙智技术工程师邱洁玉,很高兴在此与大家分享我在汽车嵌入式开发领域的经验与见解。

此次演讲分为两大部分,分别是数字资产管理与代码合规实践。

在汽车嵌入式开发领域,版本控制是一种常见且极其重要的软件工程实践。它能够帮助管理代码变更、追溯问题,以及促进团队协作。然而,随着项目规模和复杂度的增加,它也会面临到一些挑战。

  • 第一个问题,版本、分支管理难度增加。当涉及到车型时,可能客户对每款车型都有独特的需求。这时,技术人员需要针对不同特性、不同车型来定制化相应的版本,创建出一些分支。技术人员需要确保每一个分支都能及时地合并到主干代码更新中,例如新增特性和修复问题,同时还需确保分支之间的隔离性。

  • 第二个问题,海量数据分散在不同的地方,共享和使用困难。因为无法存储大数据量,或是根据部门实际情况数据会存在多个分散的版本控制系统。这些系统需要独立地管理和维护,团队和部门需要付出额外的努力来保障资源共享。比如在汽车嵌入式领域,很多代码需要进行复用,这些复用的代码存在于不同的项目、不同的服务器中。开发人员需要先找到对应的服务器,再开通各种服务器权限,整个流程非常繁琐。

  • 第三个问题,需要高效的跨地域协作。团队成员分散在不同地区,难以面对面交流。如果版本控制系统无法保证开发工作的同步以及自身的稳定性,就会导致团队成员响应速度变慢,解决问题的时间变长,最终影响质量和交付。

  • 另一个问题,安全及审计需求难以满足。在汽车嵌入系统中,可能涉及很多知识产权,像专利、商业机密等。针对这类敏感文件,需要灵活的分配权限,并且在需要的时候将权限收回。

  • 还有,在有新增团队成员的情况下,或是现有的团队成员的角色变更时,能迅速顺利地调整和分配权限。这也是很多客户的共同诉求。

  • 另外,审计日制对版本控制系统也非常重要。如果没有审计日制,就无法记录用户的活动,也就无法监控开发工作中的违规行为和异常情况。当真正出现安全事件时,追溯事件源头会变得非常困难。

在数字化时代,设计资料、代码、配置项生成物……这些都是数字资产。数字资产不仅是储存在电脑上的一个个文件,也是个人和团队的智慧结晶。它可能经过日日夜夜的精心设计,或是经历反复思考和验证。在这个研发流程中,版本控制软件一直处于核心位置。它管理着这些宝贵的资产,确保它们安全、有序。

那么,既然版本控制系统如此关键,我们必须要一款强壮的版本控制系统来提供服务。

强壮的版本控制系统需具备高性能,高性能体现在多个方面。

  • 首先,能够同时支持上万名用户的使用,并处理数百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等。它的特点是支持千万行代码的大型项目,界面友好、易于使用。这两款工具已被行业中多家客户所使用。

以上是我的分享,希望对大家有所帮助,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UE5射击游戏案例蓝图篇(一)

一、使用到的资源 1.小白人动画包 2.基础武器包 3.虚幻商城免费的模型包 二、角色创建 1.以Character为基类创建出需要的角色,双击打开之后并在已有组件的基础上,添加摄像机臂和摄像机两个组件。添加完成之后可以根据自己的需要调整摄像机臂的位置&…

4. qgis c++二次开发 map canvas介绍

文章目录 前言Map canvasQGis软件中的Map canvas代码添加Map canvasMap Canvas创建和显示 QGis中的QGraphicsItem二次开发中的Item Layer TreeQGis软件中的Layer Tree代码实现layer tree QgsProject(项目管理)QGis软件中的项目管理代码实现 总结 前言 前几篇文章分别介绍了qgi…

软件测试担心失业,如何找一份稳定的技术性工作?没有35岁中年危机!

工作难找,大龄程序员屡次碰壁,感慨并担忧自己的未来没出路! 经常有网友发帖留言: 今年1月4号被裁员,至今未找到工作,之前做的是软件测试,boss上沟通了3000多次,投简历200多次&#…

JimuReport 积木报表 v1.6.4 稳定版本正式发布 — 开源免费的低代码报表

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…

高通新骁龙处理器将于明年上半年发布,携四大品牌厂商首发 | 百能云芯

高通(Qualcomm)即将于10月下旬正式亮相首款以Oryon架构打造的 PC CPU「Snapdragon X系列」,据悉,四大品牌联想、惠普(HP)、戴尔(DELL)及宏碁将是首波推出相关PC的品牌厂,…

【JAVA-Day45】Java常用类StringBuffer解析

Java常用类StringBuffer解析 Java常用类StringBuffer解析一、什么是StringBuffer类二、StringBuffer类的方法2.1 append方法2.2 insert方法2.3 delete方法2.4 replace方法2.5 reverse方法2.6 toString方法2.7 capacity方法2.8 length方法 三、StringBuffer类的应用场景深入了解…

AP5216 dc-dc平均电流型 LED降压恒流驱动器 全亮半亮9W车灯驱动IC​

1,​​产品描述 AP5216 是一款 PWM工作模式, 高效率、外 围简单、内置功率管,适用于5V~100V输入的高 精度降压 LED 恒流驱动芯片。输出功率可达 9W,电流 1.0A。 AP5216 可实现全亮/半亮功能切换,通过 MODE 切换&#x…

浅谈智能照明控制系统在智慧建筑中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 摘要:新时期,建筑行业发展迅速,在信息化背景下,建筑功能逐渐拓展,呈现了智能化的发展态势。智能建筑更加安全、节能、环保,也符合绿色建筑理念。在建筑智…

【Hello Algorithm】暴力递归到动态规划(四)

动态规划的数组压缩技巧 - 机器人走格子问题 题目是leetcode62题目原题 表示如下 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中…

到底什么才是真正的商业智能(BI)

随着人工智能、云计算、大数据、互联网、物联网等新一代信息化、数字化技术在各行各业内开始大规模的应用,社会上的数字化、信息化程度不断加深,而数据价值也在这样的刺激下成为了个人、机构、企业乃至国家的重要战略资源,成为了继土地、劳动…

win11 搭建Apache webdav 设置用户名密码 加密授权访问以及多个不同目录访问

Apache webdav 的搭建应该比较简单,但是搭建后还遇到了一些问题,也就是设置了访问用户名密码,咋就不生效呢,苦苦思索两日,终于发现了问题,本文就是分两个方面来编写 一、搭建 1.下载Apache 官网下载: https://www.apachehaus.com/cgi-bin/download.plx 2.下载后解压…

【ECharts】仪表盘指针自定义形状

这里我把指针改为扇形图,如下 主要是通过如下代码实现自定义形状的指针: var option {series: [{pointer: {icon: image://data:image/png;base64,iVBORw0KGgoAAAANSU...,},}]}; 完整代码如下: var chartDom document.getElementById(my…

今日多写一行注释,明日维护少掉一根头发

👑 个人主页 👑 :😜😜😜Fish_Vast😜😜😜 🐝 个人格言 🐝 :🧐🧐🧐说到做到,言出必行&am…

C++11——右值引用

文章目录 1. 左值和右值1.1 什么是左值1.2 什么是右值 2. 左值引用和右值引用2.1 左值引用的使用场景2.2 右值引用的使用场景 3.移动语义4. 完美转发 1. 左值和右值 1.1 什么是左值 左值,不能根据名字来判断,即左边的就是左值,这个是错误的…

Linux系统使用AndroidStudio创建桌面快捷键

Linux系统使用AndroidStudio创建桌面快捷键 系统:deepin 20.7 Android studio 版本:Android Studio Iguana | 2023.2.1 Canary 1 下载免安装最新版本后,是直接在安装包中启动的,但是有点麻烦,就需要设置一个桌面快捷菜…

数据分析案例-基于snownlp模型的MatePad11产品用户评论情感分析(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

禁用和开启笔记本电脑的键盘功能,最快的方式

笔记本键盘通常较小,按键很不方便,当我们外接了键盘时就不需要再使用自带的键盘了,而且午睡的时候,总是担心碰到笔记本的键盘,可能会删掉我们的代码什么的,所以就想着怎么禁用掉,下面是操作步骤…

消失的人!消除视频中不需要的人物

视频拍摄中拍摄了不相干或者是不需要出现的人物,想要从视频中去除,应该如何操作呢?有什么快捷方法可以轻松扣除视频中的人物? 我们在视频剪辑的时候都有这样的烦恼吧?就是在一段视频素材里有多余的人物出现&#xff0…

女性用品经营商城小程序的作用是什么

女性悦己消费增强,围绕女性产生的商品,品牌多且样式足,消费者可以随时购买到,但随着线上互联网深入人们生活,电商近些年发展迅速,传统女性用品线下经销商或品牌在实际经营中面临着痛点。 线上卖货是各商家…

大数据 DataX 详细安装教程

目录 一、环境准备 二、安装部署 2.1 二进制安装 2.2 python 3 支持 三、Data X 初体验 3.1 配置示例 3.1.1. 生成配置模板 3.1.2 创建配置文件 3.1.3 运行 DataX 3.1.4 结果显示 3.2 动态传参 3.2.1. 动态传参的介绍 3.2.2. 动态传参的案例 3.3 迸发设置 …