3 过程管理在基于模型的V字开发流程中的应用
如前所述,为了开发高可靠性的汽车嵌入式系统,采用了基于模型的V字开发流程。在此流程中要求从系统定义到需求分析到设计实现到测试验证,环环相扣,保持一致性和可追溯性。对于现代汽车上越来越复杂的嵌入式系统而言,涉及到系统定义及需求的条目往往很多,多的可以达到数千条至上万条细化需求,再加上每个需求对应的设计及实现,以及需求对应的测试用例及测试结果,需要保持一致性和可追溯性的内容非常庞大。再加上开发过程中系统定义和需求经常会发生变更,测试中发现问题,设计和实现也经常要修改,而且复杂系统的开发往往是一个团队多人开发,还需要实现大型开发团队的协调工作。这整个开发过程如果采用手工的方式,来维护从系统定义、需求、设计、实现、测试、验证的一致性,对稍微复杂一点的系统都是难以实现的,高可靠性的开发也就无从谈起。因此需要引入需求管理工具和配置管理工具来实现这个流程。
需求管理工具主要实现以需求为中心的对整个开发流程各个阶段信息流的管理。需求管理工具通过建立各个阶段之间的条目的链接关系,从系统定义条目可以通过链接跟踪到需求分析条目跟踪到设计实现,也可以跟踪到相应的测试条目,也可以从测试条目或设计实现追溯回相应的需求分析条目及系统定义条目。当需求发生变更时,需求管理工具要能够自动列出与此需求相关的需要同步更新的其他阶段条目。各阶段信息的链接关系如图3所示。
4 ISO 26262的要求
ISO 26262是从电子、电气及可编程器件功能安全基本标准IEC 61508派生出来的一个国际标准,主要定位在汽车行业中特定的电气器件、电子设备、可编程电子器件等专门用于汽车领域的部件,旨在提高汽车电子、电气产品功能安全的国际标准。适用于最大质量不超过3 500 kg批量生产的乘用车。ISO 26262从2005年11月起正式开始制定,已于2011年11月正式颁布,成为国际标准。中国也正在积极进行相应国标的制定。目前国内越来越多的厂家也开始重视这一标准。
此标准主要针对安全性相关的汽车电子系统进行分析和指导,其概览如图5所示。
需求管理工具至少需要实现V字流程的左臂的各开发层级的条目之间的双向链接关系,及V字流程的左臂和右臂之间各层级开发要求和对应层级测试用例及测试结果之间的双向链接关系。
配置管理工具主要实现对开发项目配置及人员的管理,记录产品开发的过程。通过控制、记录、追踪,对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能设定,配置各个开发人员的权限和开发角色,实现并行开发协同工作,达到开发团队的有效管理。一个典型软件配置管理基本流程如图4所示。
可以看到ISO 26262的流程在系统级产品开发部分与我们前面讨论的基于模型的V字开发流程是极为相识的,整体也是一个V字开发流程。除了系统级别的产品开发环节外,ISO 26262还增加了概念阶段和生产及运行阶段的流程开发要求,覆盖了一个项目从概念到设计开发到生产运行到最终报废的全生命周期过程,其流程要求的覆盖更为全面。
ISO 26262中的关键概念是汽车安全完整性等级(Automotive Safety IntegrityLevel,缩写为ASIL)。ASIL分为A、B、C、D四个等级,其中ASILD为最高等级。等级越高,代表一旦此功能失效,导致的人身安全风险越高,则此项功能对应的设计方法、可靠性、测试方法等技术指标就要求越高。ASIL从3个方面进行评估:功能失效造成的危险对驾驶员或其他交通参与人员造成伤害的严重程度S、会出现此种危险的工况出现概率E,危险出现时驾驶员和其他交通参与人员及时采取控制行动以避免危害的可控性C。
因此应用ISO 26262以提高安全相关的嵌入式系统可靠性时,首先要从S、E、C三个维度去分析ASIL等级。如表1所示。
S分为S0、S1、S2、S3四级,从0到3,代表伤害程度逐级增强,S0代表无伤害,S3代表危及生命的重伤或致命伤。E分为E0、E1、E2、E3、E4五级,从0到4代表工况发生概率从小到大,EO代表此工况不可能发生,E4代表此工况是常见工况。C分为C0、C1、C2、C3四级,从0到3代表危险发生时可控制程度从容易到困难,C0代表完全可控,C3代表几乎无法控制。
S0、E0和C0满足任何一个时,认为此项功能不影响安全性,因此表1中没有列出。其他的情况下,根据不同的S、E、C级别组合,可以从表1中查得相应的ASIL等级。其中QM代表在这种组合下,此项功能不影响安全性,通过一般品质管理即可保证。
汽车安全完整性等级分析在项目开发的概念阶段完成,确认当前开发的嵌入式系统涉及的功能需要满足的ASIL等级后,就可以进入产品开发的V字流程。在产品开发的V字流程中,根据确认的ASIL等级,ISO26262标准详细规定了各个阶段每一种ASIL等级应采取的技术方案、测试方案、过程组织要求,使得最终开发出的产品可以达到所要求的ASIL等级。