汽车软件质量体系DIY(2)惯性-分层-时机

原创 汽车电子与软件 2022-07-08 09:19



01.

惯性


开始推行软件质量体系的转型之时,落地最大的阻力便是“惯性”——按之前习惯的做法已经实施了多年也没出大问题的项目,凭什么要按新的方法来操作?需要额外工作量不说,还有可能引入不可知的风险,还不如照老方法做的安全。体现在具体工程实践中,最典型的例子便是系统需求与软件需求的分离了,一般的展开是这样的:

质量工程师:软件需求文档一篇都还没有,啥时候能好?

软件工程师:系统需求文档已经详细到可以写代码了,重写一份软件需求不是多此一举?

质量工程师:根据流程定义,需求文档需要分层,这样逻辑清晰职责也明确。

系统工程师:这样一来我们的系统需求也得改,还有评审、追溯……都是工作量啊

软件工程师:好吧,我们把系统需求抄一份过来作为软件需求一对一链接,这样大家都好交差……

质量工程师:额……


于是乎,“软件定义汽车”的口号喊了些许年,时至今日的状态,依旧是“软件依附系统,系统定义汽车”。不同于刚入局汽车行业的新势力,传统的OEM和Tire 1/2/3原本就有深厚的技术积累,体现在需求文档中,就是系统需求事无巨细通通包揽直接从客户需求打通到产品代码,而后继项目的不断重用之下又强化了这样的系统需求文档。

类似于被戏称为“屎山”的“祖传代码”,把详细的系统需求拆分可是牵一发而动全身的事情,谁也不想吃力不讨好地为了优化架构而分拆系统需求——万一改出了问题这锅谁背。这样一来,哪怕有了全新的项目全新的需求,习惯的力量积重难返,仍然是基于一坨面面俱到的系统需求进行开发,始终看不到软件团队强势崛起的那一天,而是始终依附于系统部门亦步亦趋地修改系统需求中设计软件的部分,温水煮青蛙,一日复一日,直到结束的那一天就结束了。

图片来源:https://www.bilibili.com/video/BV1sR4y1F7rw

而如若不想原地踏步而期待有所改变,比起一昧吐槽,还是就事论事地分析系统需求和软件需求的区分与联系,给出建议方案,然后才能决定入手策略、影响范围、拆分准则的细节,继而推断出所需的资源去实施转型。下面用“5W1H”的方式看看两者的区别——

图片来源:https://www.zhihu.com/question/21364137

Why(目的)

如前一篇提到,汽车软件开发的开发生命周期不同于纯软件开发的SDLC(软件开发生命周期SDLC - Software Development Life Cycle),是属于复杂度更高的ALM(应用程序生命周期管理ALM - Application lifecycle management)。为了应对ALM的复杂性,在顶层设计中进行分层非常关键,因而在汽车软件开发流程中,德国汽车工业联合会VDA给出方案之一则是“插件(Plug-in)”的概念,在ASPICE的标准中把产品分解为不同的级别(Layer),系统级别提纲挈领,而软件、机械、硬件(电子)各司其职。

来自ASPICE3.1标准

诚然,对既有需求进行分层会导致额外工作量并引入不确定风险,但如果不动这个手术,目前的需求文档已经是隐患重重了就等着那一天爆发,以下列举几个:

1)权责不清:由于系统和软件团队共通维护一篇需求文档,到底哪块归系统哪块归软件哪块又归属其他部门(例如EE、ME)很难清楚划分,尤其在文档越来越臃肿的情况下问题日渐凸显。如果导致了产品缺陷,根因追溯下来到底算谁的时候如何预防又是一笔糊涂账。恶性循环下来,产品缺陷终将积重难返,等到重大缺陷的时候再想回头对源头的需求文档动手术的时候,发现还得分层……那么,早干嘛去了?

2)细节失控:汽车电子产品的复杂度随着几何级数增加,之前的系统工程师或许可以做到提供从客户需求到详细设计的“一站式服务”,随便问某个诊断码是用01还是用02都能脱口而出,但人员是实时流动的、程序是日渐复杂的,稍有变化在具体细节上就会失控,万一人员离职了细节没交接到、万一通信协议定义或者算法更新了两个部门没有同步……那造成的后果可能是灾难性的。

3)影响范围:系统需求向上面向客户类似于产品经理、软件需求面向代码类似于程序员,两个部门立场与技术背景都不同的团体共同维护一篇文档,当变更发生或问题修正时需要进行影响性分析(Impact Analysis)的时候会发现,在这篇已经臃肿不堪的文档中已经找不到清晰的脉络进行全方位覆盖的影响分析了,其后果就是每一次的变化都可能为下一次缺陷的爆发埋下隐患。

……

在ASPICE中,为了对需求进行分层,系统需求归属SYS.2、软件需求归属SWE.1,两者分在了不同的过程域中(如图)——

过程IDSYS.2SWE.1
过程名称系统需求分析软件需求分析
过程目的系统需求分析过程的目的是:将已定义的利益相关方需求转换成一组系统需求,以指导系统设计。软件需求分析过程的目的是:将系统需求中与软件相关的部分转化为一组软件需求。
过程成果成功实施这个过程的结果如下:成功实施这个过程的结果如下:

1) 建立了一组定义的系统需求 ;1) 定义了系统中分配给软件要素的软件需求及其接口;

2) 对系统需求进行分类,并分析了其正确性和可验证性;2) 将软件需求进行分类,并分析了其正确性和可验证性;

3) 分析了系统需求对运行环境的影响;3) 分析了软件需求对运行环境的影响;

4) 定义了系统需求实施的优先级;4) 定义了软件需求实现的优先级;

5) 根据需要更新了系统需求;5) 根据需要更新了软件需求;

6) 建立了利益相关方需求和系统需求之间的一致性和双向可追溯性;6) 在系统需求与软件需求之间、在系统架构设计与软件需求之间建立了一致性和双向可追溯性;

7) 从成本、进度和技术影响来评估系统需求;7) 从成本、进度和技术影响来评估软件需求;

8) 约定了系统需求,并与所有受影响方沟通。8) 约定了软件需求,并与所有受影响方沟通。

从两者的过程目的中可以清晰的看到上下游关系,即SYS.2中“系统需求中与软件相关的部分”就是SWE.1的输入,而两者各自的8个过程结果也是承上启下的一一对应,最大的不同便是工作产品对象的不同,一个是系统需求,一个是软件需求,这也是接下来要讨论的“What(对象)”部分。



02.

分层


流程体系的部署总有许多地方需要平衡,以团队管理为例,如果在5-6人的团队中进行分层管理,不单无益于提升效率反而会增加内耗;相似的,在需求管理的场景,如果只有5-6页由同一个人维护的需求,为了分层而拆分成两篇文档分开维护,也会带来不必要的浪费。即便在行业标准的ASPICE中定义的分层,在实际的项目落地也是有一定的灵活性的。

以下是ASPICE3.1标准中对于“双向可追溯性和一致性”的图例,从SYS.1的利益相关方需求(Stakeholder Requirements)到SYS.2的系统需求(System Requirements),然后从SYS.2的系统需求(System Requirements)再到SWE.1的软件需求(Software Requirements),是一个自上而下的关系。


来自ASPICE3.1标准

然而在现实的项目中,来自客户的需求很可能是包含了具体的技术细节甚至参数定义逻辑判定的内容,这时如果为了满足流程,在系统需求和软件需求重复的拷贝相同的内容就变得毫无意义了。更务实的做法是应当直接把客户需求直接链接到软件需求,而为了确保追溯性的全覆盖再把下游的细化软件需求链接到上游更概要的系统需求中。

相对于纯理论的介绍放在实际的场景中进行分析会更加容易理解,这里就以AEB(主动刹车)功能为例看看需求的分层。

客户需求1采用雷达和摄像头测出与前车或者其他障碍物的距离,系统控制模块将测出的距离与警报距离、安全距离进行比较,小于警报距离时就进行警报提示,而小于安全距离时,AEB制动会启动,使汽车刹停。
系统需求1在80米距离识别车辆(Truck, Car, Bus),在40米距离识别行人,自行车,摩托车……满足条件时唤醒AEB功能。
软件需求1AEB功能模块A在满足如下条件时唤醒:
- 物体距离 <= 距离条件阈值
- 同一车道判定 == TRUE……

在以上的例子里,客户需求、系统需求、软件需求这三者是满足自上而下的清晰脉络的,可以进行直接关联。而当客户需求本身已经包含了技术细节时,情况可能会有所不同,可以看看如下场景。

客户需求2预填充(Prefill)应在满足以下条件时激活
- 行驶速度 <= 速度条件阈值
软件需求2预填充(Pre-fill)应在满足以下条件时激活
- 行驶速度 <= 速度条件阈值……
系统需求2紧急制动AEB包含了以下子功能:前碰警报FCW、短促制动Acute warning、预填充Prefill、制动辅助EBA、紧急制动AEB。
客户需求1采用雷达和摄像头测出与前车或者其他障碍物的距离,系统控制模块将测出的距离与警报距离、安全距离进行比较,小于警报距离时就进行警报提示,而小于安全距离时,AEB制动会启动,使汽车刹停。

这里“客户需求2”里,对预填充(Prefill)的激活条件已经细化到了软件层面的具体实现,并且给出了变量名和阈值,可以直接作为软件需求的条目使用,因而可以直接链接到“软件需求2”,甚至直接拷贝就能使用作为下游的详细设计输入。而此处,如果单纯地直接从SYS.1链接到SWE.1会导致SYS.2的追溯缺失,为了确保需求的追溯性,“软件需求2”可以链接到“系统需求2”包含了预填充(Prefill)这一内容概要介绍的需求条目中,而“系统需求2”又可以链接到“客户需求1”中客户对整体AEB功能的要求概述里。以上例子画图表示便是:

因此,为满足产品功能,实现100%功能覆盖的追溯性是不可妥协的,而实现手段上需要考虑现实情况,需求文档的体量很小如前面说的只有5-6页由同一个人维护的需求文档,其中系统需求和软件需求完全可以在同一篇文档里维护,不过放在不同的章节里罢了,并借助需求管理工具可以将其中的WI(Work Item工作项)进行链接追溯。

下面列举SYS.2-系统需求分析和SWE.1-软件需求分析这两个过程域的输出工作产品,可见两者是高度重合的,唯一的区别只在“17-12 系统需求规范”与“17-11 软件需求规范”这一项上。因此,在实际项目人员紧缺的情况下,这两个过程域的工作产品输出可以在一定程度上重合,但需要分清界限:

  • 涉及“17-12 系统需求规范”的内容归属系统

  • 涉及“17-11 软件需求规范”的内容归属软件

这对于后续界定验证职责、问题根因分析至关重要。

至于这两类的需求,前面举了AEB的例子管中窥豹,如下给出ASPICE中【工作产品特性】附录表中对两者的描述给出参考。

17-12 系统需求规范

17-11 软件需求规范

系统需求包括:系统的功能和能力; 业务、组织和用户需求; 安全(safety)、安全(security)、人因工程(人体工程学)、接口、操作和维护的需求; 设计约束和合格需求。
· 识别所需的系统概述
· 识别系统要素之间的任何相互关系的考虑因素/约束
· 识别系统要素和软件之间的任何相互关系的考虑因素/约束
· 识别每个所需系统要素的任何设计考虑因素/约束,包括:
- 内存/容量需求
- 硬件接口需求
- 用户接口需求
- 外部系统接口需求
- 性能需求
- 指令结构
- 安全(security)/数据保护特性
- 应用参数设置
- 手动操作
- 可重用组件
· 描述操作能力
· 描述环境能力
· 文档化需求
· 可靠性需求
· 物流需求
· 描述安全(security)需求
· 诊断需求

· 识别使用的标准
· 识别任何软件架构的考虑因素/约束
· 识别所需的软件要素
· 识别软件要素之间的关系须考虑:
- 任何所需的软件性能特性
- 任何所需的软件接口
- 任何所需的安全(security)特性
- 任何数据库设计需求
- 任何所需的错误处理和恢复属性
- 任何所需的资源消耗特性

这样的分类在实际的落地中根据实际情况会有不同考量,如需求的粒度、非功能需求的完备性、具体的分工等等,需要实践的积累才能日渐成熟。如果实在弄不清的话,只要记住——涉及软件实现细节的归属软件需求,否则归属系统需求,系统需要适度控制对软件细节的控制欲,扮演好产品经理的角色以满足客户需求为第一要务。


03.

时机


三千多年前,智慧的所罗门王在他的《传道书》中记下了“天下万务都有定时”的观察,在人看来或好或坏的事情,都有一定的时机——时机未到,费尽心血最终不过徒劳无功;时机一到,顺势而为瞬间便能水到渠成。映射到流程体系在现实项目中的落地,也有相似的情形,若是把握时机在对的时间做对的事情,那么将势如破竹。讨论在不同情形下把握时机的策略,可以分成价值观-方法论-执行力三个层面,

价值观

流程体系推广之时,例行公事的少不了各级领导的表态——“我们一定要彻底贯彻实施XXX,各个部门都要认真执行不打折扣……”。此处的XXX可以替换成各类流程体系的名称——ISO、IATF、CMMI、ASPICE,等等等等。当然,如果领导连这样的表态都没有那这件事情基本就凉了,不过,真的轻易就信了那就“图样图森破”了,这到底是不是单纯的场面话,还得看看落地的实际情况。

丰田生产方式TPS中强调“三现主义”——指的是现场、现物、现实,就是说,当发生问题的时候,管理者要快速到“现场 ”去,亲眼确认“现物”,认真探究“现实”,并据此提出和落实符合实际的解决办法。这个在制造业中广泛应用的原则,同样可以应用到软件开发领域,看看一线开发人员在实际工作的时候是不是有这样的声音——

“连代码的bug都改不好天天加班到两点了,架构设计文档真的没空做。”

“这次交付太急,审核可不可以先不做了,下次一定配合。”

“要遵守流程可以,跟我老板说,给人我就干。”

……

如果这些表述都是真实的,一线人员长期主要面临的挑战来自资源不足、工期太紧、任务太多,那么属于共同原因(common cause)而非特殊原因(special cause),上梁不正下梁歪,本质上可能是管理层“不派人、不派钱、只派活”的态度问题。领导们场面话说的漂亮就是不给人不给时间,那很可能是“价值观”层面出了问题。在这里,为了限定“价值观”的讨论范围,可以先看看ISO9001的7大质量管理原则,列表如下——

图片来源:https://www.immetech.com/zh-hans/quality-training-with-qualdeval/

在这里,我们讨论的流程体系的各种具体落地,本质上是属于“过程方法(Process Approach)”,也就是7大质量管理原则的第4个,思考为什么组织定义的过程方法为什么没能贯彻下去的时候,不可忽略的前设问题应当是“前三个原则”落实的怎样了?——

1.客户为中心(Customer Focus)

2.领导力(Leadership)

3.全员参与(Engagement of People)

在7大原则中,这前3项原则处在价值观层的层面,而后4项原则属于方法论的范畴,而前3项的价值观,则是决定包含“过程方法(Process Approach)”在内的后4项原则的方法论能够落实的前提。

如果“客户为中心(Customer Focus)”只是销售对甲方的天花乱坠,其中关于代码质量、流程监管等等的条款项目工程团队选择性忽略只顾着拿到需求往下做,那就是简单的确保测试覆盖率100%都得打折扣;

如果“领导力(Leadership)”中的总监们对流程体系缺乏基本常识,那么让他们投入资源在项目中落地规范的难度可想而知 ;

如果“全员参与(Engagement of People)”达成的共识是连架构设计文档都是做给流程部门看的,那么应付式文档只能是常态。

所以,当一个过程方法推行的时候,如果遇到的主要阻力是关于“要不要做”的各种推诿拒绝,那么很明显是价值观层面出了问题;而如果遇到的主要阻力是“该怎么做”的各种具体难度,那么就应当在方法论上进行提升,将理论落地实践做好。

说了这么多,在这种情况该怎么办呢?事实上,无论是程序员、SQA、项目经理,甚至部门总监,作为个体在应对“价值观”层面的问题都会有深深的无力感——“大家都这样、行业都这样、我能怎么样?”。

达则兼济天下,穷则独善其身——

  • 作为程序员,需求-架构-详设-代码-测试-改bug循序渐进,哪一环来不及做至少自己心里有数,合理安排自己的工作任务不要勉强,遇到问题注意方法,样例可参考 调试一段代码两个小时都没搞定,继续死磕还是寻找其他方式,你一般会怎么做?

  • 作为SQA,牢记“客观评估”的原则(参考CMMI),对于不符合项该记录的记录、该跟踪的跟踪、该升级的升级,切忌为了事情无法推进控制不了主观情绪跟同事“互怼” 。(当然说起来容易做起来难,很考验情商)

  • 作为项目经理,协调各方人员一起推动项目本来就是极度困难的任务,靠“野路子”的手段虽然短期有效,但为了长期发展还是需要根据组织规则按部就班。

  • 作为部门总监,看似风光,实则面临各种压力和约束,若是使用得当,流程体系不是阻力而是助力,可以分担大部分的压力。

在现代社会,对于公司而言,没有人是不可取代的,否则裁员就不存在了;对个人而言,没有公司是不可取代的,否则跳槽就不存在了。因此,在这样双向选择开放的社会氛围下,个人劳动者无论处在什么位置上,对公把“打工人”的心态放好按部就班把工作完成,对私平衡生活持续学习提升竞争力,那边够了。

以上讨论了流程体系的落地在“价值观”层面的挑战和应对策略,对于方法论和执行力层面的考虑,将根据下面的列表继续展开。

层面挑战心态策略
价值观态度不正“打工人”按部就班
方法论资源不足“聪明人”术业专攻
执行力能力不够“牧羊人”求知若渴


阅读原文,关注作者知乎!


汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 更多生命体征指标风靡的背后都只有一个原因:更多人将健康排在人生第一顺位!“AGEs,也就是晚期糖基化终末产物,英文名Advanced Glycation End-products,是存在于我们体内的一种代谢产物” 艾迈斯欧司朗亚太区健康监测高级市场经理王亚琴说道,“相信业内的朋友都会有关注,最近该指标的热度很高,它可以用来评估人的生活方式是否健康。”据悉,AGEs是可穿戴健康监测领域的一个“萌新”指标,近来备受关注。如果站在学术角度来理解它,那么AGEs是在非酶促条件下,蛋白质、氨基酸
    艾迈斯欧司朗 2025-02-27 14:50 402浏览
  • 一、VSM的基本原理震动样品磁强计(Vibrating Sample Magnetometer,简称VSM)是一种灵敏且高效的磁性测量仪器。其基本工作原理是利用震动样品在探测线圈中引起的变化磁场来产生感应电压,这个感应电压与样品的磁矩成正比。因此,通过测量这个感应电压,我们就能够精确地确定样品的磁矩。在VSM中,被测量的样品通常被固定在一个震动头上,并以一定的频率和振幅震动。这种震动在探测线圈中引起了变化的磁通量,从而产生了一个交流电信号。这个信号的幅度和样品的磁矩有着直接的关系。因此,通过仔细
    锦正茂科技 2025-02-28 13:30 101浏览
  • 美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?‌美国加州CEC能效认证与美国DOE能效认证在多个方面存在显著差异‌。认证范围和适用地区‌CEC能效认证‌:仅适用于在加利福尼亚州销售的电器产品。CEC认证的范围包括制冷设备、房间空调、中央空调、便携式空调、加热器、热水器、游泳池加热器、卫浴配件、光源、应急灯具、交通信号模块、灯具、洗碗机、洗衣机、干衣机、烹饪器具、电机和压缩机、变压器、外置电源、消费类电子设备
    张工nx808593 2025-02-27 18:04 120浏览
  • 1,微软下载免费Visual Studio Code2,安装C/C++插件,如果无法直接点击下载, 可以选择手动install from VSIX:ms-vscode.cpptools-1.23.6@win32-x64.vsix3,安装C/C++编译器MniGW (MinGW在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序.)4,C/C++插件扩展设置中添加Include Path 5,
    黎查 2025-02-28 14:39 141浏览
  • 在2024年的科技征程中,具身智能的发展已成为全球关注的焦点。从实验室到现实应用,这一领域正以前所未有的速度推进,改写着人类与机器的互动边界。这一年,我们见证了具身智能技术的突破与变革,它不仅落地各行各业,带来新的机遇,更在深刻影响着我们的生活方式和思维方式。随着相关技术的飞速发展,具身智能不再仅仅是一个技术概念,更像是一把神奇的钥匙。身后的众多行业,无论愿意与否,都像是被卷入一场伟大变革浪潮中的船只,注定要被这股汹涌的力量重塑航向。01为什么是具身智能?为什么在中国?最近,中国具身智能行业的进
    艾迈斯欧司朗 2025-02-28 15:45 224浏览
  •           近日受某专业机构邀请,参加了官方举办的《广东省科技创新条例》宣讲会。在与会之前,作为一名技术工作者一直认为技术的法例都是保密和侵权方面的,而潜意识中感觉法律有束缚创新工作的进行可能。通过一个上午学习新法,对广东省的科技创新有了新的认识。广东是改革的前沿阵地,是科技创新的沃土,企业是创新的主要个体。《广东省科技创新条例》是广东省为促进科技创新、推动高质量发展而制定的地方性法规,主要内容包括: 总则:明确立法目
    广州铁金刚 2025-02-28 10:14 103浏览
  • RGB灯光无法同步?细致的动态光效设定反而成为产品客诉来源!随着科技的进步和消费者需求变化,电脑接口设备单一功能性已无法满足市场需求,因此在产品上增加「动态光效」的形式便应运而生,藉此吸引消费者目光。这种RGB灯光效果,不仅能增强电脑周边产品的视觉吸引力,还能为用户提供个性化的体验,展现独特自我风格。如今,笔记本电脑、键盘、鼠标、鼠标垫、耳机、显示器等多种电脑接口设备多数已配备动态光效。这些设备的灯光效果会随着音乐节奏、游戏情节或使用者的设置而变化。想象一个画面,当一名游戏玩家,按下电源开关,整
    百佳泰测试实验室 2025-02-27 14:15 138浏览
  •         近日,广电计量在聚焦离子束(FIB)领域编写的专业著作《聚焦离子束:失效分析》正式出版,填补了国内聚焦离子束领域实践性专业书籍的空白,为该领域的技术发展与知识传播提供了重要助力。         随着芯片技术不断发展,芯片的集成度越来越高,结构也日益复杂。这使得传统的失效分析方法面临巨大挑战。FIB技术的出现,为芯片失效分析带来了新的解决方案。它能够在纳米尺度上对芯片进行精确加工和分析。当芯
    广电计量 2025-02-28 09:15 116浏览
  • 振动样品磁强计是一种用于测量材料磁性的精密仪器,广泛应用于科研、工业检测等领域。然而,其测量准确度会受到多种因素的影响,下面我们将逐一分析这些因素。一、温度因素温度是影响振动样品磁强计测量准确度的重要因素之一。随着温度的变化,材料的磁性也会发生变化,从而影响测量结果的准确性。因此,在进行磁性测量时,应确保恒温环境,以减少温度波动对测量结果的影响。二、样品制备样品的制备过程同样会影响振动样品磁强计的测量准确度。样品的形状、尺寸和表面处理等因素都会对测量结果产生影响。为了确保测量准确度,应严格按照规
    锦正茂科技 2025-02-28 14:05 136浏览
  • 在物联网领域中,无线射频技术作为设备间通信的核心手段,已深度渗透工业自动化、智慧城市及智能家居等多元场景。然而,随着物联网设备接入规模的不断扩大,如何降低运维成本,提升通信数据的传输速度和响应时间,实现更广泛、更稳定的覆盖已成为当前亟待解决的系统性难题。SoC无线收发模块-RFM25A12在此背景下,华普微创新推出了一款高性能、远距离与高性价比的Sub-GHz无线SoC收发模块RFM25A12,旨在提升射频性能以满足行业中日益增长与复杂的设备互联需求。值得一提的是,RFM25A12还支持Wi-S
    华普微HOPERF 2025-02-28 09:06 145浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦