一种基于模型化工具Simulink的软件重构方法技术

技术编号:10344656 阅读:112 留言:0更新日期:2014-08-21 16:44
本发明专利技术公开了一种基于模型化工具Simulink的软件重构方法,包含以下步骤:步骤1、定义一个抽象模板,用于定义整个框架;步骤2、定义子结构,继承抽象模板,来完成操作的具体实现;步骤3、根据操作的逻辑结构在Simulink中建立模型,并利用RTW组件将模型转换为嵌入式的C代码。使用模型作为软件重构过程中的一个可执行规范,比传统重构方法可读性和可重用性大大增强。自动生成的C代码可以匹配特定的硬件平台,代码可靠性不再受开发人员能力限制,比传统代手工编码更可靠,因而可以在嵌入式领域推广应用。

【技术实现步骤摘要】
—种基于模型化工具Simul ink的软件重构方法
技术介绍
本专利技术涉及一种软件开发方法,特别涉及通过采用Simlink模型化工具对软件进行重构的方法。
技术介绍
现代计算机软件越来越复杂,对开发软件所使用的技术要求也越来越高。开发人员往往通过对系统原型进行扩展,增加功能来适应软件需求的变化,在这一过程中就需要采用软件重构技术。传统的重构方法一般是修改数据类型,提取接口,直接对代码结构进行改造,且需要手工编码,受开发人员能力的限制。
技术实现思路
针对现有技术的不足,本专利技术的专利技术目的在于提供,通过利用Simulink工具建立模型,并对模型进行操作,同时生成C语言代码,完成软件的重构。本专利技术的专利技术目的通过以下技术方案实现:—种基于模型化工具Simulink的软件重构方法,包含以下步骤:步骤1、定义一个抽象模板,用于定义整个框架;步骤2、定义子结构,继承抽象模板,来完成操作的具体实现;步骤3、根据操作的逻辑结构在Simulink中建立模型,利用Simulink的RTW组件将模型转换为嵌入式的C代码;其中抽象模板及子结构中均设有指针指向基本方法和模板方法,基本方法由子类去实现,模板方法实现基本方法的调度。[0011 ] 与现有技术相比,本专利技术的有益效果在于利用Simulink工具建立模型,可以精确地描述用户需求,创建一个可执行、可跟踪的技术规范。在对软件的重构过程中,可以对模型进行需求的追踪和测试,能够及时发现问题和缺点,并根据具体实现条件对模型进行细化或重新划分,生成满足需求的模型,最后利用Simulink的RTW组件将模型转换为嵌入式的C代码。使用模型作为软件重构过程中的一个可执行规范,比传统重构方法可读性和可重用性大大增强。自动生成的C代码可以匹配特定的硬件平台,代码可靠性不再受开发人员能力限制,比传统代手工编码更可靠,因而可以在嵌入式领域推广应用。【附图说明】图1为本专利技术的系统结构图;图2为抽象模块的结构体模型;图3为子结构的结构体模型。具体实施方法下面结合附图对本专利技术作进一步的详细描述。Simulink是一种模型驱动的图形化建模、控制和仿真工具,可以利用直观的模型图对设计进行可视化操作。此外,利用其RTW组件可以直接从图形化模型中产生优化的,可移植的标准C语言代码。本专利技术是利用Simulink建立模型自动生成代码实现软件重构的新方法。本专利技术中采用了模板方法模式来设计软件结构。模板方法模式定义了 一个算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法结构即可重定义该算法的某些特定步骤。模板方法模式的方法分为两类:一种是基本方法,是由子类去实现的方法,并且在模板方法中被调用;另一种方法是模板方法,如TemplateMethodO,可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度,完成固定的逻辑。在实际应用中,通常一个设计师给出算法的轮廓和骨架,另一个给出这个算法的各个逻辑步骤。基本方法就是实现这些具体逻辑步骤的方法,基本方法又可以分为抽象方法,具体方法和钩子方法;而模板方法则是将这些基本方法汇总起来,并按照一定的规则和顺序进行调用的方法。模板方法把认为不变部分的算法封装到父类实现,而可变得部分则通过增加一个子类,实现父类的基本方法来实现,因而子类可以通过扩展的方式增加相应的功能,符合开闭原则。C语言是一个面向过程的语言,本身并没有提供面向对象的机制,但是通过合理的利用C语言的一些机制,可以简单的模拟出面向对象的基本特性。本专利技术利用C语言中的结构体对事物属性进行数据抽象,并且在结构体中加入函数指针,在使用前赋予具体的函数,实现对行为操作的封装;C语言的结构体是可以嵌套的,嵌套了其他结构体的结构体就拥有了被嵌套的结构体的属性和方法,从而使得C程序中的结构体有了简单的基础能力。因而可以将被嵌套的结构体看作一个父类,将嵌套的结构体看作一个子类。本专利技术中定义了一个AbstractStruct来作为父类,定义整个框架;并且定义了两个子类SubStrcutOne, SubStructTwo,分别继承AbstractStruct,来完成操作的具体实现。结构如图1所示。其中,p_0peration0ne和 p_0perationTwo 分别指向一个基本方法,p_Template 指向一个模板方法。在Simulink 中建立一个 AbstructStruct 结构体模型,生成一个 AbstructStruct类型数据AbstructStructData,如图2所不:使用AbstructStructData建立一个子结构SubStructOne模型,如图3所不:通过RTW自动生成的代码为:本文档来自技高网...

【技术保护点】
一种基于模型化工具Simulink的软件重构方法,包含以下步骤:步骤1、定义一个抽象模板,用于定义整个框架;步骤2、定义子结构,继承抽象模板,来完成操作的具体实现;步骤3、根据操作的逻辑结构在Simulink中建立模型,利用Simulink的RTW组件将模型转换为嵌入式的C代码;其中抽象模板及子结构中均设有指针指向基本方法和模板方法,基本方法由子类去实现,模板方法实现基本方法的调度。

【技术特征摘要】
1.一种基于模型化工具Simulink的软件重构方法,包含以下步骤: 步骤1、定义一个抽象模板,用于定义整个框架; 步骤2、定义子结构,继承抽象模板,来完成操作的具体实现; 步骤3、根据操作的逻辑...

【专利技术属性】
技术研发人员:郭宁
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:上海;31

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

1