基于K-最近邻的C克隆代码重构方法研究

被引量 : 0次 | 上传用户:ncwu521
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机软件的快速发展,程序员开始对软件进行复用以减少工作量。但是这种方法的结果是软件系统中充斥着大量的克隆代码。在大部分情况下,克隆代码对系统是有害的,它增加了软件的长度,使软件体系架构变得更加臃肿,维护起来非常困难,降低了系统运行效率,并且导致软件中存在很多的错误。而重构技术的出现,可以有效对克隆代码进行处理,降低其对系统的危害。但是目前对克隆代码重构的研究还不是很多。针对目前的现状,本文提出了一种基于K-最近邻的克隆代码重构方法。该方法首先为C克隆代码构造语法树,并在语法树的基础上建立程序依赖图,然后进行静态分析,从而获得程序的控制流信息和数据流信息。然后,采用基于控制依赖子图的K-最近邻聚类算法对代码进行分析,选取可执行语句作为实体,利用数据属性和控制属性对实体进行归类,分离出便于提取、功能独立的代码片段。接着,调用基于抽象语法树的过程提取算法,求得变量类型,确定要提取的过程的参数类型及个数,解决新过程的返回值问题,最后将代码片段提取为独立的过程,并用过程调用替换其在源代码中的位置。本文使用已有文献中的代码和开源代码对基于K-最近邻的克隆代码重构方法模型进行了测试。实验结果表明,本文提出的重构模型能够有效地提取内聚度低、功能交叉的克隆代码,具有较高的聚类准确性。
其他文献
目的探讨我市职业卫生工作现状、存在的问题及解决方法。方法针对目前我市职业卫生工作中存在的问题加以分析,找出问题产生的原因,结合有关职业卫生法律法规和我市的实际情况
在综合指标是正态分布条件下 ,本文给出求两类总体分界点的 ROC曲线 ,从中可以人为地决定一个分界点。同时给出求 ROC曲线及不同分界点时的错判率
目的了解某装甲部队坦克乘员军事训练伤的发生及分布情况。方法采取整群抽样方法,对某装甲部队1028名官兵用自制调查问卷进行现场调查,根据《中国人民解放军军事训练伤诊断分
就播音与主持艺术专业学生开展艺术实践活动的目的与意义、内容与形式、方法与途径以及组织与管理等四个方面展开思考和研究,目的是揭示艺术实践与课堂基础教学的关系以及学
本文首先分析了刑罚理论上的绝对主义 (报应刑论 )、相对主义 (目的刑论 )与并合主义的内涵 ,指出报应刑论与目的刑论的分歧不在于刑罚目的 ,而在于刑罚正当化的根据 ,提出并
2010年以来,微电影发展的浪潮全面冲击了影像的话语观念,电影研究的研究理路也随之发生改变。之所以备受瞩目,是因为它创造性地将传统的空间与时间感进行断裂式的拼贴,并将其
本文阐述了w-2型兰尼镍催化剂在芳磺酸硝基化合物催化加氢还原制备芳磺酸氨基化合物中的应用。以间硝基苯磺酸的催化加氢反应为例进行实验,实验结果表明,在反应温度80~100℃,
本文结合调研情况,认为家庭农场是今后商品农产品特别是粮食生产规模化经营的主要形式,将在构建新型农业经营体系中占重要位置。围绕与其他经营主体关系、家庭农场的适度规模