
第2章 目标与安全完整性等级
2.1 软件在系统中的定义
标准4.1节主要规定了系统文档对安全相关软件的定义。
2.1.1 标准条款
Objectives, conformance and software safety integrity levels
4.1 The allocation of safety-related system functions to software, as well as software interfaces, shall be identified in the system documentation. The system in which the software is embedded shall be fully defined with respect to the following:
● functions and interfaces;
● application conditions;
● configuration or architecture of the system;
● hazards to be controlled;
● safety integrity requirements;
● apportionment of requirements and allocation of SIL to software and hardware;
● timing constraints
NOTE
The allocation of safety integrity requirements may lead to different SIL for well-separated software and hardware parts of a subsystem. This allocation depends on the contribution of the software and hardware parts of the subsystem to the safety-related functions and on the mechanisms for the failure mitigation including the separation of function with different SIL.
4.1 安全相关系统功能关于软件以及软件接口的分配,应该在系统的说明文件中标明。嵌入式软件系统应该符合下列条件:
● 功能和接口;
● 应用条件;
● 配置或系统的体系结构;
● 控制危险;
● 安全完整性需求;
● 分配SIL的软件和硬件的条件;
● 时序约束。
注意:软件安全完整性需求的分配可能会导致子系统中良好隔离的软件和硬件存在不同的SIL等级。这种分配策略取决于子系统中安全功能的软件和硬件对系统的作用以及不同SIL等级隔离功能的失效缓解机理。
2.1.2 条款理解及应用
软件是系统组成的一部分,软件需求来自系统需求。安全相关系统的软件功能和接口应在系统级文档中定义,内容应包含:功能和接口、应用条件、系统配置或体系架构、可控风险、安全完整性需求、分配给软件和硬件的SIL需求和条件。为完成系统分析阶段指定的活动目标,一般需要开展的工作如下。
1)概念分析
概念分析的目的是,提高对整体系统及其环境的理解水平,确定整体系统的可容忍风险水平,以便于其他安全性分析活动能够顺利进行。活动目标包括:
(1)对系统或部件的控制功能和所处的物理环境进行全面了解;
(2)确定可能的危险源;
(3)获取相关已确定的危险源信息(毒性、爆炸性、腐蚀性、反应性、易燃性等);
(4)获取当前相关的安全法规;
(5)考虑相关联的系统或部件之间相互作用所产生的危险;
(6)确定整体系统的不可容忍的风险、可容忍的风险和完全可以接受的风险。
2)系统范围确定
系统范围确定的首要目的是确定系统的边界,第二个目的是确定危险和危险分析的范围。活动的目标包括:
(1)确定在初步危险及风险分析范围内的实际物理设备;
(2)确定在初步危险及风险分析时应考虑的外部设备;
(3)确定与危险有关的子系统间以及它们与其他部分间的接口;
(4)确定需要考虑的可引发事故的事件类型(如零部件失效、程序错误、人员出错);
(5)可采用初步危险表的方式列出可能需要特别重视的危险或需要深入分析的危险部位。
3)系统中与软件相关的定义
(1)软件对象。软件对象是指待建模分析的软件配置项或系统。软件对象的建模内容主要包括:
● 名称或标识:描述软件对象的唯一名称或标识;
● 软件配置项/系统的内部边界:描述软件配置项的边界,属于软件配置项所在系统的内部边界,用于区分系统内部的软件配置项划分;
● 软件配置项/系统的外部边界:描述软件配置项所在系统的边界;
● 裕度设计(若有):裕度设计是软件常用的体系结构设计策略,实质也是一种提高软件安全性的手段,建模软件对象的裕度设计策略,能够辅助软件安全性分析时对于裕度的分析。
(2)外部交联设备。外部交联设备是指与软件存在接口交联关系的各类系统、硬件机构、人机交互设备等,它们通过外部输入/输出接口与软件进行数据与控制的交互。分析外部交联设备对软件接口及数据的影响,确定外部交联设备的建模内容,包括:
● 名称或标识:描述外部交联设备的唯一名称或标识;
● 物理限制要求(若有):描述外部交联设备、尤其是硬件机构的物理限制要求,如作动机构的极限位置、转子机构的转速限制、机械运动顺序等,这些物理限制要求会对软件外部输入/输出接口产生影响,也是软件安全性分析需要考虑的因素之一。
● 裕度设计(若有):外部交联设备的裕度设计信息不是当前软件对象建模所必需的,其对软件对象的影响一般体现在与之交联的外部接口裕度上,可在后续软件外部输入接口数据的裕度建模时进行描述。
● 环境或人员的影响(若有):软件对象所在的环境或使用该软件的人员都会影响软件的运行,但这些影响是间接的,这也是软件与硬件最大的区别。软件本身仅通过软件外部接口去“感知”和“控制”外在影响,比如运行环境发生变化,软件通过传感器接口数据的变化去感知;人员发出操作指令,软件通过人机接口数据的变化去识别。描述环境或人员对软件运行的影响也是为了辅助软件安全性分析时对于接口的分析。
(3)软件外部输入接口数据。软件外部输入接口数据是指与软件存在输入关系的外部接口数据元素,它们承担了软件所能感知到的一切信息,如环境因素、物理条件、硬件动作、故障状态、裕度配置等信息,需要重点描述。依据软件架构设计说明书,确定软件外部输入接口数据的建模内容,包括:
● 名称:描述软件外部输入接口数据元素的唯一名称或标识;
● 接口类型:描述软件外部输入接口数据元素对应的接口类型,软件常用的外部接口类型如:离散量、模拟量、CAN总线、RS-422A/232、RS-485、TCP/UDP、MVB等;
● 数值/值域:如果软件外部输入接口数据元素为离散型数据,描述该数据元素的各种可能的取值;如果软件外部输入接口数据元素为连续型数据,描述该数据元素的有效取值区间;
● 通信格式:描述软件外部输入接口数据帧的通信协议格式,例如帧头、数据位、状态位、校验位等;
● 时间:描述软件外部输入接口数据取值的时刻信息或持续时间信息;
● 周期:描述软件外部输入接口数据的输入周期信息;
● 故障处理:描述软件外部输入接口数据故障(如极值故障、斜率故障、跳变故障等)的诊断策略、处理策略、恢复策略、缺省值等;
● 裕度设计:描述软件外部输入接口数据的裕度设计(例如双裕度、四裕度)、裕度表决方法及切换策略;
● 交联设备:外部发送或接收数据的组件或设备,与被测软件进行通信。
(4)软件外部输出接口数据。软件外部输出接口数据是指与软件存在输出关系的外部接口数据元素,它们反映了软件所有可见的功能或行为,如硬件控制、故障报警、执行反馈、数据存储等,需要重点描述。结合软件特征“软件外部接口及数据交互复杂”的分析,基于需求标准要求,确定软件外部输出接口数据的建模内容,包括:
● 名称:描述软件外部输出接口数据元素的唯一名称或标识。
● 接口类型:描述软件外部输出接口数据元素对应的接口类型,软件常用的外部接口类型如:离散量、模拟量、CAN总线、RS-422A/232、RS-485、TCP/UDP、MVB等。
● 数值/值域:如果软件外部输出接口数据元素为离散型数据,描述该数据元素的各种可能的取值;如果软件外部输出接口数据元素为连续型数据,描述该数据元素的有效取值区间。
● 通信格式:描述软件外部输出接口数据帧的通信协议格式,例如帧头、数据位、状态位、校验位等。
● 时间:描述软件外部输出接口数据取值的时刻信息或持续时间信息。
● 周期:描述软件外部输出接口数据的输出周期信息。
● 故障处理:描述软件外部输出接口数据故障的诊断策略、处理策略、恢复策略、缺省值等。
● 裕度设计:描述软件外部输出接口数据的裕度设计(例如双裕度、四裕度)、裕度表决方法及切换策略;
● 目的设备:描述软件外部输出接口数据对应的目的设备,来自“外部交联设备”信息。