[发明专利]一种基于依赖结构特征的Feature Envy代码坏味检测方法在审

专利信息
申请号: 202110989734.7 申请日: 2021-08-26
公开(公告)号: CN113703774A 公开(公告)日: 2021-11-26
发明(设计)人: 李必信;李佳;王璐璐;孔祥龙;廖力;周颖 申请(专利权)人: 东南大学
主分类号: G06F8/41 分类号: G06F8/41
代理公司: 南京众联专利代理有限公司 32206 代理人: 杜静静
地址: 210096 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 依赖 结构 特征 feature envy 代码 检测 方法
【权利要求书】:

1.一种基于依赖结构特征的Feature Envy代码坏味道检测方法,其特征在于,该方法包括如下步骤:

步骤1)依赖结构图构建,为Feature Envy代码坏味道构建依赖结构图,在表示坏味道的依赖结构图中,结点表示方法和类,结点之间的关系包括继承,实现,聚合,参数依赖,实例化,返回值依赖,函数调用;

步骤2)源代码依赖提取,程序源代码进行解析,提取出源代码实体之间的各种依赖关系;

步骤3)代码坏味道检测,通过分析各种依赖关系计算依赖强度,检测出具有FeatureEnvy的方法以及其所依恋的类。

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所述的基于依赖结构特征的Feature Envy代码坏味检测方法,其特征在于:所述步骤2)源代码依赖提取,具体如下:

根据源代码解析工具(JAVA语言可以采用工具JDT)对程序源代码进行解析,首先将程序源代码转化成抽象语法树(Abstract Syntax Tree,AST),抽象语法树是一种中间表示形式用来表示程序源代码,是一种树形的数据结构,树上的每个结点代表着相应的语法结构,通过分析抽象语法树,提取单个方法实体M的所依赖的类实体C1,C2,...Ci,...Cn,以及M与Ci七种依赖关系以及对应依赖关系的依赖次数,其中依赖关系包括继承(extends),聚合(aggregation),参数依赖(parameters),实例化(instantiation),返回值依赖(return),函数调用(invoke),实现(implements)。

4.根据权利要求1所述的基于依赖结构特征的Feature Envy代码坏味检测方法,其特征在于:所述步骤3)代码坏味道检测,具体如下:

根据如下公式计算方法实体M与其所依赖的类实体C1,C2,...Ci,...Cn各自的依赖强度,其中与方法实体M依赖强度最高的类实体Ci(1=i=n)就是方法M所依恋的类,如果与方法实体M依赖强度最高的类Ci是方法实体M本身所在的类,那么该方法就不具有FeatureEnvy代码坏味道,否则,就可以判断该方法具有具有Feature Envy代码坏味道,

如果A表示方法实体M,B表示类实体Ci(1=i=n),则A与B之间的依赖强度表示为:

其中Loc(A)表示实体A的有效代码行,DependTypei表示依赖类型i的依赖次数,wi表示该依赖类型的权重,依赖类型的权重表如下:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110989734.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top