可重构克隆代码的过程提取方法研究

被引量 : 0次 | 上传用户:kanshu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序重构是一种在保持软件可见行为的前提下,对软件既有代码的改善。目的是使其更易理解与维护,修改成本更低。程序重构可延缓软件老化带来的退化影响,改善程序质量。过程提取是将已有方法中的一部分提取出来作为一个新的方法,被提取的部分用新方法调用替代。过程提取经常用于减少软件系统中的克隆代码(Clone Code)。本文主要研究克隆代码的过程提取方法以及重构对进化软件中模块间依赖关系的影响。针对由克隆代码检测工具检测出来的克隆代码不能直接用于重构的问题,提出了一种可重构克隆代码的预处理方法,该方法由两部分组成:首先,将自适应K-最近邻聚类(Adaptive K-Nearest Neighbors,A-KNN)与图相结合,用于消除拷贝-粘贴相关缺陷检测的误检。然后,对不含缺陷的克隆代码,使用基于代价-收益的评估方法识别可重构的克隆代码,为后续克隆代码重构做好准备。实验结果表明,本文提出的预处理方法可以有效消除因检测错误修改某标识符缺陷时产生的误检。不仅提高了克隆代码相关缺陷检测的准确性,而且可以消除更多的克隆代码。针对传统的保持语法结构不变的过程提取方法提取不连续克隆代码时存在的问题,提出一种新的语义保持的不连续克隆代码无定型过程提取方法。该方法结合程序依赖图(Procedure Dependence Graph,PDG)和抽象语法树(Abstract Syntax Tree,AST)对程序进行结构语义分析,取消了传统的保持语法结构不变的过程提取算法对语句结构一致性的约束,保留了语义一致性约束,从而解决了传统方法不易处理的连续但不能直接提取的克隆代码提取问题,降低了对未标记语句提升的需求,并且不需要对跳转语句进行特殊处理。实验结果表明,本文提出的克隆代码无定型过程提取算法的准确性和适用性均高于已有的保持语法结构不变的过程提取算法,可以有效地减少克隆代码数量,提高代码质量。针对传统的保持语法结构不变的过程提取方法通过语句提升不能提取某些近似克隆代码的问题,提出一种新的语义保持的近似克隆代码无定型过程提取方法(Semantic-Preserving Amorphous Procedure Extraction,SPAPE)。该方法结合程序依赖图和抽象语法树对程序进行结构语义分析,取消了传统的保持语法结构不变的过程提取算法对语句结构一致性的约束,保留了语义一致性约束。该方法由四部分组成:首先,SPAPE使用程序依赖图对源程序进行结构语义分析。然后,结合程序依赖图和抽象语法树执行语义保持的无定型过程变换,识别出差异点。接着,通过插入控制变量和条件语句进行差异点融合。最后,进行过程提取。实验结果表明,本文提出的近似克隆代码的无定型过程提取方法(SPAPE)解决了传统方法不能处理某些近似克隆代码的问题,同时在算法的有效性、代价-收益分析等方面优于传统方法。针对过程提取改变了软件内部模块间的依赖关系这一现象,本文从软件的进化角度对软件内部模块间依赖的分布以及重构对这种分布的影响进行实验研究。结果表明,软件内部模块间的依赖分布是不平衡的:相对于较大的模块,依赖集中于较小的模块间,这种依赖聚集的不平衡性不仅存在于单版本的软件内部,也存在于软件产品的整个生命周期中。同时,持续性重构加剧了这种依赖聚集的不平衡性。因此,根据上述分析结果,在软件维护或质量评估方面软件管理者和开发者,更多关注规模较小的模块,并且在软件的进化过程中,进一步增加关注度。综上所述,本文提出的克隆代码预处理方法、无定型过程提取方法,解决了可重构的克隆代码的预处理问题、不连续克隆代码的过程提取和近似克隆代码的过程提取等关键技术问题,并且通过模块间相对依赖关系的进化分析,揭示了程序内部模块间依赖关系变化的规律以及重构对这种变化的影响。
其他文献
上海国际航运中心洋山深水港区小洋山隧道工程为国内第一座小净距大跨度群洞隧道,对其进行施工方案优化分析有重大理论与实际意义。作者选择了三种不同施工顺序工况进行有限
文中对乌鸡精、乌鸡肽和乌鸡汤蛋白质含量及蛋白质相对分子质量分布区间进行了比较。结果表明:乌鸡肽总蛋白质含量为84.18%,酸溶蛋白质含量为83.10%,明显高于乌鸡精和乌鸡汤;
期刊
探讨土地征收中的民事侵权行为,对于保护农民利益、维护社会稳定、构建和谐社会具有重要意义。本文依据我国法律有关规定,就土地征收中的民事侵权行为的法律依据、构成要件和
<正>在高考数学中,函数与不等式的综合题是函数、方程、不等式、数列等内容的有机结合.证明不等式的方法很多,但在处理函数与不等式的综合题时,运用常规办法往往难以奏效或过
第二次世界大战对战后世界和平运动有着广泛而深远的影响 :战争本身的巨大破坏性刺激了人们对和平的渴望和追求 ;战争中出现的核武器成为和平运动贯穿始终的斗争目标 ;战后世
目的随着兵役制度的改革,我国的征兵工作由原来的秋冬季征兵改为现在的夏秋季征兵。兵源对象更加倾向于夏秋季毕业的高中生和大学生,这样就更有利于提高部队中高学历士兵的比
危险责任是侵权责任法上的一项重要制度,其归责依据是基于风险分担的原理。美国、法国和德国等多数国家关于危险责任的立法已相当完善,而中国的相关立法尚显薄弱。我国应借鉴
<正> 故障现象一冷起动困难,起动后怠速运转不稳,热车后怠速运转正常。故障排除这种现象初步判断是怠速步进电机影响的故障,需进行拆检。关闭点火开关,拆下步进电机,发现步进