一种将SysML模型进行仿真验证的方法技术

技术编号:19176565 阅读:50 留言:0更新日期:2018-10-17 00:13
本发明专利技术公开了一种将SysML模型进行仿真验证的方法,涉及到的具体步骤包括:(1)定义SysML模块定义图以及活动图元素到Modelica模型元素的转换规则;(2)以模块定义图的XMI文档为输入进行解析,获取模块定义图中模块以及模块的值属性信息;(3)以活动图的XMI文档为输入进行解析,获取活动图活动分区、活动参数、节点以及边的信息;(4)根据转换规则将获取的SysML活动图和模块定义图的信息转换成Modelica模型;(5)将转换后的Modelica模型导入仿真工具,根据活动图中决定节点上的条件表达式和所覆盖分支上的监值确定仿真参数,之后进行仿真验证。本发明专利技术通过对SysML模型进行仿真验证,可以在早期的开发阶段对系统特定的业务需求进行验证,从而及早发现错误并修正。

A method of simulation verification of SysML model

The invention discloses a method for simulating and validating a SysML model, which involves the following steps: (1) defining the SysML module definition diagram and the rules for converting the activity diagram elements to the Modelica model elements; (2) parsing the XMI document of the module definition diagram as input to obtain the module values and the module values in the module definition diagram. Attribute information; (3) parse the XMI document of activity diagram as input to obtain the information of activity partition, activity parameter, node and edge; (4) transform the information of acquired SysML activity diagram and module definition diagram into Modelica model according to the transformation rules; (5) import the transformed Modelica model into simulation tool according to the transformation rules. In the activity diagram, the conditional expression on the node and the monitoring value on the covered branch are determined to determine the simulation parameters, and then the simulation verification is carried out. By simulating and verifying the SysML model, the invention can verify the specific business requirements of the system in the early development stage, thereby early discovering and correcting errors.

【技术实现步骤摘要】
一种将SysML模型进行仿真验证的方法
本专利技术属于软件模型验证领域,具体涉及将SysML模块定义图和活动图转换为Modelica模型并利用OpenModelica进行仿真的方法,通过对早期的SysML模型进行仿真来验证系统的业务逻辑。
技术介绍
随着现代软件系统的复杂程度不断递增,系统建模过程变得更加复杂和难以把握。除此之外,如何在系统开发早期阶段对系统的抽象模型进行分析验证也成为了一个研究的难点。基于模型的开发技术优点之一就是可以利用各种方法进行软件正确性和可靠性验证。常见的方法可以分为仿真验证和形式化验证,其中形式化验证方法又可以分为定理证明和模型检测。定理证明是构建一个形式化的公理系统,包括推理规则。使用严格的推导证明来验证软件的正确性。定理证明推导过程中虽然一部分可以做到自动化,但在多数情况下还是需要人工的参与。因此,它不适合用于大型软件系统的性质验证。模型检测是比较常用的方法,通过穷尽系统状态空间进行相关性质的检验,但它的主要难点在于解决状态空间爆炸的问题。仿真验证是相对简便有效的方法,通过对系统模型仿真并分析仿真结果来验证系统性质。Simulink被广泛用来对系统模型进行仿真,其方法是建立严格的数学模型。它是根据控制工程中数据流转换的规律来建模、仿真,需要对模型进行手工推导和分解。这无疑增加的了系统验证时的工作难度,而且效率较低。基于Modelica语言的建模与仿真可以利用微分方程组对系统的行为进行描述并实现仿真运行,支持面向对象、非因果的连续与离散混合建模仿真。另外,相对于Simulink,Modelica基于方程的非因果建模仿真可以将使用者从繁琐的推理和分解工作中解脱出来。因此,使用Modelica进行仿真是一个较为有效的方法。SysML是一种表意丰富的图形化语言,可以对系统的结构和行为进行详细地描述。但是SysML模型无法直接进行仿真验证,因此,通过将SysML模型转换成Modelica模型进行仿真验证可以在早期的开发阶段对系统特定的业务需求进行验证,从而及早发现错误并修正。
技术实现思路
本专利技术的目的是提供一种将SysML模块定义图和活动图转换成Modelica模型进行仿真的方法;首先定义SysML模块定义图以及活动图元素到Modelica模型元素的转换规则;然后以模块定义图和活动图的XMI文档为输入,解析文档获取模块定义图和活动图的基本元素信息;接着根据模块定义图和活动图中元素与Modelica模型中元素的转换规则进行模型转换;最后将转换后的Modelica模型导入工具OpenModelica中进行仿真验证。实现本专利技术目的的具体技术方案是:一种将SysML模型进行仿真验证的方法,该方法包括以下具体步骤:步骤1:定义SysML模块定义图以及活动图元素到Modelica模型元素的转换规则;步骤2:以模块定义图的XMI文档为输入进行解析,获取模块定义图中基本元素即模块(block)以及模块的值属性信息;步骤3:以活动图的XMI文档为输入进行解析,获取活动图基本元素即活动分区、活动参数、节点以及边的信息;步骤4:根据转换规则将获取的SysML活动图和模块定义图的基本元素转换成Modelica模型中的元素;步骤5:将转换后的Modelica模型导入仿真工具,根据活动图中决定节点上的条件表达式确定仿真参数,之后进行仿真验证。步骤1中,所述SysML模块定义图以及活动图元素到Modelica模型元素的转换规则为:(i)模块定义图的中的每一个模块对应一个Modelica模型,模块拥有的值属性对应Modelica模型声明区的变量、参数;(ii)活动图中每一个活动分区对应一个Modelica模型;基本动作以及发送信号动作转换为方程;等待时间动作节点根据不同类型的时间事件分别进行转换,绝对时间事件的等待时间动作转换为when语句,相对时间事件的等待时间动作需要在声明区先声明一个Timer类型实例,之后转换为if语句;接受事件动作转换为Modelica模型中的if语句;决定节点与其分支转换为if语句;合并节点与决定节点组合形成的循环结构转换为while语句。步骤2中,模块定义图XMI文档所需要解析的为:<packagedElement>标签,<ownedAttribute>标签,<defaultValue>标签,<type>标签。步骤3中,活动图XMI文档所需要解析的为:<group>标签,<node>标签,<ownedParameter>标签,<edge>标签,<guard>标签。步骤4具体包括:先通过解析活动图XMI文档获取所有活动分区集合、节点集合以及边集合;为每一个活动分区创建一个Modelica模型,并通过解析模块定义图XMI文档获取对应模块的变量集合以及参数集合,依次在模型声明区对这些变量和参数进行声明;若活动图中包含相对时间事件的等待时间动作,则在模型声明区声明一个Timer实例;然后,从活动分区的开始节点出发向下遍历,并根据不同的节点类型在模型algorithm区域输出不同的内容,包括选择、循环以及并发结构;并发结构的处理方法是每个并发分支单独进行转换,选择结构和循环结构则分别通过选择结构处理方法和循环结构处理方法。步骤5中,所述根据活动图中决定节点上的条件表达式和所覆盖分支上的监值确定仿真参数,具体包括:条件表达式的一般形式为E1opE2,其中E1为仿真参数,E2为数值或布尔值,op为数学比较符号,op∈{<,≤,>,≥,==};所覆盖分支上的监值为false或true;(i)op∈{<,≤},所覆盖分支上的监值为false时,E1的取值为大于E2;所覆盖分支上的监值为true时,E1的取值为小于E2;(ii)op∈{>,≥},所覆盖分支上的监值为false时,E1的取值为小于E2;所覆盖分支上的监值为true时,E1的取值为大于E2;(iii)op为==,E2为数值,所覆盖分支上的监值为false时,E1取值为不等于E2;所覆盖分支上的监值为true时,E1取值为等于E2;(iv)op为==,E2为布尔值,所覆盖分支上的监值为false时,E1取值为false;所覆盖分支上的监值为true时,E1取值true。对软件系统模型的验证可以从多个方面出发,如何在早期开发阶段对系统的性质进行验证已经成为一个研究的难点。本专利技术通过将SysML活动图和模块定义图转换为Modelica模型进行仿真,可以在早期开发阶段进行系统模型验证,发现错误,验证需求是否满足特定业务逻辑。附图说明图1是SysML模块定义图;图2是SysML活动图;图3是图2活动图转换后的Modelica模型图;图4是转换后的Modelica模型在OpenModelica工具中的仿真结果图。具体实施方式本专利技术包括以下具体步骤:步骤1:定义SysML模块定义图以及活动图元素到Modelica模型元素的转换规则。具体为:模本文档来自技高网
...

【技术保护点】
1.一种将SysML模型进行仿真验证的方法,其特征在于,该方法包括以下具体步骤:步骤1:定义SysML模块定义图以及活动图元素到Modelica模型元素的转换规则;步骤2:以模块定义图的XMI文档为输入进行解析,获取模块定义图中基本元素即模块(block)以及模块的值属性信息;步骤3:以活动图的XMI文档为输入进行解析,获取活动图基本元素即活动分区、活动参数、节点以及边的信息;步骤4:根据转换规则将获取的SysML活动图和模块定义图的基本元素转换成Modelica模型中的元素;步骤5:将转换后的Modelica模型导入仿真工具,根据活动图中决定节点上的条件表达式和所覆盖分支上的监值确定仿真参数,之后进行仿真验证。

【技术特征摘要】
1.一种将SysML模型进行仿真验证的方法,其特征在于,该方法包括以下具体步骤:步骤1:定义SysML模块定义图以及活动图元素到Modelica模型元素的转换规则;步骤2:以模块定义图的XMI文档为输入进行解析,获取模块定义图中基本元素即模块(block)以及模块的值属性信息;步骤3:以活动图的XMI文档为输入进行解析,获取活动图基本元素即活动分区、活动参数、节点以及边的信息;步骤4:根据转换规则将获取的SysML活动图和模块定义图的基本元素转换成Modelica模型中的元素;步骤5:将转换后的Modelica模型导入仿真工具,根据活动图中决定节点上的条件表达式和所覆盖分支上的监值确定仿真参数,之后进行仿真验证。2.根据权利要求1所述的方法,其特征在于,步骤1中,SysML模块定义图以及活动图元素到Modelica模型元素的转换规则为:(i)模块定义图的中的每一个模块对应一个Modelica模型,模块拥有的值属性对应Modelica模型声明区的变量、参数;(ii)活动图中每一个活动分区对应一个Modelica模型;基本动作以及发送信号动作转换为方程;等待时间动作节点根据不同类型的时间事件分别进行转换,绝对时间事件的等待时间动作转换为when语句,相对时间事件的等待时间动作需要在声明区先声明一个Timer类型实例,之后转换为if语句;接受事件动作转换为Modelica模型中的if语句;决定节点与其分支转换为if语句;合并节点与决定节点组合形成的循环结构转换为while语句。3.根据权利要求1所述的方法,其特征在于,步骤2中,模块定义图XMI文档所需要解析的为:<packagedElement>标签,<ownedAttribute>标签,<defaultValue>标签,<type>标签。4.根据权利要求1所述的方法,其特征在于,步骤3中,活动图XMI文档所需要解析的为:<group&am...

【专利技术属性】
技术研发人员:钟雯陈小红
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1