[发明专利]一种基于聚类与标签传播的软件系统模块划分方法有效
申请号: | 202111069531.2 | 申请日: | 2021-09-13 |
公开(公告)号: | CN113869378B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 王俊峰;杨凯元;方智阳;宋紫华;李凡 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F18/231 | 分类号: | G06F18/231;G06F8/41 |
代理公司: | 成都禾创知家知识产权代理有限公司 51284 | 代理人: | 刘凯 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 标签 传播 软件 系统 模块 划分 方法 | ||
1.一种基于聚类与标签传播的软件系统模块划分方法,其特征在于,包括以下步骤:
步骤1:从源代码中提取语义信息和结构信息:
所述语义信息指代码文件中的语句;通过基于主题聚类的信息提取方式,得到每个文件实体的主题概率分布,从而获得所有文件实体的向量表示;
所述结构信息代表文件之间的依赖关系;对软件代码进行静态分析发现文件之间依赖关系,构建文件依赖图;
步骤2:基于特征密度的局部离群因子算法,计算出每个语义特征的局部离群因子,识别对于语义聚类过程有干扰的离群值;
步骤3:过滤掉对聚类过程有干扰的离群实体后,利用层次聚类算法对剩余的高质量语义特征进行分组,得到划分骨架;
步骤4:利用文件依赖图处理被过滤掉的离群实体:在得到的划分骨架中,部分实体已经被分配到稳定的集群标签,则将这部分实体在文件依赖图中对应的主干节点标注上其集群标签;将离群值对应的节点初始化一个唯一的标签;在文件依赖图上不断迭代标签传播过程,直到每个节点都被分配了一个合适的标签。
2.根据权利要求1所述的基于聚类与标签传播的软件系统模块划分方法,其特征在于,所述步骤2中基于特征密度的局部离群因子算法具体为:
步骤21:计算所有特征之间的真实距离以构建距离矩阵;
步骤22:对于每个输入的文件实体特征,构造其K距离邻域,并计算该特征和其K距离邻域内部其他每个特征的可达距离,两个特征之间的可达距离rdk(Pi,Pj)为:
rdk(Pi,Pj)=max{dk(Pj),d(Pi,Pj)} (1)
其中,dk(Pj)指的是到达特征Pj第K长的距离长度,d(Pi,Pj)指的是特征Pi到达特征Pj的真实距离;
步骤23:计算每个特征的邻域内所有特征的局部可达性密度,在邻域内部,计算每个特征的局部可达密度lrdk(Pi):
式中,Nk(Pi)指的是特征Pi的K距离邻域,o指的是特征Pi的K距离邻域内部的其它特征;rdk(Pi,o)为特征Pi到达其K距离邻域内部每个特征的可达距离;|Nk(Pi)|指该邻域内部包含的特征的数量个数;
步骤24:计算每个特征的局部离群因子lofk(Pi):
3.根据权利要求1所述的基于聚类与标签传播的软件系统模块划分方法,其特征在于,所述步骤3中采用的聚类算法是凝聚层次聚类方法,通过计算两个特征间的巴氏距离,衡量两个文件实体之间的语义关联强度。
4.根据权利要求1所述的基于聚类与标签传播的软件系统模块划分方法,其特征在于,所述步骤4建立在发布者-监听者标签传播算法的基础上,每次迭代,文件依赖图上节点的深度依赖关系用于传播标签;一个作为监听者的节点将接收来自所有相邻节点的信息并实时更新标签权重信息,存储在其标签存储器中;之后该节点将切换为一个信息发布者,并将其标签传播给周围邻居;为控制每个节点的监听和发布过程,其规则如下:
1)主干节点的标签权重被设定为发布者-监听者标签传播算法的最大迭代次数;
2)若一个监听者从它的所有邻居节点中只收到一种标签,则标签的权重需被放大;
3)若一个监听者从它的所有邻居节点中收到多种标签,在经过一个多项分布试验后,监听者将试验结果最大的标签存入自身的标签存储器中;
4)发布者总是选择最大权重的标签在它的周围邻居传播;如果到达,则该标签不展开,以避免产生过于庞大的集群;
5)迭代完毕后,若带有某同一标签的节点个数小于5,则该类节点在文件依赖图上被分配到其邻居集群中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111069531.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种便利型骑行工具
- 下一篇:一种用于5G通讯的光缆交接箱