CN110109658A - 一种基于形式化模型的ros代码生成器及代码生成方法 - Google Patents
一种基于形式化模型的ros代码生成器及代码生成方法 Download PDFInfo
- Publication number
- CN110109658A CN110109658A CN201910307270.XA CN201910307270A CN110109658A CN 110109658 A CN110109658 A CN 110109658A CN 201910307270 A CN201910307270 A CN 201910307270A CN 110109658 A CN110109658 A CN 110109658A
- Authority
- CN
- China
- Prior art keywords
- model
- code
- ros
- conversion
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于形式化模型的ROS代码生成器,由四部分构成:输入模块,Java解析器,逻辑控制器以及输出模块;及一种基于形式化模型的ROS代码生成方法,包括如下步骤:S1、建立模型;S2、解析模型数据并且构建数据表;S3、定义模型到代码的映射规则;S4、进行代码生成。本发明优点及功效在于:本发明能够从UPPAAL工具验证的时间自动机模型中快速、高效地生成可执行的C++代码,不仅避免了手写代码容易引入错误的情况,而且极高地提高了代码生成的效率,提高准确率,从而缩短了软件开发的周期。
Description
技术领域
本发明涉及一种基于形式化模型的ROS代码生成器及代码生成方法,是一种软件开发 领域的自动代码生成技术,主要应用于高可靠性机器人系统的从设计模型到代码的自动实 现系统,属于软件开发领域。
背景技术
近年来,机器人被广泛地应用于各种各样的工业和生活领域,极大地推动了社会的发 展。然而,机器人在推动社会快速发展的同时,也存在着许多的安全隐患,这要求机器人 系统的开发必须满足其严格的安全性和可靠性需求。
一种典型的方法是利用模型验证技术来检验系统的安全性需求和行为规范。该方法首 先利用时间自动机对机器人系统的内部交互进行建模,然后根据模型抽象出与系统安全性 和可靠性相关的需求规约并且将其转换成计算树逻辑。最后,利用模型验证技术来验证系 统的安全性能是否得到满足。然而这种可视化的数据模型仅仅是在系统设计的初级阶段对 系统交互行为的底层抽象,其并不能直接运行在机器人操作系统上。因此,为了将模型的 行为控制映射为目标平台的动作输出,我们需要将可视化的模型结构转换成与其具有相同 时序逻辑的操作代码。然而手动的代码转换不仅会引入许多人为的错误,系统的正确性难 以被保障;而且还会降低软件的开发效率,延长软件的开发周期。
针对这一问题,研究者将自动代码生成技术应用于模型驱动开发领域,并在此基础上 提出了多种解决方案。乌普萨拉大学开发的原型C代码生成工具Times tool是一个包含自 动代码生成功能的集成开发工具包。该工具能够从含有任务调度的时间自动机中自动地生 成可执行的C代码。但生成的代码主要是用于基于BrickOs操作系统的乐高机器人,而ROS 开发环境的主要特点比如节点,话题等没有被嵌入到生成的代码框架。开源的模型驱动开 发工具ROSMOD利用元语言对ROS工作空间进行建模并且能够将构造的系统模型自动地 转换成可执行的VHDL代码。然而,代码转换单元只负责将嵌入在模型中的业务逻辑代码 提取出来并放置在生成骨架的相应部分,对于模型和操作代码的严格的形式化检测功能尚 未被支持。
发明内容
为了保证系统的形式化模型与其实现机制的一致性,同时提高代码生成的效率和正确 性,本发明提供一种基于形式化模型的ROS代码生成器及代码生成方法。本发明能够从满 足UPPAAL验证需求的机器人系统模型中自动地生成可执行的C++代码,生成的代码提供 了一种与ROS系统相适应的框架结构,并且支持新的、可模块化的ROS指令的封装和调用,具有极大的灵活性和可扩展性。通过在ROS平台上运行生成的代码,能够实现与手写 代码一致的机器人的运动控制。本发明不仅降低了手工编码引入错误的概率,而且提高了 代码生成的质量和效率,从而为ROS系统的开发提供了便利。
本发明一种基于形式化模型的ROS代码生成器,设计原理如图1所示。它是由四部分 构成:输入模块(Input),Java解析器(Parser),逻辑控制器(Controller)以及输出模块(Output)。下面分别对其介绍:
输入模块:所述的输入模块用于指定模型文件的类型,系统的时间自动机模型被映射 成一个XML文件,该文件采用了抽象语法树结构来存储和定义模型中的状态、转换等数 据元素以及元素之间的依赖关系。
Java解析器:该组件是代码生成器的核心组件之一,它实现了从模型到代码的低层抽 象。首先,解析器读取XML文档并且使用Dom4j技术提取文件中的数据元素;然后, 根据所提取的数据元素构建一系列的数据表,其中包含三张静态查找表(locations,syncs,tran_syncs)和一张动态查找表(transitions)。数据表之间的映射关系由模型自身的 控制转换逻辑所决定。
逻辑控制器:逻辑控制器是代码生成器的另一个核心组件,它实现了从模型到代码的 高层抽象。首先,逻辑控制器读取表格中的数据元素,然后根据模型内部的状态转换机制 定义一系列的时序控制规则,比如,转换分支的选择,转换条件的评估以及同步时钟的设 置等。最后,逻辑控制器将一系列的与时间自动机模型的控制转换相一致的时序规则抽象 成逻辑规约的形式,并且将该规约用C++代码的形式呈现出来。
输出模块:该部分将以C++代码形式所表示的抽象时序规约写入到C++文件中,其中包含三个源文件(.cpp)和四个头文件(.h)。
一种基于形式化模型的ROS代码生成方法,具体包括如下步骤:
S1、建立模型
模型构建单元主要负责对系统进行可视化建模,系统组件间的交互能够被建模成一个 时间自动机网络,系统在不同时刻的状态被映射成模型中的节点,状态之间的迁移对应于 模型里的转换;一旦标记在边上或节点中的条件满足指定要求,则转换发生。
文本编辑器定义了模型转换中涉及到的变量、函数,以此来支持转换的执行。
S2、解析模型数据并且构建数据表
时间自动机的存储和转换依赖于一系列由Java解析器构建的数据表;其中,静态表 存储了模型中可视化的数据元素,表中数据元素之间的依赖关系由该元素在模型中的排列 方式决定;动态表是用来描述时间自动机模型分支转换逻辑的主要设计手段,状态之间的 转换被映射成动态表的查找和更新;通过迭代地读取和修改数据表中的数据能够实现与时 间自动机模型相同的转换输出。
S3、定义模型到代码的映射规则
具体包含三个设计模块:Committed模块,主控逻辑框架以及时钟处理单元;其中,主控逻辑框架用来评估模型的输出转换,使得生成的代码能够与模型保持一致的状态输出; Committed模块用来改变模型当前的输出转换,它在保证整个时间自动机模型时序逻辑正 确性的前提下,优先执行了Committed状态输出的转换。时钟处理单元实现了系统时钟的 同步增长功能,从而解决时钟模块与不同目标平台之间的缺口。
S4、进行代码生成
通过代码生成器能够自动地将模型转换成C++代码并写入到七个C++文件中。这七个 文件包含了三个.cpp文件和四个.h文件。
所述的七个文件包含了三个.cpp文件:*.cpp,ros_kernel.cpp,*_init.cpp,四个.h文件: *_init.h,*.h,ros_interface.h,ros_system.h,其中文件*.cpp是程序执行的入口,它存储了 一系列数据表和相关函数的定义,ros_kernel.cpp中包含了时间自动机模型的核心算法设 计,该算法描述了模型的转换控制逻辑,*_init.cpp文件初始化了ROS工作空间以及一些 定义的数据变量;其它四个.h文件定义了结构体变量和ROS封装模块来支持.cpp文件的运 行。
本发明一种基于形式化模型的ROS代码生成器及代码生成方法,其优点及功效在于: 本发明能够从UPPAAL工具验证的时间自动机模型中快速、高效地生成可执行的C++代码, 不仅避免了手写代码容易引入错误的情况,而且极高地提高了代码生成的效率,提高准确 率,从而缩短了软件开发的周期。
附图说明
图1所示为本发明一种基于形式化模型的ROS代码生成器的设计原理图。
图2所示为本发明的设计框架。
图3所示为本发明模型转换过程中的动态表结构。
图4所示为本发明模型转换规则中的主控逻辑设计流程。
图5所示为本发明生成代码的关联图。
具体实施方案
下面结合附图和实施案例,对本发明的技术方案做进一步的说明。
(一)实现平台
本发明使用的形式化建模工具为UPPAAL,适用于可以被描述为非确定性的并行过程 的积的系统。生成的代码用于Linux系统下的ROS平台来对其正确性和有效性进行测试。
如图1所示,首先将描述了机器人系统时序控制的时间自动机模型输入到代码生成工 具中,其次,代码生成工具中的解析器提取了模型中的数据元素并由此构建了一系列的数 据表;接着,逻辑控制器根据数据表中的数据元素定义了与模型的转换控制逻辑相关的一 系列的映射规则,该映射规则被转换成C++代码的形式存储在存储器中。最后,将自动生 成的C++代码应用到ROS台上来实现与手写代码相同的控制输出。
(二)方法
1.建立模型
模型构建单元主要负责对系统进行可视化建模。系统组件间的交互能够被建模成一个 时间自动机网络,系统在不同时刻的状态被映射成模型中的节点,状态之间的迁移对应于 模型里的转换。一旦标记在边上或节点中的条件满足指定要求,则转换发生。文本编辑器 定义了模型转换中涉及到的变量、函数等以此来支持转换的执行。为了使时间自动机更加 准确地反映系统的行为,具有更高级和复杂特点的元素被加入到系统模型中。
Invariant:该属性是可以包含时钟变量、整型变量以及常量的表达式。在表达式中,主 要采用x<e或x<=e等形式的条件,也可以是二者的条件合取,其中,x是时钟变量,e是 常量。
Committed Locations:该属性主要用来处理紧急转换的输出。如果系统模型当前处在Committed状态,那么模型下一次的输出转换将是Committed转换之一。
Guard:该属性代表了条件表达式,它可以包含时钟条件,布尔条件等不同的条件表达 式。一旦当前转换条件满足,则转换发生。
Synchronization:该属性被表示为ch?或ch!形式,其中ch?代表从信道ch上接收一个事件, ch!代表向信道ch上发送一个事件。如果两条转换分别标有ch?与ch!,那么这两条转换称 为互补转换。
2.解析模型数据并且构建数据表
Uppaal时间自动机的存储和转换依赖于一系列由Java解析器构建的数据表。其中, 静态表存储了模型中可视化的数据元素,比如状态,转换以及转换之间的条件约束等。表 中数据元素之间的依赖关系由该元素在模型中的排列方式决定。动态表是用来描述时间自 动机模型分支转换逻辑的主要设计手段,状态之间的转换被映射成动态表的查找和更新。 通过迭代地读取和修改数据表中的数据能够实现与时间自动机模型相同的转换输出。
图3显示了动态表的数据结构。该数据表由若干条记录构成,每一条记录对应于模型中的 一条转换。根据记录在数据表中的存储顺序,依次对其进行从小到大编号,且越先存储的 记录,其编号也越小。每条记录包含七个数据域:active,name,from,to,guard,sync以 及assignment。其中,active是状态转换标志,它用来标识一条转换在当前状态是否可以 被执行;name是用来区别不同转换的标识符;from和to分别代表了一条转换的源状态和 目标状态,且数据域中的数据值是locations数据表的引用。guard存储了转换上的条件评 估;当一条转换发生时往往会执行存储在assignment中的相应操作,比如变量更新和函数 调用等;sync域或者为空或者包含了转换上的同步信号,该数据域中的数据值取自syncs 表。为了确保同一源状态的多条输出转换在同一时刻仅有一条被执行,模型中指定了转换 的优先级。正如图3所示,编号越小的转换(转换的编号与记录编号保持一致),其优先级 越大。
3.定义模型到代码的映射规则
图4所示为模型控制逻辑的程序流程设计,该模块描述了模型的动态转换机制,使得 时间自动机模型与代码能够保持一致的逻辑输出(如状态序列,执行轨迹等),其它的算法 模块都是在该算法的基础上进行的功能模块的设计与优化。在该算法中,包含三个设计模 块:Committed模块,主控逻辑框架以及时钟处理单元。其中,主控逻辑框架用来评估模型的输出转换,使得生成的代码能够与模型保持一致的状态输出;Committed模块用来改变模型当前的输出转换,它在保证整个时间自动机模型时序逻辑正确性的前提下,优先执行了Committed状态输出的转换。时钟处理单元实现了系统时钟的同步增长功能,从而解决了时钟模块与不同目标平台之间的缺口。
下面给出三个核心算法的设计:
(1)主控逻辑框架
(如下表1)Algorithm1是模型控制逻辑的核心算法设计,该算法定义了模型的动态转 换机制,使得模型与代码能够保持一致的逻辑输出;其中,第7-8行查找和执行了标有committed源位置的紧急转换输出,函数committed_cha()用来改变模型当前的输出转换。第9-21行定义了模型的转换控制逻辑。通过执行该段程序,能够确定当前所选择的转换是否可行。如果一条转换上包含同步信号,那么它的互补转换是以同样的方式被评估了,这一过程被描述在5-9行。第23-27行定义了同步时钟的操作模块,该模块的主要功能是实 现模型中的时钟变量与系统时间同步地增长。函数clock_process()判断和修改了位于转换上的时间变量值,需要指出的是,时间变量值的修改基于某一个固定的步长常量,此外,14-17行定义了同步时钟的操作,主要用来模拟系统时间的改变。
表1
(2)同步时钟的设计
同步时钟是Uppaal工具的主要特点之一,它能够保证时间自动机模型之间的实时性交 互。在模型中,时钟变量主要是以不变式(Invariant)或者评估条件(Guard)的形式出现。 其中,不变式被定义在位置结点上,而评估条件存储在转换上。这里,使用数组clocks[] 来存储模型中的时钟变量,且所有的时钟变量以固定的步长同步增加,尽管当前转换的发 生可能仅依赖于其中的某一个时钟变量,如下表2。(如果当前转换的发生依赖于模型中的 某一个时钟变量,那么模型中其他所有的时钟变量以相同的步长同步增加。)
表2
(3)Committed模块的设计
由于Committed结点要优于其他结点进行处理,因此只要转换到达该结点,则必然从 该状态产生输出效果,否则模型会发生死锁现象。图5所示为Committed结点处理流程,变量i代表数据表中一条任意的转换(包含Committed转换),而变量j仅代表模型中Committed状态的输出转换。如果当前状态为Committed状态,则优先评估该状态处所有 的输出转换,否则,按照数据表中转换的定义顺序依次评估。值得注意的是,程序的终止 包含两种情况:(a)模型中不存在可以执行的转换,即正常退出状态;(b)程序中存在其 他可以执行的转换,但是,由于Committed状态的输出转换不满足转换发生的情况,导致 模型的执行发生死锁现象,从而使得程序异常退出。
4.进行代码生成
通过代码生成器能够自动地将模型转换成C++代码并写入到七个C++文件中。这七个 文件包含了三个.cpp文件(*.cpp,ros_kernel.cpp,*_init.cpp)和四个.h文件(*_init.h,*.h, ros_interface.h,ros_system.h),其中文件*.cpp是程序执行的入口,它存储了一系列数据表 和相关函数的定义,ros_kernel.cpp中包含了时间自动机模型的核心算法设计,该算法描述 了模型的转换控制逻辑,*_init.cpp文件初始化了ROS工作空间以及一些定义的数据变量。 其它四个.h文件定义了一些结构体变量和ROS封装模块来支持.cpp文件的运行。七个文件 之间的关联关系如图5所示。
Claims (3)
1.一种基于形式化模型的ROS代码生成器,其特征在于:其由四部分构成:输入模块,Java解析器,逻辑控制器以及输出模块;
所述的输入模块用于指定模型文件的类型,系统的时间自动机模型被映射成一个XML文件,该文件采用了抽象语法树结构来存储和定义模型中的状态、转换等数据元素以及元素之间的依赖关系;
Java解析器:用于实现从模型到代码的低层抽象,所述的解析器读取XML文档并且提取文件中的数据元素;然后,根据所提取的数据元素构建一系列的数据表,其中包含三张静态查找表和一张动态查找表;
逻辑控制器:用于实现从模型到代码的高层抽象,所述的逻辑控制器读取表格中的数据元素,然后根据模型内部的状态转换机制定义时序控制规则,最后逻辑控制器将与时间自动机模型的控制转换相一致的时序规则抽象成逻辑规约的形式,并且将该规约用C++代码的形式呈现出来;
输出模块:用于将以C++代码形式所表示的抽象时序规约写入到C++文件中,其中包含三个源文件和四个头文件。
2.一种基于形式化模型的ROS代码生成方法,其特征在于:该方法具体包括如下步骤:
S1、建立模型
对系统进行可视化建模,系统组件间的交互能够被建模成一个时间自动机网络,系统在不同时刻的状态被映射成模型中的节点,状态之间的迁移对应于模型里的转换;一旦标记在边上或节点中的条件满足指定要求,则转换发生;
其中,文本编辑器定义了模型转换中涉及到的变量、函数,以此来支持转换的执行;
S2、解析模型数据并且构建数据表
时间自动机的存储和转换依赖于一系列由Java解析器构建的数据表;其中,静态表存储了模型中可视化的数据元素,表中数据元素之间的依赖关系由该元素在模型中的排列方式决定;动态表是用来描述时间自动机模型分支转换逻辑的主要设计手段,状态之间的转换被映射成动态表的查找和更新;通过迭代地读取和修改数据表中的数据能够实现与时间自动机模型相同的转换输出;
S3、定义模型到代码的映射规则
具体包含三个设计模块:Committed模块,主控逻辑框架以及时钟处理单元;其中,主控逻辑框架用来评估模型的输出转换,使得生成的代码能够与模型保持一致的状态输出;Committed模块用来改变模型当前的输出转换,它在保证整个时间自动机模型时序逻辑正确性的前提下,优先执行了Committed状态输出的转换;时钟处理单元实现了系统时钟的同步增长功能,从而解决时钟模块与不同目标平台之间的缺口;
S4、进行代码生成
通过代码生成器能够自动地将模型转换成C++代码并写入到七个C++文件中。
3.根据权利要求2所述的一种基于形式化模型的ROS代码生成方法,其特征在于:所述的七个文件包含了三个.cpp文件:*.cpp,ros_kernel.cpp,*_init.cpp,四个.h文件:*_init.h,*.h,ros_interface.h,ros_system.h,其中文件*.cpp是程序执行的入口,它存储了一系列数据表和相关函数的定义,ros_kernel.cpp中包含了时间自动机模型的核心算法设计,该算法描述了模型的转换控制逻辑,*_init.cpp文件初始化了ROS工作空间以及一些定义的数据变量;其它四个.h文件定义了结构体变量和ROS封装模块来支持.cpp文件的运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307270.XA CN110109658B (zh) | 2019-04-17 | 2019-04-17 | 一种基于形式化模型的ros代码生成器及代码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307270.XA CN110109658B (zh) | 2019-04-17 | 2019-04-17 | 一种基于形式化模型的ros代码生成器及代码生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109658A true CN110109658A (zh) | 2019-08-09 |
CN110109658B CN110109658B (zh) | 2022-08-23 |
Family
ID=67485666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910307270.XA Active CN110109658B (zh) | 2019-04-17 | 2019-04-17 | 一种基于形式化模型的ros代码生成器及代码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109658B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941422A (zh) * | 2019-11-21 | 2020-03-31 | 山东鲁能软件技术有限公司 | 代码自动生成方法、代码生成器及可读存储介质 |
CN110941932A (zh) * | 2019-11-29 | 2020-03-31 | 大连理工大学 | 一种面向硬件逻辑设计的需求建模与验证方法 |
CN115309380A (zh) * | 2022-10-10 | 2022-11-08 | 深圳鲲云信息科技有限公司 | 一种综合约束代码生成方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070157132A1 (en) * | 2005-12-30 | 2007-07-05 | Tatung Company | Process of automatically translating a high level programming language into a hardware description language |
CN101000541A (zh) * | 2006-01-11 | 2007-07-18 | 大同股份有限公司 | 将高阶程序语言自动转换成硬件描述语言的方法 |
CN104169871A (zh) * | 2011-09-23 | 2014-11-26 | 艾买提·拉扎 | 软件开发方法和装置 |
-
2019
- 2019-04-17 CN CN201910307270.XA patent/CN110109658B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070157132A1 (en) * | 2005-12-30 | 2007-07-05 | Tatung Company | Process of automatically translating a high level programming language into a hardware description language |
CN101000541A (zh) * | 2006-01-11 | 2007-07-18 | 大同股份有限公司 | 将高阶程序语言自动转换成硬件描述语言的方法 |
CN104169871A (zh) * | 2011-09-23 | 2014-11-26 | 艾买提·拉扎 | 软件开发方法和装置 |
Non-Patent Citations (2)
Title |
---|
贾娟娟 等: "ROS中XML-RPC协议实现的形式化验证", 《小型微型计算机系统》 * |
陈盛龙 等: "基于ROS串联机器人虚拟运动控制及仿真研究", 《组合机床与自动化加工技术》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941422A (zh) * | 2019-11-21 | 2020-03-31 | 山东鲁能软件技术有限公司 | 代码自动生成方法、代码生成器及可读存储介质 |
CN110941422B (zh) * | 2019-11-21 | 2023-08-15 | 山东鲁能软件技术有限公司 | 代码自动生成方法、代码生成器及可读存储介质 |
CN110941932A (zh) * | 2019-11-29 | 2020-03-31 | 大连理工大学 | 一种面向硬件逻辑设计的需求建模与验证方法 |
CN115309380A (zh) * | 2022-10-10 | 2022-11-08 | 深圳鲲云信息科技有限公司 | 一种综合约束代码生成方法和装置 |
CN115309380B (zh) * | 2022-10-10 | 2022-12-27 | 深圳鲲云信息科技有限公司 | 一种综合约束代码生成方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110109658B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11829695B2 (en) | Method and system for logic design partitioning | |
CN105550268B (zh) | 大数据流程建模分析引擎 | |
CN1885295B (zh) | 使用逻辑单元建置集成电路 | |
CN101808109B (zh) | 语义Web服务组合的模型转换及形式化验证方法 | |
CN106021816B (zh) | 一种基于行为树的分布式系统行为仿真分析工具的实现方法 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN110109658A (zh) | 一种基于形式化模型的ros代码生成器及代码生成方法 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
CN104598240A (zh) | 一种跨平台的仿真模型开发方法及系统 | |
CN110188385A (zh) | 一种用于电力系统仿真场景建模的方法及系统 | |
CN101673198A (zh) | 一种验证uml模型中动态行为与时序契约的一致性的方法 | |
CN106201480A (zh) | 一种座舱显示控制系统软件架构管理平台 | |
CN104199664B (zh) | 一种基于注释的仿真代码同步生成方法 | |
CN110162297A (zh) | 一种源代码段自然语言描述自动生成方法及系统 | |
CN110190984A (zh) | 一种高效的电力通信系统大规模仿真场景建模方法及系统 | |
CN103220685A (zh) | 基于动态规划的传感器网络软件模型检验方法 | |
CN106951363A (zh) | 一种基于atml的有效载荷自动测试方法 | |
CN109977514B (zh) | 一种雷达同步数据流图模型调度序列生成方法 | |
CN104572268A (zh) | 一种高效动态软硬件划分方法 | |
Dams et al. | Specification and Implementation of Components of a MCRL Toolbox | |
Razik | High-performance computing methods in large-scale power system simulation | |
CN114116779A (zh) | 基于深度学习的电网调控领域信息检索方法、系统和介质 | |
Vassev et al. | Model Checking for Autonomic Systems Specified with ASSL. | |
CN106094561B (zh) | 船舶综合电力推进系统建模仿真方法及装置 | |
Parkhomenko | Complex requirements analysis for the high-level design of Embedded Systems |
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 |