一种模型转换方法与系统
文献发布时间:2024-01-17 01:27:33
技术领域
本发明属于模型转换技术领域,尤其涉及一种模型转换方法与系统。
背景技术
航空电子、核反应堆控制系统等安全攸关系统的安全可靠性日益受到重视。为了给安全攸关系统提供可靠性和安全性分析,基于模型的安全性分析(Model-Based SafetyAssessment,MBSA)方法在近些年来受到业界的广泛关注。AltaRica3.0是一种基于MBSA的多层次的建模语言。AltaRica3.0语言旨在对系统的功能性行为和故障行为进行形式化建模。它的语义是由卫士转换系统(Guared Transition Systems,GTS)定义的。目前已经存在许多AltaRica3.0模型评估工具,如故障树编译器、随机模拟器等。但是,仍然存在一些限制。最重要的一点是它无法对时间属性执行统计模型检测。作为一种广泛使用的安全分析和评估软件,SBIP具备对安全攸关系统提供建模与统计模型检测功能。针对确定性安全攸关系统,现有技术可以对所建立的AltaRica3.0模型进行时序逻辑安全性验证,但当安全攸关系统存在随机行为时,现有技术无法对随机行为进行概率统计分析。
发明内容
针对AltaRica3.0无法进行统计模型检测的不足的技术问题,本发明提出一种模型转换方案。该方案根据AltaRica3.0和SBIP的底层语义定义,设计AltaRica3.0平展化模型GTS到SBIP模型的转换规则;并根据转换规则和模型的形式化语义,得到AltaRica3.0平展化模型GTS转换之后的SBIP模型。
为了解决上述技术问题,本发明提出一种报文链式转发方案。
本发明第一方面公开了一种模型转换方法。所述方法将AltaRica3.0的平展化模型自动转换为SBIP模型,所述AltaRica3.0的平展化模型卫士转换系统GTS模型;所述方法包括:利用语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;利用所述抽象语法树AST对所述卫士转换系统GTS模型的变量部分、事件部分、迁移部分、断言部分和延时部分分别进行转换;其中,转换过程为:对所述卫士转换系统GTS模型的抽象语法树AST进行遍历,根据语言识别工具ANTLR的元语言所定义的变量信息、事件信息、迁移信息、断言信息和断言信息;在所述抽象语法树AST上定位到与所述变量信息对应的节点作为第一组节点,以获取所述第一组节点分包含的变量信息,根据所述SBIP模型中的变量声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述事件信息对应的节点作为第二组节点,以获取所述第二组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述迁移信息对应的节点作为第三组节点,以获取所述第三组节点分包含的迁移信息,根据所述SBIP模型中的迁移声明规则、卫士声明规则和更新函数声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述断言信息对应的节点作为第四组节点,以获取所述第四组节点分包含的断言信息,根据所述SBIP模型中的卫士声明规则和更新函数声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与延时信息对应的节点作为第五组节点,以获取所述第五组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则和更新函数声明规则进行相应的转换操作。
根据第一方面的方法,在所述方法中,利用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;具体包括:使用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以编写对应的语法文件gts.g4,运行所述语言识别工具ANTLR的内置程序,形成所述卫士转换系统GTS模型的语法和词法解析器,输入所述卫士转换系统GTS模型代码,检查代码书写正确性,同时生成对应的所述抽象语法树AST。
根据第一方面的方法,所述变量部分的转换规则为:所述卫士转换系统GTS模型中的状态变量和流变量以所述SBIP模型的普通变量来表示,其中,所述卫士转换系统GTS模型的变量初始化关键词init和reset转换为所述SBIP模型中的data,所述卫士转换系统GTS模型的变量类型根据所述SBIP模型的基本类型对应法则进行转换。
根据第一方面的方法,所述事件部分的转换规则为:
将所述卫士转换系统GTS模型中的事件定义:
“event” Path “;”
转换为:
“export port” type port_type_name “(” “)”
作为所述SBIP模型中的事件定义;
其中,event表示所述卫士转换系统GTS模型中的事件关键词,Path表示所述卫士转换系统GTS模型中的事件名称,所述卫士转换系统GTS模型中的事件定义用于定义事件Path;
其中,export port表示所述SBIP模型中的输出端口关键词,type表示所述SBIP模型中的端口类型,port_type_name表示所述SBIP模型中的端口名称,所述SBIP模型中的事件定义用于定义一个类型为type的端口port_type_name;
在转换过程中,所述卫士转换系统GTS模型的事件关键词event转换为所述SBIP模型的输出端口关键词export port,所述卫士转换系统GTS模型的事件名称Path与所述SBIP模型的端口名称port_type_name对应,所述卫士转换系统GTS模型不存在端口类型定义,转换后的所述SBIP模型的端口类型为用户默认类型。
根据第一方面的方法,所述迁移部分的转换规则为:
将所述卫士转换系统GTS模型中的迁移定义:
“transition” EventReference “:” Expression
“->” Instruction
转换为:
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “}”
作为所述SBIP模型中的迁移定义;
其中,transition表示所述卫士转换系统GTS模型中的迁移关键词,EventReference表示所述卫士转换系统GTS模型中的迁移名称,Expression表示所述卫士转换系统GTS模型中的迁移表达式判定,Instruction表示所述卫士转换系统GTS模型中的迁移指令,所述卫士转换系统GTS模型中的迁移定义用于定义一个迁移EventReference,当定义的迁移满足迁移表达式Expression时,所述定义的迁移执行指令Instruction;
其中,port_name表示所述SBIP模型中端口名称,place_name表示所述SBIP模型中位置名称,当所述SBIP模型中的迁移定义所定义的迁移满足所述迁移表达式Expression时,迁移过程通过端口port_name从位置place_name移动到位置place_name,并执行所述指令Instruction;
转换过程中,所述卫士转换系统GTS模型的迁移名称EventReference与所述SBIP模型的端口名称port_name对应,所述卫士转换系统GTS模型不存在位置定义,转换后的所述SBIP模型的位置为用户默认位置。
根据第一方面的方法,所述断言部分的转换规则为:
将所述卫士转换系统GTS模型中的断言定义:
“assertion” Instruction1 “;”
转换为:
“initial to” place_name “do” Instruction1
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “,” Instruction1 “}”
作为所述SBIP模型中的断言定义;
其中,assertion表示所述卫士转换系统GTS模型中的断言关键词,Instruction1表示所述卫士转换系统GTS模型中的断言指令,所述卫士转换系统GTS模型中的断言定义用于定义一条断言Instruction1;
其中,所述SBIP模型中的断言定义分为两部分,一部分为初始断言,另一部分为迁移中的执行断言;
转换过程中,将所述卫士转换系统GTS模型的断言映射为两部分,所述卫士转换系统GTS模型的断言指令Instruction1转换为所述SBIP模型的所述初始断言中的断言指令,将所述卫士转换系统GTS模型中的断言指令转换为所述SBIP模型迁移中的所述执行断言。
根据第一方面的方法,所述事件部分的延时规则为:
将所述卫士转换系统GTS模型中的延时定义:
“event” Path “(” “delay” = OperatorCall
"(" Expression1 “)” “)”
转换为:
“@stochastic” “(” “dist=” OperatorCall
“,”“cly=”x“,”“param=” Expression1 “)”
“export port” type port_type_name “(” “)”
作为所述SBIP模型中的延时定义;
其中,delay表示所述卫士转换系统GTS模型中的延时关键词,OperatorCall表示所述卫士转换系统GTS模型中的延时函数名称,Expression1表示所述卫士转换系统GTS模型中的延时函数表达式,所述卫士转换系统GTS模型中的延时定义用于定义事件Path遵循OperatorCall函数类型的延时;
其中,所述SBIP模型中的延时定义分为两部分,第一部分对延时特征进行说明,第二部分表示输出端口定义,所述SBIP模型中的延时定义用于定义输出端口port_type_name遵循OperatorCall函数类型的延时。
本发明第二方面公开了一种模型转换系统。所述系统将AltaRica3.0的平展化模型自动转换为SBIP模型,所述AltaRica3.0的平展化模型卫士转换系统GTS模型;所述系统的模块单元被配置为执行:利用语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;利用所述抽象语法树AST对所述卫士转换系统GTS模型的变量部分、事件部分、迁移部分、断言部分和延时部分分别进行转换;其中,转换过程为:对所述卫士转换系统GTS模型的抽象语法树AST进行遍历,根据语言识别工具ANTLR的元语言所定义的变量信息、事件信息、迁移信息、断言信息和断言信息;在所述抽象语法树AST上定位到与所述变量信息对应的节点作为第一组节点,以获取所述第一组节点分包含的变量信息,根据所述SBIP模型中的变量声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述事件信息对应的节点作为第二组节点,以获取所述第二组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述迁移信息对应的节点作为第三组节点,以获取所述第三组节点分包含的迁移信息,根据所述SBIP模型中的迁移声明规则、卫士声明规则和更新函数声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述断言信息对应的节点作为第四组节点,以获取所述第四组节点分包含的断言信息,根据所述SBIP模型中的卫士声明规则和更新函数声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与延时信息对应的节点作为第五组节点,以获取所述第五组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则和更新函数声明规则进行相应的转换操作。
根据第二方面的系统,利用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;具体包括:使用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以编写对应的语法文件gts.g4,运行所述语言识别工具ANTLR的内置程序,形成所述卫士转换系统GTS模型的语法和词法解析器,输入所述卫士转换系统GTS模型代码,检查代码书写正确性,同时生成对应的所述抽象语法树AST。
根据第二方面的系统,所述变量部分的转换规则为:所述卫士转换系统GTS模型中的状态变量和流变量以所述SBIP模型的普通变量来表示,其中,所述卫士转换系统GTS模型的变量初始化关键词init和reset转换为所述SBIP模型中的data,所述卫士转换系统GTS模型的变量类型根据所述SBIP模型的基本类型对应法则进行转换。
根据第二方面的系统,所述事件部分的转换规则为:
将所述卫士转换系统GTS模型中的事件定义:
“event” Path “;”
转换为:
“export port” type port_type_name “(” “)”
作为所述SBIP模型中的事件定义;
其中,event表示所述卫士转换系统GTS模型中的事件关键词,Path表示所述卫士转换系统GTS模型中的事件名称,所述卫士转换系统GTS模型中的事件定义用于定义事件Path;
其中,export port表示所述SBIP模型中的输出端口关键词,type表示所述SBIP模型中的端口类型,port_type_name表示所述SBIP模型中的端口名称,所述SBIP模型中的事件定义用于定义一个类型为type的端口port_type_name;
在转换过程中,所述卫士转换系统GTS模型的事件关键词event转换为所述SBIP模型的输出端口关键词export port,所述卫士转换系统GTS模型的事件名称Path与所述SBIP模型的端口名称port_type_name对应,所述卫士转换系统GTS模型不存在端口类型定义,转换后的所述SBIP模型的端口类型为用户默认类型。
根据第二方面的系统,所述迁移部分的转换规则为:
将所述卫士转换系统GTS模型中的迁移定义:
“transition” EventReference “:” Expression
“->” Instruction
转换为:
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “}”
作为所述SBIP模型中的迁移定义;
其中,transition表示所述卫士转换系统GTS模型中的迁移关键词,EventReference表示所述卫士转换系统GTS模型中的迁移名称,Expression表示所述卫士转换系统GTS模型中的迁移表达式判定,Instruction表示所述卫士转换系统GTS模型中的迁移指令,所述卫士转换系统GTS模型中的迁移定义用于定义一个迁移EventReference,当定义的迁移满足迁移表达式Expression时,所述定义的迁移执行指令Instruction;
其中,port_name表示所述SBIP模型中端口名称,place_name表示所述SBIP模型中位置名称,当所述SBIP模型中的迁移定义所定义的迁移满足所述迁移表达式Expression时,迁移过程通过端口port_name从位置place_name移动到位置place_name,并执行所述指令Instruction;
转换过程中,所述卫士转换系统GTS模型的迁移名称EventReference与所述SBIP模型的端口名称port_name对应,所述卫士转换系统GTS模型不存在位置定义,转换后的所述SBIP模型的位置为用户默认位置。
根据第二方面的系统,所述断言部分的转换规则为:
将所述卫士转换系统GTS模型中的断言定义:
“assertion” Instruction1 “;”
转换为:
“initial to” place_name “do” Instruction1
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “,” Instruction1 “}”
作为所述SBIP模型中的断言定义;
其中,assertion表示所述卫士转换系统GTS模型中的断言关键词,Instruction1表示所述卫士转换系统GTS模型中的断言指令,所述卫士转换系统GTS模型中的断言定义用于定义一条断言Instruction1;
其中,所述SBIP模型中的断言定义分为两部分,一部分为初始断言,另一部分为迁移中的执行断言;
转换过程中,将所述卫士转换系统GTS模型的断言映射为两部分,所述卫士转换系统GTS模型的断言指令Instruction1转换为所述SBIP模型的所述初始断言中的断言指令,将所述卫士转换系统GTS模型中的断言指令转换为所述SBIP模型迁移中的所述执行断言。
根据第二方面的系统,所述事件部分的延时规则为:
将所述卫士转换系统GTS模型中的延时定义:
“event” Path “(” “delay” = OperatorCall
"(" Expression1 “)” “)”
转换为:
“@stochastic” “(” “dist=” OperatorCall
“,”“cly=”x“,”“param=” Expression1 “)”
“export port” type port_type_name “(” “)”
作为所述SBIP模型中的延时定义;
其中,delay表示所述卫士转换系统GTS模型中的延时关键词,OperatorCall表示所述卫士转换系统GTS模型中的延时函数名称,Expression1表示所述卫士转换系统GTS模型中的延时函数表达式,所述卫士转换系统GTS模型中的延时定义用于定义事件Path遵循OperatorCall函数类型的延时;
其中,所述SBIP模型中的延时定义分为两部分,第一部分对延时特征进行说明,第二部分表示输出端口定义,所述SBIP模型中的延时定义用于定义输出端口port_type_name遵循OperatorCall函数类型的延时。
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种模型转换方法中的步骤。
本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种模型转换方法中的步骤。
综上,本发明提出的技术方案实现了AltaRica3.0平展化模型GTS到SBIP模型的自动转换,从而使得AltaRica3.0模型可进行统计模型检测,丰富了AltaRica3.0的安全性分析功能。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种模型转换方法的流程示意图;
图2为根据本发明实施例的冷却系统的结构示意图;
图3为根据本发明实施例的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明第一方面公开了一种模型转换方法。所述方法将AltaRica3.0的平展化模型自动转换为SBIP模型,所述AltaRica3.0的平展化模型卫士转换系统GTS模型。图1为根据本发明实施例的一种模型转换方法的流程示意图;如图1所示,所述方法包括:利用语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;利用所述抽象语法树AST对所述卫士转换系统GTS模型的变量部分、事件部分、迁移部分、断言部分和延时部分分别进行转换。
在一些实施例中,转换过程为:对所述卫士转换系统GTS模型的抽象语法树AST进行遍历,根据语言识别工具ANTLR的元语言所定义的变量信息、事件信息、迁移信息、断言信息和断言信息。
在一些实施例中,利用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;具体包括:使用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以编写对应的语法文件gts.g4,运行所述语言识别工具ANTLR的内置程序,形成所述卫士转换系统GTS模型的语法和词法解析器,输入所述卫士转换系统GTS模型代码,检查代码书写正确性,同时生成对应的所述抽象语法树AST。
在一些实施例中,在所述抽象语法树AST上定位到与所述变量信息对应的节点作为第一组节点,以获取所述第一组节点分包含的变量信息,根据所述SBIP模型中的变量声明规则进行相应的转换操作;
在一些实施例中,在所述抽象语法树AST上定位到与所述事件信息对应的节点作为第二组节点,以获取所述第二组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则进行相应的转换操作;
在一些实施例中,在所述抽象语法树AST上定位到与所述迁移信息对应的节点作为第三组节点,以获取所述第三组节点分包含的迁移信息,根据所述SBIP模型中的迁移声明规则、卫士声明规则和更新函数声明规则进行相应的转换操作;
在一些实施例中,在所述抽象语法树AST上定位到与所述断言信息对应的节点作为第四组节点,以获取所述第四组节点分包含的断言信息,根据所述SBIP模型中的卫士声明规则和更新函数声明规则进行相应的转换操作;
在一些实施例中,在所述抽象语法树AST上定位到与延时信息对应的节点作为第五组节点,以获取所述第五组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则和更新函数声明规则进行相应的转换操作。
具体地,AltaRica3.0是一种用于复杂系统驱动建模的语言,它的语义是根据GTS定义的。AltaRica3.0模型是由组件的层次结构组成的,在对AltaRica3.0模型进行安全性分析时,AltaRica3.0会进行降维操作形成GTS模型,称为平展化。接着对AltaRica3.0平展化模型GTS进行安全性分析,例如故障树分析、随机仿真等分析。对于平展化操作,目前已有成熟的算法。由于AltaRica3.0无法进行统计模型检测的不足,根据AltaRica3.0平展化模型GTS和SBIP的底层语义定义,设计AltaRica3.0平展化模型GTS到SBIP模型的转换规则,并实现AltaRica3.0平展化模型GTS到SBIP模型的自动转换。首先,对GTS模型和SBIP模型的组成成分进行介绍,接着,对GTS和SBIP的词法和语法进行分析,设计对应规则。
具体地,GTS模型大体分为变量(variables)、事件(events)、初始化(initialization)、迁移(transitions)、断言(assertion)、延时(delay),其中迁移的个数与事件的个数对应。GTS是一个六元组
SBIP模型由三部分组成,分别是一套组件定义的行为(Behavior)、用于定义组件间同步与通信的交互(Interaction)、一组定义交互规则的优先级(Priority)。通过行为,交互与优先级的结合,可以构建复杂组件的层次结构,这些复杂组件称为复合组件(Compound)。原子组件(Atom)是最简单的组件类型,它代表了所有非分层的组件。SBIP的原子组件可用六元组
具体地,转换算法主要由ANTLR解析过程、变量转换算法、事件转换算法、迁移转换算法、断言转换算法和延时转换算法组成。
具体地,ANTLR解析过程包括:使用ANTLR的元语言对GTS的语法规则进行详细的描述,编写对应的语法文件(gts.g4),运行ANTLR内置方法形成GTS的语法和词法解析器,输入一段GTS代码可以检查代码的书写正确性,同时可以生成对应的AST。
具体地,变量转换过程包括:对生成的GTS的AST进行遍历操作,根据ANTLR元语言定义的变量信息,准确定位到对应的节点,从而获得节点包含的变量信息,然后根据SBIP中变量声明规则进行相应的转换操作。
具体地,事件转换过程包括:对生成的GTS的AST进行遍历操作,根据ANTLR元语言定义的事件信息,准确定位到对应的节点,从而获得节点包含的事件信息,然后根据SBIP中端口声明规则进行相应的转换操作。
具体地,迁移转换过程包括:对生成的GTS的AST进行遍历操作,根据ANTLR元语言定义的迁移信息,准确定位到对应的节点,从而获得节点包含的迁移信息,然后根据SBIP中迁移声明规则、卫士声明规则和更新函数声明规则进行相应的转换操作。
具体地,断言转换过程包括:对生成的GTS的AST进行遍历操作,根据ANTLR元语言定义的断言信息,准确定位到对应的节点,从而获得节点包含的断言信息,然后根据SBIP中卫士声明规则和更新函数声明规则进行相应的转换操作。
具体地,延时转换过程包括:对生成的GTS的AST进行遍历操作,根据ANTLR元语言定义的延时信息,准确定位到对应的节点,从而获得节点包含的延时信息,然后根据SBIP中端口声明规则和更新函数声明规则进行相应的转换操作。
在一些实施例中,所述变量部分的转换规则为:所述卫士转换系统GTS模型中的状态变量和流变量以所述SBIP模型的普通变量来表示,其中,所述卫士转换系统GTS模型的变量初始化关键词init和reset转换为所述SBIP模型中的data,所述卫士转换系统GTS模型的变量类型根据所述SBIP模型的基本类型对应法则进行转换。
在一些实施例中,所述事件部分的转换规则为:
所述卫士转换系统GTS模型中的事件定义为:
“event” Path “;”
其中,event表示GTS模型中的事件关键词,Path表示GTS模型中的事件名称。该语句表示定义了一个事件Path。
将所述卫士转换系统GTS模型中的事件定义转换为:
“export port” type port_type_name “(” “)”
作为所述SBIP模型中的事件定义;
其中,export port表示SBIP模型中的输出端口关键词,type表示SBIP模型中的端口类型,port_type_name表示SBIP模型中的端口名称。该语句表示定义了一个类型为type的端口port_type_name。转换过程中,GTS模型事件关键词event转换为SBIP模型输出端口关键词export port,GTS模型事件名称Path与SBIP模型端口名称port_type_name对应,由于GTS模型没有事件类型这一定义,转换后的SBIP模型端口类型为设计者默认类型。
在一些实施例中,所述迁移部分的转换规则为:
所述卫士转换系统GTS模型中的迁移定义为:
“transition” EventReference “:” Expression
“->” Instruction
其中,transition表示GTS模型中的迁移关键词,EventReference表示GTS模型中的迁移名称,Expression为GTS模型中的迁移表达式判定,Instruction为GTS模型中的迁移指令。该语句表示定义了一个迁移EventReference,当满足表达式Expression时,迁移执行指令Instruction。
将所述卫士转换系统GTS模型中的迁移定义转换为:
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “}”
作为所述SBIP模型中的迁移定义;
其中,port_name表示SBIP模型中端口名称,place_name表示SBIP模型中位置名称,Expression为SBIP模型中的迁移表达式判定,Instruction为SBIP模型中的迁移指令。该语句表示定义了一个迁移,当满足表达式Expression,迁移通过端口port_name从位置place_name移动到位置place_name,执行指令Instruction。转换过程中,GTS模型迁移名称EventReference与SBIP模型端口名称port_name对应,GTS模型表达式Expression与SBIP模型表达式Expression对应,GTS模型指令Instruction与SBIP模型指令Instruction对应。由于GTS模型没有位置这一定义,转换后的SBIP模型位置为设计者默认位置名称。
在一些实施例中,所述断言部分的转换规则为:
所述卫士转换系统GTS模型中的断言定义为:
“assertion” Instruction1 “;”
其中,assertion表示GTS模型中的断言关键词,Instruction1表示GTS模型中的断言指令。该语句表示定义了一条断言Instruction1。
将所述卫士转换系统GTS模型中的断言定义转换为:
“initial to” place_name “do” Instruction1
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “,” Instruction1 “}”
作为所述SBIP模型中的断言定义;
其中,SBIP模型中的断言定义分为两部分,一部分为初始断言,另一部分为迁移中执行断言。转换过程中,GTS模型的断言映射为两部分,首先,GTS模型的断言指令Instruction1转换为SBIP模型的初始断言中的断言指令Instruction1,同时,GTS模型中的断言指令Instruction1转换为SBIP模型迁移中的执行断言Instruction1。
在一些实施例中,所述事件部分的延时规则为:
所述卫士转换系统GTS模型中的延时定义为:
“event” Path “(” “delay” = OperatorCall
"(" Expression1 “)” “)”
其中,“event” Path定义与事件一致,delay表示GTS模型中的延时关键词,OperatorCall表示GTS模型中的延时函数名称,Expression表示GTS模型中的延时函数表达式。该语句表示事件Path遵循OperatorCall函数类型的延时。
将所述卫士转换系统GTS模型中的延时定义转换为:
“@stochastic” “(” “dist=” OperatorCall
“,”“cly=”x“,”“param=” Expression1 “)”
“export port” type port_type_name “(” “)”
作为所述SBIP模型中的延时定义;
其中,SBIP模型中的延时定义分为两部分,第一部分对延时特征进行说明,OperatorCall表示SBIP模型中的延时函数名称,x表示SBIP模型中的时间变量,Expression表示SBIP模型中的延时函数表达式。第二部分表示输出端口定义。该语句表示输出端口port_type_name遵循OperatorCall函数类型的延时。
下面将具体说明算法转换规则。
(1)基本类型对应规则
GTS支持4种基本类型,包括布尔类型、整数类型、实数类型和用户自定义类型。SBIP支持4种基本类型,包括布尔类型、整数类型、实数类型和字符串类型。GTS中的布尔类型、整数类型和实数类型可以直接和SBIP的布尔类型、整数类型和实数类型进行对应,无需转换。GTS中的用户自定义类型类似于枚举形式,可以用SBIP中的整数类型进行对应。基本类型的对应关系如表1所示。
(2)常量和变量的对应规则
GTS的常量用于储存不可变的数值,用parameter关键词来表示。例如:parameterReal gamma = 0.2,表示实数常量gamma的值为0.2。GTS主要包括2种变量,分别是状态变量和流变量。状态变量用于描述系统状态,这些变量将系统组件的状态用布尔值、符号常量和枚举等表示,状态变量的初始化关键词为“init”。流变量用于描述描述组件之间传递信息的变量,流变量的初始化关键词为“reset”。
SBIP的变量分为常量和普通变量。SBIP的常量在声明时初始化并被赋值,在初始化后其值不可改变,用关键词const data表示。例如const data float PI=3.14,表示浮点数PI的值为3.14。SBIP的普通变量用于存储数据值,可以用布尔值、整数值和浮点值等表示。
GTS和SBIP的常量可根据基本类型对应法则进行转换。GTS中的状态变量和流变量皆可用SBIP的普通变量来表示,其中GTS的变量初始化的关键词“init”和“reset”都转换为SBIP中的“data”,GTS的变量的类型可根据基本类型对应法则进行转换。常量和变量的转换规则如下所示。
(3)表达式的对应规则
GTS支持标准的逻辑运算符集,所有的逻辑运算法都生成标准的逻辑布尔值“true”或“false”。同时,GTS支持标准的算法运算符,运算结果的类型由所有的参数决定。如果所有的参数是整数类型,那么生成的结果也是整数;如果参数中包含浮点数,则运算结果也是浮点数类型。GTS包含基本的数学函数,如“min()”“max()”“abs()”等;并且GTS支持“if-then-else”条件表达式。
SBIP支持标准的逻辑符和算术运算符,在进行转换过程中,GTS和SBIP的逻辑运算符和算术运算符可以直接进行映射转换。同时,SBIP也包含基本的数学函数,在使用内置函数时,需要先对内置函数使用“entern”进行声明。运算符的对应关系如表2所示。
对于条件表达式,SBIP支持“if-then-else”表达式与GTS中的“if-then-else”表达式类似,只需要进行简单的转换。GTS的“if-then-else”表达式和SBIP的“if-then-else”表达式的映射规则如下所示。
(4)事件的转换规则
GTS中的是事件是组件被触发的状态迁移这一行为的标签,SBIP中的端口是用来同步组件,并以同步方式在模型的组件之间传递信息。可以使用无参数的SBIP端口来表示GTS的事件。其转换规则如下所示。
(5)迁移的转换规则
GTS中的迁移是用
(6)断言的转换规则
断言主要是流变量的转换。其工作原理是GTS模型在初始化后会执行断言,更新流变量的值;并在之后的每次迁移结束后都会执行断言,更新流变量的值。在SBIP中,存在一个变量初始化环节,可用来表达GTS断言的首次执行。对于GTS迁移结束后的断言执行,可以在SBIP的迁移环节中添加断言指令执行来表达。其转换规则如下所示。
(6)断言的转换规则
断言主要是流变量的转换。其工作原理是GTS模型在初始化后会执行断言,更新流变量的值;并在之后的每次迁移结束后都会执行断言,更新流变量的值。在SBIP中,存在一个变量初始化环节,可用来表达GTS断言的首次执行。对于GTS迁移结束后的断言执行,可以在SBIP的迁移环节中添加断言指令执行来表达。其转换规则如下所示。
(7)延时的转换规则
GTS中的延时用于表示事件迁移的时间特征,系统组件的失效率通常可以用指数函数描述的延时来表达。SBIP中的延时用端口的特定注释来表达。GTS中描述的延时与SBIP描述的延时具有相同的语义,在转换过程中可以直接进行映射,其转换规则如下所示。
具体实施例
考虑一个冷却系统(如图2所示),冷却系统通过两条相同的管道将冷却剂从水箱提供给反应堆,每条轨道都由一个泵组成,并共用一个水箱。将图2所示的冷却系统中的具体组件水箱、管道、泵和反应堆分别用变量T、Line、P和Reactor表示。变量T.isEmpty和T.outFlow分别表示水箱的存储情况和水流情况。变量Line1.P1.s和Line2.P2.s分别表示泵1和泵2的工作情况。变量Line1.P1.inFlow表示泵1的水流流入情况,变量Line1.P1.outFlow、Line2.P2.inFlow、Line2.P2.outFlow和Reactor.inFlow含义类似。事件T.getEmpty(delay=exponential(0.3))表示水箱水量为空的概率为0.3。系统要保证两个泵至少有一个保持正常的运转状态,水才能够准确地对反应堆进行冷却操作,但是泵可能发生故障,水箱可能为空,这些原因都可能导致整个系统失效。
冷却系统的GTS模型描述如下:
采用转换算法,生成的SBIP模型如下。对生成的SBIP模型使用语法解析器ANTLR进行解析,模型可生成相应的语法解析树,无错误信息生成。
本发明第二方面公开了一种模型转换系统。所述系统将AltaRica3.0的平展化模型自动转换为SBIP模型,所述AltaRica3.0的平展化模型卫士转换系统GTS模型;所述系统的模块单元被配置为执行:利用语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;利用所述抽象语法树AST对所述卫士转换系统GTS模型的变量部分、事件部分、迁移部分、断言部分和延时部分分别进行转换;其中,转换过程为:对所述卫士转换系统GTS模型的抽象语法树AST进行遍历,根据语言识别工具ANTLR的元语言所定义的变量信息、事件信息、迁移信息、断言信息和断言信息;在所述抽象语法树AST上定位到与所述变量信息对应的节点作为第一组节点,以获取所述第一组节点分包含的变量信息,根据所述SBIP模型中的变量声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述事件信息对应的节点作为第二组节点,以获取所述第二组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述迁移信息对应的节点作为第三组节点,以获取所述第三组节点分包含的迁移信息,根据所述SBIP模型中的迁移声明规则、卫士声明规则和更新函数声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与所述断言信息对应的节点作为第四组节点,以获取所述第四组节点分包含的断言信息,根据所述SBIP模型中的卫士声明规则和更新函数声明规则进行相应的转换操作;在所述抽象语法树AST上定位到与延时信息对应的节点作为第五组节点,以获取所述第五组节点分包含的事件信息,根据所述SBIP模型中的端口声明规则和更新函数声明规则进行相应的转换操作。
根据第二方面的系统,利用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以生成所述卫士转换系统GTS模型的抽象语法树AST;具体包括:使用所述语言识别工具ANTLR的元语言对所述卫士转换系统GTS模型的语法规则进行描述,以编写对应的语法文件gts.g4,运行所述语言识别工具ANTLR的内置程序,形成所述卫士转换系统GTS模型的语法和词法解析器,输入所述卫士转换系统GTS模型代码,检查代码书写正确性,同时生成对应的所述抽象语法树AST。
根据第二方面的系统,所述变量部分的转换规则为:所述卫士转换系统GTS模型中的状态变量和流变量以所述SBIP模型的普通变量来表示,其中,所述卫士转换系统GTS模型的变量初始化关键词init和reset转换为所述SBIP模型中的data,所述卫士转换系统GTS模型的变量类型根据所述SBIP模型的基本类型对应法则进行转换。
根据第二方面的系统,所述迁移部分的转换规则为:
将所述卫士转换系统GTS模型中的迁移定义:
“transition” EventReference “:” Expression
“->” Instruction
转换为:
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “}”
作为所述SBIP模型中的迁移定义;
其中,transition表示所述卫士转换系统GTS模型中的迁移关键词,EventReference表示所述卫士转换系统GTS模型中的迁移名称,Expression表示所述卫士转换系统GTS模型中的迁移表达式判定,Instruction表示所述卫士转换系统GTS模型中的迁移指令,所述卫士转换系统GTS模型中的迁移定义用于定义一个迁移EventReference,当定义的迁移满足迁移表达式Expression时,所述定义的迁移执行指令Instruction;
其中,port_name表示所述SBIP模型中端口名称,place_name表示所述SBIP模型中位置名称,当所述SBIP模型中的迁移定义所定义的迁移满足所述迁移表达式Expression时,迁移过程通过端口port_name从位置place_name移动到位置place_name,并执行所述指令Instruction;
转换过程中,所述卫士转换系统GTS模型的迁移名称EventReference与所述SBIP模型的端口名称port_name对应,所述卫士转换系统GTS模型不存在位置定义,转换后的所述SBIP模型的位置为用户默认位置。
根据第二方面的系统,所述断言部分的转换规则为:
将所述卫士转换系统GTS模型中的断言定义:
“assertion” Instruction1 “;”
转换为:
“initial to” place_name “do” Instruction1
“on” port_name “from” place_name “to”
place_name “provided” “(” Expression “)”
“delayable do” “{” Instruction “,” Instruction1 “}”
作为所述SBIP模型中的断言定义;
其中,assertion表示所述卫士转换系统GTS模型中的断言关键词,Instruction1表示所述卫士转换系统GTS模型中的断言指令,所述卫士转换系统GTS模型中的断言定义用于定义一条断言Instruction1;
其中,所述SBIP模型中的断言定义分为两部分,一部分为初始断言,另一部分为迁移中的执行断言;
转换过程中,将所述卫士转换系统GTS模型的断言映射为两部分,所述卫士转换系统GTS模型的断言指令Instruction1转换为所述SBIP模型的所述初始断言中的断言指令,将所述卫士转换系统GTS模型中的断言指令转换为所述SBIP模型迁移中的所述执行断言。
根据第二方面的系统,所述事件部分的延时规则为:
将所述卫士转换系统GTS模型中的延时定义:
“event” Path “(” “delay” = OperatorCall
"(" Expression1 “)” “)”
转换为:
“@stochastic” “(” “dist=” OperatorCall
“,”“cly=”x“,”“param=” Expression1 “)”
“export port” type port_type_name “(” “)”
作为所述SBIP模型中的延时定义;
其中,delay表示所述卫士转换系统GTS模型中的延时关键词,OperatorCall表示所述卫士转换系统GTS模型中的延时函数名称,Expression1表示所述卫士转换系统GTS模型中的延时函数表达式,所述卫士转换系统GTS模型中的延时定义用于定义事件Path遵循OperatorCall函数类型的延时;
其中,所述SBIP模型中的延时定义分为两部分,第一部分对延时特征进行说明,第二部分表示输出端口定义,所述SBIP模型中的延时定义用于定义输出端口port_type_name遵循OperatorCall函数类型的延时。
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种模型转换方法中的步骤。
图3为根据本发明实施例的一种电子设备的结构图,如图3所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种模型转换方法中的步骤。
综上,本发明提出的技术方案实现了AltaRica3.0平展化模型GTS到SBIP模型的自动转换,从而使得AltaRica3.0模型可进行统计模型检测,丰富了AltaRica3.0的安全性分析功能。
本发明提供的技术方案能够达到的技术效果包括:(1)为报文预先构建链式关联关系,在原有序列号等信息基础上强化建链;(2)网络设备通过检查链式关联关系,将数据包转发与检查分离,跳过ACL等检查,提高转发效率;(3)在设备调度资源,最大限度地减少数据包的抖动、丢包、乱序,降低延迟,保证QoS;(4)在接收端链式检查后快速向上层传递等处理,节省网络设备缓存资源、降低CPU开销。
请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 一种从SysML模型到结构模型的转换方法及系统
- 一种SMART 3D三维模型转Flowmaster模型的系统和转换方法