CN115964033A - 基于模型的可视化软件开发工具实现方法 - Google Patents

基于模型的可视化软件开发工具实现方法 Download PDF

Info

Publication number
CN115964033A
CN115964033A CN202310084136.4A CN202310084136A CN115964033A CN 115964033 A CN115964033 A CN 115964033A CN 202310084136 A CN202310084136 A CN 202310084136A CN 115964033 A CN115964033 A CN 115964033A
Authority
CN
China
Prior art keywords
model
lustre
grammar
software development
language
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
Application number
CN202310084136.4A
Other languages
English (en)
Other versions
CN115964033B (zh
Inventor
李浩宇
贾张涛
冯大成
张霄霄
张建伟
王磊
陶金龙
安恒
李雅斯
王云则
庞皓明
金玉川
孔祥炳
邵飒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN202310084136.4A priority Critical patent/CN115964033B/zh
Publication of CN115964033A publication Critical patent/CN115964033A/zh
Application granted granted Critical
Publication of CN115964033B publication Critical patent/CN115964033B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及一种基于模型的可视化软件开发工具实现方法,属于软件系统领域。本发明提出一种基于模型的可视化软件开发工具OnModel,本发明的工具通过扩展Lustre语言、文法设计、元模型设计为模型元素提供理论支撑和约束;以Vue3作为基础开发框架,通过Antv/X6图形编辑器、qasar多功能框架、Electron多平台开发框架等纯前端工具实现建模元素和工具界面;之后生成模型所对应的Lustre代码作为中间语言文件;最后通过调用清华王生原老师团队工具L2C实现可运行C代码的生成。基于模型的软件开发方法对我国关键领域的软件开发具有重要意义,实现了从基于模型软件设计到可执行代码生成全过程。

Description

基于模型的可视化软件开发工具实现方法
技术领域
本发明属于软件系统领域,具体涉及一种基于模型的可视化软件开发工具实现方法。
背景技术
近年来,我国航天领域一直处于飞速发展的阶段,在各大工程中也取得了令人瞩目的成就,航天型号软件的规模与复杂度也在指数级增加,而传统航天型号软件开发方法还处于人工编码阶段,面对如此庞大且复杂的系统会出现耗时过多、代码存在漏洞等问题,这对传统的软件开发模式产生了巨大的冲击。另一方面,随着基于模型的软件相关概念的提出,如基于模型的系统工程(Model Based Systems Enginerring,MBSE)、基于模型的软件设计(Model Based Design,MBD)等,传统的软件开发方式正在逐渐被基于模型的开发方式所替代。
基于模型的软件开发根据对系统进行需求分析和架构设计,建立一个符合需求的完整软件系统模型,并对模型进行验证、仿真、代码生成和代码调试。相比于传统方法,基于模型的方法可以通过可视化模型使开发人员更加直观地理解认知系统功能,将精力集中于功能逻辑的实现而不用在开发细节上耗费过多时间。基于模型的软件开发方法在航空航天、汽车制造等领域已得到广泛应用,也诞生了许多基于模型的工具和方法如UML、AADL、SysML、MagicDraw、Simulink、Scade等,每一类工具或方法都有各自的优势和擅长的领域,这些工具对于促进我国关键领域软件技术发展水平有重要意义。
但是当下国内在这一领域的发展还处于起步阶段,基于以上情况,通过对Scade深入理解提出一种基于模型的可视化软件开发技术,通过拓展Lustre语言进行可视化建模,最后生成对应的代码文件。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种基于模型的可视化软件开发工具实现方法。
(二)技术方案
为了解决上述技术问题,本发明提出一种基于模型的可视化软件开发工具实现方法,该方法包括如下步骤:
第一步、扩展Lustre语言
在Lustre语言的基础上,引入了状态机和更多时序相关的功能算子,形成扩展Lustre语言;
第二步、文法设计
对扩展Lustre语言进行对应文法定义,为后续元模型构建以及建模元素设计提供基础;
第三步、元模型构建
元模型定义了某一模型的规范,规定了组成模型的各种元素之间的关系,元模型与第二步中的文法一致,还对部分建模元素进行抽象;
第四步、建模元素实现
通过对元模型的实例化得到具体可视化建模元素;
第五步、Lustre代码生成
基于第四步实现的建模元素,进行可视化建模过程,得到系统功能和结构的直观表达,之后通过将模型转化为持久化XML文件进行保存,并通过X2L工具实现从持久化文件到Lustre代码的转化;
第六步、可运行C代码生成
通过调用L2C工具将Lustre代码转化为可运行C代码。
进一步地,所述第二步中的文法定义包括:函数定义(Function)、包声明(package_decl)、方法声明(user_op_decl)和等式声明(equation)。
进一步地,所述第四步具体包括:采取纯前端的开发方法,以Vue3作为开发基本框架,通过Antv/X6图形编辑器实现了对建模元素的图形化构建,通过quasar实现了工具界面、传递vue指令和调用可选式插件,最后通过Electron框架进行打包,实现对多平台的支持。
进一步地,所述第一步中,通过引入状态机state_machine,并通过文法对状态机相关的规则进行定义,规定了控制流和控制流、控制流和数据流之间的嵌套关系;通过Lustre中的时序算子实现不同周期数据之间的初始化和传递功能;经过扩展的Lustre语言通过Package划分函数模块,在Type、Constant全局数据下定义全局属性,通过Operator、Node来定义函数类型是否与时序相关,之后在每一个函数内通过函数体元素对函数实现构建,通过引入状态机实现了控制流和数据流交互;扩展Lustre语言核心思想是通过数据流和控制流最终实现对一个拥有时序关系和状态迁移系统的构建。
进一步地,所述第二步中,Lustre语言的文法包括:系统由声明组成;声明由Package和全局数据组成;Package由声明组成;用户自定义的函数由函数声明和函数体组成;函数体由等式组成;等式包括简单数据流和控制流模块;控制流模块下包括状态机和时钟模块;状态机下包括不同的状态声明;状态声明下包括迁移条件和状态机内部逻辑;状态机内部逻辑通过等式实现。
进一步地,所述第三步中,元模型相当于对模型构建了一个最小闭包空间,所有元素之间的的操作均符合该空间的约束;其中File作为整个系统的入口,Package划分函数模块,通过自身关联实现Package的嵌套,通过与Operator关联实现了对Equation的包含关系;Equation通过与Variable、Expression关联,规定了等式连接的元素内容;Expression作为最高层抽象,能实例化为具体模型元素;通过与Translation关联实现了对状态机的包含关系。
进一步地,具体模型元素包括:一元操作符UnaryOp、二元操作符BinaryOp和多元操作符NAryOp。
进一步地,所述第四步中,采取纯前端的开发方法,以Vue3作为开发基本框架,通过Antv/X6图形编辑器实现了对建模元素,包括构建基本算子、基本数据流元素和控制流元素,通过quasar实现了工具界面、传递vue指令和调用可选式插件。
进一步地,所述第五步包括:模型搭建完成之后,通过X2L以模型持久化文件作为入口进行遍历;模型通过XML格式文件进行持久化,标签关系与文法规则一致,实现了标签与Lustre文法的映射关系;考虑到持久化文件中涉及到标签之间关联嵌套,通过维护一个标签栈,并对每一个栈内元素的父节点和子节点进行标记,来区别当前元素是否已被处理,当未处理时则继续入栈;当已经被处理时,则进行弹栈操作;当空栈时则说明嵌套关系已经被完全解析,生成Lustre代码。
进一步地,所述第六步包括:对L2C工具的文法内容按照步骤二设计的文法进行修改和扩充,以扩展Lustre代码作为输入,生成可运行C代码。
(三)有益效果
本发明提出一种基于模型的可视化软件开发工具实现方法,本发明提出一种基于模型的可视化软件设计工具OnModel,该工具主要有以下特点:
(1)扩展Lustre语言,在保留其原始特性的基础上实现了对状态机、时序算子和高阶算子的支持,通过数据流和控制流完成对模型的表达,更加满足关键领域建模工具的需求。并设计对应的文法规则和元模型,保证了建模元素和扩展Lustre语言语义和规范的一致性。
(2)开发人员可以更加直观和全面地对系统的总体进行了解,将更多的精力投入软件的设计,减少理解需求文档、设计文档带来的时间开销,通过对模型元素进行拖拽建模,便可以对系统完成搭建。
(3)实现了从基于模型的软件设计到代码生成全过程的贯通,且生成的C代码经过形式化验证,保证其高可信性。
(4)本发明的工具基于Vue3前端框架实现,由于不涉及到后端框架,工具更加轻量化和灵活化;最后通过Electron进行打包,能够满足对不同操作系统平台的适配。
附图说明
图1为本发明的流程图;
图2为本发明的元模型关键部分示意图;
图3为本发明的工具界面示意图;
图4为本发明的Lustre代码示意图;
图5为本发明的可运行C代码示意图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
针对我国当前基于模型的软件系统领域处于起步阶段这一情况,本发明的工具通过扩展Lustre语言、定义文法、设计元模型、建模元素是构建、Lustre语言和C代码生成,完成了基于模型的软件设计到代码生成全过程的功能实现。
本发明提出一种基于模型的可视化软件开发工具OnModel,本发明的工具通过扩展Lustre语言、文法设计、元模型设计为模型元素提供理论支撑和约束;以Vue3作为基础开发框架,通过Antv/X6图形编辑器、qasar多功能框架、Electron多平台开发框架等纯前端工具实现建模元素和工具界面;之后生成模型所对应的Lustre代码作为中间语言文件;最后通过调用清华王生原老师团队工具L2C实现可运行C代码的生成。基于模型的软件开发方法对我国关键领域的软件开发具有重要意义,本发明的工具的提出旨在在该领域为我国的自研工业软件发展尽绵薄之力。
本发明的工具的目的在于为我国关键领域基于模型的软件系统自研工具的发展做出贡献,实现了从基于模型的软件设计到可执行代码生成全过程的贯通。
第一步、扩展Lustre语言
Lustre是一种基于同步假设的数据流语言,广泛应用于嵌入式实时系统,扩展的Lustre语言在其基础上,引入了状态机和更多时序相关的功能算子,更加符合实际应用场景,可以用于描述模型。
第二步、文法设计
文法作为语言的核心可以直观地表现出语言中的各种元素之间的关系和限制,通过对扩展Lustre语言进行对应文法定义,包括函数定义(Node或Function)、包声明(package_decl)、方法声明(user_op_decl)、等式声明(equation)等,可以为后续元模型构建以及建模元素设计提供基础。
第三步、元模型构建
元模型是基于模型进行抽象得到的一种模型概念,定义了某一模型的规范,相当于是文法到具体建模元素之间的转换器,规定了组成模型的各种元素之间的关系,不仅需要与上述步骤中的文法一致,还需要对部分建模元素进行抽象。通过元模型的构建可以将相对抽象的文法规则转化为更为直观的表达,为建模元素的实例化提供依据。
第四步、建模元素实现
通过对元模型的实例化可以得到具体可视化建模元素。本发明的工具建模元素实现部分采取纯前端的开发方法,以Vue3作为开发基本框架,通过Antv/X6图形编辑器实现了对建模元素的图形化构建,通过quasar(一种以Vue3为基础的多功能框架)实现了工具界面、传递vue指令、调用可选式插件等内容,最后通过Electron框架进行打包,实现对多平台的支持。
第五步、Lustre代码生成
基于第四步实现的建模元素,便可以进行可视化建模过程,得到系统功能和结构的直观表达,之后通过将模型转化为持久化XML文件进行保存,并通过自研工具X2L实现从持久化文件到Lustre代码的转化。Lustre文件实现了模型的代码表达,便于后续生成可运行C代码文件。
第六步、可运行C代码生成
通过调用清华L2C工具实现将Lustre代码转化为可运行C代码。
实施例1:
本发明的工具流程如图1所示,具体实施步骤为:
第一步 扩展Lustre语言
Lustre是一种基于同步假设的数据流语言,由P.Caspi和N.Halbwachs联合发明,在同步假设下,系统拥有无限快的处理速度,其输入和输出可以在一个可忽略不计的瞬间进行响应。根据其特性,Lustre广泛用于嵌入式实时系统,尤其是在航空航天、核工程等关键领域得到广泛使用的Scade软件设计功能部分就是基于经过扩展的Lustre语言实现的。
通过引入状态机state_machine,并通过文法对状态机相关的规则进行定义,规定了控制流和控制流、控制流和数据流之间的嵌套关系,具体文法规则见步骤二。通过Lustre中的时序算子实现不同周期数据之间的初始化和传递功能。经过扩展的Lustre语言通过Package划分函数模块,在Type、Constant等全局数据下定义数据类型、常量等全局属性,通过Operator、Node来定义函数类型是否与时序相关,之后在每一个函数内通过函数体元素对函数实现构建,通过引入状态机实现了控制流和数据流交互。扩展Lustre语言核心思想是通过数据流和控制流最终实现对一个拥有时序关系和状态迁移系统的构建,相比于可直接执行的代码,拥有以下特性:
1)更加直观的数据流,在拓展的Lustre语言中所有的数据,包括变量、类型都通过等式实现,通过数据流可以更为清楚地表现出系统中所有数据的依赖关系。
2)引入了时序关系,常见的可执行代码往往只描述了一个周期内的处理逻辑,难以直观的表现出系统在运行时不同时钟周期内的数据关系,通过Lustre中的时序算子如pre、init、fby等,可以实现不同周期数据之间的初始化和传递功能,更为直观地表现出系统在运行时内部的数据关系。
3)拓展了状态机,可以正确地描述系统在运行时不同状态下的功能和数据,通过控制流实现了不同状态间的切换,在每个状态下系统有着对应的操作,如一个最简单的飞行系统,便可分为起飞、飞行和降落三种状态,在每个状态下系统有着不同的功能。
第二步 文法设计
基于上述特性结合Lustre语言文法,定义扩展的Lustre语言核心文法如下。
系统由声明组成:
program
:(decls)*
声明由Package和全局数据如类型、常量、用户自定义的函数等组成:
decls
:OPEN path SEMI
|package_decl
|type_block
|constant_block
|sensor_block
|user_op_decl
Package由声明组成;
package_decl
:PACKAGE(visibility)?ID(decls)*END SEMI
用户自定义的函数由函数声明和函数体组成:
user_op_decl
:op_kind interface_status ID(size_decl)?params RETURNS params(where_decl)?(spec_decl)?opt_body
函数体由等式组成:
opt_body
:SEMI
|equation SEMI
|(signal_block)?(local_block)?LET(equation SEMI)*TEL(SEMI)?
等式主要包括简单数据流和控制流模块:
equation
:simple_equation
|assert
|emission
|control_block return
控制流模块下包括状态机和时钟模块:
control_block
:state_machine
|clocked_block
状态机下包括不同的状态声明:
state_machine
:AUTOMATON(ID)?(state_decl)+
状态声明下包括迁移条件和状态机内部逻辑:
state_decl
:(INITIAL)?(FINAL)?STATE ID(UNLESS(transition SEMI)+)?data_def(UNTIL(transition SEMI)*(SYNCHRO(actions)?fork SEMI)?)?
状态机内部逻辑主要通过等式实现:
data_def
:equation SEMI
|scope
第三步 元模型构建
元模型相当于对模型构建了一个最小闭包空间,所有元素之间的的操作均符合该空间的约束,本发明设计的元模型关键部分如图2所示。
其中File作为整个系统的入口,Package划分函数模块,通过自身关联实现Package的嵌套,通过与Operator关联实现了对Equation的包含关系。Equation通过与Variable、Expression关联,规定了等式连接的元素内容;Expression作为最高层抽象,可以实例化为UnaryOp(一元操作符,如“-”)、BinaryOp(二元操作符,如“/”)、NAryOp(多元操作符,如“+”)等具体模型元素;通过与Translation关联实现了对状态机的包含关系。
第四步 建模元素实现
本发明的工具可视化建模元素实现部分采取纯前端的开发方法,以Vue3作为开发基本框架,通过Antv/X6图形编辑器实现了对建模元素,包括数学运算、逻辑运算等基本算子,Constant、Input、Output等基本数据流元素,State_machine、State等控制流元素的图形化构建,通过quasar(一种以Vue3为基础的多功能框架)实现了工具界面、传递vue指令、调用可选式插件等内容,工具界面如图3所示。
第五步 Lustre代码生成
模型搭建完成之后,通过自研工具X2L以模型持久化文件作为入口进行遍历。本发明的工具下模型通过XML格式文件进行持久化,标签关系与第二步定义的文法规则一致,实现了标签与Lustre文法的映射关系。考虑到持久化文件中涉及到标签之间关联嵌套(如一个状态机可以包含其他状态机),通过维护一个标签栈,并对每一个栈内元素的父节点和子节点进行标记,来区别当前元素是否已被处理,当未处理时则继续入栈;当已经被处理时,则进行弹栈操作;当空栈时则说明嵌套关系已经被完全解析,其为代码如下,生成如图4所示Lustre代码。
第五步可运行C代码生成
L2C是采用类似于CompCert编译器的方法开发的可信编译器,它以Lustre*语言作为源语言,以CompCert的Clight作为目标语言,并且从验证方面也与CompCert完全对接,通过采用对翻译过程本身进行验证保证生成代码的可靠性,是一种面向实际工业应用的同步数据流语言编译器。通过对L2C工具的文法内容按照步骤二设计的文法进行修改和扩充(如引入状态机、高阶算子等)实现对本发明的工具的支持,以扩展Lustre代码作为输入,生成如图5对应的可运行C代码。
实施例2:
基于模型的可视化软件开发工具OnModel的实现主要基于以下步骤:第一步,基于Lustre语言进行扩展,在保留其同步假设的基础上,扩展出对时序关系、高阶运算符和状态机等模块的支持;第二步,基于扩展的Lustre语言进行文法设计,作为后续建模元素之间关系的理论支撑;第三步,通过对文法中的内容进行抽象和实例化进行元模型的构建,元模型作为模型的核心,为建模元素提供了约束;第四步,基于Vue3前端框架构建与元模型对应的可视化建模元素;第五步,根据模型生成对应的Lustre文件作为中间语言;第六步,调用L2C工具实现Lustre文件到可运行C代码生成。本发明的工具实现了从基于模型软件设计到可执行代码生成全过程,为我国关键领域工业软件的发展做出贡献。
本发明提出一种基于模型的可视化软件设计工具OnModel,该工具主要有以下特点:
(1)扩展Lustre语言,在保留其原始特性的基础上实现了对状态机、时序算子和高阶算子的支持,通过数据流和控制流完成对模型的表达,更加满足关键领域建模工具的需求。并设计对应的文法规则和元模型,保证了建模元素和扩展Lustre语言语义和规范的一致性。
(2)开发人员可以更加直观和全面地对系统的总体进行了解,将更多的精力投入软件的设计,减少理解需求文档、设计文档带来的时间开销,通过对模型元素进行拖拽建模,便可以对系统完成搭建。
(3)实现了从基于模型的软件设计到代码生成全过程的贯通,且生成的C代码经过形式化验证,保证其高可信性。
(4)本发明的工具基于Vue3前端框架实现,由于不涉及到后端框架,工具更加轻量化和灵活化;最后通过Electron进行打包,能够满足对不同操作系统平台的适配。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种基于模型的可视化软件开发工具实现方法,其特征在于,
第一步、扩展Lustre语言
在Lustre语言的基础上,引入了状态机和更多时序相关的功能算子,形成扩展Lustre语言;
第二步、文法设计
对扩展Lustre语言进行对应文法定义,为后续元模型构建以及建模元素设计提供基础;
第三步、元模型构建
元模型定义了某一模型的规范,规定了组成模型的各种元素之间的关系,元模型与第二步中的文法一致,还对部分建模元素进行抽象;
第四步、建模元素实现
通过对元模型的实例化得到具体可视化建模元素;
第五步、Lustre代码生成
基于第四步实现的建模元素,进行可视化建模过程,得到系统功能和结构的直观表达,之后通过将模型转化为持久化XML文件进行保存,并通过X2L工具实现从持久化文件到Lustre代码的转化;
第六步、可运行C代码生成
通过调用L2C工具将Lustre代码转化为可运行C代码。
2.如权利要求1所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第二步中的文法定义包括:函数定义(Funct ion)、包声明(package_decl)、方法声明(user_op_decl)和等式声明(equation)。
3.如权利要求1所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第四步具体包括:采取纯前端的开发方法,以Vue3作为开发基本框架,通过Antv/X6图形编辑器实现了对建模元素的图形化构建,通过quasar实现了工具界面、传递vue指令和调用可选式插件,最后通过Electron框架进行打包,实现对多平台的支持。
4.如权利要求1-3任一项所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第一步中,通过引入状态机state_machine,并通过文法对状态机相关的规则进行定义,规定了控制流和控制流、控制流和数据流之间的嵌套关系;通过Lustre中的时序算子实现不同周期数据之间的初始化和传递功能;经过扩展的Lustre语言通过Package划分函数模块,在Type、Constant全局数据下定义全局属性,通过Operator、Node来定义函数类型是否与时序相关,之后在每一个函数内通过函数体元素对函数实现构建,通过引入状态机实现了控制流和数据流交互;扩展Lustre语言核心思想是通过数据流和控制流最终实现对一个拥有时序关系和状态迁移系统的构建。
5.如权利要求4所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第二步中,Lustre语言的文法包括:系统由声明组成;声明由Package和全局数据组成;Package由声明组成;用户自定义的函数由函数声明和函数体组成;函数体由等式组成;等式包括简单数据流和控制流模块;控制流模块下包括状态机和时钟模块;状态机下包括不同的状态声明;状态声明下包括迁移条件和状态机内部逻辑;状态机内部逻辑通过等式实现。
6.如权利要求5所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第三步中,元模型相当于对模型构建了一个最小闭包空间,所有元素之间的的操作均符合该空间的约束;其中File作为整个系统的入口,Package划分函数模块,通过自身关联实现Package的嵌套,通过与Operator关联实现了对Equation的包含关系;Equation通过与Variable、Expression关联,规定了等式连接的元素内容;Expression作为最高层抽象,能实例化为具体模型元素;通过与Translation关联实现了对状态机的包含关系。
7.如权利要求6所述的基于模型的可视化软件开发工具实现方法,其特征在于,具体模型元素包括:一元操作符UnaryOp、二元操作符BinaryOp和多元操作符NAryOp。
8.如权利要求6所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第四步中,采取纯前端的开发方法,以Vue3作为开发基本框架,通过Antv/X6图形编辑器实现了对建模元素,包括构建基本算子、基本数据流元素和控制流元素,通过quasar实现了工具界面、传递vue指令和调用可选式插件。
9.如权利要求8所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第五步包括:模型搭建完成之后,通过X2L以模型持久化文件作为入口进行遍历;模型通过XML格式文件进行持久化,标签关系与文法规则一致,实现了标签与Lustre文法的映射关系;考虑到持久化文件中涉及到标签之间关联嵌套,通过维护一个标签栈,并对每一个栈内元素的父节点和子节点进行标记,来区别当前元素是否已被处理,当未处理时则继续入栈;当已经被处理时,则进行弹栈操作;当空栈时则说明嵌套关系已经被完全解析,生成Lustre代码。
10.如权利要求9所述的基于模型的可视化软件开发工具实现方法,其特征在于,所述第六步包括:对L2C工具的文法内容按照步骤二设计的文法进行修改和扩充,以扩展Lustre代码作为输入,生成可运行C代码。
CN202310084136.4A 2023-01-16 2023-01-16 基于模型的可视化软件开发工具实现方法 Active CN115964033B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310084136.4A CN115964033B (zh) 2023-01-16 2023-01-16 基于模型的可视化软件开发工具实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310084136.4A CN115964033B (zh) 2023-01-16 2023-01-16 基于模型的可视化软件开发工具实现方法

Publications (2)

Publication Number Publication Date
CN115964033A true CN115964033A (zh) 2023-04-14
CN115964033B CN115964033B (zh) 2023-09-26

Family

ID=87352855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310084136.4A Active CN115964033B (zh) 2023-01-16 2023-01-16 基于模型的可视化软件开发工具实现方法

Country Status (1)

Country Link
CN (1) CN115964033B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150005A (zh) * 2023-01-16 2023-05-23 北京计算机技术及应用研究所 基于扩展Lustre语言的模型形式化验证方法
CN117648081A (zh) * 2024-01-30 2024-03-05 北京微迪航天科技有限公司 一种可视化软件集成开发方法、系统及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041554B1 (en) * 2007-06-06 2011-10-18 Rockwell Collins, Inc. Method and system for the development of high-assurance microcode
CN103646194A (zh) * 2013-11-29 2014-03-19 北京广利核系统工程有限公司 一种基于形式化验证的同步数据流程序的可信排序方法
CN108196827A (zh) * 2017-12-08 2018-06-22 南京航空航天大学 非形式化需求规约模板到形式化设计模型的自动转换方法
CN114035785A (zh) * 2021-10-21 2022-02-11 南京航空航天大学 一种基于自然语言需求的aadl模型组合验证性质自动生成方法
CN114257394A (zh) * 2021-10-25 2022-03-29 南京林业大学 一种基于模型检测的攻击图生成方法
CN115062463A (zh) * 2022-06-09 2022-09-16 中国兵器工业信息中心 一种基于举证结构建模语言的建模系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041554B1 (en) * 2007-06-06 2011-10-18 Rockwell Collins, Inc. Method and system for the development of high-assurance microcode
CN103646194A (zh) * 2013-11-29 2014-03-19 北京广利核系统工程有限公司 一种基于形式化验证的同步数据流程序的可信排序方法
CN108196827A (zh) * 2017-12-08 2018-06-22 南京航空航天大学 非形式化需求规约模板到形式化设计模型的自动转换方法
CN114035785A (zh) * 2021-10-21 2022-02-11 南京航空航天大学 一种基于自然语言需求的aadl模型组合验证性质自动生成方法
CN114257394A (zh) * 2021-10-25 2022-03-29 南京林业大学 一种基于模型检测的攻击图生成方法
CN115062463A (zh) * 2022-06-09 2022-09-16 中国兵器工业信息中心 一种基于举证结构建模语言的建模系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
WENTAO TANG等: "A Verification Method for Security and Safety of IoT Applications Through DSM Language and Lustre", 《ICISS \'20: PROCEEDINGS OF THE 3RD INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND SYSTEMS》, pages 166 - 170 *
尚书等: "可信编译器 L2C 的核心翻译步骤及其设计与实现", 《软件学报》, vol. 28, no. 5, pages 1233 - 1246 *
张智慧等: "核安全级控制算法描述语言的可信编译研究", 《自动化仪表》, vol. 42, no. 1, pages 106 - 111 *
迪捷软件: "L2C中Lustre语义的环境定义", pages 1 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/digi2020/article/details/121155979> *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150005A (zh) * 2023-01-16 2023-05-23 北京计算机技术及应用研究所 基于扩展Lustre语言的模型形式化验证方法
CN116150005B (zh) * 2023-01-16 2023-11-28 北京计算机技术及应用研究所 基于扩展Lustre语言的模型形式化验证方法
CN117648081A (zh) * 2024-01-30 2024-03-05 北京微迪航天科技有限公司 一种可视化软件集成开发方法、系统及存储介质
CN117648081B (zh) * 2024-01-30 2024-05-07 北京微迪航天科技有限公司 一种可视化软件集成开发方法、系统及存储介质

Also Published As

Publication number Publication date
CN115964033B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
Alonso et al. V3cmm: A 3-view component meta-model for model-driven robotic software development
CN115964033A (zh) 基于模型的可视化软件开发工具实现方法
KR100995592B1 (ko) 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법
Combemale et al. Concern-oriented language development (COLD): Fostering reuse in language engineering
Selic The theory and practice of modeling language design for model-based software engineering—a personal perspective
US20050283758A1 (en) Bi-directional programming system/method for program development
CN111176639A (zh) 一种从SysML到AltaRica的自动化模型转换方法
Gargantini et al. A semantic framework for metamodel-based languages
US20070168929A1 (en) Design pattern and method of transformation of an object model
Wood et al. A model-driven development approach to mapping UML state diagrams to synthesizable VHDL
CN108037913B (zh) xUML4MC模型到MSVL语言程序的转换方法、计算机可读存储介质
Egea et al. Formal executable semantics for conformance in the MDE framework
CN110109658B (zh) 一种基于形式化模型的ros代码生成器及代码生成方法
Bucaioni et al. A metamodel for the Rubus component model: extensions for timing and model transformation from EAST-ADL
Buchmann et al. Using triple graph grammars to realise incremental round‐trip engineering
Dillon et al. Inference graphs: A computational structure supporting generation of customizable and correct analysis components
CN116126304B (zh) 基于XML的扩展Lustre代码生成方法
CN111679809B (zh) 一种基于Noesis逻辑的程序开发与验证方法及系统
CN107291435B (zh) 一种不确定性环境下混成aadl模型量化分析方法
Engelen From napkin sketches to reliable software
Dan et al. Towards a formal behavioral semantics for UML interactions
SEMPREBON Model based robot development: From AADL to ROS through code generation
Barashev Translating semantic networks to UML class diagrams
Kumar et al. Reverse Engineering A Generic Software Exploration Environment Is Made Of Object Oriented Frame Work And Set Of Customizable Tools.
Garcia et al. Lifting ROS to Model-Driven Development: Lessons Learned from a bottom-up approach

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