本发明提出了一种基于多目标社团发现的软件系统可维护性评估与提升方法,包括:1)构建最大弱连通子图;2)划分方法调用最大弱连通子图并计算每个类的不同方法社团内聚度;3)计算不同方法社团内聚度的斯皮尔曼相关系数,选取相关系数最大的两个社团划分算法来计算软件系统的模块度,评估软件系统的可维护性;4)基于每个类的方法社团内聚度,使用自适应的阈值过滤算法,过滤出一些内聚度较低的类,这些类中某些方法与其它类有紧密联系,迁移这些方法,从而提高类的内聚度和软件系统的模块度,提升软件系统的可维护性.本发明不仅提升了软件系统中类的内聚度,而且提升了整个软件系统的模块度,从而提升了软件系统的可维护性.
发明专利
CN201410330742.0
2014.07.11
CN104133766A
2014-11-05
郑庆华 李剑 王志文 屈宇 刘烃
西安交通大学
G06F11/36(2006.01)I,G,G06,G06F,G06F11
G06F11/36(2006.01)I,G,G06,G06F,G06F11,G06F11/36
基于多目标社团发现的软件系统可维护性评估与提升方法,其特征在于,包括以下步骤:步骤S101:使用静态代码分析工具Understand和复杂网络分析包igraph,实现对Java软件系统方法调用的最大弱连通子图的生成;步骤S102:运用四种基于不同目标的社团划分算法划分步骤S101所生成的最大弱连通子图,并计算每个类的方法社团内聚度;步骤S103:计算四种社团划分算法结果的斯皮尔曼相关系数,最后挑选出最大斯皮尔曼相关系数的两个算法来计算类内聚度和模块度;步骤S104:使用阈值过滤算法,找出一些内聚度较低类中可以迁移的方法,输出这些迁入\迁出的方法,提高这些类的内聚度,提升了整体的模块度,从而提升了JAVA软件系统的可维护性.