模块独立型Code Smell检测技术研究

来源 :上海师范大学 | 被引量 : 0次 | 上传用户:hdy_123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在面向对象程序设计过程中,Code Smell是一个影响程序设计、运行效率和维护成本的问题,是一种由于不好的设计和实现所带来的症状。在某种情况下,Code Smell源于开发人员在一种紧急状态下作出的行为或简单实现功能需求;在另一种情况下,也可能来自于一种反复出现的、被称为“反模式”的设计方案。它带来的最大危害就是影响了程序的模块独立性,因此模块独立型Code Smell是最需要关注的。模块独立型Code Smell主要包括Divergent Change、Shotgun Surgery、Feature Envy三种。在开发过程中,开发人员出现最多的行为就是在编写一个类的代码时大量使用其它类的内容,所以最为典型的、广泛存在程序当中的模块独立型Code Smell就是Feature Envy,它属于类间Code Smell。与其它类间Code Smell不同的是,Feature Envy并不直观,开发人员很难通过观察找出这种Smell,往往需要通过距离度量算法计算确定这种Code Smell的存在。在距离度量算法中,主要有欧式距离、余弦距离和Jaccard距离等,考虑到实际应用场景是检测类和类中实体的依赖关系,抽象成集合与集合之间距离最合适,因此衡量集合与集合之间相似度的Jaccard距离最合适。但传统Jaccard距离度量算法只能反应代码的调用与否问题,不能反映代码运行中的调用频次问题,而代码的运行频率不同是程序中普遍存在的问题,因此传统方法存在一定的局限性。本文在集合间相似度算法Jaccard相似系数的基础上,结合实体间的调用关系和频次,提出了权值Jaccard距离度量方法,将方法、属性与类之间的远近关系抽象成基于频率的权值Jaccard相似度距离,通过比较各个方法或者属性和各类之间的距离大小,确定是否存在Feature Envy,筛选出目标候选类列表。考虑到Feature Envy的检测要符合类的职能和上下文环境,因此,又提出结合上下文语义相似度量,通过计算余弦相似度和权值Jaccard相似度的和作为指标判断是否存在异味。这种做法既保证了检测算法符合Feature Envy的定义,同时考虑到了代码的功能职责,而且也降低了寻找最后目标类的时间复杂度。这很大程度提高了最后的检测效果。在实验中,利用5个Github中的开源工程作为数据集,在Eclipse环境中利用ByteParse解析数据集并收集类相关信息,据此将本文方法和传统JDeodorant做对比,做到了P、R、F值三个指标平均约15%的提高。当然本文方法在F值的离散程度上还有欠缺,这也是以后改进的方向。
其他文献
随着数据存储与信息化技术的迅速发展,生物序列数据库的数据量呈现井喷式增长,生物序列上的近似查询难度越来越大。虽然有多种方法度量两个序列的相似度,但是普遍关注的方法
随着互联网技术的快速发展,网络中的文本以指数形式的速度增长向大众铺面而来。因此,如何提高新闻文本分类的高效性和准确性、提高高质量和智能化的新闻文本分类、快速提取出
结构决定性质,物质的微观结构是了解其物理性质的基础。因此,从微观原子尺度了解物质的结构及其变化规律有利于开发高性能的材料体系。液体结构对于研究其形核、结晶以及玻璃
推荐算法在电子商务平台发挥着越来越重要的作用,推荐算法的好坏直接影响用户的体验,进而影响着电子商务平台的收入。因此提出好的推荐算法并对提出的算法进行优化是本文研究
网络控制系统是指将控制单元中的传感器、控制器、执行器等通过通信网络连接在一起进行信息交换的实时闭环反馈系统。相比于传统的点到点控制系统,网络控制系统具有系统组件不受空间位置的束缚、便于远程操作控制、信息资源可共享、连线少、易于系统的维护和扩展等优点。但是由于通信网络本身性能的不确定性,在对数据进行传输的过程中将会产生不确定的时延,而时延会影响网络控制系统的控制性能。本文对网络控制系统的时延预测及补
利用鱼眼相机进行天文导航和定位改变了传统天文导航定位的实现方式。虽然鱼眼相机拥有视场大的优点,但同时畸变也大,天文大气折射对利用鱼眼相机的天文导航定位测量的影响也
IT产业发展的第六次浪潮即将到来,技术不断迭代更新,而微电子行业始终在IT产业中占据着极为重要的位置。切实提高我国微电子行业的技术水平和发展规模,是发展“互联网+”的重要技术支撑。微电子行业属于资本和技术双密集型的产业,技术的背后是优质人力资本的高强度竞争,技术的迭代更新需要高素质的人才、合理的机制体制以及优秀的企业文化作为支撑。作为知识型员工的代表,研发人员通常具有注重自身价值与自我发展、重视精
本文建立在隔网对抗项群基本单元竞技过程理论基础上,对世界优秀羽毛球女子单打比赛竞技过程进行定量分析与探究。通过对多场高水平羽毛球赛事的深入分析,准确把握世界优秀羽
21世纪是个信息化时代,我们面临着信息过载的问题,因此要获取到对我们有价值的信息变得非常困难,虽然搜索引擎在一定程度上能够缓解这个问题,但是这只是相对于需求明确的用户
本文将重点阐述中学生藏语文书面作文教学不同的训练策略,选取案例《如何写好记叙文》的“五变”绝招,借此改变旧的书面作文教学状态,探求中学书面作文教学内在的规律与科学方法