当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于依赖结构特征的FeatureEnvy代码坏味检测方法技术

技术编号:31020680 阅读:26 留言:0更新日期:2021-11-30 03:08
本发明专利技术公开了一种基于依赖结构特征的Feature Envy代码坏味检测方法,从多种类型依赖出发,检测Feature Envy(依恋情结)代码坏味道。该方法包括:依赖结构图构建,源代码依赖提取,坏味道检测三个步骤:依赖结构图构建是结合代码坏味依赖结构图定义代码坏味道的结构特征,依赖图表示实体与实体之间的依赖关系,其中的实体是指类以及类中所包含的方法;源代码依赖提取是对程序源代码进行解析,提取出源代码实体之间各种依赖关系;坏味道检测是通过分析各类依赖关系与相应的代码坏味道特征进行匹配得出是否存在该代码坏味道。行匹配得出是否存在该代码坏味道。行匹配得出是否存在该代码坏味道。

【技术实现步骤摘要】
一种基于依赖结构特征的Feature Envy代码坏味检测方法


[0001]本专利技术是一种Feature Envy代码坏味道自动化识别的方法,主要用于解决软件维护过程中的代码缺陷问题,属于软件维护中代码坏味检测的


技术介绍

[0002]代码坏味道是一种存在于程序代码中的不良的现象,用于描述程序的缺陷。Fowler等人用它来描述程序代码中需要进行重构的模式,并且针对各种不同类型的代码坏味道给出了相应的重构方法。代码坏味道涉及面广泛而又复杂,使得程序员们无法仅用单一的方法来检测;另外由于它采用自然语言描述,缺乏实现自动化检测的理论依据,因此代码坏味道的自动检测虽然有意义,但目前公开发表的研究成果为数不多。
[0003]Fowler等人提出的22种代码坏味道从宏观上可以分为4大类:
[0004](1)类内部结构型,描述某个类内部成员变量、成员方法的结构缺陷,或描述成员变量与成员方法的组合所产生的缺陷。
[0005](2)类内部行为型,描述某个类内部成员变量或成员方法的语义缺陷。
[0006](3)类之间结构本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于依赖结构特征的Feature Envy代码坏味道检测方法,其特征在于,该方法包括如下步骤:步骤1)依赖结构图构建,为Feature Envy代码坏味道构建依赖结构图,在表示坏味道的依赖结构图中,结点表示方法和类,结点之间的关系包括继承,实现,聚合,参数依赖,实例化,返回值依赖,函数调用;步骤2)源代码依赖提取,程序源代码进行解析,提取出源代码实体之间的各种依赖关系;步骤3)代码坏味道检测,通过分析各种依赖关系计算依赖强度,检测出具有Feature Envy的方法以及其所依恋的类。2.根据权利要求1所述的基于依赖结构特征的Feature Envy代码坏味检测方法,其特征在于:所述步骤1)依赖结构图构建,具体如下:结合Feature Envy代码坏味道定义,构建Feature Envy代码坏味道结构依赖图,Feature Envy代码坏味道的依赖结构图是一个包含一个起点和多个终点的有向图,依赖图的定义包括结点集合V={v1,v2,...,vi,...,vn},其中vi表示图中的结点,1<=i<=n,n是结点的总数;边的集合包括E={e1,e2,...ej,...em},其中ej表示图中的边,1<=j<=m,m是边的总数;结点的类型包括类(class)和方法(method),其中,只有起点的类型是方法(method),所有终点的类型都是类(class);边的类型包括继承(extends)依赖,聚合(aggregation)依赖,参数依赖(parameters),实例化(instantiation)依赖,返回值依赖(return),函数调用(invoke)依赖,实现(implements)依赖。3.根据权利要求1所述的基于依赖结构特征的F...

【专利技术属性】
技术研发人员:李必信李佳王璐璐孔祥龙廖力周颖
申请(专利权)人:东南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1