[发明专利]一种基于依赖结构特征的Feature Envy代码坏味检测方法在审
申请号: | 202110989734.7 | 申请日: | 2021-08-26 |
公开(公告)号: | CN113703774A | 公开(公告)日: | 2021-11-26 |
发明(设计)人: | 李必信;李佳;王璐璐;孔祥龙;廖力;周颖 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 杜静静 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 依赖 结构 特征 feature envy 代码 检测 方法 | ||
本发明公开了一种基于依赖结构特征的Feature Envy代码坏味检测方法,从多种类型依赖出发,检测Feature Envy(依恋情结)代码坏味道。该方法包括:依赖结构图构建,源代码依赖提取,坏味道检测三个步骤:依赖结构图构建是结合代码坏味依赖结构图定义代码坏味道的结构特征,依赖图表示实体与实体之间的依赖关系,其中的实体是指类以及类中所包含的方法;源代码依赖提取是对程序源代码进行解析,提取出源代码实体之间各种依赖关系;坏味道检测是通过分析各类依赖关系与相应的代码坏味道特征进行匹配得出是否存在该代码坏味道。
技术领域
本发明是一种Feature Envy代码坏味道自动化识别的方法,主要用于解决软件维护过程中的代码缺陷问题,属于软件维护中代码坏味检测的技术领域。
背景技术
代码坏味道是一种存在于程序代码中的不良的现象,用于描述程序的缺陷。Fowler等人用它来描述程序代码中需要进行重构的模式,并且针对各种不同类型的代码坏味道给出了相应的重构方法。代码坏味道涉及面广泛而又复杂,使得程序员们无法仅用单一的方法来检测;另外由于它采用自然语言描述,缺乏实现自动化检测的理论依据,因此代码坏味道的自动检测虽然有意义,但目前公开发表的研究成果为数不多。
Fowler等人提出的22种代码坏味道从宏观上可以分为4大类:
(1)类内部结构型,描述某个类内部成员变量、成员方法的结构缺陷,或描述成员变量与成员方法的组合所产生的缺陷。
(2)类内部行为型,描述某个类内部成员变量或成员方法的语义缺陷。
(3)类之间结构型,描述类之间由于结构不清晰或者结构不合理所产生的代码味道。
(4)类之间行为型,描述由于多个类在功能(语义)上的关系混乱所造成的缺陷。
以上4种代码坏味道所描述的重点各不相同同,第1类代码坏味道侧重于描述程序代码数量上的属性,可以采用代码度量的方式进行分析;第2类侧重于描述程序开发人员主观上的习惯,此类代码坏味道因人而异,并不能作为客观的评判标准。第4类代码坏味道描述了程序代码的语义信息和业务过程,当业务过程改变时,程序设计将会发生改变,所说的代码坏味道也可能因此而消失,因此也不在本发明的考虑范围内。第3类坏味道并没有去针对特定的领域,只与软件系统的设计有关,而且这种代码坏味道出现得比较频繁,是引起软件变质的主要原因,绝大多数的重构操作都是针对于此,因此本文针对第3类坏味道中的Feature Envy进行研究。
本发明的目的是提出一种基于依赖结构的的代码坏味道识别方法,通过依赖结构图表示代码坏味道,利用源码解析工具(JAVA语言主要采用JDT)将源代码转化为抽象语法树(Abstract Syntax Tree,AST)来完成解析工作,通过分析抽象语法树,分析提取各层次粒度实体间依赖关系,包括继承(extends),聚合(aggregation),参数依赖(parameters),实例化(instantiation),返回值依赖(return),函数调用(invoke),实现(implements)。这些依赖关系为我们检测源程序中的类之间结构型的代码坏味道提供了数据基础。最后将坏味道结构图中的结点与结点之间的关系同分析源代码所得到的依赖关系去比较,搜索源代码中存在代码坏味道的所有位置。
发明内容
本发明的目的是提出一种基于依赖结构的的Feature Envy代码坏味道识别方法,该方法能够自动识别源程序中类间结构型的Feature Envy代码坏味道。
为了实现上述目的,本发明的技术方案如下:
一种基于依赖结构的Feature Envy代码坏味道识别方法,包括以下三个步骤:
步骤1)依赖结构图构建,为Feature Envy代码坏味道构建依赖结构图,在表示坏味道的依赖结构图中,结点表示方法和类,结点之间的关系包括继承,实现,聚合,参数依赖,实例化,返回值依赖,函数调用;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110989734.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种控油祛痘组合物及其应用
- 下一篇:一种降低位错密度的LED外延片制作方法