[发明专利]一种基于加权q2指数的软件类重要性度量方法有效
申请号: | 201510957055.6 | 申请日: | 2015-12-18 |
公开(公告)号: | CN105389192B | 公开(公告)日: | 2018-07-31 |
发明(设计)人: | 潘伟丰;宋贝贝;姜波;谢波;王家乐 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 加权 q2 指数 软件 重要性 度量 方法 | ||
1.一种基于加权q2指数的软件类重要性度量方法,其特征在于,包括以下步骤:
(1)将Java语言编写的软件源代码在特征粒度抽象为特征依赖网FDN=(Nf,Df);其中,Nf为源代码中特征节点的集合;Df={(fi,fj)}是无向边的集合,表示特征间的依赖关系,fi∈Nf,fj∈Nf;
(2)基于步骤(1)完成的FDN构建类依赖网CDN=(Nc,Dc,P);其中,Nc为源代码中类节点的集合;Dc(ci∈Dc,cj∈Dc)是一个无向边的集合,表示类之间的依赖关系;P是一个|Nc|×|Nc|的矩阵,代表类之间依赖关系的强度矩阵,|Nc|返回Nc中的节点数;CDN的构建具体包括以下子步骤:
(2.1)提取Java语言编写的源代码中的所有类,构建一个只有节点没有边的CDN,即CDN=(Nc,Φ,P);Φ代表边集为空,同时P是一个零矩阵;
(2.2)取步骤(1)Df中的一条边(fi,fj)∈Df,根据源代码得到fi和fj所定义的类,若fi在类k中定义,fj在类p中定义,若k≠p,则将(k,p)加入Dc,同时步骤(2.1)中P相应位置的P(k,p)自加1;若k与p相等,则不做任何处理;
(2.3)重复步骤(2.2),直到遍历完FDN中的所有边;
(3)基于步骤(2)完成的CDN计算节点i的加权h指数h(i);节点i的加权h指数h(i)的计算具体包括以下子步骤:
(3.1)求步骤(2)所得CDN中所有节点的节点权;节点j的节点权sj定义为CDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合;
(3.2)求步骤(2)所得CDN中节点i的邻居节点集合vi;
(3.3)将vi中的节点按其节点权降序排列,若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序,得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点;
(3.4)从list[1]开始,依次遍历list列表中的每个节点list[q],找到第一个满足节点权小于(n+1)的节点list[n+1],则节点i的加权h指数h(i)为n;
(4)基于步骤(2)完成的CDN计算节点i的加权m指数m(i);节点i的加权m指数m(i)的计算具体包括以下子步骤:
(4.1)求步骤(2)所得CDN中所有节点的节点权;节点j的节点权sj定义为CDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合;
(4.2)求步骤(2)所得CDN中节点i的邻居节点集合vi;
(4.3)将vi中的节点按其节点权降序排列,若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序,得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点,list[|vi|]位置存放的是节点权最小的那个节点,|vi|为vi中节点个数;
(4.4)根据计算节点i的加权m指数m(i);
(5)基于步骤(3)和步骤(4)计算节点i的加权g2指数
(6)基于步骤(3)、(4)和(5)计算CDN中所有节点的加权g2指数,作为节点相应类的重要性值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510957055.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种悬浮细胞的免疫荧光染色方法
- 下一篇:多功能呼吸面罩