基于模型的可视化软件开发工具实现方法与流程

文档序号:33824899发布日期:2023-04-19 21:06阅读:67来源:国知局
基于模型的可视化软件开发工具实现方法与流程

本发明属于软件系统领域,具体涉及一种基于模型的可视化软件开发工具实现方法。


背景技术:

1、近年来,我国航天领域一直处于飞速发展的阶段,在各大工程中也取得了令人瞩目的成就,航天型号软件的规模与复杂度也在指数级增加,而传统航天型号软件开发方法还处于人工编码阶段,面对如此庞大且复杂的系统会出现耗时过多、代码存在漏洞等问题,这对传统的软件开发模式产生了巨大的冲击。另一方面,随着基于模型的软件相关概念的提出,如基于模型的系统工程(model based systems enginerring,mbse)、基于模型的软件设计(model based design,mbd)等,传统的软件开发方式正在逐渐被基于模型的开发方式所替代。

2、基于模型的软件开发根据对系统进行需求分析和架构设计,建立一个符合需求的完整软件系统模型,并对模型进行验证、仿真、代码生成和代码调试。相比于传统方法,基于模型的方法可以通过可视化模型使开发人员更加直观地理解认知系统功能,将精力集中于功能逻辑的实现而不用在开发细节上耗费过多时间。基于模型的软件开发方法在航空航天、汽车制造等领域已得到广泛应用,也诞生了许多基于模型的工具和方法如uml、aadl、sysml、magicdraw、simulink、scade等,每一类工具或方法都有各自的优势和擅长的领域,这些工具对于促进我国关键领域软件技术发展水平有重要意义。

3、但是当下国内在这一领域的发展还处于起步阶段,基于以上情况,通过对scade深入理解提出一种基于模型的可视化软件开发技术,通过拓展lustre语言进行可视化建模,最后生成对应的代码文件。


技术实现思路

1、(一)要解决的技术问题

2、本发明要解决的技术问题是如何提供一种基于模型的可视化软件开发工具实现方法。

3、(二)技术方案

4、为了解决上述技术问题,本发明提出一种基于模型的可视化软件开发工具实现方法,该方法包括如下步骤:

5、第一步、扩展lustre语言

6、在lustre语言的基础上,引入了状态机和更多时序相关的功能算子,形成扩展lustre语言;

7、第二步、文法设计

8、对扩展lustre语言进行对应文法定义,为后续元模型构建以及建模元素设计提供基础;

9、第三步、元模型构建

10、元模型定义了某一模型的规范,规定了组成模型的各种元素之间的关系,元模型与第二步中的文法一致,还对部分建模元素进行抽象;

11、第四步、建模元素实现

12、通过对元模型的实例化得到具体可视化建模元素;

13、第五步、lustre代码生成

14、基于第四步实现的建模元素,进行可视化建模过程,得到系统功能和结构的直观表达,之后通过将模型转化为持久化xml文件进行保存,并通过x2l工具实现从持久化文件到lustre代码的转化;

15、第六步、可运行c代码生成

16、通过调用l2c工具将lustre代码转化为可运行c代码。

17、进一步地,所述第二步中的文法定义包括:函数定义(function)、包声明(package_decl)、方法声明(user_op_decl)和等式声明(equation)。

18、进一步地,所述第四步具体包括:采取纯前端的开发方法,以vue3作为开发基本框架,通过antv/x6图形编辑器实现了对建模元素的图形化构建,通过quasar实现了工具界面、传递vue指令和调用可选式插件,最后通过electron框架进行打包,实现对多平台的支持。

19、进一步地,所述第一步中,通过引入状态机state_machine,并通过文法对状态机相关的规则进行定义,规定了控制流和控制流、控制流和数据流之间的嵌套关系;通过lustre中的时序算子实现不同周期数据之间的初始化和传递功能;经过扩展的lustre语言通过package划分函数模块,在type、constant全局数据下定义全局属性,通过operator、node来定义函数类型是否与时序相关,之后在每一个函数内通过函数体元素对函数实现构建,通过引入状态机实现了控制流和数据流交互;扩展lustre语言核心思想是通过数据流和控制流最终实现对一个拥有时序关系和状态迁移系统的构建。

20、进一步地,所述第二步中,lustre语言的文法包括:系统由声明组成;声明由package和全局数据组成;package由声明组成;用户自定义的函数由函数声明和函数体组成;函数体由等式组成;等式包括简单数据流和控制流模块;控制流模块下包括状态机和时钟模块;状态机下包括不同的状态声明;状态声明下包括迁移条件和状态机内部逻辑;状态机内部逻辑通过等式实现。

21、进一步地,所述第三步中,元模型相当于对模型构建了一个最小闭包空间,所有元素之间的的操作均符合该空间的约束;其中file作为整个系统的入口,package划分函数模块,通过自身关联实现package的嵌套,通过与operator关联实现了对equation的包含关系;equation通过与variable、expression关联,规定了等式连接的元素内容;expression作为最高层抽象,能实例化为具体模型元素;通过与translation关联实现了对状态机的包含关系。

22、进一步地,具体模型元素包括:一元操作符unaryop、二元操作符binaryop和多元操作符naryop。

23、进一步地,所述第四步中,采取纯前端的开发方法,以vue3作为开发基本框架,通过antv/x6图形编辑器实现了对建模元素,包括构建基本算子、基本数据流元素和控制流元素,通过quasar实现了工具界面、传递vue指令和调用可选式插件。

24、进一步地,所述第五步包括:模型搭建完成之后,通过x2l以模型持久化文件作为入口进行遍历;模型通过xml格式文件进行持久化,标签关系与文法规则一致,实现了标签与lustre文法的映射关系;考虑到持久化文件中涉及到标签之间关联嵌套,通过维护一个标签栈,并对每一个栈内元素的父节点和子节点进行标记,来区别当前元素是否已被处理,当未处理时则继续入栈;当已经被处理时,则进行弹栈操作;当空栈时则说明嵌套关系已经被完全解析,生成lustre代码。

25、进一步地,所述第六步包括:对l2c工具的文法内容按照步骤二设计的文法进行修改和扩充,以扩展lustre代码作为输入,生成可运行c代码。

26、(三)有益效果

27、本发明提出一种基于模型的可视化软件开发工具实现方法,本发明提出一种基于模型的可视化软件设计工具onmodel,该工具主要有以下特点:

28、(1)扩展lustre语言,在保留其原始特性的基础上实现了对状态机、时序算子和高阶算子的支持,通过数据流和控制流完成对模型的表达,更加满足关键领域建模工具的需求。并设计对应的文法规则和元模型,保证了建模元素和扩展lustre语言语义和规范的一致性。

29、(2)开发人员可以更加直观和全面地对系统的总体进行了解,将更多的精力投入软件的设计,减少理解需求文档、设计文档带来的时间开销,通过对模型元素进行拖拽建模,便可以对系统完成搭建。

30、(3)实现了从基于模型的软件设计到代码生成全过程的贯通,且生成的c代码经过形式化验证,保证其高可信性。

31、(4)本发明的工具基于vue3前端框架实现,由于不涉及到后端框架,工具更加轻量化和灵活化;最后通过electron进行打包,能够满足对不同操作系统平台的适配。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1