[发明专利]一种基于类多层网络的软件类重要性度量方法有效
申请号: | 201811261866.2 | 申请日: | 2018-10-26 |
公开(公告)号: | CN109445843B | 公开(公告)日: | 2021-08-03 |
发明(设计)人: | 潘伟丰;王家乐;蒋海波;姜波;柴春来;明华 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静;邱启旺 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于类多层网络的软件类重要性度量方法,包括以下步骤:将Java软件的源代码在类粒度抽象为类多层网络;计算类多层网络每一层中类节点的加权h指数;使用统计平均数法(专家打分法)为类在每一层中的加权h指数赋权重,进而将每个类在各层中的加权h指数通过线性加权融合成一个全局加权h指数,并以节点的全局加权h指数作为类重要性的度量指标。现有方法基本都忽略了类粒度网络的多层性,本发明弥补了现有方法的不足,首次将类多层网络引入类重要性的量度中,对于更加准确地理解软件结构,提高代码维护的效率具有重要意义。 | ||
搜索关键词: | 一种 基于 多层 网络 软件 重要性 度量 方法 | ||
【主权项】:
1.一种基于类多层网络的软件类重要性度量方法,其特征在于,包括以下步骤:(1)将Java软件的源代码在类粒度抽象为类多层网络MCN={GIN,GIM,GPA,GGL,GME,GLO,GRE},其中,Gi=(V,Li,Pi)为类多层网络中的某一单层网络,对应类之间的某种交互关系i∈{IN,IM,PA,GL,ME,LO,RE};V是Gi的节点集,表示源代码中的所有类;Li是Gi的无向边集,表示类间的依赖关系;Pi是一个|V|×|V|的矩阵,代表Gi层网络中类之间依赖关系强弱的权重矩阵;IN代表一个类继承了另外一个类;IM代表一个类实现了另外一个抽象类;PA代表一个类的方法以另外一个类的对象为参数;GL代表一个类包含以另外一个类为类型的属性;ME代表一个类的方法调用了另外一个类的方法;LO代表一个类的方法中包含以另外一个类为类型的局部变量;RE代表一个类的方法返回另外一个类的对象;(2)基于步骤(1)构建的MCN,计算节点n在每个单层网络Gi中的加权h指数hi(n),hi(n)的计算具体包括以下子步骤:(2.1)求Gi中节点n的邻居节点集合vn;(2.2)求节点n在Gi单层网络中所有节点的节点权;节点n在Gi中的节点权si(n)定义为Gi中与节点n相连的所有边的权重和,即:
其中,Pi(n,k)为Gi层网络中节点n和节点k之间边的权重;(2.3)将vn中的节点按其节点权降序排列,得到排序后的数组list,list[1]位置存放的是节点权最大的节点;(2.4)从list[1]开始,依次遍历list列表中的每个节点list[q],找到第一个满足节点权小于(m+1)的节点list[m+1],则节点n在Gi中的加权h指数hi(n)为m;(2.5)重复步骤(2.1)~(2.4),得到节点n在所有层的加权h指数;(3)基于步骤(2)求得的节点n在每个单层网络Gi中的加权h指数hi(n),将节点n在各层的hi(n)融合起来,得到节点n在整个MCN中的加权h指数hMCN(n),最终得到MCN中所有节点在整个MCN中的加权h指数hMCN,作为节点相应类的重要性值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811261866.2/,转载请声明来源钻瓜专利网。