核电厂软件关键性分析方法
2020-04-24张敏曲萃萃
张敏 曲萃萃
摘要:关键性分析是核电厂软件验证与确认过程最初始的环节,也是其他V&V工作的基础。该文针对核电厂安全相关级系统的软件,结合IEEE Std 1012标准,建立了一种适用于软件开发各个阶段的关键性分析的具体执行方法,最大限度地对核电厂安全相关级软件关键性分析工作进行了标准化,从而有效提高了软件验证与确认工作的效力。
关键词:软件完整性等级(SIL);关键性分析(Criticality analysis);软件验证与确认fV&V);失效模式与影响分析(FMEA)
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)05-0100-02
开放科学(资源服务)标识码(OSID):
1 软件关键性分析中的基本定义
定义1:关键性:依据IEEE Std 1012标准的描述,关键性是指一个需求(或模块、错误、故障、失效又或者其他方面)对系统的开发或运行的影响程度。
定义2:软件元素:软件元素在文中是指代关键性分析中的各个独立分析对象,其类型可以是需求、模块、功能、子系统、或其他软件划分的依据。
IEEE Std 1012依据功能失效后果产生的影响,将软件元素的关键性等级分成SIL1、SIL2、SIL3、SIL4四种等级,如表1所示。通过关键性分析这个过程,可以充分了解、识别目标系统中存在的关键软件元素。
2 软件关键性分析方法
核电厂软件验证与确认活动依据IEEE Std 1012进行,软件开发过程的验证与确认活动分为六个阶段:概念阶段V&V、需求阶段V&V、设计阶段v&v、实现阶段v&v、测试阶段V&V、安装和检验阶段V&V。而关键性分析将贯穿于软件开发过程的概念阶段、需求阶段、设计阶段、实现阶段的V&V活动,是一项迭代更新的V&V活动,通过各个阶段的关键性分析,最终得到一个系统的全过程的关键性分析结论。
2.1 概念阶段的关键性分析
如图1所示,概念阶段的关键性分析是在系统概念文档评估通过的基础上,依据系统的软硬件功能划分,识别出系统需求中依赖软件实现的功能,并作为概念阶段关键性分析的对象(也称为软件元素),之后对这部分软件元素进行FMEA分析。参照表1,依据功能失效后果产生的影响,在软件元素已经指定了软件完整性等级的情况下,验证该指定的软件完整性等级是否正确,如果不正确则需要进行修正;在软件元素未被指定软件完整性等级的情况下,则为软件元素定义一个新的软件完整性等级,并依此确定目标系统的软件完整性等级,最后将概念阶段各个软件元素的软件完整性等级记录下来,形成关键性分析报告。
需要注意的是,概念阶段关键性分析的对象始终是系统需求中的软件相关项,非软件相关项不在考虑范围之内,因此系统的软硬件功能划分工作至关重要。
2. 2需求阶段的关键性分析
需求阶段的关键性分析是在软件需求文档评估通过的基础上,列出每一项软件需求及其追踪到的系统需求的软件完整性等级,并根据对软件需求的FMEA分析结果,检查所有软件需求的软件完整性等级是否发生变化。软件需求即是需求阶段的软件元素。当发生软件元素的SIL等级发生提升或下降时,修改并记录各个软件元素的新的SIL等级,同时验证没有不一致或非预期的软件完整性后果被引入,最后对概念阶段生成的软件关键性分析报告进行更新。
需要注意的是,需求阶段关键性分析的对象始终是软件需求项,而确定软件需求项的软件完整性等级的基础是追踪到系统需求中的软件相关项,因此可追踪性分析的工作至关重要。可追踪性分析在设计阶段、实现阶段的关键性分析活动中的作用也同样重要。
2.3 设计阶段的关键性分析
设计阶段的关键性分析是在软件设计文档评估通过的基础上,依据软件概要设计追踪到系统需求、以及软件详细设计追踪到概要设计的追踪分析结果,列出每一项软件概要设计及其对应的软件需求的软件完整性等级,以及每一项软件详细设计及其对应的概要设计的软件完整性等级,并根据对软件概要设计、详细设计分析的结果,检查所有软件元素的软件完整性等级是否有变化。软件概要设计和软件详细设计是设计阶段的软件元素。当发生软件元素的SIL等级发生提升或下降时,修改并记录各个软件元素的新的SIL等级,同时验证没有不一致或非预期的软件完整性后果被引入,最后对需求阶段生成的软件关键性分析报告进行更新。
2.4 实现阶段的关键性分析
实现阶段的关键性分析是在软件源代码评估通过的基础上,依据软件源代码到详细设计的追踪分析结果,列出每一个软件函数及其对应的软件详细设计的软件完整性等级,并根据对软件源代码分析的结果,检查所有软件函数的软件完整性等级是否有变化。软件函数是实现阶段的软件元素。当软件元素的SIL等级发生提升或下降时,修改并记录各个软件元素的新的SIL等级,同时验证没有不一致或非预期的软件完整性后果被引入,最后对设计阶段生成的软件关键性分析报告进行更新。
3 关键性分析原则
原则1:在指定或验证软件完整性级别的过程中,须检查软件元素是否对其他软件元素有影响,当一个低级别SIL等级的软件元素影响到比它高级别SIL等级的软件元素时,则该低级别SIL等级软件元素的软件完整性等级须得到提升,与它能够影响到的最高级别的软件元素的SIL等级保持一致。且目标系统的软件完整性等级应该与系统内任何独立软件元素的最高软件完整性级别一致。此原则适用于所有概念阶段、需求阶段、设计阶段、实现阶段的关键性分析。
原则2:在验证软件完整性等级的过程中,如出现一条软件需求可以追蹤到多条系统需求时,则需要列出每一条系统需求的SIL等级后,依据软件完整性等级取最高化的原则,该软件需求项的SIL等级将与其所对应的系统需求中软件完整性等级最高的一项系统需求的SIL等级保持一致。此原则可以推广应用到设计阶段、实现阶段的关键性分析。
4 结论
软件关键性分析在核电厂软件与确认活动中的作用至关重要,是其他V&V活动的基础,本文所述的软件关键性分析的具体执行方法目前已在核电厂安全级相关软件项目中得到应用实施,并取得了良好的效果。本方法同样适用于非安全级软件的关键性分析。
参考文献:
[1] IEEE Standard for Software Verification and Validation[Sl.IEEE Std 1012-2004.
【通联编辑:梁书】
收稿日期:2019 -10 -19
作者简介:张敏(1985-),通信作者,女,内蒙古通辽人,工程师,硕士,从事软件验证与确认研究。