CN105487913B - 一种基于加权a指数的软件包重要性度量方法 - Google Patents

一种基于加权a指数的软件包重要性度量方法 Download PDF

Info

Publication number
CN105487913B
CN105487913B CN201510958716.7A CN201510958716A CN105487913B CN 105487913 B CN105487913 B CN 105487913B CN 201510958716 A CN201510958716 A CN 201510958716A CN 105487913 B CN105487913 B CN 105487913B
Authority
CN
China
Prior art keywords
node
weighting
class
pdn
indexes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510958716.7A
Other languages
English (en)
Other versions
CN105487913A (zh
Inventor
潘伟丰
宋贝贝
徐红伟
姜波
谢波
王家乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201510958716.7A priority Critical patent/CN105487913B/zh
Publication of CN105487913A publication Critical patent/CN105487913A/zh
Application granted granted Critical
Publication of CN105487913B publication Critical patent/CN105487913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种基于加权a指数的软件包重要性度量方法,包括以下步骤:将Java语言编写的软件源代码在特征粒度抽象为特征依赖网;基于特征依赖网构建类依赖网;基于类依赖网构建包依赖网;基于包依赖网计算节点的加权h指数;基于包依赖网计算节点的加权cit指数;基于节点的加权h指数和加权cit指数计算节点的加权a指数,并以节点的加权a指数作为包重要性的度量指标。本发明弥补了现有技术鲜有涉及包重要性度量的不足,对于理解软件,提高代码维护效率具有重要意义。

Description

一种基于加权a指数的软件包重要性度量方法
技术领域
本发明涉及一种软件包重要性度量方法,尤其是涉及一种基于加权a指数的软件包重要性度量方法。
背景技术
计算机软件已经渗透到我们工作和日常生活的各个方面,正在改变并且还将继续改变我们的生活。随着软件技术的发展和互联网的普及,人们对软件的依赖与日俱增,对软件质量的要求越来越高。这导致了系统规模的激增和软件应用环境的日益复杂,使得软件开发的风险增加、软件质量很难得到有效的控制。
同时演化性是软件的本质属性之一。软件系统同生物一样,在其生命周期内,也必须不断的演化,否则就有可能提前被淘汰。软件演化的重要内容之一是对软件源代码的修改。然而要修改代码,我们必须对软件系统有一定的了解。在维护资源有限的情况下,对于一个新加入的开发者,加快其对系统的了解具有比较重要的意义。可以通过为新开发者推荐重要的软件元素(如类、包等)从而加快其对系统的了解。尽管目前已经有不少软件度量方面的研究工作,如LOC(Lines of Code)代码行、McCabe圈复杂度(CyclomaticComplexity)、Halstead度量法、CK度量组、MOOD度量集等,能够为认识软件的复杂性提供一定的帮助,但是仍有如下不足:
(1)现有的工作主要集中于度量代码元素本身的复杂性,缺少对代码元素重要性的度量。
(2)现有工作主要是针对元素级的度量,度量的往往是软件的局部特征,如度量一个方法、一个类,缺少从整体角度进行软件度量的工作,更缺少从整体角度度量软件元素重要性的工作。
包是目前主流的面向对象软件的主要构成元素之一。因此,提供一种有效的包重要性度量方法,从整体角度度量包的重要性,对于理解软件,提高代码维护效率具有重要意义。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种基于加权a指数的软件包重要性度量方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:一种基于加权a指数的软件包重要性度量方法,该方法包括以下步骤:
(1)将Java语言编写的软件源代码在特征粒度抽象为特征依赖网FDN=(Nf,Df)。其中,Nf为源代码中特征节点的集合;Df={(fi,fj)}(fi∈Nf,fj∈Nf)是无向边的集合,表示特征间的依赖关系。特征包括了Java源代码中的属性和方法。特征间的依赖关系包括了方法间的调用关系和方法对属性的使用关系。
(2)基于步骤(1)完成的FDN构建类依赖网CDN=(Nc,Dc,P)。其中,Nc为源代码中类节点的集合;Dc(ci∈Dc,cj∈Dc)是一个无向边的集合,表示类之间的依赖关系;P是一个|Nc|×|Nc|的矩阵,代表类之间依赖关系的强度矩阵。类包含了Java中的类、内部类、抽象类和接口。类之间的依赖关系是根据类包含的特征间的依赖关系得到的,即类包含的特征间具有依赖关系,则相应的类之间也存在依赖关系。
(3)基于步骤(2)完成的CDN构建包依赖网PDN=(Np,Dp,Pp)。其中,Np为源代码中包节点的集合;Dp(pi∈Dp,pj∈Dp)是一个无向边的集合,表示包之间的依赖关系;Pp是一个|Np|×|Np|的矩阵,代表包之间依赖关系的强度矩阵。包之间的依赖关系是根据包所包含的类之间的依赖关系得到的,即包所包含的类间具有依赖关系,则相应的包之间也存在依赖关系。
(4)基于步骤(3)完成的PDN计算节点i的加权h指数h(i)。
(5)基于步骤(3)完成的PDN计算节点i的加权cit指数cit(i)。
(6)基于步骤(4)和步骤(5)计算节点i的加权a指数
(7)基于步骤(4)、(5)和(6)计算PDN中所有节点的加权a指数,作为节点相应包的重要性值。
进一步地,上述步骤(2)中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)中PDN的构建具体包括以下子步骤:
(3.1)提取Java语言编写的源代码中的所有包,构建一个只有节点没有边的PDN,即PDN=(Np,Φ,Pp)。Φ代表边集为空,同时Pp是一个零矩阵。
(3.2)取步骤(2)Dc中的一条边(ci,cj)∈Dc,根据源代码得到ci和cj所定义的包,若ci在包k中定义,cj在包p中定义,若k≠p,则将(k,p)加入Dp,同时步骤(3.1)中Pp相应位置的Pp(k,p)加上P(i,j);若k与p相等,则不做任何处理。
(3.3)重复步骤(3.2),直到遍历完CDN中的所有边。
进一步地,上述步骤(4)中节点i的加权h指数h(i)的计算具体包括以下子步骤:
(4.1)求步骤(3)所得PDN中所有节点的节点权。节点j的节点权sj定义为PDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合。
(4.2)求步骤(3)所得PDN中节点i的邻居节点集合vi
(4.3)将vi中的节点按其节点权降序排列(若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序),得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点。
(4.4)从list[1]开始,依次遍历list列表中的每个节点list[q],找到第一个满足节点权小于(n+1)的节点list[n+1],则节点i的加权h指数h(i)为n。
进一步地,上述步骤(5)中节点i的加权cit指数cit(i)的计算具体包括以下子步骤:
(5.1)求步骤(3)所得PDN中所有节点的节点权。节点j的节点权sj定义为PDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合。
(5.2)求步骤(3)所得PDN中节点i的邻居节点集合vi
(5.3)将vi中的节点按其节点权降序排列(若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序),得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点,list[|vi|]位置存放的是节点权最小的那个节点(|vi|为vi中节点个数)。
与现有技术相比,本发明具有以下优点和积极效果:
(1)本发明中加权a指数的构建都考虑了软件作为一个整体的影响,因为构建a指数所使用的加权h指数和加权cit指数都考虑了网络中其它节点的节点权,是一种整体视角,在一定程度上克服了现有方法只关注局部特征忽略整体特征的问题。
(2)本发明提出用加权a指数度量软件中包的重要性,在一定程度上克服了现有方法只关注软件元素复杂性的度量,忽略软件元素重要性度量的问题,可以为理解软件、提高代码维护效率提供支持。
附图说明
图1本发明的Java语言编写的源代码片段;
图2本发明的实施例构建的FDN;
图3本发明的实施例构建的无边CDN;
图4本发明的实施例构建的无边CDN相应的P;
图5本发明的实施例构建的无边CDN加入一条边后的CDN;
图6本发明的实施例构建的无边CDN加入一条边后的CDN相应的P;
图7本发明的实施例构建的最终CDN;
图8本发明的实施例构建的最终CDN相应的P;
图9本发明的实施例构建的无边PDN;
图10本发明的实施例构建的无边PDN相应的Pp
图11本发明的实施例构建的无边PDN加入一条边后的PDN;
图12本发明的实施例构建的无边PDN加入一条边后的PDN相应的Pp
图13本发明的实施例构建的最终PDN;
图14本发明的实施例构建的最终PDN相应的Pp
具体实施方式
下面通过实施例并结合附图对本发明的技术方案作进一步的说明:
本发明提出的一种基于加权a指数的软件包重要性度量方法,具体步骤如下:
(1)将Java语言编写的软件源代码在特征粒度抽象为特征依赖网FDN=(Nf,Df)。图1所示的是一个Java源代码片段。按照图1所给的Java源代码片段,可以构建相应的FDN(如图2所示),节点边的文字为节点相应特征的名字(名字由包名,类名,特征名以“.”相连构成)。其中,Nf={p1.classX.a(),p1.classX.v(),p1.classX.c(),p1.classX.b(),p2.classY.d(),p2.classZ.e(),p2.classZ.f(),p3.classL.g()}为特征节点的集合;Df={(p1.classX.b(),p1.classX.a()),(p1.classX.a(),p1.classX.b()),(p1.classX.a(),p1.classX.v()),(p1.classX.v(),p1.classX.a()),(p1.classX.v(),p1.classX.c()),(p1.classX.c(),p1.classX.v()),(p1.classX.a(),p2.classY.d()),(p2.classY.d(),p1.classX.a()),(p2.classY.d(),p2.classZ.e()),(p2.classZ.e(),p2.classY.d()),(p1.classX.a(),p2.classZ.f()),(p2.classZ.f(),p1.classX.a()),(p3.classL.g(),p2.classZ.f()),(p2.classZ.f(),p3.classL.g()),(p1.classX.c(),p2.classZ.f()),(p2.classZ.f(),p1.classX.c())}是无向边的集合,表示特征间的依赖关系。
(2)基于步骤(1)完成的FDN构建类依赖网CDN=(Nc,Dc,P)。CDN的构建具体包括以下子步骤:
(2.1)提取Java语言编写的源代码中的所有类,构建一个只有节点没有边的CDN,即CDN=(Nc,Φ,P)。Φ代表边集为空,同时P是一个零矩阵。按照图1所给的Java源代码片段,可以构建相应的CDN=(Nc,Φ,P)(如图3所示),其中,Nc={p1.classX,p2.classY,p2.classZ,p3.classL}为源代码中类节点的集合,节点边的文字为节点相应类的名字(名字由包名和类名以“.”相连构成)。P是一个零矩阵,如图4所示。
(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所示,若取边(p1.classX.a(),p2.classZ.f()),因p1.classX.a()在p1.classX类中定义,p2.classZ.f()在类p2.classZ中定义,且p1.classX与p2.classZ不是同一类,故将(p1.classX,p2.classZ)加入Dc,可以得到图5所示CDN及图6所示P。
(2.3)重复步骤(2.2),直到遍历完FDN中的所有边,可以得到图7所示的CDN,其中,Nc={p1.classX,p2.classY,p2.classZ,p3.classL}为源代码中类节点的集合;Dc={(p1.classX,p2.classY),(p2.classY,p1.classX),(p1.classX,p2.classZ),(p2.classZ,p1.classX),(p2.classY,p2.classZ),(p2.classZ,p2.classY),(p2.classZ,p3.classL),(p3.classL,p2.classZ)}是一个无向边的集合,表示类之间的依赖关系。相应的P如图8所示。
(3)基于步骤(2)完成的CDN构建包依赖网PDN=(Np,Dp,Pp)。PDN的构建具体包括以下子步骤:
(3.1)提取Java语言编写的源代码中的所有包,构建一个只有节点没有边的PDN,即PDN=(Np,Φ,Pp)。Φ代表边集为空,同时Pp是一个零矩阵。按照图1所给的Java源代码片段,可以构建相应的PDN=(Np,Φ,Pp)(如图9所示),其中,Np={p1,p2,p3}为源代码中包节点的集合,节点边的文字为节点相应包的名字。Pp是一个零矩阵,如图10所示。
(3.2)取步骤(2)Dc中的一条边(ci,cj)∈Dc,根据源代码得到ci和cj所定义的包,若ci在包k中定义,cj在包p中定义,若k≠p,则将(k,p)加入Dp,同时步骤(3.1)中Pp相应位置的Pp(k,p)加上P(i,j);若k与p相等,则不做任何处理。如图2所示,若取边(p1.classX,p2.classZ),因p1.classX在p1包中定义,p2.classZ在包p2中定义,且p1与p2不是同一包,故将(p1,p2)加入Dp,可以得到图11所示CDN及图12所示Pp
(3.3)重复步骤(3.2),直到遍历完CDN中的所有边。可以得到图13所示的PDN,其中,Np={p1,p2,p3}为源代码中包节点的集合;Dp={(p1,p2),(p2,p1),(p2,p3),(p3,p2)}是一个无向边的集合,表示包之间的依赖关系。相应的Pp如图14所示。
(4)基于步骤(3)完成的PDN计算节点i的加权h指数h(i)。,具体包括以下子步骤:
(4.1)求步骤(3)所得PDN中所有节点的节点权。节点j的节点权sj定义为PDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合。因此,图13中节点p1的节点权sp1=3,p2的节点权sp2=3+1=4,p3的节点权sp3=1。
(4.2)求步骤(3)所得PDN中节点i的邻居节点集合vi。因此,若令节点i为图13中的节点p2,则其邻居节点集合vp2={p1,p3}。
(4.3)将vi中的节点按其节点权降序排列(若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序),得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点。因此,若令节点i为图13中的节点p2,vp2={p1,p3}中的节点p1的节点权sp1=3,,p3的节点权sp3=1,因此可以得到list数组为{p1,p3},即list[1]=p1,list[2]=p3。
(4.4)从list[1]开始,依次遍历list列表中的每个节点list[q],找到第一个满足节点权小于(n+1)的节点list[n+1],则节点i的加权h指数h(i)为n。因此,对于p2节点:当q=1时,sp1>1;当q=2时,sp3<2,故h(p2)的值为1。
(5)基于步骤(3)完成的PDN计算节点i的加权cit指数cit(i),具体包括以下子步骤:
(5.1)求步骤(3)所得PDN中所有节点的节点权。节点j的节点权sj定义为PDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合。因此,图13中节点p1的节点权sp1=3,p2的节点权sp2=3+1=4,p3的节点权sp3=1。
(5.2)求步骤(3)所得PDN中节点i的邻居节点集合vi。因此,若令节点i为图13中的节点p2,则其邻居节点集合vp2={p1,p3}。
(5.3)将vi中的节点按其节点权降序排列(若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序),得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点,list[|vi|]位置存放的是节点权最小的那个节点(|vi|为vi中节点个数)。因此,若令节点i为图13中的节点p2,vp2={p1,p3}中的节点p1的节点权sp1=3,,p3的节点权sp3=1,因此可以得到list数组为{p1,p3},即list[1]=p1,list[2]=p3。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明,实施例中a(p1)和a(p3)的值相等,这只是现实中可能的一种情况,但并不代表所有的情况都是如此。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (6)

1.一种基于加权a指数的软件包重要性度量方法,其特征在于,包括以下步骤:
(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|的矩阵,代表类之间依赖关系的强度矩阵;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构建包依赖网PDN=(Np,Dp,Pp);其中,Np为源代码中包节点的集合;Dp(pi∈Dp,pj∈Dp)是一个无向边的集合,表示包之间的依赖关系;Pp是一个|Np|×|Np|的矩阵,代表包之间依赖关系的强度矩阵;PDN的构建具体包括以下子步骤:
(3.1)提取Java语言编写的源代码中的所有包,构建一个只有节点没有边的PDN,即PDN=(Np,Φ,Pp);Φ代表边集为空,同时Pp是一个零矩阵;
(3.2)取步骤(2)Dc中的一条边(ci,cj)∈Dc,根据源代码得到ci和cj所定义的包,若ci在包k中定义,cj在包p中定义,若k≠p,则将(k,p)加入Dp,同时步骤(3.1)中Pp相应位置的Pp(k,p)加上P(i,j);若k与p相等,则不做任何处理;
(3.3)重复步骤(3.2),直到遍历完CDN中的所有边;
(4)基于步骤(3)完成的PDN计算节点i的加权h指数h(i);节点i的加权h指数h(i)的计算具体包括以下子步骤:
(4.1)求步骤(3)所得PDN中所有节点的节点权;节点j的节点权sj定义为PDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合;
(4.2)求步骤(3)所得PDN中节点i的邻居节点集合vi
(4.3)将vi中的节点按其节点权降序排列,若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序,得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点;
(4.4)从list[1]开始,依次遍历list列表中的每个节点list[q],找到第一个满足节点权小于(n+1)的节点list[n+1],则节点i的加权h指数h(i)为n;
(5)基于步骤(3)完成的PDN计算节点i的加权cit指数cit(i);节点i的加权cit指数cit(i)的计算具体包括以下子步骤:
(5.1)求步骤(3)所得PDN中所有节点的节点权;节点j的节点权sj定义为PDN中与该节点相连的所有边的权重和,即:
其中,vj是节点j的邻居节点集合;
(5.2)求步骤(3)所得PDN中节点i的邻居节点集合vi
(5.3)将vi中的节点按其节点权降序排列,若存在节点权相等的情况,则相等的几个值随机选择一种可能的排序,得到排序后的数组list,list[1]位置存放的是节点权最大的那个节点,list[|vi|]位置存放的是节点权最小的那个节点,|vi|为vi中节点个数;
(5.4)根据计算节点i的加权cit指数cit(i);
(6)基于步骤(4)和步骤(5)计算节点i的加权a指数
(7)基于步骤(4)、(5)和(6)计算PDN中所有节点的加权a指数,作为节点相应包的重要性值。
2.根据权利要求1所述一种基于加权a指数的软件包重要性度量方法,其特征在于,所述的步骤(1)中的特征包括了Java源代码中的属性和方法。
3.根据权利要求1所述一种基于加权a指数的软件包重要性度量方法,其特征在于,所述的步骤(1)中特征间的依赖关系包括了方法间的调用关系和方法对属性的使用关系。
4.根据权利要求1所述一种基于加权a指数的软件包重要性度量方法,其特征在于,所述的步骤(2)中的类包含了Java中的类、内部类、抽象类和接口。
5.根据权利要求1所述一种基于加权a指数的软件包重要性度量方法,其特征在于,所述的步骤(2)中类之间的依赖关系是根据类包含的特征间的依赖关系得到的,即类包含的特征间具有依赖关系,则相应的类之间也存在依赖关系。
6.根据权利要求1所述一种基于加权a指数的软件包重要性度量方法,其特征在于,所述的步骤(3)中包之间的依赖关系是根据包所包含的类之间的依赖关系得到的,即包所包含的类间具有依赖关系,则相应的包之间也存在依赖关系。
CN201510958716.7A 2015-12-18 2015-12-18 一种基于加权a指数的软件包重要性度量方法 Active CN105487913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510958716.7A CN105487913B (zh) 2015-12-18 2015-12-18 一种基于加权a指数的软件包重要性度量方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510958716.7A CN105487913B (zh) 2015-12-18 2015-12-18 一种基于加权a指数的软件包重要性度量方法

Publications (2)

Publication Number Publication Date
CN105487913A CN105487913A (zh) 2016-04-13
CN105487913B true CN105487913B (zh) 2018-07-31

Family

ID=55674909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510958716.7A Active CN105487913B (zh) 2015-12-18 2015-12-18 一种基于加权a指数的软件包重要性度量方法

Country Status (1)

Country Link
CN (1) CN105487913B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445843B (zh) * 2018-10-26 2021-08-03 浙江工商大学 一种基于类多层网络的软件类重要性度量方法
CN109871318B (zh) * 2019-01-14 2022-05-17 浙江工商大学 一种基于软件运行网络的关键类识别方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385505A (zh) * 2010-08-30 2012-03-21 北京理工大学 针对面向对象程序设计语言源代码的软件可视化方法
CN103793230A (zh) * 2014-02-18 2014-05-14 河海大学 一种面向对象软件系统类的内聚度度量方法
CN103927177A (zh) * 2014-04-18 2014-07-16 扬州大学 基于LDA模型和PageRank算法建立特征接口有向图的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385505A (zh) * 2010-08-30 2012-03-21 北京理工大学 针对面向对象程序设计语言源代码的软件可视化方法
CN103793230A (zh) * 2014-02-18 2014-05-14 河海大学 一种面向对象软件系统类的内聚度度量方法
CN103927177A (zh) * 2014-04-18 2014-07-16 扬州大学 基于LDA模型和PageRank算法建立特征接口有向图的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Measuring Structural Quality of Object-Oriented Softwares via Bug Propagation Analysis on Weighted Software Networks;Wei-Feng Pan;《Springer Science》;20101130;第1202-1213页 *
基于依赖结构分析的类重要性度量方法;周毓明;《东南大学学报》;20080531;第38卷(第3期);第380-384页 *

Also Published As

Publication number Publication date
CN105487913A (zh) 2016-04-13

Similar Documents

Publication Publication Date Title
CN105389192B (zh) 一种基于加权q2指数的软件类重要性度量方法
Wen et al. Bayesian inference of reticulate phylogenies under the multispecies network coalescent
WO2018171715A1 (zh) 适用神经网络处理器的自动化设计方法及系统
RU2607621C2 (ru) Способ, система и машиночитаемый носитель данных для группирования в социальных сетях
Mistry et al. DiffSLC: A graph centrality method to detect essential proteins of a protein-protein interaction network
CN112052151A (zh) 故障根因分析方法、装置、设备及存储介质
US9524316B2 (en) Processing search queries using a data structure
Dutheil et al. Efficient selection of branch-specific models of sequence evolution
CN105630800B (zh) 一种节点重要性排序的方法和系统
CN110019823B (zh) 更新知识图谱的方法及装置
EP3663915A1 (en) Scheduling task graph operations
CN104270429A (zh) 一种推送应用到终端的方法和装置
Micale et al. GASOLINE: a greedy and stochastic algorithm for optimal local multiple alignment of interaction networks
Deng et al. An efficient online direction-preserving compression approach for trajectory streaming data
CN108334515A (zh) 一种处理崩溃文件中堆栈地址的方法、装置及系统
CN114785696B (zh) 复杂网络节点的重要度评估方法及装置
CN105487913B (zh) 一种基于加权a指数的软件包重要性度量方法
CN104320312A (zh) 网络应用安全测试工具及模糊测试用例生成方法和系统
Bangui et al. Multi-criteria decision analysis methods in the mobile cloud offloading paradigm
CN111128307A (zh) 代谢路径预测方法、装置、终端设备及可读存储介质
US11979309B2 (en) System and method for discovering ad-hoc communities over large-scale implicit networks by wave relaxation
CN104778205A (zh) 一种基于异构信息网络的移动应用排序和聚类方法
CN114251075B (zh) 基于多目标参数的储层开采方案确定方法、装置及设备
Zhang et al. Refining regulatory networks through phylogenetic transfer of information
CN103778329A (zh) 一种构造数据补足值的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant