国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:刘弋,吴毅坚,彭鑫,闫亚东
单位:刘弋,复旦大学 软件学院, 上海 200438;上海市数据科学重点实验室(复旦大学), 上海 20043811,吴毅坚,复旦大学 软件学院, 上海 200438;上海市数据科学重点实验室(复旦大学), 上海 20043802,彭鑫,复旦大学 软件学院, 上海 200438;上海市数据科学重点实验室(复旦大学), 上海 20043803,闫亚东,复旦大学 软件学院, 上海 200438;上海市数据科学重点实验室(复旦大学), 上海 20043804
关键词:代码坏味;软件维护;上帝类;孤立森林
基金:国家重点研发计划(2016YFB1000801)
上帝类(God class)是指同时包含多种任务职责的类,其常见特征是包含大量的属性与方法,并且与系统中的其他类有多种依赖关系.上帝类是一种典型的代码坏味,对软件的开发维护产生负面影响.近年来,许多研究都致力于发现和重构上帝类,但是现有方法识别上帝类的能力不强,检测精确率不高.提出了一种基于图模型和孤立森林的上帝类检测方法,主要分为两个阶段:图结构信息分析阶段和类内度量评估阶段.在图结构信息分析阶段,建立类间的方法调用图和类内结构图,采用孤立森林算法缩小上帝类的检测范围;在类内度量评估阶段,考虑项目的规模和架构带来的影响,将项目中上帝类相关度量指标的平均值作为基准,设计实验确定比例因子,并以平均值和比例因子的乘积作为阈值,筛选得到上帝类的检测结果.在代码坏味标准数据集上的实验结果表明:与现有的上帝类检测方法相比,该方法在精确率和F1值上分别提升了25.82个百分点和33.39个百分点,同时保持了较高的召回率.
来源:2022年第11期
《软件学报》期刊编辑部