CN108089861B - 一种从SysML模型转换到AltaRica模型的转换方法 - Google Patents
一种从SysML模型转换到AltaRica模型的转换方法 Download PDFInfo
- Publication number
- CN108089861B CN108089861B CN201711445572.0A CN201711445572A CN108089861B CN 108089861 B CN108089861 B CN 108089861B CN 201711445572 A CN201711445572 A CN 201711445572A CN 108089861 B CN108089861 B CN 108089861B
- Authority
- CN
- China
- Prior art keywords
- model
- altarica
- converting
- diagram
- sysml
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000006243 chemical reaction Methods 0.000 title abstract description 19
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 238000010586 diagram Methods 0.000 claims description 96
- 230000008569 process Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims 1
- 238000000844 transformation Methods 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000011156 evaluation Methods 0.000 abstract description 2
- 230000007704 transition Effects 0.000 description 24
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 22
- 230000006870 function Effects 0.000 description 14
- 230000014509 gene expression Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 201000003231 brachydactyly type D Diseases 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000012407 engineering method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007737 ion beam deposition Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000008400 supply water Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种从SysML模型转换到AltaRica模型的转换方法,并包括如下步骤:一、基于待评估系统构建SysML模型;二、根据映射规则,将所述SysML模型中的SysML模型元素转换为AltaRica模型元素;三、基于步骤二中形成的AltaRica模型元素,为所述待评估系统构建AltaRica模型。本发明的有益效果是:所示从SysML模型转换到AltaRica模型的转换方法将SysML模型映射到AltaRica模型,通过AltaRica支持平台所支持的一套有效的评估工具,如故障树等对复杂系统的故障行为进行分析,能有效提高系统的安全性。
Description
技术领域
本发明属于系统安全可靠性技术领域,具体为一种从SysML模型转换到AltaRica模型的转换方法。
背景技术
近十年来,计算机安全关键系统的复杂性大大提升,系统越来越大,涉及到的技术也越来越多,对此,开发人员对这些新系统的可靠性、安全性、正确性提出了精确的要求,为了管理他们的开发,还需要用特定的建模方法和语言去验证他们的设计。IEC 61508(1998-2005)等标准提出了开发安全关键系统的一系列任务,尽管如此却没有提供有效的分析方法,因此需要把以往的经典方法联系起来以支持关键系统设计。系统工程(SE)是为了满足不同行业的需求以安排技术来开发解决方案,这些需求包括可靠性和安全性方面,基于模型的系统工程(MBSE)现在被认为是设计复杂系统的最佳方法,它支持的方法如面向对象的系统工程方法(OOSEM)对SysML有很好的适应性。
SysML(Systems Modeling Language)是开发人员需要的一种标准建模语言,同时也是一种通用的图形化建模语言,用于描述、分析、设计和验证那些包含了硬件、软件、设备、人员、信息的复杂系统。SysML复用了UML2.0的相对成熟的语义和表示法,并且在系统工程领域扩展和延续了UML2.0,消除了不同方法在表达式和术语上的差异,避免了符号表示和理解上不必要的混乱,是一种通用的功能强大的标准建模语言。
但是为了实现SE目标,直到系统设计的验证,必须进行可靠性分析,因此需要将经典的可靠性研究技术集成到SE框架中。
发明内容
本发明的目的在于针对现有技术的缺陷或问题,提供一种从SysML模型转换到AltaRica模型的转换方法,其能够在SysML模型中找到构建AltaRica模型的预期元素,并构建上述AltaRica模型。
本发明的技术方案如下:一种从SysML模型转换到AltaRica模型的转换方法包括如下步骤:一、基于待评估系统构建SysML模型;二、根据映射规则,将所述SysML模型中的SysML模型元素转换为AltaRica模型元素;三、基于步骤二中形成的AltaRica模型元素,为所述待评估系统构建AltaRica模型。
优选地,在步骤二中,获取所述SysML模型的模块定义图、内部模块图和状态机图,并基于所述模块定义图、所述内部模块图和所述状态机图转换获得所述AltaRica模型元素。
优选地,将所述模块定义图中创建的block转化为AltaRica模型中class的申明,并具体包括如下步骤:将所述模块定义图中的值属性转化为所述AltaRica模型中的状态变量;将所述模块定义图中的约束属性转化为所述AltaRica模型中的assertion保留字;将所述模块定义图中的端口转化为所述AltaRica模型中的流变量;将所述模块定义图中的操作转化为所述AltaRica模型中的event关键字;将所述模块定义图中的关联关系和引用转化为所述AltaRica模型中的调用函数;将所述模块定义图中的泛化关系转化为所述AltaRica模型中的extends保留字。
优选地,获取所述模块定义图中的ValueType关键字,并将所述ValueType关键字转化为AltaRica模型的domain关键字。
优选地,将所述内部模块图中的SysML模型元素转化为AltaRica模型元素具体包括如下步骤:将所述内部模型图中的组成部分属性转化为所述AltaRica模型中block和block之间的组合关系;将所述内部模型图中的引用属性转化为所述AltaRica模型中的embeds保留字;将所述内部模型图中的连接器转化为所述AltaRica模型中的流变量的连接。
优选地,将所述状态机图中的SysML模型元素转化为AltaRica模型的transition。
优选地,判断所述状态机图中是否存在同步事件,如果是,则在步骤三中,构建AltaRica模型的过程中添加同步事件代码。
本发明提供的技术方案具有如下有益效果:
所述从SysML模型转换到AltaRica模型的转换方法中,将SysML模型映射到AltaRica模型,通过AltaRica支持平台所支持的一套有效的评估工具,如故障树等对复杂系统的故障行为进行分析,能有效提高系统的安全性;
而且,SysML建模语言是广泛用于复杂系统的建模工具,主要是对系统的结构以及功能方面进行建模,在功能失效方面有所欠缺,但功能失效在安全性分析方面是必不可少的,而AltaRica建模语言其平台支持生成故障树和单步仿真,生成的故障树可用于分析最小割集及失效的概率等,单步仿真也可以判断故障的传播路径,这就大大提高了系统的安全性与可靠性。
附图说明
图1为从SysML模型转换到AltaRica模型的转换方法的流程框图。
图2为UML 2.0与SysML的关系图;
图3为SysML图分类示意图;
图4为冷凝系统的基本结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,一种从SysML模型转换到AltaRica模型的转换方法,包括以下步骤:
S1、基于待评估系统构建SysML模型。
具体地,SysML是多种图形建模语言中的一种,是由对象管理组织(ObjectManagement Group,Inc.OMG)发布。系统工程发展过程中一直缺乏一种规范的“标准”建模语言,这严重限制了系统工程师和其他学科人员之间关于系统需求和设计的有效协作与交流,影响了系统工程的质量和效率。为了满足系统工程领域的建模需求,国际系统工程学会和对象管理组织(OMG)在UML2.0的基础上进行了相应的重用和扩展,提出一种新的建模语言SysML作为系统工程的标准建模语言。图2显示了UML2.0和SysML之间的关系,SysML和UML之间是存在交集的,例如用例图,同时SysML也有基于UML扩展而来的图,例如活动图,另外还有一部分图是SysML所特有的,这些图与UML之间是没有关系的,例如需求图。为响应OMG发布的将UML扩展到系统工程领域的的提案要求,SysML的开发宗旨是以提高系统体系结构设计工具间的信息交互能力,建立统一的系统设计架构,实现硬件与软件等异构组件系统的有效集成为目的,努力提高系统间的互操作性水平。
SysML建模语言中的图模型如图3所示,可以概括为“3类9种”。SysML可以分为行为图、需求图和结构图。三类图又具体化为共计9种模型图。同时,SysML模型图与UML图存在交互;其中,序列图、状态机图、用例图和包图是SysML和UML共有的图,活动图、模块定义图和内部模块图是SysML基于UML扩展而来,还有一部分是SysML语言所特有的图,包括需求图和参数图。
在本实施例中,在所述从SysML模型转换到AltaRica模型的转换方法中,选取三种图:模块定义图(BDD)、内部模块图(IBD)、及状态机图(stm)。
其中,模块定义图是系统建模过程中最为常见的图之一,它是一种结构图,主要对系统的结构组成以及组成元素间的关系进行描述,从而说明系统的层次以及系统/组件的分类,它类似于UML中的类图;内部模块图描述了系统的内部结构,表达了系统的组成部分必须如何组合才能构建有效的系统,即其通过组件(Parts)、端口、连接器来用于描述系统模块的内部结构,对BDD中表达的内容做补充,并对抽象类做相应的实例化;而状态机图是一种行为图,关注的是系统中的结构如何根据随时间发生的事件改变状态,即可以在状态机图上显示各种各样的状态,并且指定特定类型的事件,从而在运行的系统中触发那些状态之间的转换。
S2、根据映射规则,将所述SysML模型中的SysML模型元素转换为AltaRica模型元素。
其中,AltaRica模型大体分为变量定义、事件定义、转换(transition)、断言(assertion)四个部分。在AltaRica模型中,主要有以下关键字:
(1)domain:定义数据类型或者故障类型的域;
(2)class:表示模型的一个组件抽象出来的类;
(3)init:给状态变量赋初值;
(4)reset:给流变量赋初值;
(5)event:用来定义可以被触发的事件,并以此来触发状态转换;
(6)transition:这部分用来描述系统的状态转换,即transition是由三元组<e,G,P>构成,表示为e:G->P,其中e代表事件,G代表卫士,P代表任务列表,当满足卫士条件后transition才会被激活。
(7)assertion:用来建立一个状态变量和一个流变量的连接,更确切的说,它声明一组输出流变量与输入流变量、状态变量之间关系的表达式。
(8)embeds:用来表示一个组件中内嵌了另一个组件,内嵌组件完全属于外部组件的一部分,用于class或者block的内嵌;
(9)extends:用来表示一个组件中内嵌了另一个组件,内嵌组件完全属于外部组件的一部分,仅用于class的内嵌。
具体的,在步骤二中,获取所述SysML模型的模块定义图、内部模块图和状态机图,并基于所述模块定义图、所述内部模块图和所述状态机图转换获得所述AltaRica模型元素:
一、将所述模块定义图(BDD)转换获得所述AltaRica模型元素。
block是BDD的基本单元,且是用于描述系统的模块化单元;每个block定义了系统或者系统外部环境中任意感兴趣的实体的一组功能,简言之block代表的是实体的类型,定义了block的特征和block之间的关系。block是通过带有《block》标识的矩形框表示,后面是名称分隔框中的名称。通常block还会显示另外的可选分隔框,用来标识模块的其他组成,特性有两种:结构特性(属性)和行为特性。其中,所述模块定义图中可以选择显示的分隔框包括:组成部分(part)、引用(reference)、值(value)、约束(constraint)、端口(port)、操作(operation)等。
class在AltaRica模型中表示模型的一个组件抽象出来的类,用于定义一个通用组件的结构体,通过实例化在模型中使用。
在本实施例中,BDD中创建的block可以转化为AltaRica模型中class的申明,block是BDD结构中的基本单元,它能表示class的基本结构,即class中申明的状态变量、流变量、事件都能在block中得以体现。模块定义图的转化主要从结构属性、行为特性、以及模块定义图之间的关系进行分析。
具体地,将所述模块定义图中创建的block转化为AltaRica模型中class的申明包括如下步骤:
将所述模块定义图中的值属性转化为所述AltaRica模型中的状态变量;
将所述模块定义图中的约束属性转化为所述AltaRica模型中的assertion保留字;
将所述模块定义图中的端口转化为所述AltaRica模型中的流变量;
将所述模块定义图中的操作转化为所述AltaRica模型中的event关键字;
将所述模块定义图中的关联关系和引用转化为所述AltaRica模型中的调用函数;
将所述模块定义图中的泛化关系转化为所述AltaRica模型中的extends保留字。
需要说明的是,在将所述模块定义图中的值属性转化为所述AltaRica模型中的状态变量的步骤中,SysML模型中的规定的值属性(value)命名规则为:
<value name>:<type>[<multiplicity>]=<default value>,
值属性的类型type是在SysML图中某处定义的“value type”,用户可以灵活定义值类型。值属性可以代表一个数字、一个布尔值、或者一个字符串,在AltaRica3.0中存在状态变量,它是class或者block一个的属性,所以从直观语义上值属性可以转化为AltaRica的状态变量,映射过程中名称和类型不变。
在将所述模块定义图中的约束属性转化为所述AltaRica模型中的assertion保留字的步骤中,SysML模型规定的约束属性的命名规则为:
<constraint name>:<type>;
其中,约束名称为用户自定义,约束类型是用户在SysML中的某库定义的约束模块的名称。约束属性一般代表一种数学表达式(一个等式或者不等式),它会使用一系列值属性,创建它是为了封装可重用的约束表达式。在转化过程中既可以使用约束属性的直观语义用以封装表达式,也可以使用间接语义,用以转化AltaRica模型中的assertion保留字以约束assertion中的表达式。在AltaRica模型中assertion有两种申明方式,一种申明一组输出流变量与输入流变量、状态变量之间关系的表达式,第二种就是申明一组输出流变量和输入流变量之间关系的表达式。
在将所述模块定义图中的端口转化为所述AltaRica模型中的流变量的步骤中,SysML模型中端口是代表block边缘不同交互点的一种属性,通过端口可以和外部block交互,或者是提供服务、请求服务,或者是交换事件、能量和数据,而且,端口可以指定一个交互点,关注能够流入、流出模块的事件、能量或者数据的类型。
在本实施例中,端口可以转化为AltaRica模型中的流变量,即block中的port端口可以转化为class中的流变量申明,流变量的功能也是监听流入流出状态变量的事件、能量或者数据的类型,但是在AltaRica模型语言中,流变量的申明只需要一个变量即可,在SysML模型中需要端口和流定义两个模型元素,这两个模型元素通过《allocate》关联起来。
在将所述模块定义图中的操作转化为所述AltaRica模型中的event关键字的步骤中,SysML模型提供了操作(operation)的行为特性,通过“operations”进行标识,其格式为:
<operation name>(<parameter list>):<return type>[<multiplicity>];
操作是一种调用事件触发的行为,可以具有返回值和输入及输出参数。AltaRica模型中存在event关键字,用来定义可以被触发的事件,并以此来触发状态转换,所以操作(operation)在语义上可以转化为AltaRica模型的event保留字。但这仅是申明了事件,事件如何发生以触发状态转换可以通过状态机图显示,这会在状态机图转换中介绍。
在所述模块定义图中的关联关系和引用转化为所述AltaRica模型中的调用函数的步骤中,在BDD之间可以存在三种主要类型的关系:关联、泛化和依赖。关联是在BDD中显示的一种关系,而且关联存在两种关联关系:引用关联和组成关联,引用关联和引用属性是一致的,引用关联代表存在模块外部的结构,因为某种目的需要与之连接。SysML模型中模块间的引用关联通过实线标识,若实线无箭头,代表双向访问,若有箭头,则表示单向访问。在AltaRica模型中存在function、operator的调用函数,其中function不存在返回值,operator存在返回值,根据语义信息引用关联可以转化为这些函数,block根据需要使用引用关联以调用函数。
而且,SysML中规定的引用命名规则为:
<reference name>:<type>[<multiplicity>]
其中,type是用户在SysML中的某库定义的模块,multiplicity表示多重性,它是一种约束,用于限制复杂对象中组成部分的实例数量,以单个整数或者一系列整数表示。带有引用属性的模块因为某种目的需要那个外部结构,或者是为了提供一种服务、交换事件数据,引用属性和引用关联意义是一样的,都是需要外部结构,具体用法及转化规则参见上述引用关联的转化规则。
在所述模块定义图中的泛化关系转化为所述AltaRica模型中的extends保留字的步骤中,泛化关系是在BDD中显示的另一种关系,这种关系表示两种元素之间的继承关系,即存在超类型与子类型,子类型会继承超类型的所有特性,包括结构化特性(属性)和行为特性。除了继承它的特性外,子类型还可能拥有超类型所不具备的其他特性。SysML模型中泛化关系的标识法为一条带有空心三角箭头的实线,超类型位于箭头端,子类型位于非箭头端。AltaRica模型中的extends保留字也具有继承的语义,所以可通过泛化关系转化成extends保留字。泛化是可传递的,对应于面向对象思想中的继承,设计者可以基于继承方式扩展出新的子类型,利用依赖倒置的原则实现便捷的扩展,因此这种设计方式有利于提高系统的扩展性。
二、将所述内部模块图(IBD)转换获得所述AltaRica模型元素。
其中,内部模块图是系统的静态视图,描述了系统的内部结构,IBD会表达系统的组成部分属性必须如何组合才能够创建有效的实例,它还会显示模块的实例必须如何与外部实体(引用属性)连接,以在整体上创建系统的有效实例。对于IBD,唯一允许的模型元素就是部件(part),IBD的外框总是代表整个系统。在外框之中,你可以显示模块的组成部分和引用属性,以及把它们连接在一起的连接器。相对于BDD中显示不同类型的模型元素和关系,以说明系统结构的信息,IBD中显示各种元素来说明系统结构的各个方面,对BDD中表达的内容做补充,即对抽象类做相应的实例化。对于内部模块图(IBD)将从组成部分属性、引用属性以及连接器方面进行转化。
具体地,将所述内部模块图中的SysML模型元素转化为AltaRica模型元素具体包括如下步骤:
将所述内部模型图中的组成部分属性转化为所述AltaRica模型中block和block之间的组合关系;
将所述内部模型图中的引用属性转化为所述AltaRica模型中的embeds保留字;
将所述内部模型图中的连接器转化为所述AltaRica模型中的流变量的连接。
其中,在将所述内部模型图中的组成部分属性转化为所述AltaRica模型中block和block之间的组合关系的步骤中,IBD中的组成部分属性和BDD中的组成部分属性、引用关联有着相同的意义,在AltaRica中不存在class和class的组合关系,但是存在block和block之间的组合关系,block之间的组成部分属性可以通过IB D图显示出来。
在将所述内部模型图中的引用属性转化为所述AltaRica模型中的embeds保留字的步骤中,IBD中的引用属性和BDD中模块的引用分隔框中的引用属性有着相同的意义,也就是模块因为某种目的而需要模块,但不同的图显示方法不同,IBD中引用属性的标识法是带有虚线边框的矩形。这可以转化成AltaRica模型中的embeds保留字。embeds关键字的语义是:存在block A,block B,block C,其中A内嵌于B,A内嵌于C,则A既是B的一部分又是C的一部分,A的改变导致B和C同时改变,对于内嵌组件A,可以使用引用属性来实现这一功能。
在将所述内部模型图中的连接器转化为所述AltaRica模型中的流变量的连接的步骤中,IBD中两个属性之间的连接器表示那两个结构在正确组装且可操作的系统中,拥有某种方式可以互相访问。如果通过端口及流定义连接两种属性,那么就可以通过那些端口传递能够在属性之间流动的事件、能量或者数据的类型。AltaRica中存在流变量,这和连接器传递属性的意义是一样的,所以连接器可以转化为AltaRica中流变量的连接。
此外,在SysML标准建模语言中经常会涉及到sterotype这个关键字,通常在模块定义图会出现,称之为构造型,它是一种内建机制用于逻辑扩展。sterotype扩充了SysML的模型元素,允许用户创建自己所需的模型元素,这些模型元素从已有的继承而来。当确定没有现成的模型元素可以用来表达用户想要的语义,首先可以找到最接近的用户想要的模型元素(例如:类、接口、组件、注释、关系等等),然后通过继承关系定义一个特别的sterotype。当需要为一个复杂的系统建模时,可能会遇到某个特别的类多次被重用的情况,在这种状态下,用户可以自己创建一个sterotype以实现这个类的结构属性和行为属性,然后根据需求在此基础上增添其他的属性以满足系统要求,这在一定程度上可以减少建模语言的重复性,精简了建模过程,提高了可读性。
类似的在AltaRica语言中存在domain关键字,它是用来定义数据类型或者故障类型的域,是枚举类型,在SysML模型中可以新建立一个数据类型或者可以说是故障类型ValueType,在ValueType中申明domain中存在的元素。即,可以获取所述模块定义图中的ValueType关键字,并将所述ValueType关键字转化为AltaRica模型的domain关键字。
三、将所述状态机图(stm)转换获得所述AltaRica模型元素。
其中,stm是能够用于说明系统动态行为的SysML图,可以在状态机图上显示状态、指定事件,从而在运行的系统中触发那些状态之间的转换。AltaRica模型中有transition关键字,它是用来描述系统的状态转换,每一个转换有一个触发事件、卫士和一个任务列表组成,任务列表是指示当事件触发时,系统如何改变其状态;卫士是发生状态转换所必须满足的条件,即transition是由三元组<e,G,P>构成,表示为e:G->P,其中e代表事件,G代表卫士,P代表任务列表,当满足卫士条件后transition才会被激活。在SysML语言和AltaRica语言中均可以定义失效事件,明确故障信息,所以这两种建模语言语义一致,stm可以转化为AltaRica模型的transition。
但由于stm中无法定义事件发生的概率无法定义事件发生的概率以及事件发生的时延问题,但在实际问题中出于安全性分析我们需要考虑概率问题,AltaRica模型中也提供了Parameter以及delay关键字,所以在转化的过程中,我们需要添加有关概率和时延问题的相关代码,从而更加完善系统安全性分析。
基于上述所述,在所述步骤S2中,SysML模型元素与AltaRica模型元素之间的的映射关系如下表1所示:
表1 SysML模型元素与AltaRica3.0模型元素的映射关系
此外,在AltaRica模型中还存在同步(synchronization)的概念。AltaRica模型中存在强同步和弱同步,“!”代表强同步,如果两个事件之间的关系是强同步,那么这两个事件要么同时发生,要么都不发生,换句话说,当同步事件发生时,当两个事件的卫士都满足时,则两个事件同时发生,当至少一个卫士不满足时,则两个事件都不发生;“?”代表弱同步,当同步事件发生时,如果至少一个事件的卫士满足,则触发弱同步,具体执行哪个事件的转换,需要进一步的判断;如果处于弱同步的某个事件的卫士满足则执行该事件。
但是,在SysML模型中不存在强同步、弱同步事件的概念,只存在用状态机图描述系统的状态转换,所以当存在强同步弱同步事件时需要在AltaRica模型中添加同步事件的代码从而更加完善系统建模。
具体地,在步骤S2中,还包括步骤:判断所述状态机图中是否存在同步事件,如果是,则在步骤S3中,构建AltaRica模型的过程中添加同步事件代码。
S3、基于步骤二中形成的AltaRica模型元素,为所述待评估系统构建AltaRica模型。
例如,利用从SysML模型转换到AltaRica模型的转换方法的映射规则对冷凝系统实例进行转化。
首先,根据该系统的相关描述和要求搭建起SysML模型,然后利用映射规则将SysML模型转换为AltaRica3.0模型。冷凝系统的基本结构图如图4所示,该系统分为一个水桶,两个水泵和一个反应堆,其中两个水泵各自形成一条线路。两个水泵同时从水桶抽水,向反应堆供水,可出现以下几种情况:
(1)当水桶中没有水时,无法通过水泵向反应堆供水,系统失效;
(2)当两个水泵都失效时,反应堆得不到水,整个系统失效;
(3)当反应堆中的水溢出时,水泵P1和P2发生失效;
(4)当两个水泵至少有一个正常时,整个系统正常。
步骤一:首先为冷凝系统构建SysML模型。在BDD中定义了四个block:Pump、RepairableComponent、Tank和Reactor,其中RepairableComponent模块申明了一个working的值属性以及failure()和repair()的操作,当working为true时发生failure()事件,则working为false;当working为false时发生repair()事件,则working为true。Pump模块继承了RepairableComponent模块的所有属性,并且定义了端口,用allocate关系绑定了两个流属性,即输入输出流,其中约束属性约束了值属性和流端口的逻辑关系:
outFlow:=ifworkingthen inflow elsefalse;
同时Tank模块也申明了水箱的isEmpty的值属性、getEmpty()的操作以及值属性和流端口之间的约束关系,当水箱不空时发生getEmpty()事件,水箱即为空。Reactor用来描述反应堆,定义了一个输入端口,自此冷凝系统的模块定义图建立起来。IBD图显示了对block的合法配置以及block属性之间特定的一系列连接,即:
P1.input:=T.output;
P2.input:=T.output;
Reactor.input:=P1.output or P2.output;
stm则用于指定事件,描述在运行的系统中触发那些状态之间的转换。
步骤二:根据映射规则将SysML转化为AltaRica,AltaRica模型大体分为变量定义、事件定义、转换(transition)、断言(assertion)四个部分。在AltaRica建模语言中申明了三个class,这和BDD图中的block语义是一样的,都是对虚拟节点的说明。在RepairableComponent类中,申明了布尔型状态变量working,初始值设置为true,且申明了failure、repair的事件,同时定义了事件的转化,这是从SysML中的stm转换而来。Pump类继承RepairableComponent类,在继承的基础上新申明了两个流变量,运用assertion关键字建立流变量和状态变量的关系。同时Tank类也定义了状态变量、流变量、事件和transition,这些class的构建都可以从BDD中的block转化而来。CoolingSystemblock在AltaRica中是实例化的节点,对应于IBD中的block,在实例化的节点中同样可以申明状态变量、流变量、事件及transition,并且可以在其中对class进行实例化,如P1、P2就是对Pump类的实例化,然后对实例化的各个子部件进行连接从而使整个系统正常运作,这可以通过IBD的连接转化而来。
步骤三:为冷凝系统实例构建SysML模型,并将其转换为AltaRica模型,使用AltaRica建模软件OARPlaform生成Open-PSA格式故障树,并使用故障树分析软件ArbreAnalyste绘制故障树。冷凝系统实例中Reator组件失效的故障树,Arbre Analyste的故障树分析软件提供了对该故障树做最小割集分析,可知存在3种最小割集。
1.当发生emptying事件,Tank无法正常输出,从而导致水泵P1或者P2的失效,最终Reactor组件失效;2.水泵P1和P2的失效,导致两条路线都无法向Reactor组件正常输出,从而导致Reactor组件的失效;3.发生共因失效(CCF)事件,即当水泵P1或者水泵P2正常运行时,若发生CCF失效事件,则两个水泵都失效,最终导致Reactor组件的失效。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (5)
1.一种从SysML模型转换到AltaRica模型的转换方法,其特征在于:包括如下步骤:
一、基于待评估系统构建SysML模型;
二、根据映射规则,将所述SysML模型中的SysML模型元素转换为AltaRica模型元素;
三、基于步骤二中形成的AltaRica模型元素,为所述待评估系统构建AltaRica模型;
在步骤二中,获取所述SysML模型的模块定义图、内部模块图和状态机图,并基于所述模块定义图、所述内部模块图和所述状态机图转换获得所述AltaRica模型元素;
将所述模块定义图中创建的block转化为AltaRica模型中class的申明,并具体包括如下步骤:
将所述模块定义图中的值属性转化为所述AltaRica模型中的状态变量;
将所述模块定义图中的约束属性转化为所述AltaRica模型中的assertion保留字;
将所述模块定义图中的端口转化为所述AltaRica模型中的流变量;
将所述模块定义图中的操作转化为所述AltaRica模型中的event关键字;
将所述模块定义图中的关联关系和引用转化为所述AltaRica模型中的调用函数;
将所述模块定义图中的泛化关系转化为所述AltaRica模型中的extends保留字。
2.根据权利要求1所述的一种从SysML模型转换到AltaRica模型的转换方法,其特征在于,获取所述模块定义图中的ValueType关键字,并将所述ValueType关键字转化为AltaRica模型的domain关键字。
3.根据权利要求1所述的一种从SysML模型转换到AltaRica模型的转换方法,其特征在于,将所述内部模块图中的SysML模型元素转化为AltaRica模型元素具体包括如下步骤:
将所述内部模块图中的组成部分属性转化为所述AltaRica模型中block和block之间的组合关系;
将所述内部模块图中的引用属性转化为所述AltaRica模型中的embeds保留字;
将所述内部模块图中的连接器转化为所述AltaRica模型中的流变量的连接。
4.根据权利要求1所述的一种从SysML模型转换到AltaRica模型的转换方法,其特征在于,将所述状态机图中的SysML模型元素转化为AltaRica模型的transition。
5.根据权利要求4所述的一种从SysML模型转换到AltaRica模型的转换方法,其特征在于,判断所述状态机图中是否存在同步事件,如果是,则在步骤三中,构建AltaRica模型的过程中添加同步事件代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711445572.0A CN108089861B (zh) | 2017-12-27 | 2017-12-27 | 一种从SysML模型转换到AltaRica模型的转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711445572.0A CN108089861B (zh) | 2017-12-27 | 2017-12-27 | 一种从SysML模型转换到AltaRica模型的转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108089861A CN108089861A (zh) | 2018-05-29 |
CN108089861B true CN108089861B (zh) | 2020-12-22 |
Family
ID=62179716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711445572.0A Active CN108089861B (zh) | 2017-12-27 | 2017-12-27 | 一种从SysML模型转换到AltaRica模型的转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108089861B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255193B (zh) * | 2018-09-26 | 2020-08-11 | 中国航空综合技术研究所 | 基于模型转换的飞机后缘襟翼控制系统的设计方法 |
CN109522007B (zh) * | 2018-10-16 | 2021-05-11 | 南京航空航天大学 | 面向安全关键嵌入式系统的SysML模型向AADL模型自动转换方法 |
CN110716819B (zh) * | 2019-10-10 | 2020-11-20 | 江苏科技大学 | 一种基于AltaRica的系统故障树自动生成方法 |
CN111176639A (zh) * | 2019-12-30 | 2020-05-19 | 南京航空航天大学 | 一种从SysML到AltaRica的自动化模型转换方法 |
CN111399821B (zh) * | 2020-03-30 | 2022-06-21 | 杭州华望系统科技有限公司 | 基于TypeScript的SysML框架和Web化系统工程建模平台 |
CN112115615B (zh) * | 2020-09-21 | 2024-10-15 | 南京航空航天大学 | 面向scr的安全关键系统模型转换方法、装置和系统 |
CN113821050B (zh) * | 2021-09-13 | 2023-10-27 | 北京航空航天大学 | 一种基于SysML定义无人机系统架构元模型的方法 |
CN114218781B (zh) * | 2021-12-10 | 2024-05-07 | 中国航空综合技术研究所 | 系统功能与可靠性、安全性及测试性综合建模分析方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808366A (zh) * | 2016-03-14 | 2016-07-27 | 南京航空航天大学 | 一种基于四变量模型的系统安全分析方法 |
CN105938502A (zh) * | 2016-03-17 | 2016-09-14 | 南京航空航天大学 | 面向AltaRica模型的系统安全性设计验证方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856863B2 (en) * | 2008-06-10 | 2014-10-07 | Object Security Llc | Method and system for rapid accreditation/re-accreditation of agile IT environments, for example service oriented architecture (SOA) |
US8677316B2 (en) * | 2010-05-12 | 2014-03-18 | Microsoft Corporation | Enforcement of architectural design during software development |
-
2017
- 2017-12-27 CN CN201711445572.0A patent/CN108089861B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808366A (zh) * | 2016-03-14 | 2016-07-27 | 南京航空航天大学 | 一种基于四变量模型的系统安全分析方法 |
CN105938502A (zh) * | 2016-03-17 | 2016-09-14 | 南京航空航天大学 | 面向AltaRica模型的系统安全性设计验证方法 |
Non-Patent Citations (3)
Title |
---|
"AltaRica3.0模型到Promela模型转换与验证方法研究";胡军等;《计算机工程与科学》;20170430;第39卷(第4期);第1-9页 * |
"一种嵌入式系统模型的安全性分析验证方法";石娇洁等;《计算机技术与发展》;20151031;第25卷(第10期);第1-6页 * |
"模型驱动的嵌入式系统设计安全性验证方法研究";刘雪;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160715;正文第18-23、30、34-38页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108089861A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108089861B (zh) | 一种从SysML模型转换到AltaRica模型的转换方法 | |
US8990765B2 (en) | Computationally efficient system for developing configurable, extensible business application product lines using model-driven techniques | |
CN109255193B (zh) | 基于模型转换的飞机后缘襟翼控制系统的设计方法 | |
Abd-Allah | Composing heterogeneous software architectures | |
CN110502211B (zh) | 一种基于SysML模块图的AADL模型构造方法 | |
Dubinin et al. | On definition of a formal model for IEC 61499 function blocks | |
De Niz et al. | Time Weaver: A software-through-models framework for embedded real-time systems | |
Klarlund et al. | Formal design constraints | |
CN108491196A (zh) | 一种aadl图形化功能行为建模方法 | |
CN110286902A (zh) | SysML安全性扩展及其到AADL故障模型的自动转换方法 | |
CN112347534B (zh) | 一种基于ifc扩展的水利水电工程bim模型转换方法 | |
Bergé et al. | High-level system modeling: specification languages | |
Kobryn | Modeling enterprise software architectures using UML | |
Borshchev et al. | Systems modeling, simulation and analysis using COVERS active objects | |
Mouheb et al. | Unified modeling language | |
Grilo et al. | A logical framework to reason about Reo circuits. | |
Dong et al. | Automating the analysis of design component contracts | |
Zdun et al. | Modeling composition in dynamic programming environments with model transformations | |
Barros | Aspect‐oriented programming and pluggable software units: a comparison based on design patterns | |
Isazadeh et al. | A new formalism for mathematical description and verification of component-based systems | |
Depke et al. | Formalizing the Development of Agent-Based Systems Using Graph Processes. | |
Munch et al. | Leaving the visual language ghetto | |
Khammaci et al. | Coexistence of object-oriented modeling and architectural description | |
Jacob | The OMEGA Component Model | |
Guo et al. | Extending eclipse to support object-oriented system verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |