当前位置:文档之家› 软件可靠性与安全性分析、评估方法及建议

软件可靠性与安全性分析、评估方法及建议

软件可靠性与安全性分析、评估方法及建议
一、背景介绍
随着产品技术的发展及数字化技术的应用,软件在产品中所占的比重越来越大,其规模和复杂性急剧增加,对产品的可靠性、安全性工作提出了严峻的考验。

为保证软件可靠性,需要对软件进行可靠性测试和评估工作,从而尽早发现并改进软件中影响产品质量的缺陷,有效提高软件可靠性。

为保障软件安全性,需要对软件进行安全性分析与验证工作。

目前,随着GJB Z 161-2012 军用软件可靠性评估指南、GJB 900A-2012 装备安全性工作通用要求、GJB 102A-2012军用软件安全性设计指南、ARP4761与民用机载系统安全性评估流程及DO-178B/C机载系统合格审定过程中的软件考虑等标准的颁布实施,以及空军航定〔2012〕4号《航空军用软件定型测评进入条件评估准则》中明确提出关键软件在进入定型测评前必须具备《软件失效风险分析报告》;空军装型〔2010〕131号《空军重点型号软件工程化要求》中也明确提出在软件研制阶段中,必须要开展软件安全性分析与验证工作等规定。

美国在70年代研制F/A-18飞机期间首次引入软件安全性技术。

在研制F-22和F-35飞机时,则明确要求按照MIL-STD-882和DO-178B开展机载软件安全性工作。

在民机领域,波音和空客均严格按照ARP-4761及DO-178B/C标准开展了软件安全性分析与验证,并作为适航审定的核心要素。

在高铁、核工业、汽车、医疗等领域,同样要求按照IEC 61508、EN50128、IEC60880、IEC 61513、ISO 14971等标准,对构建高安全性软件做出严格规定。

从上述可以看出,当前世界各国对于软件产品的可靠性评估、安全性分析验
证工作都提高了一个新的高度,都提出了具体的要求。

二、何为软件可靠性评估
根据国家标准GB11457,软件可靠性评估或软件可靠性评价是指“确定现有系统或系统部件可靠性所达到的水平的过程”。

在国际标准IEEE Std.1633,软件可靠性评估定义为“统计学技术在系统测试和运行期间收集的可观测失效数据上的应用,用于评价软件的可靠性”。

如下图所示,根据软件产品研发测试、运行过程中收集的可观测失效数据,利用可靠性评估手段、工具,拟合出软件产品的可靠性模型曲线,然后分析当前的软件可靠性强度水平,并与要求的可靠性水平相比较,一方面可以了解当前的软件可靠性水平、预测还存在多少潜在的可靠性错误;另一方面,也可以进行软件测试规划,确定还需要多长的测试或者运行时间,才能达到预期的可靠性水平。

图1 软件可靠性评估
三、软件可靠性评估及安全性分析有哪些工具和方法?
NASA委托美国一个研究机构开发了专门用于NASA软件可靠性分析评估的工具,该工具提供了GM模型、JM模型、LV模型、Musa模型等用于可靠性评估的模型。

该工具一直沿用到现在。

图2 NASA软件可靠性评估系统
国内的广州宝顺研发了软件可靠性与安全性分析系统PoSREL,这是一个模型驱动的软件可靠性与安全性分析系统,可以用于软件产品的可靠性分析、可靠性增长评估、安全性分析与验证、可靠性测试以及基于模型的故障分析等工作。

该系统提供符合GJB900A、GJB 102A、GJB438B、ARP-4761及DO-178B/C等标准要求的集成化、完全模型驱动的软件安全性、可靠性分析环境,具备软件产品各阶段的可靠性分析、评估能力,具备软件产品的可靠性增长评估能力,具备基于模型开展FMEA等故障识别与分析能力。

同时,该系统提供丰富的软件通用失效模式数据库、危险数据库等。

软件组成:
该软件包含软件需求潜在缺陷分析模块、失效模式及影响分析模块、软件危
险分析模块、软件可靠性评估模块、趋势分析模块、预测及精度分析模块,以及相应的软件通用失效模式数据库、危险数据库等基础数据库。

软件主要功能:
(1)可建立软件产品模型,构建软件各功能模块、构件之间的输入输出、故障传递关系、逻辑关系、状态关系等特征模型;
(2)可对软件需求模型中潜在的安全缺陷进行挖掘分析;
(3)可实现软件不同层次、不同类型故障的影响分析,包括独立功能失效及影响分析、组合功能失效及影响分析、状态失效分析、路径迁移分析、基于分析规则的自动检查分析等,可实现单一或者组合失效的仿真。

(4)可实现软件可靠性评估,实现软件测试数据的分布拟合及分析,输出软件失效数据趋势分析结果、失效强度、给定时间时的可靠度、达到可靠度目标值的运行时间、可靠度曲线、失效强度曲线等。

(5)支持Geometric Model (GEO), Jelinski-Moranda (JM), Littlewood-Verralllinear (LVL), Musa Basic (MB), Musa Logarithmic (ML)等软件可靠性评估模型,支持NHPP软件可靠性增长模型评估,适用的分布包括Weibull (WB), S-shaped(S), Log-logistic (LogL)等。

(6)可以进行趋势及预测精度分析,包括支持拉普拉斯趋势分析、Y图、U 图、似然比(PLR)、相对误差分析等等多种趋势及精度分析手段。

(7)可自动生成符合GJB/Z 1391要求的软件安全性可靠性分析报告以及软件失效风险分析报告,自动生成软件的失效事故场景及分析结果。

(8)通用失效模式数据库包含外部输入与输出接口故障模式数据、功能处理故障模式数据等,危险数据库包括物理特性、人为因素、环境特性等类别的危
险数据。

示例:
飞机系统的飞行控制系统的软件测试过程中,收集了相关的测试数据,使用PoSREL工具进行可靠性评估、安全性分析。

分析结果如下图所示。

图3 拟合分析
图4 失效强度分析
图5 故障间隔时间预测
图6 趋势分析(Laplace检验)
图7 U图
图8 似然比PLR
图9 分析结果汇总
图10 通用失效库
图11 软件安全性建模
图12 软件风险评估PRA
图13 软件故障树分析
图14 软件FMEA
四、结束语
随着民用、军用产品对软件可靠性、安全性的认识重视,越来越多的软件产品逐步开展定量的安全性分析、可靠性评估工作。

同时,我国新能源汽车、无人驾驶汽车的迅猛发展,也对软件的可靠性、安全性提出了严峻考验,如何做好软
件可靠性分析、评估工作,如何做好软件安全性验证工作,是产品研发单位迫切需要解决的问题。

传统的盲目、单纯依靠测试进行软件可靠性分析、安全性验证的方式,已经不能满足当前产品研发的需求,迫切需要转变产品的研发及管理模式。

相关主题