[发明专利]一种基于多规则聚类的组件识别方法有效
申请号: | 201810221525.6 | 申请日: | 2018-03-17 |
公开(公告)号: | CN108519881B | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 王璐璐;张叶炼;孔祥龙;李必信 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06K9/62 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 杜静静 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 规则 组件 识别 方法 | ||
1.一种基于多规则聚类的组件识别方法,其特征在于,所述方法包括如下步骤:
步骤1):遍历依赖图找到符合强依赖类型,包括继承、实现、组合、定义与实现的实体集并聚合;
步骤2):寻找符合强依赖结构的实体集并聚合,形成实体集,处理完毕得到的结果就是模块依赖图;
步骤3):根据相似算法对步骤2)得到的模块依赖图进行距离计算,如下公式用于描述两个实体或实体集之间的距离公式,D(a,b)值越大,距离越短;
D(a,b)=DirSim(a,b)*DependComab;
其中,DirSim(a,b)表示实体集间的目录相似度,DependComab表示实体集a依赖实体集b的依赖强度;
步骤4):通过计算依赖频次来判断依赖密集的组件,聚合这些具有耦合度组件;
步骤5):根据步骤2)得到的模块依赖图,根据出入边寻找K个聚类中心,进行排序,选出出入度总数前k的模块;
步骤6):根据步骤3)计算的相互间距离,比较并找到距离聚类中心最近的模块,并预判聚合操作是否会引入新的耦合组件,以及对于新的组件进行规模预判;
步骤7):找到距离聚类中心最接近的两个模块执行聚合操作,并更新新节点信息,每次执行最多减少K个模块;
步骤8):重新计算新的模块与所有旧模块之间的距离,更新边信息,
步骤9):重复步骤5)—步骤8),直到最后达到步骤6)、步骤7)为止。
2.根据权利要求1所述的一种基于多规则聚类的组件识别方法,其特征在于,所述步骤2)中寻找符合强依赖结构,具体包括紧耦合、闭环依赖、开环依赖、循环依赖的实体集并聚合。
3.根据权利要求1所述的一种基于多规则聚类的组件识别方法,其特征在于,所述步骤3)中的距离计算具体如下:根据相似算法对步骤2)得到的模块依赖图进行距离计算,具体的计算公式如下:
描述实体集X依赖实体集Y的依赖强度,其中numX表示实体集X内的实体个数,numY表示实体集Y内的实体个数,DependFileij表示实体i对实体j的依赖强度;
描述实体或实体集间所在的目录相似度,
a、b分别代表两个实体或实体集,|Dir(a)|、|Dir(b)|分别表示a和b所在的目录路径层数,∨代表两个实体或实体集目录层数的并集,”∧”代表两个实体或实体集目录层数的交集,如果两个实体完全不属于一个目录,最小值取0.01;
依赖频次(DependencyFrequency)是指一个实体集中所有实体依赖另个实体集实体的总次数,若X和Y分别表示两个实体集,则实体集X依赖实体集Y的依赖频次表示为
DF(X,Y)=Num(Cx1,Cy1)+Num(Cx2,Cy2)…+Num(Cxm,Cyn);
其中m是实体集X内的实体数量,n是实体集Y内的实体数量;Num(Cxm,Cyn)表示Cxm依赖Cyn的次数,Cxm表示X实体集内第m个实体;
Cyn表示Y实体集内第n个实体;
用于描述两个实体或实体集之间的距离公式,D(a,b)值越大,距离越短;
D(a,b)=DirSim(a,b)*DependComab。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810221525.6/1.html,转载请声明来源钻瓜专利网。