给伙伴们汇报下近况,最近一段时间由于全身心高强度投入到VCU(整车控制器)软件开发项目中,所以公众号很久没更新了。
项目开发过程中,为了保证VCU软件质量,我们重点研究了ASPICE。在此,我们把ASPICE相关内容进行了梳理,和大家做个分享交流。
ASPICE全称为“Automotive Software Process Improvement and Capacity dEtermination”,即汽车软件过程改进及能力评定,是汽车行业用于评价软件开发团队研发能力水平的模型框架标准,目的是指导汽车零部件研发厂商的软件开发流程,从而改善车载软件质量。
多年以来,ASPICE在欧洲汽车行业内被广泛用于研发流程改善及供应商的研发能力评价。随着近年车联网、智能驾驶、新能源汽车的迅速发展,软件在汽车研发中的占比激增,企业对软件质量管理的需求不断增强,ASPICE逐渐被引入到国内,被国内的企业所熟知。另一方面随着TS16949的改版,对企业提出定期审核的要求,也对ASPICE在国内的应用起到的极大的促进作用。
【1986年CMM】CMM是由卡耐基梅隆大学(CMU)的软件工程研究所(SEI)于1986年在美国防部(DOD)的赞助下开发的一个用于评价企业研发能力水平的模型,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,被广泛用于软件流程改善和软件研发团队能力评价。
ASPICE模型最初是在CMM基础上发展起来的,最初的ASPICE模型几乎与CMM完全一致,评估结果可直接转换、CMMI评估师也可以直接获得ASPICE审核员资质(近年已改变)。
CMMI适用于所有软件研发团队,ASPICE仅仅用于汽车行业的软件研发团队,CMMI遵从并不意味着一个组织或项目自动遵守ASPICE。尽管这两种标准在核心概念上看起来是一样的,但它们使用不同的过程评估模型,而且在流程领域的实现中也存在差距。
由于ASPICE是为汽车行业开发的,因此对于OEM或供应商组织来说,与行业其他部门保持一致是一个更好的选择。对于已经适应CMMI并希望实施ASPICE同时,详细分析当前流程与ASPICE之间的差距也是最好的起点。
【1994年SPICE】 1994年国际标准化组织ISO、国际电工委员会IEC、信息技术委员会JTC1联合制定并发布了国际标准ISO/IEC15504,又称SPICE。 包括: 汽车行业的SPICE;医疗设备行业的SPICE;航天行业的SPICE
【2005年ASPICEV2.0】2005年汽车行业的SPICE:Automotive SPICE从ISO体系中独立出来,由德国汽车工业联合会(VDA)的质量管理中心(QMC)运营发展,发布了ASPICE第一个版本:ASPICE V2.0。
【2010年ASPICEV3.0】2010对ASPICE做了一些结构上的修订,包括将PRM和PAM合二为一、将ENG工程过程组拆分为SYS系统工程组和SWE软件工程组、五级名称变化等。
【2018年ASPICEV3.1】2018年发布了当前最新版本ASPICE V3.1,v3.1在v3.0的基础上做了一些微小改动,并将HIS SCOPE改名为了VDA SCOPE。
ISO26262是道路车辆功能安全标准,针对安全相关功能的研发活动中如何进行安全管理,给出的了具体标准,包括具体流程和方法。ISO26262中明确要求企业建立可以持续的实施改善活动组织体系和环境
ASPICE只是对过程的要求,ISO26262功能安全不光有过程要求,还有对产品设计开发的技术要求和具体技术细则,并且功能安全集中关注安全相关内容。ASPICE流程与ISO26262功能安全流程在主要生命周期的系统过程域和软件过程域、支持生命周期过程域大部分流程要求相似,但也有差别,不能完全等同。二者都能从某种程度上提高软件质量水平。
ASPICE三级中明确要求建立相关流程体系和组织环境,因此实施ASPICE同事有助于满足SIO26262中相关要求,而另一方面ISO26262中给出了研发生命周期的具体流程和方法指引也有助于企业实施ASPICE
对于汽车行业来说,“安全”和“质量”永远都是不可忽视的两个重要因素。而且随着软件定义汽车、自动驾驶时代的来临,汽车软件的质量安全甚至直接关乎到人身安全。ASPICE作为一套专门针对汽车电子与软件开发过程成熟度的评估模型,有着重要的意义。
ASPICE最初由欧洲20多家主机厂认识到软件质量的重要性之后,制定的一个规范,目的是指导供应商的软件开发流程,改善车载软件的质量。随着智能网联、自动驾驶、新能源汽车的发展和软件定义汽车的时代要求,软件在汽车研发中的占比激增,软件质量管理的需求日益增强,所以ASPICE的重要性日益凸显。目前ASPICE是国内外众多主机厂对软件开发相关供应商的强制要求,通过ASPICE评估供应商的过程能力,并以此作为供应商的选择标准。
对供应商来说: 借助ASPICE评估模型的指导,供应商软件开发可以逐步完成对现有流程的查漏补缺,建立了一套相对成熟的流程体系,减少由于产品开发后期发现的质量问题而对产品开发造成的成本影响。未来不仅可以满足全球主流整车厂严苛的软件质量要求,也可以实现不同项目之间的匹配,以便灵活的应用在更多项目中,不仅在专业开发领域有机会抢占更多先机,也会更加有利于公司与全球各个整车厂进行更高层次的技术与产品合作。
对整车厂来说: 整车厂可以使用ASPICE框架在供应商选择过程中评估供应商的过程质量能力。整车厂可以将自己的系统开发过程定义为符合ASPICE标准,这将有助于评估和提高流程能力。目前各个汽车行业都进入了域控及自动驾驶赛道,软件的重要度越来越高,作为对汽车软件质量评估的重要标准,ASPICE严谨的审核体系,不仅可以作为他们判断供应商开发能力及自主软件开发能力的评估指南,而且也可以帮助改善自身流程,建立满足功能安全要求的流程体系,从而有效保证软件安全,最终保证整车的安全和质量。
无论工业4.0、智能制造还是自动驾驶,汽车工业正面临着新的挑战,软件正在越来越多领域的产品中成为核心,并对车辆中现有系统交付的功能水平产生重大影响,软件的作用在未来会越来越重要。正因为如此,ASPICE特地强调了汽车领域的组织提高他们的软件开发能力,以处理不断增加的系统复杂性。相信未来,随着软件技术的不断升级,ASPICE将在持续帮助行业改进和优化生产全流程中,发挥越来越核心的价值。
ASPICE主要内容包括了符合性声明,过程能力确定,过程参考模型和实施指标,过程能力等级与过程属性。
ASPICE 过程评估模型及过程参考模型符合 ISO/IEC33004,可作为实施过程能力评估的基础来使用。ISO/IEC 33020 是用作符合 ISO/IEC 33003 标准的度量框架。
ASPICE过程能力确定包含三个部分,分别为过程参考模型、度量框架、过程评估模型。
使用过程评估模型来确定过程能力的概念是基于一个二维框架。第一个维度是由过程参考模型(过程维度)定义的过程来提供。第二个维度是由进一步细分到过程属性的能力等级(能力维度)所构成。过程属性提供了过程能力可度量的特性。
过程评估模型从过程参考模型中选择过程并增补了指标。这些指标支持收集客观证据,使评估师能够根据能力维度对过程进行评定分配,他们之前的关系如下图所示:
ASPICE将汽车系统研发过程划分为了32个过程,并将这32个过程归类到3大类(主要生命周期20个过程,组织生命周期5个过程和支持生命周期7个过程)、8个过程组(获取过程组;供应过程组;系统过程组;软件工程组;支持过程组;管理过程组;重用过程组;过程改进过程组)。
实际项目评估中,由于考虑到性价比和项目范围,通常评估时不会包括所有过程,而是根据被评估项目的具体情况选择被评估的过程域。目前国内外主机厂在对供应商审核时通常考察16个重点过程域,叫VDA Scope(以前的HIS Scope),多数审核选择对这16个过程进行审核。当然,也有个别主机厂会对额外的过程有要求。
HIS:德文Hersteller Initiative Software;英文EOM Initiative Software;EOM所倡导的供应商。HIS成员:奥迪、宝马、奔驰、保时捷、大众,主要致力于软件产品和过程的标准化。HIS定义的ASPICE过程是HIS成员对供应商的最低要求,需要通过其中16个过程,能力达到3级。2016年HIS解散,VDA QMC将HIS Scope改名定义为VDA Scope。
所有过程依据过程类别进行分组,并根据他们所处理活动的类型在过程组内进一步划分。每个过程都以目的陈述来描述。目的陈述包括,在特定环境下执行时过程的特有功能性目标。针对每个目的陈述,都有一个相关联的特定成果清单,作为过程实施的预期正面结果的清单。针对过程维度,Automotive SPICE 过程参考模式提供了过程集合如图。
度量框架主要继承ISO/IEC 33020中的定义,包括过程能力基本和过程属性、过程属性评定、评分规模、评分方法、合计方法、流程能力等级模型等
度量框架为能力维度提供了必要的需求和规则。它定义了一个可使评估人员确定对象过程的能力级别的模式。这些能力级别被定义为度量框架的一部分。为了能够进行评定,度量框架提供了定义过程能力的有可度量特性的过程属性。每个过程属性被分配到特定的能力级别。某个过程属性达成的程度是基于已定义的评定尺度的评定方式来表示。评估师对对象过程的最终能力级别的导出规则是由过程能力等级模型来表示。
过程评估模型过程评估模型提供了指标,以识别过程成果和过程属性成果(成就)在项目和组织单位的实例化过程中是存在还是缺失的。这些指标为评估师收集必要的客观证据提供了指导,以支持能力的判定。这些指标不应被视为必须遵循的检查单集。为了判断过程成果和过程成就的存在还是缺失,评估需要获取客观的证据。所有证据是来自对工作产品和被评估过程的存储库内容的检查,以及来自被评估过程的执行者和管理者提供的证词。将证据映射到 PAM 指标,以允许建立与相关过程成果和过程属性成就的对应关系。有两种指标:
-- 过程实施指标 ,其只适用于能力级别 1 级。它们提供了过程成果实现程度的指示。
-- 过程能力指标 ,其适用于能力级别 2 级到 5 级。它们提供了过程属性成就实现程度的指示。
评估指标是用来确认某些实践得到执行,就如评估中收集的证据所显示的。所有这样的证据来自被评估过程的工作产品的检查,或者来自过程执行者和管理者所做的陈述。基本实践和工作产品的存在提供与它们相关的过程的实施的证据。同样,过程能力指标的存在提供了过程能力的证据。获取的证据应以与相关指标明确关联的形式进行记录,以支持按 ISO/IEC33020 要求对评估师的判断进行确认或验证。
过程维度中的过程可取自 ASPICE 过程参考模型,该内容包含在下表中由左侧红色竖线显示的部分。与过程维度中各个过程相关的表包含过程参考模型(由红色栏显示)和定义过程评估模型所需的过程实施指标。过程实施指标是由基本实践(由绿色栏显示)和输出工作产品(由蓝色栏显示)所构成。
前文已提到,过程参考模型所有过程依据过程类别进行分组,并根据他们所处理活动的类型在过程组内进一步划分。总共有 3 个过程类别程,总共有8个过程组,标准里面8个组的每个子内容都按照过程ID、过程名称、过程目的、过程成果、基本实践、输出工作产品6个流程进行评估。
我们以软件工程组(SWE)中的软件架构设计(SWE.2)为例,说明过程参考模型的内容和实施指标,具体过程如下:
过程能力指标是达成所考虑的过程属性指定的能力的方法。
过程能力指标的证据支持对过程属性的达成程度的判断。过程评估模型的能力维度由与ISO / IEC 33020定义相匹配的六个能力等级组成。过程能力指标是对包含在过程能力等级1到等级5的能力维度中的9个过程属性进行描述。该过程评估模型中的每个过程属性与过程度量框架中定义的过程属性相同。通用实践指出每个过程属性的特征。通用资源与整体的过程属性相关联。过程能力等级0级不包括任何类型的指标,因为它反映了未实施的过程或未能部分实现其任何成果的过程。
ASPICE根据企业管理的细致和严谨程度不同,将企业的软件研发能力划分为6个级别,0级为最低级,5级为最高级。级别越高代表研发项目出现意外情况的可能性更低,企业对项目和产品的成功掌控力越强,越有能力按时向客户交付高质量的产品。6个等级的说明如下:
在引入ASPICE之前,企业通常已经存在一定的流程和规范,只是这些没有被白纸黑字写下来,因此,说是从头引入ASPICE,倒不如说是在现有的基础上尝试做到标准的要求。由于高度定制化,因此市场上几乎没有可共享的文件,这也让想引入ASPICE的公司造成相当大的困难,对于一个企业来说,导入ASPICE后,需要有专职人员整体把握ASPICE要求,参与所有过程方案的讨论和制定,还需要有实施具体过程阶段的代表人员,参与该阶段过程与技术方案的讨论和制定,与之前没有导入ASPICE开发方法相比较,项目的研发人力投入可能会增加1倍。如果要引入ASPICE,需要步骤如下:
了解ASPICE的基础概念。培训主要有两种,分别是ASPICE标准解读训练和ASPICE助理评估员培训。
确认当前公司现行的作业流程与ASPICE标准定义的差距,并通过由差异分析来规划后续所需要的资源。一般来说差距分析前,需要做如下准备:(1)当前已执行的流程和相关的证据;(2)企业现存的标准流程;(3)公司现有的工具;(4)公司未来要发展的标准和流程。
定义并编写ASPICE流程范围的所有流程,程序,指导书,表单,查检表,并建立工具及工具操作说明书。
依据所定义流程,结合项目的开发,执行定义的全部流程,并保留全部的流程证据。
针对已执行的专案,执行预评估并找到执行上的落差,并作为下一个工程流程(V模型)执行时的改善,提高正式评估通过的可能性。
针对已执行的专案,执行正式评估,评估完成后,将会收到正式的评估结果。
ASPICE评估的有效性是只对评估项目有效,对其他项目无效,有效期为1年。
ASPICE评估对象是项目,而不是产品或公司体系。ASPICE评估只能证明一个公司某个项目在某个时间段的过程能力情况。假设一个公司项目通过ASPICE CL2评估时,说明该公司被评估项目X的相关被评估过程达到了CL2能力度等级。但并不能说明该公司其他项目Y也达到了CL2能力度级别。
被评估项目如果没有发生变更(包括开发过程调整、组织结构调整、人员替换等),则可以认为评估结果在12个月之内是有效的。
在主机厂考察供应商时,如果供应商在几个月前的项目中实施了一次ASPICE评估结果,则主机厂可能会认为企业目前的过程能力可接受。但如果供应商在几年前的项目中实施了一次ASPICE评估结果,则主机厂可能不会接受。这个具体可接受的时间期限依不同OEM而定,不能一概而论。
在Automotive SPICE领域,没有机构去执行和管理评估,而完全由评估师个人进行ASPICE评估并签发评估结果,只是iNTACS(国际评估师认证机构)去管理评估师。iNTACS定义了评估师的级别,级别晋升条件和级别维持的条件。ASPICE评估师的级别从低到高分别为:Provisio nal Assessor,Competent Assessor, PrincipalAssessor。
ASPICE的评估严格来说并不是“认证”,其实ASPICE的评估结果应该是评估报告,而不是证书。它只是表明项目评估范围内的过程具备的能力度等级。目前行业内流行的ASPICE证书只是作为评估通过的一个附加证明,是为了便于企业商务市场宣传应用而生的一个产物而已。
所有的评估结果依赖于证据,相关活动执行人应在评估期间的访谈时证实其执行了ASPICE相关活动,并且能够提供完备的相关文档记录,证明项目实施了ASPICE相关活动,总结起来就是评估结果依赖于“人证和物证”。
我们了解了ASPICE概念、意义、内容以及评估流程。企业具体实施起来虽然是非常大的挑战,但是只要企业对汽车软件质量和安全足够重视,相信各企业一定会加大投入把ASPICE标准实施起来,一起推进整个汽车行业向更好的方向发展。