ClassifiedIndex:.:681DissertationfortheMasterDegreeinEngineeringCODECLONERESTRUCTURINGOFCPROGRAMSVIAK-NEARESTNEIGHBORALGORITHMCandidate:FengJianghuiSupervisor::puterScienceandTechnologyAffiliation:puterScienceandTechnologyDateofDefence:June,2011Degree-Conferring-Institution:HarbinInstituteofTechnology摘 要随着计算机软件的快速发展,程序员开始对软件进行复用以减少工作量。但是这种方法的结果是软件系统中充斥着大量的克隆代码。在大部分情况下,克隆代码对系统是有害的,它增加了软件的长度,使软件体系架构变得更加臃肿,维护起来非常困难,降低了系统运行效率,并且导致软件中存在很多的错误。而重构技术的出现,可以有效对克隆代码进行处理,降低其对系统的危害。但是目前对克隆代码重构的研究还不是很多。针对目前的现状,本文提出了一种基于K-最近邻的克隆代码重构方法。该方法首先为C克隆代码构造语法树,并在语法树的基础上建立程序依赖图,然后进行静态分析,从而获得程序的控制流信息和数据流信息。然后,采用基于控制依赖子图的K-最近邻聚类算法对代码进行分析,选取可执行语句作为实体,利用数据属性和控制属性对实体进行归类,分离出便于提取、功能独立的代码片段。接着,调用基于抽象语法树的过程提取算法,求得变量类型,确定要提取的过程的参数类型及个数,解决新过程的返回值问题,最后将代码片段提取为独立的过程,并用过程调用替换其在源代码中的位置。本文使用已有文献中的代码和开源代码对基于K-最近邻的克隆代码重构方法模型进行了测试。实验结果表明,本文提出的重构模型能够有效地提取内聚度低、功能交叉的克隆代码,具有较高的聚类准确性。关键字:重构;K-最近邻;过程提取;putersoftware,,,plex,,,weproposeaclonerestructuringapproachbasedonk-,programdependencegraphisestablishedandstaticanalysisisperformed,,k-nearestneighborclusteringalgorithmbasedoncontroldependencegraphisperformedtoanalyzethecode,
基于K 最近邻的C克隆代码重构方法研究-计算机科学与技术专业论文 来自淘豆网m.daumloan.com转载请标明出处.