汽车电子软件的开发不同于一般的软件开发,除了需要符合软件开发标准流程外,还需要满足功能安全相关标准。目前软件开发行业普遍采用CMMI过程能力成熟度模型,而功能安全ISO26262标准则已成为汽车业界非常重要的开发标准。本文从选题的背景和意义出发,介绍了如何在汽车电子软件开发的V模型中高效地部署CMMI和ISO26262双重规范和标准,从而开发出高质量的汽车电子软件。
随着汽车工业智能化程度、绿色环保、互联网概念的深入,汽车对整车电子系统的开发需求与依赖程度日益提升,电子控制单元(electronics control unit,ECU)软件的开发也越来越复杂。为确保产品的开发质量,开发过程必须遵循严格的流程,且软件产品也必须满足越来越严格的标准。作为软件开发过程改进的运用模型,CMMI已经在国内推广近十年的时间,积累了来自1000多个软件公司的几万条最佳实践,成为目前汽车电子软件开发的首选流程改进模型。在产品的安全标准方面,从工业功能安全标准IEC61508转化而来的ISO26262功能安全标准,已经成为目前非常前沿的汽车安全相关标准,它基于汽车电子行业公认的V模型,强调通过各开发阶段的测试及验证来保证安全相关的电子产品的功能性失效不会造成危险的发生。本文以CMMI与ISO26262在某整车厂的汽车电子软件开发中的有效部署和应用为例,展开相关性探讨。
1 CMMI3在汽车电子软件开发中的应用
CMMI是1997年由卡耐基梅隆大学软件工程研究所(SEI)正式发布的针对企业集成产品开发过程成熟度等级评定的模型,是世界范围内用于衡量软件过程能力的标准。CMMI将能力成熟度分为5个等级,由于CMMI2级对软件工程活动的指导不足,多数软件公司将最初的改进目标设定为有实际应用价值的CMMI3级。因为它已经完全覆盖了高质量软件开发必备的指导要素:
(1)定义了需求开发(RD,Requirements Development)过程指导需求开发活动。
(2)定义了技术解决方案(TS,Technical Solution)过程指导设计、编码活动。
(3)定义了验证(VER,Verification)过程指导评审及测试活动。
(4)定义了确认(VAL,Validation)过程指导软件产品在使用环境下的验证活动。
(5)定义了集成(PI,Product Integration)过程指导软硬件产品的集成活动。
(6)定义了决策分析与解决方案(DAR,Decision Analysis and Resolution)过程,指导组织如何在设计方案、采购方案等方面做出有效决策。
(7)定义了专门的改进组织(EPG,Engineer Process Group),更有针对性地开展过程改进工作。
CMMI3从项目管理、工程过程、支持过程及过程管理四个改进维度,分别定义了相应的流程规范。其中,工程过程映射了汽车电子软件开发V字模型的全部过程,其他三个改进领域则支持工程过程的执行。图1展示了基于V模型的CMMI3级规范在汽车电子软件开发中的部署。
2 ISO26262介绍
随着汽车电子系统复杂性的提高,从车身电子的雨刮、电源、外灯系统,到主动安全系统的车道保持预警、自动泊车、自适应巡航,普遍包含了大量的电子器件及控制软件的开发,来自系统失效和随机硬件失效的风险与日俱增,因此汽车功能安全开发标准研究成为业界非常关注的课题。2011年11月正式发布的道路车辆功能安全标准ISO 26262,无疑成为当前汽车业最重要的一份标准,其主要应用于不超过3.5吨的量产乘用车的电子电器系统的功能安全开发。该标准的构成如图 2所示,图中的一个大V和两个小V所含的4.System level、5.Hardware level、6.Software level标准定义以及下方的8.Supporting processes为本文讨论的部署范围。
3 在CMMI3基础上部署ISO26262标准
ISO26262标准中未对项目管理及过程管理作相应的要求,因此在部署时,这两个维度的活动可沿用原有组织内CMMI3级的规范,而支持过程的活动二者是高度重合的,因此工程过程才是部署的重点。
3.1 工程过程的部署
在一个已实施CMMI3级的汽车电子软件开发组织内部署ISO26262相关标准,首先需对CMMI3级过程与ISO26262标准在工程技术方面的要求做详细的差异分析,再根据差异分析结果实施求同存异的部署。
3.1.1 两者的差异分析
ISO 26262工程技术活动详细拆解为系统级、硬件级以及软件级活动。与CMMI3定义的工程过程维度的活动进行对比分析,梳理出的具体差异如表1所示。灰色部分表示ISO26262与CMMI3级流程要求一致;对于在CMMI3级流程体系中无法实现的工程技术要求,则作为ISO26262特有的过程定义补充在CMMI标准中,并通过制定相应过程的裁剪指南来满足功能安全开发的特殊要求。
3.1.2 具体部署
在CMMI的工程过程部署的基础上,将需要部署的ISO26262相关部分整合,整合后如图3所示。
3.1.3 部署举例
以软件级产品开发生命周期中的软件架构设计、软件单元设计及实现的验证活动为例,讨论如何将ISO26262标准的验证要求与CMMI3级要求的验证过程要求统一部署。
在CMMI的验证过程定义中,评审方式的定义比较简单,如自查、走查、正式评审等。基于该评审策略,将功能安全开发要求的验证方式整合到评审方式章节,原有非功能安全开发的评审方式不变,在此基础上,增加了对功能安全开发的相关验证活动裁剪指南,如表2所示。
通过上述验证规范的部署举例,将ISO26262工程过程部署在现有CMMI3级组织内的主要步骤总结如下:
(1)EPG必须详细理解ISO26262标准所提出的工程开发的技术要求,分析与现有流程的差异性;
(2)EPG将ISO26262标准的各项要求追加或合并到已定义的CMMI流程中,并制定详细的裁剪指南,以满足功能安全开发及非功能安全开发的不同要求。
(3)工程师根据裁剪指南及开发要求,选择合适的开发流程及标准。
4 结束语
随着现代汽车工业的迅猛发展,汽车电子已经成为汽车的核心竞争力。这不仅要求汽车电子产品质量高,而且必须符合严格的功能安全标准。本文以某整车厂的汽车电子软件开发为例,介绍了在基于V模型的汽车电子软件开发中如何高效地部署CMMI3级规范,并在此基础上,重点介绍了如何将ISO26262标准的工程技术要求与CMMI3的工程过程域相结合并统一部署,从而指导开发高质量、高安全等级的汽车电子产品。
作者:王丹 周晓翠 雍建军 来源:电子技术与软件工程 2015年21期