适航功能安全中软件V&V之最佳技术路线

刘畅 软件质量报道 2019-03-22

【术语说明】

  • V&V;:verification and Validation,验证和确认

  • SOTIF:Safety of The Intended Functionality,预期功能安全

  • FTA:Fault Tree Analysis,故障树分析(演绎推理)

  • FHA:Functional Hazard Analysis,功能危险性分析(安全性设计评估技术)

  • FMEA:Failure Mode & Effect Analysis,失效模式与影响分析(归纳推理)

 

 功能安全(Functional Safety是现代工业装备与产品的必备要求,不同领域都有各自的功能安全标准来规范产品研发过程,如航空的SAE ARP 4761/DO 178C/DO 254系列,IEC 61508系列,轨道EN 50126/50128/50129,车辆ISO 26262,核电IEC 61513等等

 

近年来我国对功能安全中的系统安全性目标、安全评估过程、硬件可靠性之间的关系等概念梳理的比较清晰,也开始了蓬勃发展的工程实践。但是对于软件在功能安全中如何评估、软件V&V;如何纳入功能安全实践,却存在着不少的脱节与缺失。另一方面,“软件定义一切”已是大势所趋,现代智能化工业装备的核心功能都由软件实现,无法对软件进行有效的功能安全评估,将极大地影响系统的功能安全。

 

目前功能安全工程实践中,软件工作主要存在以下两个问题。


1.功能安全中不考虑软件

这种情况比较普遍,功能安全中的风险分析时,只考虑硬件的失效,不考虑软件对风险的贡献。一个典型的例子就是,使用故障树FTA分析时,底事件只有硬件没有软件;而实际中软件造成的系统问题又比较多,这样FTA就与系统实际偏离较大,功能安全评估存在较大的缺失(没有考虑软件)。

 一般来说,这样的组织对于软件开发尚未建立规范的流程和制度,软件偏重实现,缺少规范的设计过程和阶段产品,文档缺失,而这又进一步加剧了软件对系统故障的贡献,质量难以有效控制。


2.功能安全评估与软件V&V;互不干涉

部分软件工程能力较强的组织,建立了较规范的软件研发制度,于是又出现了功能安全和软件研发各自干的热火朝天,但两者找不到关联点的问题。

 这样各自不干涉发展的结果,就是造成在功能安全实践中,“系统不知道软件在干啥,软件不知道系统想要啥”,出现明显的脱节,使软件研发完全与功能安全独立,在功能安全评估体系中,无法找到软件V&V;进入和闭环的位置,软件无力自证清白,影响功能安全实践的效果。



软件V&V;工程实践


为了在功能安全中实现软件V&V;的工作过程,我们选取适航功能安全标准中“FHA+FTA+FMEA+Test”的技术路线,指导功能安全中软件V&V;工作开展,解决软件V&V;在系统功能安全中无处安放的问题。


(相关概念请回顾前期公众号文章:

 

第一步
 FHA  与软件关系不大


FHA是安全性工作的第一步,核心是识别系统功能的失效状态(FC:Failure Condition)。然后分析FC的影响与严重程度,评估FC的影响等级:

1)对于A级/B级、或关键/重要级别的FC,作为故障树顶事件开展FTA分析;

2)对于其他级别的FC,可以直接提出控制措施,形成系统安全性要求。


步骤

工作内容

输入

输出

第一步

依据系统需求,分析与获取系统功能

系统需求

系统功能清单

第二步

围绕系统功能,获取功能输出的要求

系统需求、系统设计等

功能输出的要求,包括输出的数据、时序、通信协议等

第三步

针对系统功能,分析功能输出可能出现的失效状态(FC

系统功能输出、历史失效数据等

识别出的FC

第四步

针对每一项FC,从影响系统安全、任务完成等角度,分析FC的失效影响

FC

FC的失效影响

第五步

针对每一项FC,分析其影响后果的严重程度,并进行分级评估

FC的失效影响

FC的失效影响等级,可分为ABCDE级别,或关键、重要、一般、轻微等级别

第六步

对于关键/重要级别的FC,作为故障树顶事件,开展FTA分析。对于其他级别的FC,直接提出FC的控制措施,形成系统安全性要求

FC的失效影响等级

1FTA的故障树顶事件输入;

2)系统安全性要求

第七步

结果记录

系统功能、FC、失效影响、等级

1)建立规范的记录;

2)建立完整的追溯关系


第二步
FTA 软件V&V;与系统的接口


FTA是安全性工作的第二步,针对故障树顶事件,依据系统体系结构,分析体系结构中各个部分的“失效”是如何导致顶事件发生的,确保系统体系结构设计能够满足系统安全性要求,如果不满足,就需要修改体系结构。体系结构中各个子系统、设备、软硬件配置项的冗余设计,就是在这个阶段完成的。

 

延伸一下,波音737 MAX事故后FAA发布的紧急适航指令可知,高迎角传感器AOA将错误的数据输入给了飞行控制系统,引起错误的机头降低指令,使得驾驶员难以判断和控制飞机状态。如果在FTA中,对应的顶事件和底事件应该是类似这样的描述片段:


 其中,“飞行姿态控制错误”是飞控系统的一个A级FC,作为故障树顶事件向下分解,直到具体的软硬件配置项,由此获取飞控软件导致FC发生的——“输出错误的姿态控制指令”。

 

对于这样的事件,经过层层IDAL评估(参见“系统体系结构的安全性分析——IDAL与软件安全性需求”),确认了软件的研制保证等级后,接下来就要确保 “软件输出错误的姿态控制指令”这件事在软件生命周期中“不会发生”,这也就是软件V&V;的一个目标。

 

这是系统功能安全与软件V&V;第一次重要工作接口——即系统向软件分配

 

接下来,飞控软件是否会“输出错误的姿态控制指令”?输出错误的原因是什么?应当采取什么解决措施?……这些问题需要飞控软件来“自证清白”,软件需要提供证据表明自己“不会输出错误的姿态控制指令”;或者“一旦输出错误,就采取XX措施”;或者,软件在V&V;中表示“我无法解决这个问题,交给其他系统吧”……

 

这将形成软件V&V;与系统功能安全的第二次重要工作接口——即软件向系统反馈

 

功能安全中的软件V&V;过程,就在这样一次次的分配和反馈中迭代,最终形成完整的软件安全性需求,这也是最耗时和复杂的过程。

 

系统提要求,软件给出证据证明自己符合要求,这就从系统功能安全过渡到了软件功能安全,软件所需提供的证据,就是软件功能安全工作的结果。


第三步
 FMEA  软件评估自身是否清白


经过FHAFTA分析之后,软件获取了系统分配的安全性要求。软件FMEA核心是识别软件自身的失效,尤其是软件对外部异常输入处理不当导致的失效,获取软件安全性需求,验证软件实现了系统分配的安全性要求,表明软件不会导致系统发生危险或事故。

 

接着上面的案例,飞控系统要求软件“不应输出错误的姿态控制指令”,软件何时会输出错误?输出什么样的错误?什么原因导致的?这些均应在FMEA工作中得到分析和解决。例如,软件发现“AOA错误输入”会导致软件“输出错误的姿态控制指令”,识别出一个“AOA错误输入”的失效模式(Failure Mode),一方面在软件需求中增加对AOA错误输入处理的安全性需求,另一方面在软件验证中设计基于此失效模式的测试用例,验证软件真正实现了对AOA错误输入的处理。(参见“狮航737 MAX事故给我国软件验证的启示”)

 

上述分析提供了“当发生AOA错误输入时,软件不会输出错误姿态控制指令”的证据,显然不足以表明“输出错误的姿态控制指令”的原因全部找到并解决,更不能证明软件不存在其他问题、不导致其他事故。因此,FMEA分析越充分,软件自证清白的证据越充足,当然花费的工作量也更大。

 

对于软件研制人员,FMEA能够直接帮助软件获取安全性要求,尤其是当系统分配的安全性要求比较笼统时,也体现了软件产品从“功能”到“安全”的递增与闭环过程,如下图所示:灰色是设计师给出的软件功能流程,即我们常见的“软件需求”;红色是经过FMEA分析识别的软件失效处理流程;蓝色是根据软件失效防护形成的安全性需求。


可见,灰色+红色+蓝色才是真正的软件需求。一旦需求遗漏造成的潜在危险不言而喻。





第四步
安全性测试 基于需求&安全性


安全性测试是第四步,在软件测试验证阶段,基于软件安全性需求设计测试用例,验证软件产品是否准确、充分、一致的实现了软件安全性需求。

 

DO-178C6.4.2章节专门强调对软件异常输入、失效模式的测试和防护,这些异常输入、失效模式就是FMEA分析的结果,在软件安全性需求中体现,并在软件测试中予以验证。以失效模式为依据开展安全性测试,也解决了目前大部分测试人员对于“安全性测试具体测什么”、“异常测试如何充分”的疑惑。

 

好的安全性测试工作,一定是以FMEA为基础,而不是在常规软件测试上“补课”。举个不一定恰当的例子:一个软件产品的功能需求50条,经过FMEA分析后新增安全性需求50条,软件测试的依据是这100条软件需求;而不进行FMEA分析,常规测试依据仍然是原有的50条需求,任何一个熟练的测试工程师都很难基于50条需求构造出100条需求所覆盖的测试用例。

 

结语“FHA +FTA+FMEA+Test”是符合适航标准要求的软件功能安全工作,我们(指“软件安全性与可靠性”公众号)将在以此公众号的系列文章中,由框架到细节,逐步详解工程实施的过程,敬请关注。


注:本文转自公众号《软件安全性与可靠性

    发送中

    本站仅按申请收录文章,版权归原作者所有
    如若侵权,请联系本站删除
    觉得不错,分享给更多人看到