一种适用于功能安全和ASPICE流程实施的配置管理策略

汽车电子与软件 2021-12-18 21:58

本文由曹旭,王璐洋联合创作


摘要


汽车行业的智能化、网联化是大势所趋。随着整车电子架构的快速演变,已经开始由原本的分布式ECUs控制策略转变为功能更加强大、更加趋于集中式管理的域控制器控制策略。这也就意味着软件在整车中的占比将进一步提高,软件质量问题变得更为凸显。无论是ASPICE还是汽车功能安全ISO 26262、GB/T 34590都对系统/软件开发过程提出了要求。其中,配置管理就是非常重要的一个环节。


随着汽车电子化的快速发展,软件在整车中的重要性越来越凸显。目前,行业内主要遵循两个国际标准进行产品开发以保证产品的质量和安全,一是ASPICE(汽车软件过程改进及能力评定),二是汽车功能安全标准ISO 26262。这两个标准中都包含了配置管理方面的内容,明确要求在产品开发过程中,对工作产品进行严格的配置管理。本文将介绍一种适用于功能安全和ASPICE流程实施的配置管理策略,重点从配置项识别、基线策略和分支策略3个方面进行解读。


1 配置管理的概念


配置管理(Configuration Management,CM)是通过技术或行政手段对产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录产品的演化过程,确保在各个生命周期阶段都能得到精确的产品配置,配置管理策略中最重要的三项是配置项识别、基线策略、分支策略。


2 配置项识别


对于哪些属于配置项,ASPICE中SUP.8给出了一些描述。首先BP1,需要在配置管理策略中定义配置项准则,以说明“什么”应该属于配置项;其次BP2,在实际项目中需要根据配置项准则来确定具体的配置项。配置控制通常应用于交付给客户的产品、指定的内部工作产品、获得的产品、工具和用于创建和描述工作产品的其他配置项。所以,通常的配置项类型有以下三类。


一是文档。包括计划文档、需求文档、设计文档、验证文档、各种报告等。


二是代码。包括组件、标定数据、配置参数等。


三是工具。包括设计工具、测试工具等。


而对于功能安全来说,关于配置项准则的定义从High Level层面是没有任何区别的,都是说明“什么”应该属于配置项,区别在于对于具体配置项的确定。


ASPICE的PAM本身不包含硬件阶段,所以评估时并没有对硬件方面的配置管理有“过多”的要求。但功能安全不同,硬件方面的配置项是需要完整识别并详细记录的。此外,在实践中往往比较容易遗漏的是功能安全特有的一些工作产品,如安全分析产生的安全FMEA、安全FTA,以及DFA等工作产品。


从实践角度来说,比较推荐的方法是建立完整的配置项清单,普通项目的配置项加上功能安全特有的配置项,从而形成一个比较完整的配置项清单。然后,针对不同项目进行裁剪,挑选配置项,生成适合某个具体项目的配置项清单。


配置项主要需要配置项名称、文件类型(交付、内部、外部、供应商交付)、控制级别(存储控制、版本控制、基线控制)、存储位置、文件名称、作者、是否需要评审、批准人、基线、当前状态(draft、reviewed、released)等属性信息。


除此之外,还要注意一点,对于配置项的组织结构也需重视。需要按照一定的组织方式来结构化配置项,也就是可以利用不同的组来分类,比如分为计划类、支持类、系统开发类、硬件开发类、软件开发类、工具类。


那配置项的控制级别应该怎么确定呢?配置项的控制级别通常包括存储控制、版本控制、基线控制。


2.1 存储控制


对于一些记录、报告类型的文档可以采用存储控制方式,因为这类文档往往都是“一次性的”,发布后保存即可,不需要再进行内容更新,如周报、月报、会议记录等。


2.2 版本控制


工作产品需要有版本信息,当工作产品发生修改时,需要生成相应的新的版本,如测试报告等。


2.3 基线控制


经过正式评审和批准,与受影响方达成一致后冻结的工作产品或产品集合。建立基线后,这些工作产品将被冻结,作为下一个阶段进行的基础和输入。此后,如果工作产品需要进行修改,需要按照已定义的变更管理流程进行变更,如需求文档、设计文档以及源代码等。


3 基线策略


基线时间是一种正式完成工作的状态,后续工作基于此状态,仅对其进行授权更改。打过基线的工作产品就意味着已经处于冻结状态,此后需要修改就需要走正式的变更流程。需要在配置管理策略中定义基线策略,基线策略包括基线类型和时机、基线命名规则、批准基线。


3.1 基线类型和时机


对于基线类型的划分方式不只一种。如果是一个包含系统、软件、硬件以及相关测试过程的完整项目,在不考虑功能安全的情况下,一般可以不将基线划分为计划基线、需求基线、设计基线、代码基线、发布基线。具体可分为客户需求基线(客户需求评审通过)、系统需求基线(系统需求评审通过)、系统架构设计基线(系统架构设计评审通过)、软件需求基线(软件需求评审通过)、软件架构设计基线(软件架构设计评审通过)、代码基线(软件详细设计、代码构建以及软件单元测试完成后)、软件发布基线(软件合格性测试完成后)、产品发布基线(系统合格性测试完成后)。


但是,如果是功能安全项目,上面的基线策略就需要调整和优化,这是为什么呢?


首先,根据功能安全要求,在需求分析阶段是需要将需求具体分配到某一个架构要素上的。例如:需要将系统需求分配到系统架构中的具体某个模块上面,这就意味着在系统需求分析阶段输出的工作产物并不是完整的,因为此时还没有最终确定系统架构,也就无法将系统需求完整并正确地分配到合适的模块上面。


此外,根据系统需求进行系统架构设计,然后通过对系统架构设计的评审以及相应的安全分析(安全FMEA、安全FTA、DFA)结果,可能会发现现有系统架构无法满足功能安全相关指标的要求,进而需要增加安全机制/措施,这样就会导致需要将安全机制/措施转化为系统需求,再对系统需求进行更新,然后再更新系统架构设计,进行安全分析进行验证,直到满足功能安全的相关指标。


由此可见,系统需求分析阶段和系统架构设计阶段是一个相互紧密关联的关系,也是一个迭代关系。如图1所示。


图1 系统需求分析和系统架构设计的迭代关系


那么面对这样一个紧密关联的迭代过程,单独对系统需求分析进行打基线就会导致频繁的变更。如图2所示。


图2 系统设计阶段的基线时机(1)


所以,应对这种情况,建议可以在系统需求分析、系统架构设计,以及相应的安全分析都做完并通过验证后,再统一打一个系统设计基线,这样更便于功能安全项目的顺利实施。那这样是否就意味着可以随意修改系统需求,对于系统需求没有任何的管控了呢?


事实是,可以对系统需求实施版本控制,每个版本的修改也需要进行评审并且和相关关系人达到共识,这样既可以保证系统需求的相对稳定,也可以减少频繁的变更。软件需求和软件架构设计同样如此。如图3所示。


图3 系统设计阶段的基线时机(2)


所以,如果是功能安全项目,那么建议的基线类型有客户需求基线、系统设计基线、软件设计基线、代码基线、软件发布基线、系统发布基线。


3.2 基线命名规则


统一基线命名定义规则,有助于基线管理。


3.3 批准基线


一般来说,需要定义满足什么条件,经由谁的批准,才可以建立基线。比如,系统需求分析、系统架构设计、安全分析(FMEA、FTA、DFA)通过了评审,并且通过了配置审计,由项目经理批准后方可建立系统设计基线。


一般建立基线的步骤如下。


(1)配置管理工程师按照基线计划时间或被通知建立基线的时间,获取相应的工作产物。


(2)配置管理工程师进行CSA和配置审计。


(3)项目经理批准基线。


(4)配置管理工程师建立基线并发布通知。


4 分支策略


4.1 代码配置管理


对于代码的配置管理比较特殊,与文档或工具的配置管理有所不同。通常来说,会使用到分支以支持程序的开发。一个好的分支策略,可以提高软件的开发效率、集成效率、发布效率以及管理效率。同样需要在配置管理策略中定义分支策略,如图4所示。通常的分支类型如下(以Git为例)。


图4 分支策略


(1)   Feature(功能分支):进行新功能/新特性开发的分支。


(2)   Develop(开发分支):主开发分支。


(3)   Release(发布分支):版发布分支。


(4)   Hotfix(修复分支):Bug(缺陷)修复分支。


(5)   Master(主干):最新版本基线分支。


4.2 流程描述


(1)针对下个版本或需要预研的每一个新功能/新特性都可以建立一个Feature分支,以确保这些新功能/新特性可以相对独立地进行开发,彼此不会相互干扰,也不会干扰到Develop分支的正常开发。等到需要在某个版本发布这些新功能/新特性时,再把对应的Feature分支Merge(合并)到Develop分支上进行集成。


(2)在Develop分支上进行主要开发,有新功能/新特性并入时进行集成,当需要发布版本时可拉出Release分支进行发布。(Develop分支永远都是最近的未发布版本。)


(3)在Release分支上进行集成和合格性测试,如发现缺陷可直接在此分支上进行修复。测试通过后,一是需将Release分支Merge回Develop分支以保证缺陷修复的同步有效性;二是需将Release分支Merge到Master分支进行正式发布。


(4)在Master分支上为每个最新的发布版本打基线(Tag)。


(5)当已正式发布的软件发现缺陷时,从Maser分支拉出一个Hotfix分支进行缺陷修复。修复完成并通过测试后,将Hotfix分支Merge到Master分支进行正式发布。同时将Hotfix分支Merge回Develop分支以保证缺陷修复的同步有效性。


5 结束语


以上的配置管理策略只是众多实践中的一种,不一定适合所有情况,每个团队对于配置管理策略的理解和定义也有所不同。但是,进行配置管理的目的都是一致的,就是要确保工作产物是处于有效控制下,以此保证产品的质量。


参考文献

[1]VDAQMC第13工作组/汽车行业SIG.AutomotiveSPICE:ProcessAssessmentModelVersion3.1[S].德国,2017:21,63.

[2]Road vehicles—Functional safety:ISO26262-2018[S].


END

汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 586浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 175浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 70浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 122浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 194浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 320浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 158浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 658浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 134浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 145浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦