一种卫星安全关键软件系统性验证方法与流程

文档序号:16502921发布日期:2019-01-05 08:52阅读:368来源:国知局
一种卫星安全关键软件系统性验证方法与流程

本发明涉及卫星安全关键软件的验证领域,特别是一种卫星安全关键软件系统性验证方法。



背景技术:

卫星安全关键软件是卫星星务管理的核心,集成了遥测遥控、热控、能源、内务、fdir管理等功能,通过总线与多台综合处理单元进行数据交互,发送遥控指令并接收遥测信息,完成对卫星的控制管理工作。

伴随着软件执行功能比例持续上升,软件代码规模不断增长,软件自身结构复杂度提高且软硬件耦合程度增强,使得与软件相关的安全性问题凸显。

因此,明确安全关键软件安全性问题的薄弱环节和问题机理,聚焦软件研制过程中对于安全性的深层次需求,寻求合理的验证方法,成为迫切需要,而如何分析验证,也成为软件安全性工作的难点。

传统的软件安全性处理技术,采用类似于硬件失效问题的视角看待软件问题,认为导致软件相关的问题中软件自身不可靠因素占据很大比重,仅仅局限于软件自身功能范围内对软件进行验证,其缺陷在于:忽略了许多软件相关的事故其原因是多维的、系统的、动态的这个关键问题,未将软件功能自身外的其他系统影响因素纳入进行验证,验证缺乏系统性,导致难以挖掘潜在的、系统性的软件安全性问题。



技术实现要素:

本发明解决的技术问题是:克服现有技术的不足,提供了一种卫星安全关键软件系统性验证方法,从系统的角度对影响软件安全性的多维危险要素进行解析和建模,给出安全关键软件验证的方法和处理步骤。

本发明的技术解决方案是:一种卫星安全关键软件系统性验证方法,包括如下步骤:

(1)构建安全关键软件多维影响要素模型;

(2)根据安全关键软件多维影响要素模型构建安全关键软件需求约束集;

(3)对安全关键软件进行验证。

所述的构建安全关键软件多维影响要素模型的方法为:

根据影响安全关键软件系统性的要素建立多维影响要素模型为:

f=<pe,hw,en,sw,ot>

其中,f为安全关键软件系统性多维影响要素模型;sw为安全关键软件的算法实现;hw为软硬交互要素;pe为人机交互要素;en为运行环境要素;ot为其他约束要素。

所述的算法实现包括处理逻辑实现不符合需求规定、初始化错误、数据处理错误、中断设计不合理、逻辑分支处理缺陷,其中,数据处理错误包括数据有效性判断、数组越界、精度,中断设计不合理包括中断初始化及清零时机、堆栈溢出、资源冲突;软硬交互要素包括传感器故障、处理器平台故障、通道故障和传输干扰、存储芯片异常、硬件处理超时,其中,通道故障和传输干扰包括1553b通信异常、信号延迟;人机交互要素包括未对导致危险的不合理操作动作进行规避、未能提供警示信息;运行环境要素包括空间强电磁干扰、深空射线辐射、高能粒子干扰;其他约束要素包括软件运行模式切换。

所述的根据安全关键软件多维影响要素模型构建安全关键软件需求约束集的方法为:

(1)建立安全关键软件的控制过程处理模型;

(2)根据安全关键软件的控制过程处理模型建立非安全关键控制过程集合,其中,建立非安全关键控制过程集合的约束包括未能提供所需的安全性措施、产生不安全的错误输出、所需的控制措施提供的时机与预期不符;

(3)根据非安全关键控制过程集合建立安全关键软件安全约束集。

根据权利要求4所述的一种卫星安全关键软件系统性验证方法,所述的安全关键软件的控制过程处理模型为闭环,运行于特定硬件和运行环境中的安全关键软件根据控制指令、外部采集器提供的数据、动作执行机构提供的控制变量反馈为处理输入,通过算法处理形成处理输出和显示信息,并反馈至动作执行机构和外部。

一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现如权利要求1-权利要求5任一所述方法的步骤。

本发明与现有技术相比的优点在于:

(1)本发明是从系统的角度出发,围绕软件自身逻辑及其运行环境、交互特性等各个方面,将系统中影响安全关键软件的要素抽象为涵盖软件自身算法及实现、软硬交互、人机交互、运行环境以及其他约束要素这五个元素的结构化模型,系统性地剖析了软件安全性问题机理,提炼了安全关键软件安全性影响要素,使之成为安全关键软件验证的基础;

(2)本发明结合安全关键软件的运行处理过程,通过抽象安全关键软件的控制过程处理模型,提炼形成了软件系统层面的安全约束集,并在此基础上设计了安全关键软件的验证集,实现了建立于软件处理过程模型上的安全性影响要素覆盖分析,以及从安全关键软件安全性影响要素到安全关键软件的验证集的无缝映射。在随后基于安全性验证集的测试验证环节表明,本发明可以有效识别出安全关键软件潜在系统性问题,与传统的测试验证方法相比,所验证的系统性问题数量提高大概20%以上。

附图说明

图1为本发明的基于系统多维要素的安全关键软件验证流程图;

图2为本发明的安全关键软件多维危险因素模型图;

图3为本发明的安全关键软件控制过程处理模型图

具体实施方式

本发明的解决方案是:1)围绕软件自身逻辑及其运行环境、交互特性等方面,进行安全关键软件多维影响要素模型构建;2)在系统的需求阶段,纳入对安全关键软件的安全性需求考虑,并建立安全关键软件需求约束集;3)基于安全关键软件需求约束集,设计安全关键软件验证集并进行基于安全验证集的测试验证。

下面结合附图对本发明的具体实施方式进行进一步的详细描述。

图1为本发明基于系统多维要素的安全关键软件验证方法的验证流程图,整个验证流程分为三大部分,分别是:

step1:安全关键软件多维影响要素模型构建;

step2:安全关键软件需求约束集的构建,该步骤又细分为3个子步骤,分别是:

step2-1:抽象安全关键软件的控制过程处理模型;

step2-2:建立安全关键控制过程集合;

step2-3:建立软件系统层面安全约束集;

step3:进行安全关键软件的验证,该步骤又细分为2个子步骤,分别是:

step3-1:进行安全关键软件验证集的设计;

step3-2:进行基于安全性验证集的测试验证。

以下对安全关键软件验证中所涉及到的上述3个步骤过程分别予以描述。

1、step1:安全关键软件多维影响要素模型构建

如图2所示,通过对安全关键软件研制工作的梳理,本发明从系统的角度出发,围绕软件自身逻辑及其运行环境、交互特性等方面,在此基础上对多维安全影响要素进行系统建模,将影响安全关键软件系统性的要素抽象为涵盖以下五元素的结构化模型:

f=<pe,hw,en,sw,ot>

式中各符号的含义解释如下:

f—安全关键软件系统性影响要素结构化模型;

sw—安全关键软件自身算法实现;

hw—软硬交互要素;

pe—人机交互要素;

en—运行环境要素;

ot—其他约束要素。

上述五类要素与安全关键软件问题的内在关联关系解析如下:

sw软件自身算法及实现要素主要包括:处理逻辑实现不符合需求规定、初始化错误、数据处理错误(数据有效性判断、数组越界、精度等)、中断设计不合理(中断初始化及清零时机、堆栈溢出、资源冲突等)、逻辑分支处理缺陷(存在未处理逻辑分支)等;

hw软硬交互要素主要包括:传感器故障(如数据采集异常)、处理器平台故障(如切机、掉电等)、通道故障和传输干扰(如1553b通信异常、信号延迟等)、存储芯片异常、硬件处理超时(如执行动作机构未在规定的时间内响应外部指令或处理关键参数等)等要素;

pe人机交互要素主要体现在软件设计时未对可能导致危险的不合理操作动作进行规避,或未能及时提供警示信息等;

en运行环境要素主要包括:空间强电磁干扰、深空射线辐射、高能粒子干扰等;

ot其他约束要素主要指:软件运行模式切换、运行状态更改过程中需要考虑的约束要素。

基于上述模型,当软件运行在某种特定运行状态oti下,存在某种特定的软硬交互hwi及人机交互pei,并且受某种运行环境eni的影响,同时由于软件自身实现逻辑问题swi等诸多要素共同作用影响时(这些要素中某些要素可能为空),可能导致产生某种特定的危险事件,则fi=<pei,hwi,eni,swi,oti>成为影响安全关键软件的一个要素结构。

2、step2:安全关键软件需求约束集的构建

(1)step2-1:抽象安全关键软件的控制过程处理模型

在“step2:安全关键软件需求约束集的构建”阶段,首先要进行的步骤是抽象安全关键软件的控制过程处理模型。

如图3所示,本发明对安全关键软件参与的系统控制处理过程进行抽象,形成闭环的控制过程处理模型。在该模型中,运行于特定硬件和运行环境中的软件模块以操作人员的控制指令、外部采集器提供的数据以及动作执行机构提供的控制变量反馈为处理输入,通过算法处理,形成处理输出和显示信息,分别反馈至动作执行机构和操作人员。

(2)step2-2:建立安全关键控制过程集合

针对step2-1中描述的安全关键软件的控制过程处理模型,建立其中所有的安全关键控制过程集合(以ca表示,其中,安全关键控制过程为影响安全关键软件正常工作的控制过程),进而提炼出与ca相对应的所有可能导致问题的非安全控制集(以uca表示),主要根据以下几条原则进行提炼:

■未能提供所需的安全性措施

■产生了不安全的错误输出

■所需的控制措施提供的时机与预期不符(太早或太晚)

(3)step2-3:建立软件系统层面安全约束集

围绕step2-2中所提炼的uca集中每一个非安全的控制过程,梳理得出其所对应的fi,即与当前控制过程所对应的软件自身实现逻辑问题swi、软硬交互hwi、人机交互pei、运行环境eni、某种特定运行状态oti,实现每一个非安全的控制过程与fi之间的映射。遍历完uca集中的所有非安全的控制过程后,即可得到所有的fi,所有的fi组合在一起,形成了软件系统层面的安全约束集constraints-sets,表示为constraints-sets={f1,f2……fn}。

3、step3:进行安全关键软件的验证

(1)step3-1:进行安全关键软件验证集的设计

在构建完成安全关键软件需求约束集后,需要依据安全约束集对安全关键软件进行验证。为此,提出了基于约束集的安全关键软件验证集设计方法如下:

遍历constraints-sets中的每个fi,对每个fi进行测试模型转换,生成与之一一对应的验证用例tci。该测试模型转换基于我们特定的测试工具实现,对于每个fi中的pei,hwi,eni,swi,oti,将其转换为相应的测试条件、测试数据、测试指令以及测试执行动作的组合,从而形成相应的验证用例tci,所有的tci组合在一起,构成安全约束集constraints-sets相对应的软件安全性验证集tc-sets。

(2)step3-2:进行基于安全性验证集的测试验证

在完成对安全约束集constraints-sets、及与之相对应的软件安全性验证集tc-sets的建立后,在特定的测试环境中,我们以tc-sets中的每个验证用例tci作为验证输入,自动执行,并判断验证结果是否和预期结果相符。若出现与预期结果不符的现象,将当前所采用的tci和验证结果反馈至软件需求提出方和开发人员,进行相应的修正完善。

至此,本发明描述的基于系统多维要素的安全关键软件验证方法中各个步骤全部说明完毕。

本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1