书签 分享 收藏 举报 版权申诉 / 7

一种对程序代码进行重构操作组合的方法.pdf

  • 上传人:GAME****980
  • 文档编号:6179192
  • 上传时间:2019-05-17
  • 格式:PDF
  • 页数:7
  • 大小:752.19KB
  • 摘要
    申请专利号:

    CN201310639852.0

    申请日:

    2013.12.04

    公开号:

    CN103699377A

    公开日:

    2014.04.02

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 9/44申请日:20131204|||公开

    IPC分类号:

    G06F9/44

    主分类号:

    G06F9/44

    申请人:

    国家电网公司; 国网江西省电力公司信息通信分公司

    发明人:

    梁良; 马勇; 朱正刚; 余鹏飞

    地址:

    100000 北京市西城区西长安街86号

    优先权:

    专利代理机构:

    南昌新天下专利商标代理有限公司 36115

    代理人:

    施秀瑾

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供一种对程序代码进行重构操作组合的方法,包括以下步骤:步骤a:重构操作组合初始化步骤;步骤b:抽取前置、后置关键程序代码元素步骤;步骤c:标记依赖关系步骤;步骤d:标记可交换关系与重排序步骤;步骤e:标记可优化能力步骤;步骤f:优化操作步骤;步骤g:导出优化后的程序代码步骤;其中所述依赖关系包括完全依赖关系、完全部分依赖关系、部分完全依赖关系、部分部分依赖关系;其中所述可交换关系包括无条件交换关系、条件交换关系。该方法具有重构效率高、处理灵活、优化彻底等特点。

    权利要求书

    权利要求书
    1.  一种对程序代码进行重构操作组合的方法,其特征在于,包括以下步骤:
    步骤a:重构操作组合初始化步骤;载入待优化的重构操作组合,读取用户自定义的初始重构操作组合配置,所述初始重构操作组合满足所有前置条件检查要求,对所有前置条件合法性进行验证,确保初始重构组合可正确运行;
    步骤b:抽取前置、后置关键程序代码元素步骤;根据所述用户自定义的初始重构操作组合,抽取组合中各重构操作的前置关键程序代码元素与后置关键程序代码元素;所述前置关键程序代码元素代表重构操作作用前的程序代码元素状态,所述后置关键程序代码元素代表重构操作作用后的程序代码元素状态; 
    步骤c:标记依赖关系步骤;通过遍历重构操作组合中的具体重构操作,同时分析初始重构组合的前置和后置关键程序代码元素,如果一对重构操作中的后者前置条件满足依赖于前者重构执行的结果,则用标识来标记各重构操作间的依赖关系;
    步骤d:标记可交换关系与重排序步骤;如果一对重构操作中的前者与后者顺序交换后,重构操作组合执行的结果不变,则认为这两个重构操作间存在可交换的关系,用标识来标记各重构操作间的可交换关系;并根据各重构操作间的可交换关系对重构操作组合进行交换操作,即对重构组合进行重排序操作后得到新重构操作组合;
    步骤e:标记可优化能力步骤;对所述新重构操作组合进行步骤c操作,调整所述新重构操作组合间的依赖关系,由所述新重构操作组合及各重构操作间的依赖关系,通过重构组合优化规则得出所述新重构操作组合的可优化能力,并用标识进行标记; 
    步骤f:优化操作步骤;将重构组合优化规则应用于所述新重构操作组合进行优化操作;如果优化操作进程中断或阻断,则退回初始状态避免死循环操作;
    步骤g:导出优化后的程序代码步骤;导出对所述新重构操作组合优化操作后的程序代码。

    2.  根据权利要求1所述的一种对程序代码进行重构操作组合的方法,其特征在于:所述依赖关系包括完全依赖关系、完全部分依赖关系、部分完全依赖关系、部分部分依赖关系。

    3.  根据权利要求1所述的一种对程序代码进行重构操作组合的方法,其特征在于:所述可交换关系包括无条件交换关系、条件交换关系。

    4.  根据权利要求1所述的一种对程序代码进行重构操作组合的方法,其特征在于:所述重构组合优化规则包括组合压缩规则和归并重组规则。

    说明书

    说明书一种对程序代码进行重构操作组合的方法
    技术领域
    本发明涉及代码重构技术,尤其是一种对程序代码进行重构操作组合的方法。
    背景技术
    重构是指在不改变“软件之可察行为”的前提下,通过调整程序内部结构设计,让代码更容易理解、更容易修改,重构为极限编程、快速编程等提供了保障与支持,但关于重构工具的研究却还停留在探索阶段。重构操作工具有eclipse(针对Java程序的集成开发工具)重构等,但这类工具严重地依赖于代码工作者的指令操作,运行效率低。
    代码重构过程往往不是独立进行的,重构经常伴随着多个步骤的同时进行,合理地组织多个重构操作之间的组合执行顺序是重构执行的关键。本发明研究一种对程序代码进行重构操作组合的方法,为智能化重构操作奠定了基础,具有重构效率高等特点。
    发明内容
    本发明提供一种对程序代码进行重构操作组合的方法,包括以下步骤:
    步骤a:重构操作组合初始化步骤;载入待优化的重构操作组合,读取用户自定义的初始重构操作组合配置,所述初始重构操作组合满足所有前置条件检查要求,对所有前置条件合法性进行验证,确保初始重构组合可正确运行;
    步骤b:抽取前置、后置关键程序代码元素步骤;根据所述用户自定义的初始重构操作组合,抽取组合中各重构操作的前置关键程序代码元素与后置关键程序代码元素;所述前置关键程序代码元素代表重构操作作用前的程序代码元素状态,所述后置关键程序代码元素代表重构操作作用后的程序代码元素状态; 
    步骤c:标记依赖关系步骤;通过遍历重构操作组合中的具体重构操作,同时分析初始重构组合的前置和后置关键程序代码元素,如果一对重构操作中的后者前置条件满足依赖于前者重构执行的结果,则用标识来标记各重构操作间的依赖关系;
    步骤d:标记可交换关系与重排序步骤;如果一对重构操作中的前者与后者顺序交换后,重构操作组合执行的结果不变,则认为这两个重构操作间存在可交换的关系,用标识来标记各重构操作间的可交换关系;并根据各重构操作间的可交换关系对重构操作组合进行交换操作,即对重构组合进行重排序操作后得到新重构操作组合;
    步骤e:标记可优化能力步骤;对所述新重构操作组合进行步骤c操作,调整所述新重构操作组合间的依赖关系,由所述新重构操作组合及各重构操作间的依赖关系,通过重构组合优化规则得出所述新重构操作组合的可优化能力,并用标识进行标记; 
    步骤f:优化操作步骤;将重构组合优化规则应用于所述新重构操作组合进行优化操作;如果优化操作进程中断或阻断,则退回初始状态避免死循环操作;
    步骤g:导出优化后的程序代码步骤;导出对所述新重构操作组合优化操作后的程序代码。
    其中所述依赖关系包括完全依赖关系、完全部分依赖关系、部分完全依赖关系、部分部分依赖关系。
    其中所述可交换关系包括无条件交换关系、条件交换关系。
    其中所述重构组合优化规则包括组合压缩规则和归并重组规则。
    本发明的技术效果是:
    1、重构效率高,处理过程灵活,重构组合高度简化,重构操作复杂度大大降低;
    2、支持大量重构操作同时执行,适用于批量的重构操作,重构性能明显提升;
    3、设定了重构组合优化规则,优化实施自左向右,过程清晰,系统资源占用少、出错响应速度快;
    4、实现过程简单,可行性强,易操作、易上手,为自动化、智能化重构奠定了良好的基础。
    附图说明
    图1为本发明的代码重构操作步骤图。
    图2为本发明的总体架构流程图。
    具体实施方式
    如图1所示,本发明的代码重构操作步骤图,本发明提供的一种对程序代码进行重构操作组合的方法,包括步骤:
    步骤a:重构操作组合初始化步骤;载入待优化的重构操作组合,读取用户自定义的初始重构操作组合配置,所述初始重构操作组合满足所有前置条件检查要求,对所有前置条件合法性进行验证,确保初始重构组合可正确运行;
    步骤b:抽取前置、后置关键程序代码元素步骤;根据所述用户自定义的初始重构操作组合,抽取组合中各重构操作的前置关键程序代码元素与后置关键程序代码元素;所述前置关键程序代码元素代表重构操作作用前的程序代码元素状态,所述后置关键程序代码元素代表重构操作作用后的程序代码元素状态; 
    步骤c:标记依赖关系步骤;通过遍历重构操作组合中的具体重构操作,同时分析初始重构组合的前置和后置关键程序代码元素,如果一对重构操作中的后者前置条件满足依赖于前者重构执行的结果,则用标识来标记各重构操作间的依赖关系;
    步骤d:标记可交换关系与重排序步骤;如果一对重构操作中的前者与后者顺序交换后,重构操作组合执行的结果不变,则认为这两个重构操作间存在可交换的关系,用标识来标记各重构操作间的可交换关系;并根据各重构操作间的可交换关系对重构操作组合进行交换操作,即对重构组合进行重排序操作后得到新重构操作组合;
    步骤e:标记可优化能力步骤;对所述新重构操作组合进行步骤c操作,调整所述新重构操作组合间的依赖关系,由所述新重构操作组合及各重构操作间的依赖关系,通过重构组合优化规则得出所述新重构操作组合的可优化能力,并用标识进行标记; 
    步骤f:优化操作步骤;将重构组合优化规则应用于所述新重构操作组合进行优化操作;如果优化操作进程中断或阻断,则退回初始状态避免死循环操作;
    步骤g:导出优化后的程序代码步骤;导出对所述新重构操作组合优化操作后的程序代码。
    如图2所示本发明的总体架构流程图,本发明通过载入待优化的重构操作组合并读取用户自定义的组合初始配置,对初始重构组合进行一系列的分析处理操作,通过遍历探索操作间关系发现操作间的潜在可优化性,重排重构操作位置并对可优化的重构操作对自左向右依次应用相应的优化规则,进而简化重构复杂性缩短重构操作步骤,最终得到优化的重构操作组合。
    1、重构操作关系推导:
    首先,根据用户自定义初始组合推断出各个重构操作的前置关键程序代码元素与后置关键程序代码元素。前置关键程序代码元素可以代表重构操作作用前的待重构程序代码元素状态,后置关键程序代码元素可以代表重构操作作用后的待重构程序代码元素状态,重构操作单元的本质是将前置关键程序代码元素转换为后置关键程序代码元素。例如:重构操作“重命名方法MethodName1为方法MethodName2”,则前置关键程序代码元素为:MethodName1,后置关键程序代码元素为:MethodName2。
    其次,遍历探索并标记重构操作间的依赖关系。在一对重构操作中,若后者前置条件的满足依赖于前者重构执行的结果,则称这两个重构操作间存在依赖的关系。两重构操作间的依赖关系有四种:完全-完全依赖(后者前置条件刚好完全依赖于前者重构执行结果)、完全-部分依赖(后者前置条件完全依赖于前者重构执行结果的一部分)、部分-完全依赖(后者前置条件不仅依赖前者重构执行的结果,还依赖其它重构执行的结果)和部分-部分依赖(后者前置条件依赖前者重构执行结果的一部分,还依赖其它重构执行的结果)。
    然后,由初始重构操作组合的依赖关系分析推导重构操作间的交换关系。在一对重构操作中,若前者与后者的顺序交换后,重构操作组合执行的结果不变,则称这两个重构操作间存在可交换的关系。两重构操作间的交换关系有两种:无条件交换(前者与后者直接交换顺序,不用进行任何其它处理)和条件交换(前者与后者交换后,需相应地修改因后者前置而导致前者中受影响的关键程序代码元素)。
    2、重构组合优化规则应用:
    首先,根据重构操作间的交换关系,标记可交换的重构操作对。针对重构操作组合中的交换关系标记,分别对相应的重构操作对进行无条件交换或条件交换。重构操作交换过程又称为对初始重构组合的重排,重排是重构组合深度优化过程的一个重要部分,为重构组合优化规则的应用奠定了基础。
    其次,对重排后的重构组合进行分析,探索并标记重构组合的可优化潜能。适当调整重排后的重构操作间的依赖关系,由新的重构操作组合及各重构操作间的依赖关系,通过适配重构组合优化规则来分析探索重构操作组合的可优化能力,并用特定标识标记。
    然后,对可优化的重构操作对应用重构操作组合优化规则。针对之前分析探索得到的重构操作可优化能力,将相应的重构组合优化规则应用于重排序后的新重构操作组合。重构操作组合优化规则有两种:组合压缩规则(可直接合并前后两个重构操作,只进行一次前置条件检查和一次重构转换操作)和归并重组规则(合并前后两个重构操作,进行一次前置条件检查和两次重构转换操作)。

    关 键  词:
    一种 程序代码 进行 操作 组合 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种对程序代码进行重构操作组合的方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6179192.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1