论文部分内容阅读
随着软件工程的发展,基于模型的软件开发方式越来越受到重视,成为软件工程领域的发展趋势。由于模型具有方便、易懂、易维护并且对设计需求反应灵敏的特点,基于模型技术可以提高软件复用度,增进新旧软件系统集成的速度。在基于模型的开发过程中模型和实现之间需要同步,因此在基于模型的技术框架中有一项核心技术就是为已经设计好的模型生成目标平台的源代码,代码生成技术成为基于模型软件开发不可缺少的一部分。代码生成技术是模型转换技术的一部分,主要是找出源模型和目标语言平台的基本模式以及模式之间的映射规则,然后通过对这些动态和静态的映射规则进行组织最终实现代码生成器。 本文尝试探索一种能够处理动态数据流的代码生成机制,输入数据采用Simulink/Stateflow模型的存储文件,该文件存有模型的GUI信息。针对目前大部分代码生成方法都是针对以UML为模型开发工具,主要以静态结构模型为研究对象的代码生成机制,本文着重于针对拥有动态数据流模型代码生成机制的MathWorks公司的Real-time Workshop Embedded工具的分析和研究,并最终提出一种能够处理动态数据流模型的代码生成调度机制。本文首先通过对基于模型技术和模型转换技术的理论的分析,并且结合实际产品Real-time Workshop Embedded的实现探讨代码生成的主要理论。其次,论文通过对Simulink/Stateflow建模机制和模型存储文件结构的分析找出Simulink/Stateflow模型GUI信息特性和代码生成所面临的问题,并且针对各个问题提出了解决方案,同时确定了软件系统的需求。然后,论文确定了源模型的基本模式和目标 C语言代码的基本模式以及两者之间的模式对应转换规则,完成图形信息抽取算法和数据组织模型以及针对目标语言为C语言的代码生成调度机制的设计。论文最终完成代码生成器的应用原型程序,并且通过对该应用原型程序的黑盒测试验证了代码生成机制的可行性,提出了改进的方向。 本文中依据代码生成机制实现的应用原型程序经调试后生成的代码可以满足动态数据流模型和静态结构模型的代码生成要求,并且在设计中尽量的降低了对输入文件的依赖性,使得本设计较易修改输入文件从而可以作为进一步研发模型驱动设计平台的代码生成部分。最终完成的代码生成程序可以从描述图形信息的文件中抽取有用信息,构建对象模型,完成代码生成,为进一步完善代码生成理论和工具提供了支持。