CN115408272A - 一种基于TOPSIS法的Java冗余代码评估方法 - Google Patents

一种基于TOPSIS法的Java冗余代码评估方法 Download PDF

Info

Publication number
CN115408272A
CN115408272A CN202210941442.0A CN202210941442A CN115408272A CN 115408272 A CN115408272 A CN 115408272A CN 202210941442 A CN202210941442 A CN 202210941442A CN 115408272 A CN115408272 A CN 115408272A
Authority
CN
China
Prior art keywords
function
project
java
centrality
functions
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.)
Granted
Application number
CN202210941442.0A
Other languages
English (en)
Other versions
CN115408272B (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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202210941442.0A priority Critical patent/CN115408272B/zh
Publication of CN115408272A publication Critical patent/CN115408272A/zh
Application granted granted Critical
Publication of CN115408272B publication Critical patent/CN115408272B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于TOPSIS法的Java冗余代码评估方法,步骤如下:以待检测Java项目为目标,识别其启动方法以确定项目的起点;以项目的启动方法作为输入,构建函数调用关系图,检测Java项目中所有可达方法的集合;检测出Java项目中存在的冗余代码;计算项目中各个节点的度中心性和接近中心性;构建面向冗余代码评估的软件复杂网络;利用TOPSIS法对中心性度量在软件复杂网络中进行聚合评估得到删除冗余代码的风险。本发明基于静态分析技术与复杂网络模型,通过检测所有可达方法来找出冗余代码,用TOPSIS法评估删除冗余代码的风险。

Description

一种基于TOPSIS法的Java冗余代码评估方法
技术领域
本发明属于智能软件的维护技术领域,具体涉及一种基于TOPSIS法的Java冗余代码评估方法。
背景技术
在商业和开源软件中,冗余代码是一个相当普遍的现象。在对一个工业软件系统的代码检查中发现,开发人员对于当前在软件系统上工作的30%到50%的源代码没有任何理解或记录。在一个用PHP编写的web应用程序的子系统上,开发人员删除了2740个冗余文件,即大约30%的子系统文件。一项对Java编写的应用程序中的冗余方法研究的研究结果表明,这些应用中的冗余方法的占比在5%到10%之间。最后,软件工程专业人员认为,冗余代码检测是软件专业人员希望在他们的支持工具中具备的特性之一。
冗余代码的存在可能会带来的问题如下:
(1)冗余代码会增加文件大小,导致过度使用内存,并可能增加软件执行时间;
(2)冗余代码阻碍了对源代码的理解,使其结构不那么明显;
(3)冗余代码影响软件的可维护性,因为其使源代码更难以理解;
(4)冗余代码的存在严重影响了对不熟悉源代码的理解,也会对不熟悉源代码的开发人员在修改时产生负面影响;
(5)开发人员可能会浪费时间维护冗余代码,从而导致更高的维护成本;
(6)当包含错误的冗余代码在不经意间变得可操作时,可能会影响系统的可靠性。
尽管冗余代码的存在是一个普遍现象,并且冗余代码的存在可能会带来很多潜在的问题。然而,冗余代码很少受到软件工程研究领域的关注,在用Java编写的软件系统中,几乎没有工具支持检测冗余代码。
如何在分析精度和分析效率之间达到更好的均衡,并且使分析方式能够满足程序日益变大的需求是基于静态类型分析所面临的两个最重要的问题。流敏感的分析和上下文敏感的分析虽然能得到较高的分析精度,但分析的成本大,且不能很好的满足程序的扩展性,因此无法在实际中得到广泛的应用。而快速类型分析(RTA)方法是流不敏感和上下文不敏感的,算法较简单,实现容易,分析的成本小,能够更好的满足分析精度和分析效率的均衡。快速类型分析(RTA)是当前冗余代码检测中常用的调用图构造算法。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种基于TOPSIS法的Java冗余代码评估方法,以克服现有技术中冗余代码检测精度低,无法很好的处理冗余虚函数的问题。本发明基于静态分析技术与复杂网络模型,通过检测所有可达方法来找出冗余代码,用TOPSIS法评估删除冗余代码的风险。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种基于TOPSIS法的Java冗余代码评估方法,步骤如下:
1)以待检测Java项目为目标,识别其启动方法以确定项目的起点;
2)以项目的启动方法作为输入,使用快速类型分析算法提取函数间的调用关系,构建函数调用关系图,检测Java项目中所有可达方法的集合;
3)用项目中所有方法的集合减去可达方法的集合,检测出Java项目中存在的冗余代码;
4)计算项目中各个节点的度中心性和接近中心性;
5)构建面向冗余代码评估的软件复杂网络;
6)利用TOPSIS(Technique for Order Preference by Similarity to an IdealSolution,优劣解距离)法对步骤4)中的中心性度量在软件复杂网络中进行聚合,评估得到删除冗余代码的风险。
优选地,所述步骤1)具体包括:将待检测Java项目的所在路径、项目的启动方法路径以及保存分析结果的xml文件路径作为参数输入到冗余代码检测工具中;当不指定启动方法路径时,冗余代码检测工具自动化识别待检测Java项目的启动方法(一般包括主方法和反射调用的方法);在此过程中将项目中所有函数的放入一个集合V中。
优选地,所述步骤2)具体包括:
21)使用快速类型分析算法提取函数间的调用关系,构建函数调用关系图;快速类型分析算法对项目中的每个函数M给定一个集合SM,对每个域x给定一个集合SX,用ParamTypes(M)表示函数M的参数的声明类型的集合,用ReturnType(M)表示函数的返回类型;定义函数SubTypes()满足:
SubTypes(M)=∪m∈MSubTypes(m) (1);
22)假定项目中仅main函数被调用,所有对象未被实例化,通过从main函数开始遍历各个函数,所有的虚函数调用结点开始都被忽略,若函数中包含某个对象的实例化信息,则将该对象放入实例化对象的集合中,同时若遍历过的所有函数的某个虚函数调用点的接受对象与该实例化对象相关,则确定在该接受对象的运行时可能类型集合中包含该实例化对象对应的类型;该虚函数调用点在运行时调用的目标函数包括该实例化对象对应的类型中的相应目标函数;每遍历一个函数,如果该函数中包含实例化对象,即迭代的处理在其前面遍历的函数中与该实例化对象相关的虚函数调用点,最终得到所有可达方法的集合。
优选地,所述快速类型分析算法的步骤如下:
211)main∈R,main表示项目中的main函数,R为可达函数的集合;
212)对于每个函数M,以及M中的每个虚函数调用点e.m(),如果存在类C∈SubTypes(StaticType(e)),并且有StaticLookup(C,m)=M’:
Figure BDA0003785822540000031
213)对于每个函数M,如果在M中包含new C()这样的实例化信息,那么:
Figure BDA0003785822540000032
优选地,所述步骤3)具体包括:
31)依据步骤2)中快速类型分析算法输出的可达函数的集合R,使用项目中所有函数的集合V减去可达函数的集合R得到不可达函数的集合U;
32)经过处理后的不可达函数的集合U中的代码即为项目中的冗余代码,将检测到的冗余代码输出到xml文件中。
优选地,所述步骤4)具体包括:
41)度中心性的计算公式如下:
Figure BDA0003785822540000033
其中,CD(v)是节点v的度中心性,auv为节点v与节点u连接的边;
42)节点对之间最短路径d(u,v)的定义如下:
d(u,v)=min(xuh+…+xhv) (3)
其中,h是u和v之间路径上的中间节点,xuh是u和h之间的路径,xhv是h和v之间的路径;
43)接近中心性CC(v)是到v的所有其他节点的最短路径之和的倒数,定义如下:
Figure BDA0003785822540000034
其中,duv表示u和v之间的最短距离。
优选地,所述步骤5)具体包括:
51)以快速类型分析算法构建的函数调用关系图为基础,将函数抽象为节点,函数间的调用关系抽象为边,构建软件功能网络;
52)增加软件功能网络中节点和边的特征,构建面向冗余代码评估的软件复杂网络;其中,节点度量包括节点的度中心性和接近中心性;边度量包括连接类型(调用关系或依赖关系)和调用类型(控制流和序列)。
优选地,所述步骤6)具体包括:
61)根据冗余代码检测结果计算各个节点的冗余值,冗余值为节点中冗余代码的占比;
62)将度中心性和接近中心性两种不同的中心性度量作为复杂网络的多属性,利用TOPSIS法将中心性度量与冗余值进行聚合,计算各个中心性度量的权值;
63)基于欧式距离计算正理想解和负理想解,通过计算与正理想解和负理想解的相对接近度来评估节点重要性,以此评估删除冗余代码的风险。
本发明的有益效果:
本发明使用快速类型分析算法提取函数间的调用关系,根据构建的调用图检测冗余代码,以克服现有技术中冗余代码检测精度低,无法很好的处理冗余虚函数等问题。通过拓展调用图中节点和边的特征构建复杂网络模型,根据节点冗余值计算各个中心性度量的权值,利用TOPSIS法评估删除冗余代码的风险,改进了传统TOPSIS排序方法的不足,提高了评估的可信度;具体表现为:
1、本发明通过构建调用图检测所有可达方法,用总的方法减去可达方法得到不可达的冗余方法;通过对快速类型分析算法的改进解决了传统快速类型分析算法难以处理的虚函数调用与线程的隐式调用问题,提高了冗余代码检测的正确性和完整性。
2、本发明将TOPSIS法应用于复杂网络中的重要节点评估,将几种不同的中心性度量作为复杂网络的多属性,利用TOPSIS法对多属性进行聚合,综合评价每个节点的节点重要性,这种多属性结合的方法可以解决单一中心性度量存在的局限性问题。同时以冗余值作为参数计算每个中心性度量的权重,改进了传统TOPSIS法中每种中心性度量的权重都为1/n的不足(n为中心性度量的数量),提高了评估结果的可信度。
附图说明
图1为本发明方法的原理流程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
参照图1所示,本发明的一种基于TOPSIS法的Java冗余代码检测与评估方法,包括步骤如下:
步骤1)以待检测Java项目为目标,识别其启动方法以确定项目的起点;示例中,
11)从Github中获取多个开源Java项目,示例中选取了LaTeXDraw、aTunes、LaTazza和MediaPesata这四个开源Java项目。
12)对于已有的Java项目,输入要分析类的路径以及保存分析结果的xml文件的路径,程序将自动化识别待测项目的启动方法(示例中一般包括主方法和反射调用的方法)。
步骤2)以项目的启动方法作为输入,使用快速类型分析算法提取函数间的调用关系,构建函数调用关系图,检测Java项目中所有可达方法的集合;示例中,
21)快速类型分析方法对程序中的每个函数M给定一个特殊的集合SM,对每个域x给定一个特殊的集合SX,用ParamTypes(M)表示函数M的参数的声明类型的集合,用ReturnType(M)表示函数的返回类型;定义函数SubTypes()满足:
Figure BDA0003785822540000051
表1表示快速类型分析方法的基本步骤,其中算法的输入为待测项目的启动方法main,输出是所有可达函数的集合;表1如下:
表1
Figure BDA0003785822540000052
22)在快速类型分析方法的中,表格中的步骤2表示:对于可达函数M内的虚函数调用点而言,如果某个包含目标函数的类C属于集合S,那么这样的目标函数才可以加入可达函数的集合R,也就是说,只有这样的函数才会出现在根据快速类型分析方法构建的函数调用图中步骤3表示:S是实例化对象类型的集合。只有在可达函数中的实例化对象类型才可以加入集合S,显然,快速类型分析方法与类层次分析方法比较,约减了集合R,也就是说减少了构建的函数调用图所包含的结点和边的树木,从而提高对于虚函数调用点的分析的精度。
步骤3)用项目中所有方法的集合减去可达方法的集合,检测出Java项目中存在的冗余代码;四个开源Java项目的冗余代码检测结果如表2所示;其中,准确率、召回率和F值的公式如下:
Figure BDA0003785822540000053
Figure BDA0003785822540000054
Figure BDA0003785822540000055
表2
Figure BDA0003785822540000056
Figure BDA0003785822540000061
步骤4)计算项目中各个节点的度中心性和接近中心性;示例中,
41)度中心性的计算公式如下:
Figure BDA0003785822540000062
其中,CD(v)是节点v的度中心性,auv为节点v与节点u连接的边;
42)节点对之间最短路径d(u,v)的定义如下:
d(u,v)=min(xuh+…+xhv) (6)
其中,h是u和v之间路径上的中间节点,xuh是u和h之间的路径,xhv是h和v之间的路径;
43)接近中心性CC(v)是到v的所有其他节点的最短路径之和的倒数,定义如下:
Figure BDA0003785822540000063
其中,duv表示u和v之间的最短距离。
步骤5)以快速类型分析算法生成的调用图为基础构建面向冗余代码评估的软件复杂网络;示例中,
51)以快速类型分析算法构建的函数调用关系图为基础,将函数抽象为节点,函数间的调用关系抽象为边,构建软件功能网络;
52)增加软件功能网络中节点和边的特征,构建面向冗余代码评估的软件复杂网络。其中,节点度量的定义见表3,节点度量包括节点的度中心性和接近中心性。边度量的定义见表4,边度量包括连接类型(调用关系或依赖关系)和调用类型(控制流和序列)。
表3
Figure BDA0003785822540000071
表4
Figure BDA0003785822540000072
步骤6)利用TOPSIS法对步骤4)中的中心性度量在软件复杂网络中进行聚合,评估得到删除冗余代码的风险;示例中,
61)构建矩阵D=(xmn),DCn表示第n个节点的度中心性,CCn表示第n个节点的接近中心性,Fn(t)表示第n个节点中冗余代码的占比:
Figure BDA0003785822540000073
62)构建矩阵D=(xmn)的子矩阵M=(ymk),k=n-1,子矩阵M由矩阵D的前三列组成:
Figure BDA0003785822540000074
63)规范化矩阵D=(xmn),并将属性与F(t)匹配,如下所示:
Figure BDA0003785822540000075
Figure BDA0003785822540000076
其中,rin代表F(t);
64)计算每个属性的权重:
Figure BDA0003785822540000081
Figure BDA0003785822540000082
65)规范化矩阵M=(ymk):
Figure BDA0003785822540000083
66)将归一化矩阵的列乘以相关权重,得到加权决策矩阵B=(bmk):
bij=wj×hij,i=1,2,…,m;j=1,2,…,k (15)
其中,wj是j标准的权重;
67)确定正理想解和负理想解;正理想解用A+表示,负理想解用A表示-;定义如下:
A+={b1 +,b2 +,…,bk +}={(maxibij|j∈Kb)(minibij|j∈Kc)} (16)
A-={b1 -,b2 -,…,bk -}={(minibij|j∈Kb)(maxibij|j∈Kc)} (17)
其中,Kb是一组有益标准,Kc是一组损失标准;
68)从正理想和负理想解中获得现有备选方案的分离测度,基于欧几里德距离,S+和S-的分离度量分别来自以下公式:
Figure BDA0003785822540000084
Figure BDA0003785822540000085
69)计算与理想解的相对接近度:
Figure BDA0003785822540000086
其中,Ci越高,节点重要性程度越高,删除节点中冗余代码的风险越高;反之则删除节点中冗余代码的风险较低;通过对所有节点的Ci倒序排列,以找出删除冗余代码风险较低的节点。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。

Claims (8)

1.一种基于TOPSIS法的Java冗余代码评估方法,其特征在于,步骤如下:
1)以待检测Java项目为目标,识别其启动方法以确定项目的起点;
2)以项目的启动方法作为输入,使用快速类型分析算法提取函数间的调用关系,构建函数调用关系图,检测Java项目中所有可达方法的集合;
3)用项目中所有方法的集合减去可达方法的集合,检测出Java项目中存在的冗余代码;
4)计算项目中各个节点的度中心性和接近中心性;
5)构建面向冗余代码评估的软件复杂网络;
6)利用TOPSIS法对步骤4)中的中心性度量在软件复杂网络中进行聚合,评估得到删除冗余代码的风险。
2.根据权利要求1所述的基于TOPSIS法的Java冗余代码评估方法,其特征在于,所述步骤1)具体包括:将待检测Java项目的所在路径、项目的启动方法路径以及保存分析结果的xml文件路径作为参数输入到冗余代码检测工具中;当不指定启动方法路径时,冗余代码检测工具自动化识别待检测Java项目的启动方法;在此过程中将项目中所有函数的放入一个集合V中。
3.根据权利要求1所述的基于TOPSIS法的Java冗余代码评估方法,其特征在于,所述步骤2)具体包括:
21)使用快速类型分析算法提取函数间的调用关系,构建函数调用关系图;快速类型分析算法对项目中的每个函数M给定一个集合SM,对每个域x给定一个集合SX,用ParamTypes(M)表示函数M的参数的声明类型的集合,用ReturnType(M)表示函数的返回类型;定义函数SubTypes()满足:
SubTypes(M)=∪m∈MSubTypes(m) (1);
22)假定项目中仅main函数被调用,所有对象未被实例化,通过从main函数开始遍历各个函数,所有的虚函数调用结点开始都被忽略,若函数中包含某个对象的实例化信息,则将该对象放入实例化对象的集合中,同时若遍历过的所有函数的某个虚函数调用点的接受对象与该实例化对象相关,则确定在该接受对象的运行时可能类型集合中包含该实例化对象对应的类型;该虚函数调用点在运行时调用的目标函数包括该实例化对象对应的类型中的相应目标函数;每遍历一个函数,如果该函数中包含实例化对象,即迭代的处理在其前面遍历的函数中与该实例化对象相关的虚函数调用点,最终得到所有可达方法的集合。
4.根据权利要求3所述的基于TOPSIS法的Java冗余代码评估方法,其特征在于,所述快速类型分析算法的步骤如下:
211)main∈R,main表示项目中的main函数,R为可达函数的集合;
212)对于每个函数M,以及M中的每个虚函数调用点e.m(),如果存在类C∈SubTypes(StaticType(e)),并且有StaticLookup(C,m)=M’:
Figure FDA0003785822530000021
213)对于每个函数M,如果在M中包含new C()这样的实例化信息,那么:
Figure FDA0003785822530000022
5.根据权利要求1所述的基于TOPSIS法的Java冗余代码评估方法,其特征在于,优选地,所述步骤3)具体包括:
31)依据步骤2)中快速类型分析算法输出的可达函数的集合R,使用项目中所有函数的集合V减去可达函数的集合R得到不可达函数的集合U;
32)经过处理后的不可达函数的集合U中的代码即为项目中的冗余代码,将检测到的冗余代码输出到xml文件中。
6.根据权利要求1所述的基于TOPSIS法的Java冗余代码评估方法,其特征在于,所述步骤4)具体包括:
41)度中心性的计算公式如下:
Figure FDA0003785822530000023
其中,CD(v)是节点v的度中心性,auv为节点v与节点u连接的边;
42)节点对之间最短路径d(u,v)的定义如下:
d(u,v)=min(xuh+…+xhv) (3)
其中,h是u和v之间路径上的中间节点,xuh是u和h之间的路径,xhv是h和v之间的路径;
43)接近中心性CC(v)是到v的所有其他节点的最短路径之和的倒数,定义如下:
Figure FDA0003785822530000024
其中,duv表示u和v之间的最短距离。
7.根据权利要求1所述的基于TOPSIS法的Java冗余代码评估方法,其特征在于,所述步骤5)具体包括:
51)以快速类型分析算法构建的函数调用关系图为基础,将函数抽象为节点,函数间的调用关系抽象为边,构建软件功能网络;
52)增加软件功能网络中节点和边的特征,构建面向冗余代码评估的软件复杂网络;其中,节点度量包括节点的度中心性和接近中心性;边度量包括连接类型和调用类型。
8.根据权利要求1所述的基于TOPSIS法的Java冗余代码评估方法,其特征在于,所述步骤6)具体包括:
61)根据冗余代码检测结果计算各个节点的冗余值,冗余值为节点中冗余代码的占比;
62)将度中心性和接近中心性两种不同的中心性度量作为复杂网络的多属性,利用TOPSIS法将中心性度量与冗余值进行聚合,计算各个中心性度量的权值;
63)基于欧式距离计算正理想解和负理想解,通过计算与正理想解和负理想解的相对接近度来评估节点重要性,以此评估删除冗余代码的风险。
CN202210941442.0A 2022-08-08 2022-08-08 一种基于TOPSIS法的Java冗余代码评估方法 Active CN115408272B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210941442.0A CN115408272B (zh) 2022-08-08 2022-08-08 一种基于TOPSIS法的Java冗余代码评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210941442.0A CN115408272B (zh) 2022-08-08 2022-08-08 一种基于TOPSIS法的Java冗余代码评估方法

Publications (2)

Publication Number Publication Date
CN115408272A true CN115408272A (zh) 2022-11-29
CN115408272B CN115408272B (zh) 2024-02-06

Family

ID=84159367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210941442.0A Active CN115408272B (zh) 2022-08-08 2022-08-08 一种基于TOPSIS法的Java冗余代码评估方法

Country Status (1)

Country Link
CN (1) CN115408272B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808435A (zh) * 2016-03-08 2016-07-27 北京理工大学 一种基于复杂网络的软件缺陷评估模型的构建方法
CN108009710A (zh) * 2017-11-19 2018-05-08 国家计算机网络与信息安全管理中心 基于相似度和TrustRank算法的节点测试重要度评估方法
CN108255733A (zh) * 2018-01-30 2018-07-06 北京航空航天大学 一种基于复杂网络理论评估软件系统可靠性的方法
US20190205543A1 (en) * 2018-01-03 2019-07-04 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for java deserialization vulnerability detection
CN114428636A (zh) * 2020-10-28 2022-05-03 武汉斗鱼网络科技有限公司 一种模块回调函数参数不匹配的修复方法及相关设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808435A (zh) * 2016-03-08 2016-07-27 北京理工大学 一种基于复杂网络的软件缺陷评估模型的构建方法
CN108009710A (zh) * 2017-11-19 2018-05-08 国家计算机网络与信息安全管理中心 基于相似度和TrustRank算法的节点测试重要度评估方法
US20190205543A1 (en) * 2018-01-03 2019-07-04 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for java deserialization vulnerability detection
CN108255733A (zh) * 2018-01-30 2018-07-06 北京航空航天大学 一种基于复杂网络理论评估软件系统可靠性的方法
CN114428636A (zh) * 2020-10-28 2022-05-03 武汉斗鱼网络科技有限公司 一种模块回调函数参数不匹配的修复方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
G.A.K: "《痛苦面具:代码冗余的抽象解决思路》", pages 1 - 4, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_46179373/article/details/120832534> *
刘震;缪力;: "基于动态调用图的Java程序修改影响分析技术", 湖南师范大学自然科学学报, no. 06 *

Also Published As

Publication number Publication date
CN115408272B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
US6915295B2 (en) Information searching method of profile information, program, recording medium, and apparatus
CN105808438B (zh) 一种基于函数调用路径的测试用例复用方法
CN107391365B (zh) 一种面向软件缺陷预测的混合特征选择方法
CN109285024B (zh) 在线特征确定方法、装置、电子设备及存储介质
JP2007157058A (ja) 分類モデル学習装置、分類モデル学習方法、及び分類モデルを学習するためのプログラム
CN112907026A (zh) 一种基于可编辑网状指标体系的综合评估方法
CN113609346B (zh) 基于企业关联关系的自然人人名消歧方法、设备和介质
CN110889493A (zh) 针对关系网络添加扰动的方法及装置
WO2021109874A1 (zh) 拓扑图生成方法、异常检测方法、装置、设备及存储介质
CN115408272A (zh) 一种基于TOPSIS法的Java冗余代码评估方法
CN107832080A (zh) 一种软件演化环境下基于结点介数的构件重要性度量方法
CN109711555B (zh) 一种预测深度学习模型单轮迭代时间的方法和系统
CN106844218B (zh) 一种基于演化切片的演化影响集预测方法
CN111522819A (zh) 一种树型结构数据汇总的方法及系统
Schuh et al. Event log-based weaknesses detection in business processes
CN115292303A (zh) 数据处理方法及装置
RU2020127362A (ru) Способ и компьютерный программный продукт для определения мер по разработке, проектированию и/или развертыванию сложных встраиваемых или киберфизических систем, в частности, используемых в них сложных программных архитектур, из разных технических областей
CN114780443A (zh) 微服务应用自动化测试方法、装置、电子设备及存储介质
US20220108189A1 (en) Graph summarization apparatus, graph summarization method and program
CN109491892B (zh) 一种项目环境的配置方法和装置
CN109685453B (zh) 智能识别工作流有效路径的方法
CN112882914A (zh) 开源软件生态系统健康性的多维度度量系统
CN112948469A (zh) 数据挖掘方法、装置、计算机设备及存储介质
CN112416774B (zh) 一种添加权重的软件可靠性测试方法
CN113407442B (zh) 一种基于模式的Python代码内存泄漏检测方法

Legal Events

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