[发明专利]一种基于模型化工具Simulink的软件重构方法在审
申请号: | 201410231815.0 | 申请日: | 2014-05-29 |
公开(公告)号: | CN103995703A | 公开(公告)日: | 2014-08-20 |
发明(设计)人: | 郭宁 | 申请(专利权)人: | 中国航空无线电电子研究所 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 上海和跃知识产权代理事务所(普通合伙) 31239 | 代理人: | 杨慧 |
地址: | 200233 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模型 化工 simulink 软件 方法 | ||
背景技术
本发明涉及一种软件开发方法,特别涉及通过采用Simlink模型化工具对软件进行重构的方法。
背景技术
现代计算机软件越来越复杂,对开发软件所使用的技术要求也越来越高。开发人员往往通过对系统原型进行扩展,增加功能来适应软件需求的变化,在这一过程中就需要采用软件重构技术。传统的重构方法一般是修改数据类型,提取接口,直接对代码结构进行改造,且需要手工编码,受开发人员能力的限制。
发明内容
针对现有技术的不足,本发明的发明目的在于提供一种基于模型化工具Simulink的软件重构方法,通过利用Simulink工具建立模型,并对模型进行操作,同时生成C语言代码,完成软件的重构。
本发明的发明目的通过以下技术方案实现:
一种基于模型化工具Simulink的软件重构方法,包含以下步骤:
步骤1、定义一个抽象模板,用于定义整个框架;
步骤2、定义子结构,继承抽象模板,来完成操作的具体实现;
步骤3、根据操作的逻辑结构在Simulink中建立模型,利用Simulink的RTW组件将模型转换为嵌入式的C代码;
其中抽象模板及子结构中均设有指针指向基本方法和模板方法,基本方法由子类去实现,模板方法实现基本方法的调度。
与现有技术相比,本发明的有益效果在于利用Simulink工具建立模型,可以精确地描述用户需求,创建一个可执行、可跟踪的技术规范。在对软件的重构过程中,可以对模型进行需求的追踪和测试,能够及时发现问题和缺点,并根据具体实现条件对模型进行细化或重新划分,生成满足需求的模型,最后利用Simulink的RTW组件将模型转换为嵌入式的C代码。
使用模型作为软件重构过程中的一个可执行规范,比传统重构方法可读性和可重用性大大增强。自动生成的C代码可以匹配特定的硬件平台,代码可靠性不再受开发人员能力限制,比传统代手工编码更可靠,因而可以在嵌入式领域推广应用。
附图说明
图1为本发明的系统结构图;
图2为抽象模块的结构体模型;
图3为子结构的结构体模型。
具体实施方法
下面结合附图对本发明作进一步的详细描述。
Simulink是一种模型驱动的图形化建模、控制和仿真工具,可以利用直观的模型图对设计进行可视化操作。此外,利用其RTW组件可以直接从图形化模型中产生优化的,可移植的标准C语言代码。本发明是利用Simulink建立模型自动生成代码实现软件重构的新方法。
本发明中采用了模板方法模式来设计软件结构。模板方法模式定义了一个算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法结构即可重定义该算法的某些特定步骤。模板方法模式的方法分为两类:一种是基本方法,是由子类去实现的方法,并且在模板方法中被调用;另一种方法是模板方法,如TemplateMethod(),可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度,完成固定的逻辑。在实际应用中,通常一个设计师给出算法的轮廓和骨架,另一个给出这个算法的各个逻辑步骤。基本方法就是实现这些具体逻辑步骤的方法,基本方法又可以分为抽象方法,具体方法和钩子方法;而模板方法则是将这些基本方法汇总起来,并按照一定的规则和顺序进行调用的方法。模板方法把认为不变部分的算法封装到父类实现,而可变得部分则通过增加一个子类,实现父类的基本方法来实现,因而子类可以通过扩展的方式增加相应的功能,符合开闭原则。
C语言是一个面向过程的语言,本身并没有提供面向对象的机制,但是通过合理的利用C语言的一些机制,可以简单的模拟出面向对象的基本特性。本发明利用C语言中的结构体对事物属性进行数据抽象,并且在结构体中加入函数指针,在使用前赋予具体的函数,实现对行为操作的封装;C语言的结构体是可以嵌套的,嵌套了其他结构体的结构体就拥有了被嵌套的结构体的属性和方法,从而使得C程序中的结构体有了简单的基础能力。因而可以将被嵌套的结构体看作一个父类,将嵌套的结构体看作一个子类。
本发明中定义了一个AbstractStruct来作为父类,定义整个框架;并且定义了两个子类SubStrcutOne,SubStructTwo,分别继承AbstractStruct,来完成操作的具体实现。结构如图1所示。
其中,p_OperationOne和p_OperationTwo分别指向一个基本方法,p_Template指向一个模板方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空无线电电子研究所,未经中国航空无线电电子研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410231815.0/2.html,转载请声明来源钻瓜专利网。