软件重构是在不改变软件外部行为特性的前提下通过调整软件内部结构以提高软件质量的过程。在复杂的软件系统中通常能找到多个重构机会,而重构的调度(重构机会的处理顺序)会影响重构的效率和效果。但目前未见重构调度方面的系统研究工作,缺乏有效的重构调度方法。为此本项目将对重构调度展开研究。软件重构目前以半自动化为主,但也有部分重构实现了形式化自动化。本项目将根据形式化软件重构及半自动化软件重构的不同特征设计不同的调度方法。对形式化软件重构,本项目将研究形式化的调度模型及其求解算法以实现重构效果的最大化。对半自动化软件重构,本项目将研究不同种类的代码坏味之间的内在联系及其相对处理顺序对重构效率和效果的影响,进而提出基于代码坏味处理顺序的调度方法以提高重构的效果和效率。此外,针对因资源不足无法查找并处理所有类型的代码坏味的情况,本项目将研究代码坏味的严重程度等级划分方法,确保最严重的代码坏味得到优先处理。
按照项目研究计划开展科学研究,顺利完成了相关研究内容,取得了一系列的研究陈果。本项目围绕软件重构调度展开研究,其中包括:针对形式化软件重构,研究基于图转换和关键对技术的软件重构调度方法;针对半自动的非形式的软件重构,研究基于代码坏味处理顺序的软件重构调度方法;针对资源受限的软件重构,研究基于优先级的软件重构调度方法。研究提出了基于关键对的软件重构冲突检测算法,基于此提出了基于冲突关系的形式化软件重构调度算法。设计并实施实验,初步结果表明该方法可以通过降低重构之间的冲突关系而有效提高软件重构的整体效果。对常见的11种非形式化的代码坏味,重点研究其内在联系,分析其重构顺序对重构成本、重构效率的影响。进而分析出一张全局的处理顺序图。设计并实施科学实验对研究结果进行验证,实验结果表明本研究成果可以在不降低重构效果的前提下,将重构成本降低17.64%到20%。针对资源受限的软件重构,研究分析了10种常见的代码坏味,按照代码坏味对软件质量的影响进行分类,将10种常见代码坏味的分成五个处理优先级。设计并实施实验,初步结果表明分级的合理性。 在软件重构若干关键问题上,也进行了研究探索。对逆向工程生成的庞大而复杂的类图,研究了类图的切割分解方法,在不丢失信息的情况下将一个大的类图分解为若干高内聚的小类图;对UML顺序图中出现的重复片段,提出了一个基于二维图到一维串映射的方法,将顺序图映射成一个元素串,进而利用现有一维的重复片段检测方法检测重复事件流片段;研究Eclipse捕获的软件重构命令记录,分析批量式重构与分散式重构的比例,结果表明分散式重构目前处于主流状态,但批量式重构的比例比业内预计的要大(约20%);对重构机会的检测也进行了初步探索,提出了一种基于静态分析的泛化重构机会发掘算法。培养博士研究生3人,硕士研究生6人。在国际顶级期刊IEEE Transactions on Software Engineering发表论文2篇,在计算机学会推荐B类SCI期刊发表录用论文3篇,在计算机学会推荐B类国际会议发表论文1篇。
{{i.achievement_title}}
数据更新时间:2023-05-31
监管的非对称性、盈余管理模式选择与证监会执法效率?
面向云工作流安全的任务调度方法
肉苁蓉种子质量评价及药材初加工研究
中外学术论文与期刊的宏观差距分析及改进建议
混采地震数据高效高精度分离处理方法研究进展
混合关键需求下的汽车软件功能调度方法研究
基于监控与反馈的软件重构机会检测方法研究
软件重构对回归测试用例的影响及其修复方法研究
基于实时交互规约的分布嵌入式软件可确定调度方法研究