无定型克隆代码的检测及重构方法

基本信息
批准号:61173021
项目类别:面上项目
资助金额:57.00
负责人:苏小红
学科分类:
依托单位:哈尔滨工业大学
批准年份:2011
结题年份:2015
起止时间:2012-01-01 - 2015-12-31
项目状态: 已结题
项目参与者:王宇颖,王甜甜,郭勇,边奕心,姜德迅,龚丹丹,逄龙,冯江辉,孔丹丹
关键词:
代码重构软件缺陷检测程序静态分析动态测试重复(克隆)代码检测
结项摘要

针对不同软件工程实践导致不同类型的克隆代码使软件结构复杂难于理解和维护的问题,以及遗产系统逆向工程的应用背景,结合软件自动测试、程序静态分析、数据挖掘和模式聚类等理论,研究建立将克隆代码检测、相关缺陷检测和克隆代码重构有机融为一体的无定型克隆代码检测与重构模型。基于聚类分析识别功能内聚的代码片段,避免产生语义无关或功能交叉的代码片段,降低克隆代码检测的时间复杂度;在此基础上结合随机动态测试和程序静态分析,检测语法不同但功能等价的克隆代码,并采用从功能到语法到结构语义逐级分析的方法,在统一的框架下,检测由不同原因产生的功能/语法/结构语义等价或相似的克隆代码,提高克隆代码检测的准确性和检测模型的适应性;综合考虑程序结构度量和运行效率并进行缺陷检测过滤,提取适于重构的克隆代码,对不同类型的克隆采取不同的重构转换方法,提高克隆代码重构的效率,并确保重构质量和安全,增强软件的可维护性和可理解性。

项目摘要

针对不同软件工程实践导致不同类型的克隆代码使软件结构复杂难于理解和维护的问题,以及遗产系统逆向工程的应用背景,结合软件自动测试、程序静态分析、数据挖掘和模式聚类等理论,研究建立将克隆代码检测、相关缺陷检测和克隆代码重构有机融为一体的无定型克隆代码检测与重构模型,为克隆代码检测及重构探索了一种新思路。发表研究论文39篇,其中SCI国际期刊论文6篇,EI检索论文37篇,国内一级期刊论文6篇。主要研究成果如下:(1)针对已有的克隆代码检测方法因生成语义无关、无意义的克隆代码碎片而导致大量误检的问题,提出在克隆代码检测之前,先基于K-近邻聚类方法识别和分离功能交叉、低内聚的代码片段,提取功能内聚的代码片段,仅在功能内聚的代码片段中检测克隆代码,不仅可以降低克隆代码检测的时间复杂度,还可以降低误检以及判定和提取适于重构的克隆代码的复杂性。(2)针对目前很多克隆代码检测方法仅适合检测语法或结构语义相似的克隆代码,而对功能等价但程序文本和语法结构差别很大的克隆代码缺少有效的检测方法的问题,提出将自动随机测试与程序静态分析相结合,解决语法结构不同但功能等价的克隆代码的检测问题。(3)针对已有的克隆代码检测方法通常只能检测特定类型的克隆代码,对克隆代码坏味的识别能力有限的问题,提出“功能→语法→结构语义”逐级分析的方法,实现无定型克隆代码的检测,能够有效增强克隆代码检测模型的适应性及其对克隆代码坏味的识别能力。(4)针对目前已有的克隆代码重构方法仅从程序结构度量的角度研究重构方法,而未考虑程序的运行效率,也未结合克隆代码和冗余代码引起的逻辑和语义缺陷检测的问题,提出将性能和结构度量与缺陷检测过滤相结合实现过程替换方案的优选,并通过对克隆代码的分类转换实现无定型克隆代码的重构,同时采用动态测试验证相似克隆代码的重构转换的正确性,不仅能提高克隆代码重构的效率,还可以确保重构的质量和重构安全。(5)针对传统克隆代码重构方法难于分析不连续和近似克隆代码,提出一种语义保持的克隆代码无定型过程提取方法,在保留程序语义一致性约束的条件下,对程序进行无定型变换,降低了对未标记语句提升的需求,并通过插入控制变量和条件语句融合近似克隆代码的差异点,实现了近似克隆代码的过程提取,提高了克隆代码提取的准确性和适用性。

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

DOI:{{i.doi}}
发表时间:{{i.publish_year}}

暂无此项成果

数据更新时间:2023-05-31

其他相关文献

1

玉米叶向值的全基因组关联分析

玉米叶向值的全基因组关联分析

DOI:
发表时间:
2

涡度相关技术及其在陆地生态系统通量研究中的应用

涡度相关技术及其在陆地生态系统通量研究中的应用

DOI:10.17521/cjpe.2019.0351
发表时间:2020
3

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

DOI:10.19713/j.cnki.43-1423/u.t20201185
发表时间:2021
4

硬件木马:关键问题研究进展及新动向

硬件木马:关键问题研究进展及新动向

DOI:
发表时间:2018
5

基于SSVEP 直接脑控机器人方向和速度研究

基于SSVEP 直接脑控机器人方向和速度研究

DOI:10.16383/j.aas.2016.c150880
发表时间:2016

相似国自然基金

1

数据挖掘和静态分析相结合的重复代码缺陷检测及重构方法

批准号:61073052
批准年份:2010
负责人:苏小红
学科分类:F0203
资助金额:11.00
项目类别:面上项目
2

克隆代码检测及基于进化的有害性预测研究

批准号:61363017
批准年份:2013
负责人:刘东升
学科分类:F0203
资助金额:45.00
项目类别:地区科学基金项目
3

面向多应用领域的程序代码克隆检测的理论、方法和实验研究

批准号:60703057
批准年份:2007
负责人:李虎
学科分类:F0214
资助金额:18.00
项目类别:青年科学基金项目
4

基于反模式自动检测的代码质量分析与重构

批准号:61472175
批准年份:2014
负责人:陈林
学科分类:F0203
资助金额:80.00
项目类别:面上项目