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

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

【技术实现步骤摘要】
基于模型的可视化软件开发工具实现方法


[0001]本专利技术属于软件系统领域,具体涉及一种基于模型的可视化软件开发工具实现方法。

技术介绍

[0002]近年来,我国航天领域一直处于飞速发展的阶段,在各大工程中也取得了令人瞩目的成就,航天型号软件的规模与复杂度也在指数级增加,而传统航天型号软件开发方法还处于人工编码阶段,面对如此庞大且复杂的系统会出现耗时过多、代码存在漏洞等问题,这对传统的软件开发模式产生了巨大的冲击。另一方面,随着基于模型的软件相关概念的提出,如基于模型的系统工程(Model Based Systems Enginerring,MBSE)、基于模型的软件设计(Model Based Design,MBD)等,传统的软件开发方式正在逐渐被基于模型的开发方式所替代。
[0003]基于模型的软件开发根据对系统进行需求分析和架构设计,建立一个符合需求的完整软件系统模型,并对模型进行验证、仿真、代码生成和代码调试。相比于传统方法,基于模型的方法可以通过可视化模型使开发人员更加直观地理解认知系统功能,将精力集中于功能逻辑的实现而不用在开发细节上耗费过多时间。基于模型的软件开发方法在航空航天、汽车制造等领域已得到广泛应用,也诞生了许多基于模型的工具和方法如UML、AADL、SysML、MagicDraw、Simulink、Scade等,每一类工具或方法都有各自的优势和擅长的领域,这些工具对于促进我国关键领域软件技术发展水平有重要意义。
[0004]但是当下国内在这一领域的发展还处于起步阶段,基于以上情况,通过对Scade深入理解提出一种基于模型的可视化软件开发技术,通过拓展Lustre语言进行可视化建模,最后生成对应的代码文件。

技术实现思路

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

【技术保护点】

【技术特征摘要】
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所述的基于模型的可视化软件开发工具实现方法,其特征...

【专利技术属性】
技术研发人员:李浩宇贾张涛冯大成张霄霄张建伟王磊陶金龙安恒李雅斯王云则庞皓明金玉川孔祥炳邵飒
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

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

1