本发明专利技术提供一种对程序代码进行重构操作组合的方法,包括以下步骤:步骤a:重构操作组合初始化步骤;步骤b:抽取前置、后置关键程序代码元素步骤;步骤c:标记依赖关系步骤;步骤d:标记可交换关系与重排序步骤;步骤e:标记可优化能力步骤;步骤f:优化操作步骤;步骤g:导出优化后的程序代码步骤;其中所述依赖关系包括完全依赖关系、完全部分依赖关系、部分完全依赖关系、部分部分依赖关系;其中所述可交换关系包括无条件交换关系、条件交换关系。该方法具有重构效率高、处理灵活、优化彻底等特点。
【技术实现步骤摘要】
一种对程序代码进行重构操作组合的方法
本专利技术涉及代码重构技术,尤其是一种对程序代码进行重构操作组合的方法。
技术介绍
重构是指在不改变“软件之可察行为”的前提下,通过调整程序内部结构设计,让代码更容易理解、更容易修改,重构为极限编程、快速编程等提供了保障与支持,但关于重构工具的研究却还停留在探索阶段。重构操作工具有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、重构组合优化规则应用:首先,根据重构操作间的交换关系,标记可交换的重构操作对。针对重构操作组本文档来自技高网...
【技术保护点】
一种对程序代码进行重构操作组合的方法,其特征在于,包括以下步骤:步骤a:重构操作组合初始化步骤;载入待优化的重构操作组合,读取用户自定义的初始重构操作组合配置,所述初始重构操作组合满足所有前置条件检查要求,对所有前置条件合法性进行验证,确保初始重构组合可正确运行;步骤b:抽取前置、后置关键程序代码元素步骤;根据所述用户自定义的初始重构操作组合,抽取组合中各重构操作的前置关键程序代码元素与后置关键程序代码元素;所述前置关键程序代码元素代表重构操作作用前的程序代码元素状态,所述后置关键程序代码元素代表重构操作作用后的程序代码元素状态; 步骤c:标记依赖关系步骤;通过遍历重构操作组合中的具体重构操作,同时分析初始重构组合的前置和后置关键程序代码元素,如果一对重构操作中的后者前置条件满足依赖于前者重构执行的结果,则用标识来标记各重构操作间的依赖关系;步骤d:标记可交换关系与重排序步骤;如果一对重构操作中的前者与后者顺序交换后,重构操作组合执行的结果不变,则认为这两个重构操作间存在可交换的关系,用标识来标记各重构操作间的可交换关系;并根据各重构操作间的可交换关系对重构操作组合进行交换操作,即对重构组合进行重排序操作后得到新重构操作组合;步骤e:标记可优化能力步骤;对所述新重构操作组合进行步骤c操作,调整所述新重构操作组合间的依赖关系,由所述新重构操作组合及各重构操作间的依赖关系,通过重构组合优化规则得出所述新重构操作组合的可优化能力,并用标识进行标记; 步骤f:优化操作步骤;将重构组合优化规则应用于所述新重构操作组合进行优化操作;如果优化操作进程中断或阻断,则退回初始状态避免死循环操作;步骤g:导出优化后的程序代码步骤;导出对所述新重构操作组合优化操作后的程序代码。...
【技术特征摘要】
1.一种对程序代码进行重构操作组合的方法,其特征在于,包括以下步骤:步骤a:重构操作组合初始化步骤;载入待优化的重构操作组合,读取用户自定义的初始重构操作组合配置,所述初始重构操作组合满足所有前置条件检查要求,对所有前置条件合法性进行验证,确保初始重构操作组合可正确运行;步骤b:抽取前置、后置关键程序代码元素步骤;根据所述用户自定义的初始重构操作组合,抽取组合中各重构操作的前置关键程序代码元素与后置关键程序代码元素;所述前置关键程序代码元素代表重构操作作用前的程序代码元素状态,所述后置关键程序代码元素代表重构操作作用后的程序代码元素状态;步骤c:标记依赖关系步骤;通过遍历重构操作组合中的具体重构操作,同时分析初始重构操作组合的前置和后置关键程序代码元素,如果一对重构操作中的后者前置条件满足依赖于前者重构执行的结果,则用标识来标记各重构操作间的依赖关系;步骤d:标记可交换关系与重排序步骤;如果一对重构操作中的前者与后者顺序交换后,重构操作组合执行的结果不变,则认为这两个重构操作间存在可交换的关系,用标识来标记各重构操作间的可交换关系;并...
【专利技术属性】
技术研发人员:梁良,马勇,朱正刚,余鹏飞,
申请(专利权)人:国家电网公司, 国网江西省电力公司信息通信分公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。