支持STPA方法分析UCA的电子表格工具的实现方法与流程

文档序号:17740921发布日期:2019-05-24 20:05阅读:359来源:国知局
支持STPA方法分析UCA的电子表格工具的实现方法与流程

本发明属于复杂系统的安全分析技术领域,具体涉及一种支持stpa方法分析uca的电子表格工具的实现方法。



背景技术:

系统理论事故模型与过程(systems-theoreticaccidentmodelandprocesses,stamp)是由麻省理工大学nancyg.leveson于2004年提出。stamp是一个基于系统理论、在传统事故模型上扩展而形成的一种新的事故因果关系模型。传统的基于事件链的失效模型将组件失效视为事故发生的原因,而stamp模型将系统看成一个整体,系统的安全性由系统中各组件之间相互作用共同决定。

leveson在stamp事故模型的基础上,提出了一种具体的危害分析方法-系统理论过程分析(system-theoreticprocessanalysis,stpa)。stamp强调危害是由不安全控制行为造成的,而stpa着重于如何找出导致危害的不安全控制行为并通过一系列的步骤找出导致系统危险出现的根本原因。当使用stpa方法进行安全性分析的过程中,开始阶段只有系统级的需求和约束。但是通过迭代设计和过程分析,stpa方法可以把这些需求与约束精炼细化并追踪到各个系统组件中。stpa有两个主要步骤:

(1)识别潜在的不安全控制动作。危险状态是由不安全的控制和安全约束的实施造成的,它们发生的原因如下:未提供或者没有遵守安全要求的控制;提供一个不安全的控制;过早或过晚提供控制动作,及错误的时机或顺序;控制动作结束的太快或者作用时间太长。

(2)确定步骤(1)中识别出潜在的危险控制可能会怎样发生。

nancyg.leveson等人在提出stpa方法之后,一直试图在航空系统、导弹防御系统、汽车、医疗设备、防碰撞系统、核电站等各种各样的真实系统上使stpa方法。在所有情况下,stpa方法都发现了工程师使用传统安全性分析方法:故障数分析(faulttreeanalysis,fta)以及失效模式和影响分析(failuremodesandeffectsanalysis,fmea)没有发现的事故场景。所以在现如今随着软件和硬件技术的不断提高,引发了关键系统日益复杂和集成化的问题,潜在的增加了对复杂关键系统的安全性的影响的情况之下,stpa方法在复杂关键系统领域的表现优于传统安全性分析方法。

stpa方法首先确立系统级危险,通过建立控制结构图,然后寻找组件之间的交互控制动作,最后在四个引导词的帮助下分析出不安全控制动作(unsafecontrolactions,uca)。然而通过引导词分析出不安全的控制动作这个过程现如今只能由人工手写或由电脑编辑器帮助完成。没有一个专门为stpa方法分析不安全控制动作的表格控件或者工具来帮助分析人员进行安全性分析,所以我们有必要开发一种支持stpa方法分析不安全控制动作的表格工具。



技术实现要素:

本发明针对现有技术中的不足,提供一种支持stpa方法分析uca的电子表格工具的实现方法。

为实现上述目的,本发明采用以下技术方案:

支持stpa方法分析uca的电子表格工具的实现方法,其特征在于,包括以下步骤:

步骤一、创建eclipsercp工程,实现电子表格工具的平台框架;

步骤二、采用模型-视图-控制器模式构建电子表格系统;

步骤三、以grid部件作为底层模块,并在此基础之上根据stpa方法分析不安全控制动作的特定需求,进一步封装;

步骤四、使用扩展标记语言实现表格信息的存储与解析。

为优化上述技术方案,采取的具体措施还包括:

所述步骤一中,在rcp工程的workbench模块中进行电子表格工具的具体实现。

所述步骤二中,工具的数据模型与工具的视图分离,由中间层控制器连接,具体如下:将所有底层数据模型抽象成单独的父类模型,并实现数据模型接口,将底层数据模型的接口独立出来,交由控制器实现;视图则通过类对象包含的方式将某个视图对应的控制器加入到本对象中,实现视图与控制器的连接。

所述电子表格工具独立成eclipse的插件形式。

所述步骤三中,进一步封装具体包括:电子表格工具初始化时,根据软件现有分辨率大小自动添加四个列宽一样的引导词分析表头;电子表格工具界面中设置添加或删除按钮实现不安全控制动作的内容编辑功能;电子表格工具自动响应界面中所有的按钮事件进行表格内容的重绘工作,自动调整表格中具体单元格的大小;确定了不安全控制动作之后,电子表格工具针对每一个不安全控制动作提供单独的危害连接按钮,实现连接功能。

所述步骤四中,电子表格工具的安全性分析结果通过xml文件的形式进行存储和解析:通过对工具中所有数据模型进行xml对象树结构映射,建立结构完整的数据模型对象,在用户进行存储的过程中,将对象树直接序列化为符合规范的xml文档;用户在加载相应的xml工程文档时,通过反序列化得到完整的数据模型对象以及分析内容的复现。

在数据模型之间建立java对象树,通过java对象树映射为xmlschema的方式,实现stpa所有基本元素模型以及在安全性分析过程中的所有内容的存储功能。

本发明的有益效果是:

1、电子表格基于eclipsercp平台框架,具有很强的移植性以及平台无关性,使其不局限于使用stpa方法做安全性分析的工作人员所使用的环境;

2、电子表格是在grid部件的基础上做二次开发,根据stpa方法的功能需求量身打造,不仅仅能够实现不安全控制动作的编辑,还能够将不安全控制动作与危害相连,使安全性分析人员能够更加清晰的进行安全性分析工作;

3、由于整体的电子表格使用mvc模式,所以我们把数据模型是单独分析出来,并通过java对象树映射为xmlschema的方式,将表格信息以xml格式的文件存储,方便安全性分析人员存储和解析他们的分析结果。

附图说明

图1是创建rcp工程的界面图。

图2是电子表格工具的平台框架图。

图3是工具的模型-视图-控制器模式示意图。

图4是工具分析步骤流程图。

图5是工具数据流图。

图6是航空电子系统顶层架构图。

图7是高度选择模式的变化情况示意图。

图8是模式逻辑控制结构图。

图9是电子表格工具的界面图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。

本发明提出了一种支持stpa方法分析不安全控制动作的电子表格工具实现方式,包括以下步骤:一、创建eclipsercp工程,实现电子表格工具的平台框架。二、采用模型-视图-控制器模式(mvc)构建电子表格系统。三、使用eclipse社区中的nebulaproject所提供的grid部件作为我们表格的底层模块,并在此基础之上根据stpa方法分析不安全控制动作的特定需求,再进行一层封装。四、使用扩展标记语言(extensiblemarkuplanguage,xml)技术实现表格信息的存储与解析。

一、创建eclipsercp工程,实现电子表格工具的平台框架。

eclipse是java的集成开发环境,如果将eclipse中java的ide部分剥去,剩下的内容就是提供基本工作台功能的核心,而这个核心就eclipsercp。如图1所示,在eclipse的工作区中,选择plug-indevelopment目录下的plug-inproject即可建立rcp工程。

在建立rcp工程之后,我们需要了解rcp工程的平台框架。rcp的最底层是platformruntime也就是整个eclipse内核,而我们需要在workbench模块中进行电子表格工具的具体实现。

二、采用模型-视图-控制器模式(mvc)构建电子表格系统。

确立好电子表格工具开发的平台框架之后,借助模型-视图-控制器模式构建本发明的具体内容。模型也可以理解为数据模型,是用户在使用电子表格工具过程中用于存储数据的模型。而视图则是电子表格工具的交互界面,用户通过电子表格工具的交互界面进行stpa方法安全性分析。在此过程中所有的页面操作,如:添加不安全的控制动作,删除不安全的控制动作,连接危害等等属于电子表格工具的业务逻辑范畴,我们通过控制器实现并连接工具视图与数据模型。

由于工具设计的类过多,难以完整的展示所有类之间的关系,故只展示部分核心功能类的层次结构。如图3所示,工具的数据模型部分与工具的视图分离,由中间层控制器连接。实现工具的模型-视图-控制器模式的方式有很多,为了体现本发明电子表格工具在可移植性,以及可拓展性方面的性能,我们特别提出将所有底层数据模型抽象成单独的父类模型,并实现数据模型接口。由于控制器需要连接所有底层的数据模型,而java不支持多重继承,故我们通过面向接口编程的设计思想,将底层数据模型的接口独立出来,交由控制器实现。而视图则通过类对象包含的方式将某个视图对应的控制器加入到本对象中,实现视图与控制器的连接。通过类似的程序设计模式,无论是底层数据模型还是视图的修改,都不需要改变对方,使我们的程序模块独立。又通过类对象引用的方式增强类的功能特性,最终可以实现软件设计思想中高内聚低耦合的目标。

由于整体表格工具耦合较低,且建立在eclipsercp平台基础之上,我们可以将电子表格工具独立成eclipse的插件形式。通过即插即用、即删即无的方式使得安全性分析人员完全可以将本发明的电子表格工具加入到自己的eclipse系统之中,展开安全性分析工作。

三、以grid部件作为底层模块,并在此基础之上根据stpa方法分析不安全控制动作的特定需求,进一步封装。

本发明的电子表格是专门为stpa方法分析不安全的控制动作设计,所以需要了解stpa方法的步骤和流程,对基础的表格功能进行改进和封装。首先,stpa方法会借助“提供导致危害”,“不提供导致危害”,“提供的时间或顺序不对导致危害”以及“结束的太早或太迟导致危害”这四个引导词分别分析控制动作在某种上下文环境中会导致危害,形成不安全的控制动作。其次,每个引导词可能会分析出多个不安全的控制动作,所以我们需要在编辑表格的基础之上添加修改和删除多个不安全控制动作功能。最后,所有的控制动作分析出的结果只有与特定的危害相连才能够确定它是一个明确的不安全控制动作,所以我们需要提供危害连接的功能。

根据以上分析,我们将grid部件的基本功能进行封装,构建出符合stpa方法分析的电子表格工具。在使用电子表格工具进行安全性分析的过程中,首先会进行电子表格工具的初始化工作。在此期间,工具会根据软件现有分辨率大小自动添加四个列宽一样的引导词分析表头。其次,用户分别针对每一个控制动作在不同引导词环境下进行安全性分析。通过电子表格工具界面中添加或删除按钮实现不安全控制动作的内容编辑功能。电子表格工具会自动响应界面中所有的按钮事件进行表格内容的重绘工作,自动调整表格中具体单元格的大小使电子表格工具始终保持良好的界面结构,方便用户的安全性分析工作。最后,确定了不安全控制动作之后我们需要将特定的危害与之相连。电子表格工具会针对每一个不安全控制动作提供单独的危害连接按钮,实现连接功能。工具在使用过程中的分析流程图如图4所示。

四、使用扩展标记语言(extensiblemarkuplanguage,xml)技术实现表格信息的存储与解析。

为了能够方便stpa安全性分析人员进行安全性分析,本工具将安全性分析结果通过xml文件的形式进行存储和解析。通过对工具中所有数据模型进行xml对象树结构映射,我们可以建立结构完整的数据模型对象。在用户进行存储的过程中,将对象树直接序列化为符合规范的xml文档。同样,用户在加载相应的xml工程文档时,通过反序列化我们可以得到完整的数据模型对象以及分析内容的复现。

具体的xmlschema层次结构设计如下:

●@xmlrootelement(namespace=″stpatool″)

■@xmlelement(name=″hazacc″)

@xmlelementwrapper(name=″accidents″)

@xmlelement(name=″accident″)

■@xmlelement(name=″ca″)

@xmlelementwrapper(name=″controlactions″)

@xmlelement(name=″controlaction″)

■@xmlelement(name=″grid″)

@xmlelementwrapper(name=″childrens″)

@xmlelement(name=″children″)

通过这种方式,我们将重心放在如何构建java对象树中,不用担心具体的转换规则。此时,也恰恰证明了使用mvc框架的优越之处,我们已经将工具的所有数据模型独立出来,只需在数据模型之间建立java树即可。通过java对象树映射为xmlschema的方式,实现了stpa所有基本元素模型以及在安全性分析过程中的所有内容的存储功能,具体数据流如图5所示。

接下来,以飞行导引系统为例具体说明本发明的方案。

飞行导引系统(flightguidancesystem,fgs)是负责从各类传感器获取飞行状态、飞行环境的数据,并产生用于飞行控制系统(fcs)的侧滚和俯仰引导值的软件核心功能。如图6所示,我们可以发现,fgs以及fd,ap,at共同组成了fcs系统。而fgs内部存在着模式逻辑以及飞行控制律两个元素。飞行控制律是将飞机当前状态(位置,速度,姿态,高度,...)与目标状态进行比较并产生减少两者之间差异的引导指令的一个连续函数。而模式逻辑是在系统处理激活状态时,一组用于选择合适的飞行控制律的离散算法。

在本实施例中,以飞行导引系统在高度选择模式下模式逻辑的变化为例,借助本发明的电子表格进行安全性分析。

如图7所示,假设从飞行员按下高度选择按钮时开始,飞行控制面板(flightcontrolpanel,fcp)会告诉fgs系统,飞行员选择了高度选择模式。所以,fgs会获取实时的飞行状态,发出不同的高度选择模式(altselmode)控制信号,首先是armed。其次,fgs计算出目标点,并向目标点飞行时,会将altsmode置为capture。最后,当飞机到达目标点时,altsmode会被置为track。值得注意的是,退出active、track或者capture状态的唯一方法是取消模式选定,因为一般不可能直接从track状态到capture状态、或者从active状态到armed状态。

接下来,使用stpa方法对fgs进行安全性分析,首先确定一个系统级危害:h-1:fgs模式逻辑错误。其次建立如图8所示的控制结构图。

通过之前的内容我们可以清晰的知道fgs在于其他子系统交互过程中的控制回路,所以我们根据fgs发出的控制动作分别在“提供”,“不提供”,“提供的时间或者顺序不对”,“结束的太早或者太迟”这四个引导词下识别潜在的不安全控制动作。

在fgs内部的模式逻辑中,我们可以知道高度选择模式情况下飞行控制律会为模式逻辑提供四个控制信号,分为是cleared,armed,capture,track。因此,我们首先分析了四个引导词下不同控制信号对应的不安全控制动作,如表1所示。

表1不安全控制动作统计

不安全控制措施(uca)意味着控制信号在某些条件下会引起危险。因此,我们用自然语言描述上述四种控制信号的uca如下:

uca1.1:当vappr,或者goaround,或者altitudehold被激活时,高度选择模式没有被置为cleared;

uca1.2:当且仅当vappr或者goaround或者altitudehold都不是激活状态时,高度选择模式会从cleared置为armed;

uca1.3:当高度选择模式按钮被按下,fgs的模式逻辑没有把高度选择模式置为armed;

uca1.4:fgs在高度选择模式处于capture,或者track状态下提供了armed信号;

uca1.5:飞行目标点并未计算完成时,armed信号结束;

uca1.6:飞行目标点已经计算完成,但是armed信号并未及时转换成capture信号;

uca1.7:飞行目标点已经计算结束,capture信号没有提供,此时仍处于armed状态;

uca1.8:飞行目标点还未计算完成,capture信号到达;

uca1.9:fgs在高度选择模式处于cleared或者track状态下提供了capture信号;

uca1.10:飞机并未飞行到目标点,capture状态结束;

uca1.11:飞机已经飞到目标点,但是capture信号并未结束,track信号未到达;

uca1.12:飞机已经飞到目标点,但是track信号并未结束,此时仍处于capture状态;

uca1.13:飞机还未飞行到目标点,track信号到达;

uca1.14:fgs在高度选择模式处于cleared或者armed状态下提供了track信号;

uca1.15:飞机在track模式下,未到下一次高度选择之前,track模式结束;

uca1.16:飞机即将进入下一次高度选择,track并未结束并转换成armed模式。

我们发现以这样的形式进行安全性分析,不仅操作繁琐,还不利于信息的保存。所以,本发明提供的电子表格解决的现有问题的缺陷,能够方便安全性分析人员对控制动作进行分析,并且有利于分析结果的保存,如图9所示。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

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