来源 | 薄说安全
知圈 | 进“滑板底盘群”请加微yanzhi-6,备注底盘
功能安全应该如何考虑软件架构,什么样的架构是符合功能安全标准要求的,对于软件架构工程师和功能安全工程师,很难在两个方面都说得明白,本篇来从功能安全的角度谈谈软件架构设计的基本要求。
首先,功能安全软件的架构设计是 基于两个层次的:
第一:选取和建立一个层次分明,易于理解的软件架构;
第二:在第一条的基础上,符合相应功能安全等级要求的软件设计要求。
接下来,以汽车功能安全标准ISO26262-6和轨道交通软件功能安全标准EN50128作为基准,谈谈标准是如何从以上两个层次来做出规定的。
软件架构阶段的开始
软件架构设计是软件生命周期的第二个阶段,前面的阶段是软件需求阶段(software requirements specification),在软件需求设计时,把整个软件当成一个黑盒处理,来确定该软件的所有功能、性能,与硬件的接口定义,与外部其它系统的接口定义,而在软件架构阶段,需要设计一种架构来满足软件需求,通过层次化结构的方式来表示软件架构的组件构成和他们之间的交互方式。以下图为例,虚线框之外是软件需求,虚线框内是软件架构。
什么是软件组件
上面这个图用于解释软件架构所做的工作,将整个软件划分为功能和接口清晰的组件。在ISO26262-6和EN50128中都有软件组件(component)这个概念,先来看看这个组件的定义:
EN50128对组件的定义
ISO26262对组件的定义