【摘 要】
:
克隆代码普遍存在于软件系统中,它们可以加快开发速度,但同时也会引起一系列问题。当修改源代码涉及到某个克隆片段时,为确保克隆代码间的一致性,需要查找系统中所有与之构成
论文部分内容阅读
克隆代码普遍存在于软件系统中,它们可以加快开发速度,但同时也会引起一系列问题。当修改源代码涉及到某个克隆片段时,为确保克隆代码间的一致性,需要查找系统中所有与之构成克隆代码的克隆片段,逐一分析并确定它们是否需要做相应修改,这增加了软件维护的代价,而且忘记修改可能会引发软件缺陷。实证研究表明系统中的克隆代码只有一小部分在未来修改中需要一致性维护,因此为确保小部分克隆代码的一致性,每次修改克隆片段都查找并分析所有与之构成克隆的片段是不值得的。针对上述问题,本文提出了基于复制粘贴操作的克隆代码一致性维护需求预测方法。开发过程中,当开发人员执行复制粘贴操作且产生克隆代码时,预测其未来是否需要一致性维护并及时给出警告,从而避免可能引起软件维护困难的克隆代码产生。本文主要完成了以下工作,首先,使用Nicad克隆检测工具进行多版本软件克隆代码的检测,处理检测结果构建多版本系统中克隆代码的克隆家系。然后,使用机器学习算法构建克隆代码一致性维护需求预测模型,为构建预测模型,本文提取表征克隆代码片段的代码特征和上下文特征。最后,设计并实现了一个针对Java语言系统的Eclipse插件,将本文提出的预测方法以插件的形式体现,实现一个完整的预防性克隆代码维护方法。本文选择四个具有不同代码规模、不同应用领域的、Java语言开发的开源软件系统进行克隆代码一致性维护预测方法的评价实验。实验结果表明本文提出的预测方法具有较高的准确率和召回率。在实际开发中,该方法对开发人员是否执行复制粘贴操作有一定的参考价值。
其他文献
由于射频识别技术拥有数据信息实时改写的优越特性,非接触智能卡、射频标签当中常常存放的是重要的用户信息,甚至是隐私信息,这对于系统攻击者、黑客来讲,留下了进行安全攻击
问题分类(QC)是智能问答系统的关键技术之一。问题分类与文本分类相似,其目标是为每一个自然语言问句分配一个类别标签,此类别代表的是问句期望的最终答案的类型,在问答系统
随着移动互联网技术的发展及移动终端的普及,网络上出现了许多社交类的网站和应用,微博由于其自身操作简单,传播快速等特性,聚集了大量用户。每个用户每天可以接收成百上千条
税收是国家保障经济有序发展、政治稳定的强制性管理手段,严格、准确、及时的足额收缴税款体现着国家意志和利益。增强国家税控,保障合理有序竞争是建立国家税收制度的基本要
运动人体的检测与跟踪是当今计算机视觉领域的研究热点。随着社会公共安全体系的逐步完善,公共场所中对安全智能监控系统的要求越来越高,多家知名公司和科研机构对此都投入了
离群点挖掘是数据挖掘的重要研究内容之一,其研究目标旨在发现包含在数据中的少数异常而新颖的数据分布模式。近年来随着应用的不断深入而备受数据挖掘研究者们的关注,已经成
为保障公路交通运输的安全性及道路使用的耐久性、舒适性,减少超载超限车辆对道路破坏以及对运输安全带来的影响,需要测量车辆载荷,从而进行超载超限车辆的治理。传统的车辆
随着电脑及万维网的普及,通过Web获取信息并购买产品已经成为主流。然而网络上的信息资源以爆炸式的速度增长着,人们在购买产品之前要耗费大量的时间和精力去获取相关信息并
随着国民经济的快速发展与全球一体化的持续深化,近年来机电产品设备的需求量呈现出逐年大幅增加的趋势。工艺设计作为产品生产的核心环节,是控制生产成本,提高产品质量,缩短开发周期,合理利用工艺资源,提高企业竞争力的关键所在,也是数字化设计与制造以及定量化CAPP中尚待优化的难题。本文以机电产品的生产需求及工艺需求为基础,对机电产品工艺规划问题进行了较为深入地探讨,建立了工艺过程规划优化各个阶段的数学模型
随着计算机应用领域的不断扩张,计算机软件的开发规模逐渐扩大,软件复杂度不断增加,开发周期和开发成本也不断增长。为了解决这些问题,对象管理组织(OMG)提出了模型驱动结构