面向SysML的系统安全性分析方法和装置转让专利

申请号 : CN201910714911.3

文献号 : CN110502808B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王金岩谷青范荣灏周海燕姜轶

申请人 : 中国航空无线电电子研究所

摘要 :

本发明提供一种面向SysML的系统安全性分析方法和装置,该方法包括:步骤一:将SysML设计模型转换到AltaRica3.0分析模型;步骤二:调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果;步骤三:在窗口绘制故障行为动态演示图。实现SysML设计模型到AltaRica3.0分析模型的自动转换,并基于AltaRica3.0模型进行安全性分析。

权利要求 :

1.一种面向SysML的系统安全性分析方法,其特征在于,包括:步骤一:将SysML设计模型转换到AltaRica3.0分析模型;

步骤二:调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果;

步骤三:在窗口绘制故障行为动态演示图;

所述将SysML设计模型转换到AltaRica3.0分析模型,包括:将SysML设计模型导出为XML文件格式,确定SysML各模型元素在XML文件中的表达形式;

根据SysML模型与AltaRica3.0模型元素映射表,利用文档对象模型DOM(Document Object Model)解析XML文档,在XML文件中提取模型元素信息,并根据AltaRica语法形成AltaRica3.0模型代码;所述元素映射表根据SysML模型与AltaRica3.0模型的语法与语义确定;

所述调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果,包括:扁平化处理:对AltaRica3.0模型进行扁平化,转换成GTS模型;

生成故障树:基于GTS模型,生成相应的故障树,即将状态/转换模型转换为一组布尔公式;

故障树分析:根据生成的相应的故障树,利用故障树分析软件ArbreAnalyste对故障树文件进行分析,可计算出故障树的最小割集、概率/重要性因子;

单步仿真:执行GTS模型的交互式逐步模拟。

2.根据权利要求1所述的方法,其特征在于,所述在XML文件中提取模型元素信息,包括:利用DOM解析文件,将所有标记构造成一棵树,树有唯一根结点,所有其他元素都是根结点的子结点;

根据结点的属性和属性值即可匹配到相应的模型元素。

3.一种面向SysML的系统安全性分析装置,其特征在于,包括:转换模块,用于将SysML设计模型转换到AltaRica3.0分析模型;

分析模块,用于调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果;

演示模块,用于在窗口绘制故障行为动态演示图;

所述转换模块具体用于:

将SysML设计模型导出为XML文件格式,确定SysML各模型元素在XML文件中的表达形式;

根据SysML模型与AltaRica3.0模型元素映射表,利用文档对象模型DOM(Document Object Model)解析XML文档,在XML文件中提取模型元素信息,并根据AltaRica语法形成AltaRica3.0模型代码;所述元素映射表根据SysML模型与AltaRica3.0模型的语法与语义确定;

所述分析模块具体用于:

扁平化处理:对AltaRica3.0模型进行扁平化,转换成GTS模型;

生成故障树:基于GTS模型,生成相应的故障树,即将状态/转换模型转换为一组布尔公式;

故障树分析:根据生成的相应的故障树,利用故障树分析软件ArbreAnalyste对故障树文件进行分析,可计算出故障树的最小割集、概率/重要性因子;

单步仿真:执行GTS模型的交互式逐步模拟。

4.根据权利要求3所述的装置,其特征在于,所述转换模块具体用于:利用DOM解析文件,将所有标记构造成一棵树,树有唯一根结点,所有其他元素都是根结点的子结点;

根据结点的属性和属性值即可匹配到相应的模型元素。

说明书 :

面向SysML的系统安全性分析方法和装置

技术领域

[0001] 本发明涉及系统安全性分析领域,具体涉及一种面向SysML的系统安全性分析方法。

背景技术

[0002] SysML(Systems Modeling Language)是系统工程的标准建模语言,由对象管理组织(Object Management Group)发布,可集成在众多领域以构建设计良好,层次清晰且可维护的复杂系统。SysML是UML语言(Unified Modeling Language,统一建模语言,一种面向对象的标准建模语言,用于软件系统的可视化建模)在系统工程应用领域的延续和扩展,是用于系统体系结构设计的多用途建模语言,用于对由软硬件、数据和人综合而成的复杂系统的集成体系结构进行可视化的说明、分析、设计及校验。
[0003] SysML是一种支持对系统进行规范、设计、分析和验证的通用图形建模语言。通过分析系统的层次、结构、行为及属性,借助SysML图可表示系统所有相关信息及各组件间的复杂关系。一共有9种SysML图,分别为模块定义图、内部模块图、用例图、活动图、序列图、状态机图、参数图、包图和需求图,对系统的观察视角不同,用来描述的图也会不同。图1为SysML模型图分类。
[0004] SysML具有良好的模型交互能力。可以从某些SysML建模工具中,将模型存储库中捕获的SysML模型导出为XML元数据交换XMI(XML Metadata Interchange)的标准格式,若其他模型同样支持XMI,则可以以此交换模型信息。目前,应用较为广泛且支持这一交互功能的建模工具有Enterprise Architect,Rhapsody等。Enterprise Architect是Sparx Systems公司发布的旗舰产品,它适用性强,并广泛应用于航空航天,工程和教育培训等各行业中。作为一个集成建模平台,它覆盖了系统开发的整个周期,旨在构建强大且可维护的系统。
[0005] AltaRica是由法国工业和学术协会专门为工业系统设计的用于安全性分析的高级形式化建模语言,由可重用组件根据层次结构建立,图形表示与组件相关联,使模型在视觉上非常接近系统的建造过程。AltaRica已经被用于多个大型公司的项目,例如空客、阿莱尼亚航空公司等公司,并且成为近十年来事实上的欧洲工业标准。目前AltaRica最新版本为AltaRica3.0,它是一种用于复杂系统事件驱动建模的高级语言,特别适用于安全分析和性能分析。AltaRica3.0模型在数学上由卫士转换系统GTS(Guarded Transition Systems)描述,GTS建立在面向原型的构造上,以促进建模过程和建模知识的重用。
[0006] 下面对GTS模型元素进行简要说明。
[0007] (1)domain:域是命名常量的集合,可用于定义基本类型之外的枚举数据类型。
[0008] (2)block:块是表示原型的结构,即在模型中具有唯一性的组件。
[0009] (3)class:类是用来定义通用组件的结构,它通过实例化在模型中使用。如果系统的若干子组件是相同的,复制模型既繁琐又容易出错,因此可以用class定义一个通用组件在模型中多次实例化。
[0010] (4)init:用来对状态变量进行初始化。状态变量用于描述系统的状态。这些变量将其值转换为有限域(例如布尔值或符号常量的枚举)或无限域(例如整数,浮点数或符号常量)。
[0011] (5)reset:用来对流变量进行初始化。流变量用于描述进出系统的变量,如能量,液体等。
[0012] (6)event:用于描述系统中可能发生的事件。
[0013] (7)transiton:转换用于描述系统如何演变。在AltaRica 3.0中有两种类型的转换:
[0014] ①简单转换:定义为一个三元组,表示为e:G‑>P,其中:
[0015] ‑e代表转换中的事件
[0016] ‑G是一个布尔型变量,作为转换的条件,也可称之为卫士。
[0017] ‑P是在状态变量上执行的动作,用于计算系统的新状态。仅在卫士满足时,转换e:G‑>P才会被触发。
[0018] ②同步:同步是由成对的模态(modality)和事件(event)组合成的向量,其中模态有两种形式,一种为“!”(表示事件是强制的),另一种为“?”(表示事件是可选的),该向量在扁平化时将变成简单转换的形式。扁平化是指嵌套组件每个层次结构可被展开为一个不包含任何嵌套组件和类实例,只包含简单声明和行为子句的组件。
[0019] (8)assertion:断言用于根据状态变量的值计算流变量的值。
[0020] (9)embeds:用来表示一个组件中内嵌了另一个组件,内嵌组件完全属于外部组件的一部分。
[0021] (10)extends:用于描述组件之间的继承关系。
[0022] XMI是XML元数据交换(XML Metadata Interchange)的简称,由OMG(the Object Management Group)公司发布,它是一种广泛使用的XML交换格式,为SysML模型在各工具之间的转换提供了标准。XMI基于三大工业标准:XML(eXtensibleMarkupLanguage)、MOF(the Meta Object Facility)以及UML(the Unified Modeling Language)。XML是由W3C组织制定的一种通用语言规范,作为标记语言的一种,它支持通过标记描述结构化的数据。XML专注于传输和存储数据,数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法,这让创建不同应用程序可以共享的数据变得更加容易。XMI实质上是一组规则,用于将使用MOF,UML和UML概要文件表达的元模型转换为XML中的一组自定义标记。因此,SysML作为对UML的扩展与重用,同样具有使用XMI的隐式交换标准。

发明内容

[0023] 本发明实施例提供一种面向SysML的系统安全性分析方法和装置,实现SysML设计模型到AltaRica3.0分析模型的自动转换,并基于AltaRica3.0模型进行安全性分析。
[0024] 本发明实施例第一方面提供一种面向SysML的系统安全性分析方法,包括:
[0025] 步骤一:将SysML设计模型转换到AltaRica3.0分析模型;
[0026] 步骤二:调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果;
[0027] 步骤三:在窗口绘制故障行为动态演示图。
[0028] 可选的,所述将SysML设计模型转换到AltaRica3.0分析模型,包括:
[0029] 将SysML设计模型导出为XML文件格式,确定SysML各模型元素在XML文件中的表达形式;
[0030] 根据SysML模型与AltaRica3.0模型元素映射表,利用文档对象模型DOM(Document Object Model)解析XML文档,在XML文件中提取模型元素信息,并根据AltaRica语法形成AltaRica3.0模型代码;所述元素映射表根据SysML模型与AltaRica3.0模型的语法与语义确定。
[0031] 可选的,所述在XML文件中提取模型元素信息,包括:
[0032] 利用DOM解析文件,将所有标记构造成一棵树,树有唯一根结点,所有其他元素都是根结点的子结点;
[0033] 根据结点的属性和属性值即可匹配到相应的模型元素。
[0034] 可选的,所述调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果,包括:
[0035] 扁平化处理:对AltaRica3.0模型进行扁平化,转换成GTS模型;
[0036] 生成故障树:基于GTS模型,生成相应的故障树,即将状态/转换模型转换为一组布尔公式;
[0037] 故障树分析:根据生成的相应的故障树,利用故障树分析软件ArbreAnalyste对故障树文件进行分析,可计算出故障树的最小割集、概率/重要性因子;
[0038] 单步仿真:执行GTS模型的交互式逐步模拟。
[0039] 本发明实施例第二方面提供一种面向SysML的系统安全性分析装置,用于执行上述第一方面中的面向SysML的系统安全性分析方法,具有相同或相似的技术特征和技术效果。
[0040] 本发明实施例提供的面向SysML的系统安全性分析装置,包括:
[0041] 转换模块,用于将SysML设计模型转换到AltaRica3.0分析模型;
[0042] 分析模块,用于调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果;
[0043] 演示模块,用于在窗口绘制故障行为动态演示图。
[0044] 可选的,所述转换模块具体用于:
[0045] 将SysML设计模型导出为XML文件格式,确定SysML各模型元素在XML文件中的表达形式;
[0046] 根据SysML模型与AltaRica3.0模型元素映射表,利用文档对象模型DOM(Document Object Model)解析XML文档,在XML文件中提取模型元素信息,并根据AltaRica语法形成AltaRica3.0模型代码;所述元素映射表根据SysML模型与AltaRica3.0模型的语法与语义确定。
[0047] 可选的,所述转换模块具体用于:
[0048] 利用DOM解析文件,将所有标记构造成一棵树,树有唯一根结点,所有其他元素都是根结点的子结点;
[0049] 根据结点的属性和属性值即可匹配到相应的模型元素。
[0050] 可选的,所述分析模块具体用于:
[0051] 扁平化处理:对AltaRica3.0模型进行扁平化,转换成GTS模型;
[0052] 生成故障树:基于GTS模型,生成相应的故障树,即将状态/转换模型转换为一组布尔公式;
[0053] 故障树分析:根据生成的相应的故障树,利用故障树分析软件ArbreAnalyste对故障树文件进行分析,可计算出故障树的最小割集、概率/重要性因子;
[0054] 单步仿真:执行GTS模型的交互式逐步模拟。
[0055] 本发明提供的面向SysML的系统安全性分析方法和装置,实现SysML设计模型到AltaRica3.0分析模型的自动转换,并基于AltaRica3.0模型进行安全性分析。

附图说明

[0056] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0057] 图1为SysML模型图分类;
[0058] 图2为面向SysML的系统安全性分析方法的流程示意图;
[0059] 图3为故障传播路径示例;
[0060] 图4为泛化的转换;
[0061] 图5为SysML、XML及AltaRica3.0映射规则;
[0062] 图6为模型元素转换算法;
[0063] 图7为组件位置计算算法;
[0064] 图8为SSA4SysML方法展示;
[0065] 图9为单步仿真功能演示;
[0066] 图10为机轮刹车系统故障动态演示。

具体实施方式

[0067] 下面结合附图对本发明作进一步的说明。应当理解,此处所描述的具体实例仅仅用以解释本发明,并不用于限定本发明。
[0068] 本发明主要内容为设计方法实现SysML设计模型到AltaRica3.0分析模型的自动转换,并基于AltaRica3.0模型进行安全性分析。图2为面向SysML的系统安全性分析方法的流程示意图。如图2所示,方法的实现主要分为以下几个步骤:
[0069] 步骤一:将SysML设计模型转换到AltaRica3.0分析模型。
[0070] 为实现两种模型的自动转换,首先,研究SysML模型与AltaRica3.0模型的语法与语义,设计两种语言模型元素的映射关系;其次,将建模工具Enterprise Architect中设计的SysML模型导出为XML文件格式,使得不同应用程序可以共享数据;然后,分析SysML各模型元素在XML文件中的表达形式;最后,根据SysML与AltaRica3.0模型元素映射表,利用文档对象模型DOM(Document Object Model)解析XML文档,提取模型元素信息,并根据AltaRica3.0语法形成AltaRica3.0模型代码。其中,在XML文件中提取模型元素的方法为:利用DOM解析文件,将所有标记构造成一棵树,树有唯一根结点,所有其他元素都是根结点的子结点,根据结点的属性和属性值即可匹配到相应的模型元素。
[0071] 步骤二:调用OpenAltaRica平台的分析引擎对AltaRica3.0模型进行安全性分析并获取分析结果。
[0072] 方法实现的安全性分析过程包括:扁平化处理、生成故障树、故障树分析、单步仿真。在进行任何评估之前,需要对AltaRica3.0模型进行扁平化,转换成GTS模型。基于GTS模型,可以生成相应的故障树,即将状态/转换模型转换为一组布尔公式。根据生成的故障树,利用故障树分析软件ArbreAnalyste对故障树文件进行分析,可计算出故障树的最小割集、概率/重要性因子等。单步仿真能够执行GTS模型的交互式逐步模拟,这种交互式仿真对于调试模型,展示不同事件触发的故障情况非常有用。为实现此安全性分析流程,首先设计算法调用分析引擎并利用多线程技术控制调用的可行性;其次,利用缓冲区技术获取分析结果并进行存储。
[0073] 其中,步骤一和二的算法可通过在Eclipse中安装Window Builder插件,利用Swing用户界面开发工具包设计工具的可视化界面来实现。
[0074] 步骤三:在窗口绘制故障行为动态演示图。
[0075] 为便于对系统事件触发后的故障传播情况进行分析,方法将单步仿真命令与结果输出写入文件中。图3为故障传播路径示例,图3所示为触发AltaRica3.0模型中的某个转换后引发的故障传播。Fireable transition(s)表示可触发的转换;fire xx为用户输入的命令,指定触发第xx号转换,xx为编号,例如,xx可以为图3中的21;Trace表示转换触发后的传播路径,每条传播路径主要包含四类信息:
[0076] ①系统组件名称
[0077] ②组件变量值的变化
[0078] ③变量值变化的来源
[0079] ④变量所处层次
[0080] 由于系统层次丰富,接口众多,传播路径复杂且冗长。纯文本格式的表现形式难以阅读与理解的,分析人员也很难判断事件的发生在何时、如何影响到系统中的某一组件。因此,将传播路径可视化,动态化显得尤为重要,它能清晰的展示系统的层次结构,并呈现物理模型的动态行为,使安全性分析更加高效。
[0081] 首先,对步骤一的转换规则与转换算法做具体描述,此处以SysML模型中的泛化关系为例进行说明。
[0082] SysML中,超类与子类之间的关系定义为泛化,超类拥有一系列子类共有的特征而子类可拥有额外的特征。合理的泛化可有效的提高类的利用率,使系统模型更加简洁明了。模块定义图中,泛化关系由组件之间带空心三角箭头的连线表示,箭头端为超类,箭尾为子类。图4为泛化的转换。如图4a所示,块PumpA与块PumpB为两种都拥有输入流与输出流端口的水泵,因此为重用共有特性,新建Pump模块并设置端口,让A与B分别继承超类Pump。
[0083] AltaRica3.0中通过继承(Inheritance)表述组件之间的这种关系,如图4b所示,AltaRica3.0中用extends关键字对继承关系进行标识。
[0084] 为说明转换模型元素的多样性与完整性,图5为SysML、XML及AltaRica3.0映射规则,图5给出了SysML模型中模块定义图、内部模块图以及状态机图的模型元素在XML文件中的表达及与AltaRica3.0模型元素的映射关系。
[0085] 下面以SysML泛化关系的转换为例说明设计的转换算法,图6为模型元素转换算法,如图6所示,算法主要分为三步:
[0086] 第一步:遍历。对XML文件构造的DOM树进行遍历,寻找所有代表块的结点(存入blockNodesList)和代表泛化关系的结点(存入generalizationNodesList);
[0087] 第二步:匹配。根据图5所示泛化关系在XML文件中的表述,将blockNodesList中结点ID与generalizationNodesList中结点的父结点ID和generalizationNodesList中结点的general属性值分别匹配,若匹配成功,前者即为代表泛化关系中子类的结点,后者为代表泛化关系中超类的结点;
[0088] 第三步:调整格式。将所需的结点信息解析提取出来,按照AltaRica3.0的语法规则对信息进行整理,形成规范的AltaRica3.0代码;
[0089] 接下来,对发明内容中的步骤四故障动态演示算法进行描述。
[0090] 由于显示窗口大小有限,需要将所有需要展示的组件放置到合适位置。因此需要统计某个转换触发后的传播路径中共涉及多少个不重复组件,进而计算出每一层次包含的组件数量。最后根据当前窗口大小、系统所有层次以及每层的组件个数确定每个组件框图放置的位置。
[0091] 图7为组件位置计算算法。CalX函数的参数为某组件框图所处层次的组件数目,根据当前窗口宽度DIMENSION_WIDTH和每个框图的宽度,可计算出使得某一层次所有框图在窗口均匀分布的横坐标。CalY函数的参数为当前组件的层次及系统共有的层数数量,结合窗口高度DIMENSION_HEIGHT及框图高度,可根据公式计算出使框图均匀分布的纵坐标。类numOfLevel记录系统所有层次与该层数组件数目。通过对numOfLevel对象数组进行遍历,即可把每一层次的所有组件框图位置确定下来。最后,用户可通过点击按钮,将所有传播路径在图中逐一标注显示,变量值的变化及来源信息将显示在窗口适当位置。
[0092] 最后,结合机轮刹车系统实例展示方法实现的整体效果。
[0093] 工具界面如图8所示,共分为五部分,分别为:菜单栏,文件导航栏,文件显示区,状态显示区,单步仿真命令输入区。其中菜单栏由文件,工具及帮助三部分组成。通过点击文件‑打开XML文件,会弹出文件选择框,选择需要转换成AltaRica3.0的XML文件。点击工具按钮将出现下拉选择菜单,分别为转换、扁平化、生成故障树、故障树分析和单步仿真。下面结合机轮刹车系统实例对工具的功能进行说明与演示。
[0094] 1)转换
[0095] 选择机轮刹车SysML模型导出的XML文件,选择工具‑转换,实现SysML架构到AltaRica3.0架构的自动转换,转换完成后,文件导航栏将显示转换后所有的AltaRica3.0文件,如图8所示,双击关闭阀ShutoffValve.alt文件,将在文件显示区实现AltaRica3.0代码。
[0096] 2)扁平化
[0097] 对AltaRica3.0模型进行进一步的安全分析前,需要编译模型,将模型扁平化,生成GTS模型文件。在树形文件导航区双击选择某个文件,再点击菜单栏的工具‑扁平化,将跳出弹窗选择GTS模型文件的路径。选择完成后工具将对模型进行编译,编译是否成功的信息将在图8的状态显示栏显示。
[0098] 3)故障树分析
[0099] 本工具以GTS模型文件为基础,执行生成故障树功能生成机轮刹车系统的故障树文件。故障树分析法广泛应用于安全性分析,通过由逻辑符号绘制出的一个逐渐展开成树状的分枝图,来分析顶事件发生的概率和原因。生成故障树文件后,再通过调用故障树分析软件ArbreAnalyste,绘制出机轮刹车系统的故障树图。
[0100] 4)单步仿真
[0101] 在图8单步仿真命令输入区输入命令“print tr”可显示机轮刹车系统所有可被触发的转换,如图9所示。若输入“fire 22”,表示触发关闭阀的关闭转换,此时仿真器会将系统相关组件属性值的变化输出,形成传播路径。
[0102] 5)故障动态演示
[0103] 单步仿真完成后,仿真结果将输入至文件中保存,以便对结果进行分析和演示。点击工具的故障动态演示按钮,将会根据用户之前的仿真结果,提醒用户对哪一个fire进行仿真。选择后,会弹出一个新的窗口。新窗口分为三部分:左上方的开始和单步执行按钮,中间的组件框图显示区,下方的信息显示区,如图10所示。