赵 慧
(吉利汽车整车研究院,浙江 宁波 310052)
基于IATF16949汽车行业质量管理体系的基本要求,在零部件供应商进入整车厂供应链体系时,需要通过产品质量保证能力的审核。审核结论达到要求时,才可以进入整车厂的供应链体系,参与项目开发和零部件供应。
当前主机厂常用的供应商产品质量保证能力评价方法,有德系主机厂奔驰、宝马、大众的VDA6.3(汽车制造业的质量管理过程评审);美系通用的QSB(质量系统基础);美系福特的Q1;沃尔沃的MSA等。其中VDA6.3由德国汽车工业协会编制及颁布,是德国汽车行业在长期的发展过程中的凝练,在包含德系汽车行业在内的整个汽车产品链都有广泛的应用。
VDA6.3、QSB、Q1、MSA等汽车行业主机厂当前应用的对供应商的评价方法,都只针对物理零部件供应商,无法对提供嵌入式软件的供应商进行评价。究其原因,是因为在汽车行业长期的发展中,汽车主要作为一个机械产品而存在,汽车上的电子零部件所占比例非常小。但进入21世纪以后,嵌入到汽车中、基于嵌入式软件技术的电子零部件越来越多,呈指数形态增加。如今,已经发展成多达2500个信号 (如车速这样的基本信息),通过70多个电子控制单元 (ECU)和5种不同类型的车载网络来交换 (引自《汽车嵌入式系统手册》机械工程出版社)。而且,随着车载网联和智能驾驶技术的逐步推进,车载嵌入式软件系统的发展趋势有增无减。
在这种情形及发展趋势下,控制器嵌入式软件的质量和可靠性,越来越受到重视,并且成为影响汽车质量和安全的一个非常重要的因素。
基于这个背景,新版的汽车行业质量管理体系标准IATF16949:2016中明确提出了对嵌入式软件供应商的选择评价要求:
“8.4.1.2供应商选择过程
组织应有一个形成文件的供应商选择过程,选择过程应包括:
a)……
……
e)对软件开发能力的评估,如适用”
虽然新版IATF16949标准提出了对嵌入式软件供方评价的要求,但是对如何评价却没有定义方法。
目前软件产品开发相关的质量管理体系标准主要有CMMI和A-Spice。前者为美国卡耐基-梅隆大学软件研究所编制及发布,是软件行业应用最广泛的质量体系标准,适用于各类软件;后者为德国汽车工业协会发布,主要适用于车载嵌入式软件。
虽然有CMMI和A-Spice两大标准,但是应用于嵌入式软件供方的实际评估中,却遇到了巨大的困难。
1)嵌入式软件产品对汽车行业供应商管理人员来说,本身专业难度就非常高。
2)CMMI和A-Spice标准又都过于复杂,以CMMI为例,标准本身就有400多页,汽车行业供应商管理人员掌握起来会非常困难。
3)CMMI是体系标准,包含要求和实践,但是没有评价标准,更没有标准的检查表;A-Spice虽然开发出了评价参考模型,但是该模型有一百多页,主要是描述的过程实践要求,属于复杂的指南文件,也不是检查表,无法直接应用于评价。相较于现有的供应商评价方法,如VDA6.3,规范性和操作性都不强。
4)现在的CMMI和A-Spice标准符合性评价,都是通过软件过程域专家现场评估的形式进行,与汽车行业现行的基于检查表审核的形式 (如基于VDA6.3检查表的审核)差别较大,不易于融入现有体系。
5)CMMI和A-Spice的最终评价是针对过程域,通过评估过程域的成熟度,评为1到5级。与当前汽车行业常用的基于检查表条款打分 (如VDA6.3,每个评价条款评分为0,4,6,8,10),最后给出一个总分的的形式,差别也很大,不易于融入现有体系。
基于以上因素,笔者尝试参考VDA6.3的评估方法和评分标准,吸收CMMI和A-Spice标准的具体要求,制作一份基于VDA6.3评价结构的嵌入式软件供应商评价问题清单,以解决原CMMI和A-Spice缺乏标准评价表、评价过程复杂臃肿、以及和现有汽车行业供应商的评价方法不能接轨的问题。成过程成熟度级别2级,并以达到成熟度级别3级为目标。
A-Spice共有32个过程域,分6个能力等级,依次为0级不完整、1级已执行、2级已管理、3级已建立、4级可预测、5级可创新。其中有16个过程域,是BMW及其他主机厂推荐的过程域,被称为HIS过程域。
CMMI成熟度2级中的7个过程域、成熟度3级中的11个过程域,与A-Spice中16个HIS过程域,大部分过程域重合一致。
本文即在分析CMMI成熟度2级、3级过程域,和A-Spice HIS过程域基础之上,整合对这些过程域的要求,基于汽车行业检查表形式的评价习惯,建立起针对嵌入式软件供方的评价问题。这些过程域主要涵盖了软件开发过程中需求分析、详细设计、测试开发、质量保证、配置管理、项目管理等主要活动。
CMMI共有22个过程域,分5个成熟度等级,依次为1级初始级、2级已管理级、3级已定义级、4级已量化管理级、5级优化级。各成熟度级别对应的过程域见图1,其中成熟度级别2级包含了7个过程域,成熟度级别3级包含了11个过程域。作为对主机厂供应嵌入式软件的供应商,应至少达
图1 各成熟度级别对应的过程域
编制10条针对嵌入式软件供方的评价问题,涵盖CMMI成熟度2级、3级过程域,和A-Spice HIS过程域的主要要求。
1)问题1:是否对项目实施了策划,并且与顾客达成一致?
2)问题2:是否建立了配置管理计划,并且得到了落实?
3)问题3:是否建立了质量保证计划,并且得到了落实?
4)问题4:是否对需求实施了分析和管理?
5)问题5:是否保证了需求、设计、开发和测试文档之间的一致性和双向可追溯性?
6)问题6:是否开展了软件的详细设计?
7)问题7:是否制定并落实了软件开发各阶段的测试方案?
8)问题8:是否对变更请求进行了规范管理?
9)问题9:是否建立了度量计划并且得到了落实?
10)问题10:是否采用了软件开发评估方法来评估组织的软件开发过程?
4.2.1 问题1:是否对项目实施了策划,并且与顾客达成一致?
与评价有关的要求:①明确了项目范围;②评估利用现有资源实现项目目标的可行性;③完成工作所需的活动和资源的规模估算;④识别完成工作所需的知识与技能的差距,并安排了培训;⑤项目组内以及项目组与其他项目和单位之间的接口被识别和定义;⑥识别和分类了项目风险,并计划及实施了风险缓解计划;⑦制定、实施和维护项目执行计划;⑧监测和报告项目进展;⑨在项目目标无法达成时及时采取纠正措施。
4.2.2 问题2:是否建立了配置管理计划,并且得到了落实?
与评价有关的要求:①制定配置管理策略,包含计划和配置管理的组织机构;②应用信息系统实施配置管理;③所有配置项根据配置管理策略被识别,定义和基线化;④控制配置项的修改和释放;⑤记录并报告配置项和修改的状态;⑥确保基线的完整性和一致性;⑦计划和执行了配置审计。
4.2.3 问题3:是否建立了质量保证计划,并且得到了落实?
与评价有关的要求:①制定、实施了执行质量保证的战略;②独立、客观地开展质量保证工作;③识别、记录工作产品和过程的不符合信息,传达给相关方,跟踪、解决和进一步防止;④对工作产品和过程与相关要求的一致性进行验证,记录并传达给相关方;⑤建立将不合格升级到适当管理级别的上升机制;⑥确保升级的不合格解决;⑦保留了相关记录。
4.2.4 问题4:是否对需求实施了分析和管理?
与评价有关的要求:①与利益相关者建立持续沟通;②利益相关者要求被识别、确认和基线化;③建立一种变更机制,根据利益相关者需求的变化,评估并将利益相关者需求的变化纳入基线要求;④建立了一个机制,用于持续监测利益相关者的需求;⑤建立了一种确保顾客能够容易地确定其请求的状态和处理的机制;⑥识别技术和利益相关者需求变化带来的变化,评估相关风险及管理其影响;⑦建立一套定义的系统要求,并对系统需求的正确性和可验证性分类和分析;⑧定义实现系统需求的优先级;⑨达成共识的系统要求传达给了所有相关方;⑩建立了必须的功能与质量属性的定义;11○清晰地定义要分配给系统的软件元素及其接口的软件需求,对软件需求进行分类并分析其正确性和可验证性;12○清晰地定义了实施软件需求的顺序;13○软件需求被定义、确认并传达给所有受影响的各方。
4.2.5 问题5:是否保证了需求、设计、开发和测试文档之间的一致性和双向可追溯性?
与评价有关的要求:①在利益相关者要求和系统要求之间建立一致性和双向可追溯性;②在系统要求和系统架构设计之间建立一致性和双向可追溯性;③在系统架构设计和系统集成测试规范中的测试用例之间以及测试用例和测试结果之间建立一致性和双向可追溯性;④在系统要求和系统资格测试规范中的测试用例之间以及测试用例和测试结果之间建立一致性和双向可追溯性;⑤在系统要求和软件要求之间建立一致性和双向可追溯性;并在系统架构设计和软件要求之间建立一致性和双向可追溯性;⑥在软件需求和软件架构设计之间建立一致性和双向可追溯性;⑦在软件需求和软件单元之间建立一致性和双向可追溯性;并在软件结构设计和软件详细设计之间建立一致性和双向可追溯性;并在软件详细设计和软件单元之间建立一致性和双向可追溯性;⑧软件单元之间建立一致性和双向可追溯性;⑨在软件架构设计的要素和包括在软件集成测试规范中的测试用例之间,以及在测试用例和测试结果之间建立一致性和双向可追溯性;⑩在软件需求和软件资格测试规范中的测试用例之间以及测试用例和测试结果之间建立一致性和双向可追溯性 (引自Automotive Spice VDA-QMC)。
4.2.6 问题6:是否开展了软件的详细设计?
与评价有关的要求:①开发了描述软件单元的详细设计;②定义每个软件单元的接口;③定义软件单元的动态行为;④软件详细设计和与软件架构设计的关系达成一致传达给所有受影响的各方。
4.2.7 问题7:是否制定并落实了软件开发各阶段的测试方案?
1)与评价有关的要求,系统集成测试:①开发了包括回归测试策略的系统集成测试策略来测试系统项交互;②开发了根据系统集成测试策略的系统集成测试规范,适用于提供集成系统项目与系统体系结构设计的兼容性的证据,包括系统项目之间的接口;③根据系统集成测试策略和放行计划选择系统集成测试规范中包含的测试用例;④使用所选择的测试用例测试系统项交互,并记录系统集成测试的结果;⑤系统集成测试的结果被汇总并传达给所有受影响的各方。
2)与评价有关的要求,系统资格测试:①开发了包括回归测试策略的系统资格测试策略,以测试集成系统;②根据系统资格测试策略制定综合系统的系统资格测试规范,适用于提供符合要求的证据;③根据系统资格测试策略和放行计划选择系统资格测试规范中包含的测试用例;④使用选定的测试用例测试集成系统,记录系统资格测试的结果;⑤汇总系统资格测试的结果并传达给所有受影响的各方。
3)与评价有关的要求,软件单元测试:①开发了包括回归测试策略的软件单元验证策略以验证软件单元;②根据软件单元验证策略制定软件单元验证的准则,这些策略适合于提供软件单元与软件详细设计和非功能软件要求的符合性的证据;③根据软件单元验证策略和软件单元验证的定义准则验证软件单元,并记录结果;④单元验证的结果被汇总并传达给所有受影响的各方。
4)与评价有关的要求,软件集成和集成测试:①开发了包括回归测试策略的软件集成测试策略来测试软件单元和软件项交互;②根据软件集成测试策略开发用于软件集成测试的规范,其适于集成软件项目与软件架构设计的兼容性的证据,包括软件单元之间和软件项目之间的接口;③根据软件集成测试策略和放行计划选择软件集成测试规范中包含的测试用例;④使用选定的测试用例测试集成软件项目,并记录软件集成测试的结果;⑤将软件集成测试的结果汇总并传达给所有受影响的各方。
5)与评价有关的要求,软件资格测试:①开发了包括与项目计划和放行计划一致的回归测试策略的软件资格测试策略,以测试集成软件;②开发了根据软件资格测试策略对集成软件进行软件资格测试的规范,该规范适合于提供符合软件要求的证据;③根据软件资格测试策略和放行计划选择软件资格测试规范中包含的测试用例;④使用选定的测试用例测试集成软件,并记录软件鉴定测试的结果;⑤将软件资格测试的结果汇总并传达给所有相关方 (引自Automotive Spice VDA-QMC)。
4.2.8 问题8:是否对变更请求进行了规范管理?
与评价有关的要求:①制定变更请求管理策略;②记录和识别变更请求;③识别变更请求与其他变更请求的依赖性和关系;④分析变更请求,估计资源需求;⑤根据分析结果和资源批准并确定变更实施的优先级;⑥批准变更实施,并跟踪到关闭;⑦所有变更请求的状态是已知的;⑧在变更请求和受影响的工作产品之间建立双向可追溯性。
4.2.9 问题9:是否建了度量计划并且得到了落实?
与评价有关的要求:①建立并持续组织承诺,实施度量过程;②确定组织过程的度量需求;③识别和开发了由信息需求驱动的适当的一系列度量;④建立度量目标,明确说明度量项;⑤识别和执行了测量活动;⑥收集、存储、分析度量数据,并对结果进行解释;⑦信息工具用于支持决策,并为交流提供客观基础;⑧对测量过程和措施进行评估并与过程所有者沟通。
4.2.10 问题10:是否采用了软件开发评估方法来评估组织的软件开发过程?
与评价有关的要求:①采用软件开发评估方法来评估组织的软件开发过程;②按照风险和对顾客潜在影响的优先级,为软件开发能力自评估保留形成文件的信息;③应在内部审核方案中包含软件开发能力评估。
参考VDA6.3的评分标准,每个问题设置可评价分数为10、8、6、4、0。评分和对应的问题要求具体落实情况如下:①10分:要求完全得到落实;②8分:要求基本上得到落实,只有轻微的不符合;③6分:要求部分得到落实,存在明显不符合;④4分:要求落实不够,存在严重不符合;⑤0分:要求没有得到落实。
1)当前汽车行业针对供应商的成熟的准入评价方法,主要针对传统的物理零件供应商,针对软件供应商的现有评价方法过于繁琐,与传统物理的评价方法存在体系上的不一致,很难融入现有体系及大规模开展。
2)笔者根据自己的实际工作经验,将对软件供应商的质量要求CMMI、A-Spice,使用传统汽车行业最常见VDA6.3评价方法进行整合、提炼,提出了基于VDA6.3评价结构的嵌入式软件供应商评价方法。一方面,吸收了CMMI、ASpice的精要,形成了一种创新性的,适应汽车行业的嵌入式软件供应商评价方法;另一方面,该嵌入式软件供应商评价方法,与现有最常用的汽车行业传统供应商评价方法VDA6.3使用同样的评价形式和结构,便于传统汽车行业供应商管理人员接受,更易于推广。
3)基于科学地评价嵌入式软件供应商质量保证能力的目的,整合吸收CMMI与A-Spice要求,该文共设计了10个嵌入式软件供应商的评价问题,涵盖项目管理、需求分析、设计开发、测试、变更管理等软件开发活动的各个环节,可以准确客观地评价嵌入式软件供应商的质量保证能力。