摘要:模型驱动开发以其低错误率、易仿真、易验证的特点,在嵌入式软件开发中被广泛应用.近年来,基于模型的嵌入式软件开发方法及相应工具也在逐渐发展和完善.数据流模型是各种建模工具中使用最为频繁的语义模型,然而,各种工具对于数据流模型的代码生成能力却参差不齐,特别是对于数据分支组件的支持,当前主流的建模工具都采用各种方式来回避复杂的分支建模及对应的代码生成.但是,分支建模是非常重要的,使用分支组件可以更清晰地表现出数据流的数据传递逻辑.为了解决复杂分支建模带来的代码生成难题,针对具有复杂分支组合的数据流模型.提出了一种基于分支调度标记的代码生成方法.在所提出的算法中,首先通过拓扑排序确定模型的调度顺序,再根据不同分支的影响对组件进行分支标记;之后,根据组件的分支标记构造一个基于控制流的代码生成位置表;最后,即可根据代码生成位置表进行各种主流语言的代码生成.通过构造4个具有复杂分支的数据流模型实例进行代码生成,并在生成代码行数和运行时间等方面与Simulink和Ptolemy进行对比,进一步说明该代码生成方法在复杂分支组合情况下的通用性以及所做工作的价值和意义.
Abstract:Model-driven development is widely used in embedded software development because it has a low error rate while it is easy to simulate and verify. In recent years, model-based embedded software development methods and their corresponding tools are also gradually developing and improving. Data flow model is the most frequently used semantic model among all kinds of modeling tools. Nonetheless, the code generation ability of various tools for data flow model is uneven, especially for the branching actors. It is well known that current mainstream modeling tools adopt various ways to avoid complex branch modeling and the generation of its corresponding code. However, branch modeling is very important, and it makes the data transfer logic of the data flow more clearly by using branch actors. In order to solve the problem of code generation caused by complex branch modeling, this study proposed a code generation method based on branch schedule marking for data flow model aimed at complex branch combinations. As for the algorithm proposed in this study, firstly, the scheduling order of the model was determined by topological sorting. Secondly, a code generation location table based on control flow was constructed according to the branch marks which marked by the influence of different branches. Finally, code generation of various mainstream languages could be carried out in terms of the code generation location table. By constructing four instances of data flow models with complex branches for code generation and comparing them with Simulink and Ptolemy in terms of lines of code generation and elapsed time, this study further illustrates the universality of proposed code generation methods in complex branch combinations and the value and significance of this work.
PDF全文下载地址:
http://jos.org.cn/jos/article/pdf/6242
删除或更新信息,请邮件至freekaoyan#163.com(#换成@)
基于分支标记的数据流模型的代码生成方法
本站小编 Free考研考试/2022-01-02
相关话题/代码 数据 软件 工作 语言
以太坊中间语言的可执行语义
摘要:智能合约是实现各类区块链应用的核心软件程序.近期,以太坊区块链平台(Ethereum)上的智能合约暴露出大量错误和安全隐患,在国际上引发了智能合约形式化验证的研究热潮.为提供高可信度的验证结果,智能合约程序语言的形式化必不可少.对以太坊中间语言Yul进行形式化,首次给出了其类型系统和小步操作语 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02面向数据流的ROS2数据分发服务形式建模与分析
摘要:机器人操作系统(robotoperatingsystem,简称ROS)是一种开源的元操作系统,能够在异种计算簇上提供基于消息机制的结构化通信层.为改善ROS1中存在的数据分发实时性、可靠性问题,ROS2提出了面向数据流的数据分发服务机制.采用概率模型检验的方法,分析、验证ROS2系统数据分发机 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02面向持续软件工程的微服务架构技术专题前言
摘要:随着软件互联网化和服务化的高度发展,持续性(continuity)成为现代软件系统的基本特性之一,覆盖从商业策划、软件开发、运维、演化的所有环节,使得软件系统在持续稳定提供功能和服务的同时,软件系统的边界和内部结构始终处于不断变化、持续更新和适应之中,持续软件工程(continuoussoft ...中科院软件研究所 本站小编 Free考研考试 2022-01-02一种监控系统的链路跟踪型日志数据的存储设计
摘要:随着软件系统越来越复杂化和分布化,为系统提供具有完善功能的监控服务显得越来越重要.APM(applicationperformancemanagement)系统通过采集软件系统运行时的各项指标数据来分析软件的运行状态,例如CPU、内存使用率、垃圾回收的耗时、QPS等指标.此外,APM系统也会在 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02一种优化的数据流驱动的微服务化拆分方法
摘要:近年来,微服务架构已经成为软件工程领域比较流行的架构风格,其天然支持DevOps和持续交付以及可伸缩性、可扩展性好等特性,驱动着业界实践者纷纷向微服务架构迁移.然而,采用微服务架构也面临诸多挑战,其中最关键的是缺乏自动化、一体化的解决方案来高效支持面向微服务的拆分设计以及候选微服务架构的评估. ...中科院软件研究所 本站小编 Free考研考试 2022-01-02面向领域的软件系统构造与质量保障专题前言
摘要:软件是推动新一代信息技术发展的驱动力.随着互联网、云计算、人工智能等技术的快速发展,软件与物联网、区块链、自动驾驶等众多领域的融合进一步加强,正引领并促进这些领域向数字化、智能化发展,为社会、经济的加速演进和创新发展带来了新的契机.因此,面向领域的软件技术不仅是软件领域,也是众多其他领域国内外 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02时空轨迹数据驱动的自动驾驶场景元建模方法
摘要:时空轨迹数据驱动的汽车自动驾驶场景建模,是当前汽车自动驾驶领域中驾驶场景建模、仿真所面临的关键问题,对于提高系统的安全性具有重要的研究意义.近年来,随着时空轨迹数据建模及应用研究的快速发展,时空轨迹数据应用于特定领域建模的研究引起人们的广泛关注.但是,由于时空轨迹数据所反映的现实世界的多元性和 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02区块链赋能的高效物联网数据激励共享方案
摘要:近年来,随着大量设备不断地加入物联网中,数据共享作为物联网市场的主要驱动因素成为了研究热点.然而,当前的物联网数据共享存在着出于安全顾虑和缺乏激励机制等原因导致用户不愿意参与共享数据的问题.在此背景下,区块链技术为解决用户的信任问题和提供安全的数据存储被引入到物联网数据共享中.然而,在构建基于 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02一种结构信息增强的代码修改自动转换方法
摘要:在开发过程中,开发人员在进行缺陷修复、版本更新时,常常需要修改多处相似的代码.如何进行自动代码修改已成为软件工程领域的热点研究问题.一种行之有效的方式是:给定一组代码修改示例,通过抽取其中的代码修改模式,辅助相似代码进行自动转换.在现有工作中,基于深度学习的方法取得了一定进展,但在捕获代码间的 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02融合代码与文档的软件功能特征挖掘方法
摘要:在软件复用过程中,简洁、清楚的软件功能自然语言描述是帮助复用者快速了解待复用软件项目/代码库的前提和基础.但当前开源软件往往缺乏高质量的软件功能说明文档,使得这一过程变得更加复杂和困难.为此,提出了一种融合代码与文档的软件功能特征挖掘方法.该方法以动宾短语的形式描述软件功能特征,通过迭代挖掘软 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02