CN106775695B - 一种基于边不稳定性的软件函数变更预测系统及方法 - Google Patents

一种基于边不稳定性的软件函数变更预测系统及方法 Download PDF

Info

Publication number
CN106775695B
CN106775695B CN201611122380.1A CN201611122380A CN106775695B CN 106775695 B CN106775695 B CN 106775695B CN 201611122380 A CN201611122380 A CN 201611122380A CN 106775695 B CN106775695 B CN 106775695B
Authority
CN
China
Prior art keywords
function
instability
change
relation graph
edge
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.)
Expired - Fee Related
Application number
CN201611122380.1A
Other languages
English (en)
Other versions
CN106775695A (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.)
Beihang University
Original Assignee
Beihang 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 Beihang University filed Critical Beihang University
Priority to CN201611122380.1A priority Critical patent/CN106775695B/zh
Publication of CN106775695A publication Critical patent/CN106775695A/zh
Application granted granted Critical
Publication of CN106775695B publication Critical patent/CN106775695B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明为一种基于边不稳定性的软件函数变更预测系统及方法,属于软件工程领域。本发明基于软件网络函数调用关系图进行计算,首先需要获取整个函数调用关系图,然后对于每个条边计算该条边的不稳定度,通过对相邻版本的函数进行比较获得修改、删除、新增的函数,并得到变更函数子图,去掉变更函数子图中不稳定度小于一定值的边,剩下边连接的函数节点就是预测结果。

Description

一种基于边不稳定性的软件函数变更预测系统及方法
技术领域
本发明属于软件工程领域,特别涉及一种面向复杂网络基于边不稳定性的软件函数变更预测系统及方法,通过相邻版本变更函数的不稳定度进而预测下一个版本函数的变更情况。
背景技术
近年来,复杂网络的研究取得了巨大的进步,提出了许多方法和理论。这些理论和研究被用于生物学、物理学等学科,目前在计算机科学领域的应用也越来越广。现代的软件系统无论是从规模还是从结构设计上都发生了巨大的改变,传统的软件工程方法面临着很大挑战。因此,复杂网络的研究方法被引入到软件设计的过程中。由于现代软件函数的变更越来越频繁,软件升级在软件的整个生命周期中不可避免,因此,研究函数的变更传播有其重要的现实意义。除此之外,研究的另一目标是影响软件鲁棒性的相关因素。
复杂网络经常伴随着信息、病毒、疾病等的传播,而一个网络的拓扑结构对于变更传播的程度有着显著的影响。在计算机科学领域,大型软件系统中的类图、依赖图、关系图、软件组件图、函数调用图都属于复杂网络。
当开发者为了加入一个新功能或者修复一个BUG的时,对软件系统一个部分作出修改后,其他的部分为了适应修改,常常也需要进行更新。量化一个软件网络的传播性有助于节省软件维护产生的开销。
在函数调用关系图中,变更传播通常都是单方向的,函数A调用函数B,当B发生修改时,A因为接口需要作出调整因此很可能需要相应作出修改,这叫B传播到A,但当A发生修改时,B一般就不需要作出修改了。
关于影响边的变更传播的参数,首先有节点的稳定度,节点的稳定度定义如下:
Figure BDA0001174581950000011
在定义中,
Figure BDA0001174581950000012
Figure BDA0001174581950000013
分别代表节点ni的出度和入度。如果Si的值相对较大,那么说明节点的出度相对于入度较小,因此其他节点的改变较难传播到该节点。也就是说该节点较为稳定。从定义可以看出,Si的取值范围是[0,1]。
边的不稳定度基于节点的稳定度定义。其具体定义如下所示:
Iij=Si-Sj
在上面的定义中,Si和Sj分别代表节点i和节点j的节点稳定度。从定义中可以看出,当Iij>0时,节点i的稳定度大于节点j的稳定度,也就是说稳定度大的边调用稳定度小的边。Iij<0时则相反。边的不稳定度的取值范围为[-1,1]。
罗伯特·马丁在其论文中提出了稳定性依赖原则(SDP)。论文中指出在软件的设计过程中,一个包应该依赖于比其自身更加稳定的包。节点的稳定度和边的不稳定度可以作为一种衡量节点及边的稳定度的一种度量,通过分析一个节点的稳定度或者边的不稳定度就可以清晰地分析出一个软件在某个区域的设计成功与否。关于变更传播,一条边的边的不稳定度越高,则这条边越不稳定,越可能发生修改,同时,在发生修改的时候,越容易传播到更多的函数。
现有的关于函数变更的研究大致基于软件仓库,并没有考虑变更函数的顺序。由于软件仓库的特点,大部分的基于历史数据库的研究都停留在物理层面(系统,目录,文件,行),忽视了本身变更实体(函数、变量)的本身意义。现有的软件仓库分门提供的数据元有差异,不同的研究方法利用不同软件仓库,没有统一的适用标准。
发明内容
本发明的技术解决问题:利用源代码作为数据源进行研究,避免了不同的数据仓库所引起的问题,具有通用性的特点,且预测结果准确率高于百分之五十。
本发明技术解决方案:
经过大量实验对比发现,边的EI越大,这条边越不稳定,发生修改的可能性更高,修改影响到的函数范围也越大。因此,本发明基于边的不稳定度,基于Linux内核源码,设定最小支持度,得到相邻的变更函数,并将子图的边按照边的不稳定度排序,取边的不稳定度大于一定值的边连接的函数节点作为结果输出,即预测的下个版本也会发生修改的函数。
本发明一种基于边不稳定度的软件函数变更预测系统,包括:函数调用关系图生成模块、变更函数调用关系图获取模块和边的不稳定度生成及函数变更预测模块,其中:
函数调用关系图生成模块:根据需要处理相应的软件网络,生成相应软件网络的函数调用关系图;
变更函数调用关系图获取模块:对相邻版本的函数源码比较,得到变更函数,在已生成的函数调用关系图中,去掉没有变更的函数,得到每个相邻版本源代码的变更函数调用关系图;
边的不稳定度生成及函数变更预测模块:根据已生成的变更函数调用关系图,得到每条边的边的不稳定度,对所有边按照边的不稳定度进行排序,根据输入的阈值,去掉不稳定度低于阈值的边,剩下的边所连接的函数节点作为预测结果进行输出。
所述函数调用关系图生成模块实现过程如下:
(1)选择需要处理相应的软件网络,包括操作系统软件源代码,然后调用外部工具cdepn,对于所有.c文件,生成相应的cdepn文件;
(2)对于生成的.cdepn文件,逐行读取文件,当每一行第一个字符为F时,表示该行函数为call函数,之后的所有开头第一个字符为C的行的直到文件尾或者下一个开头第一个字符为F的行为止,包含在里面的函数都被该函数调用,按照此方法则生成相应整个软件网络的函数调用关系图。
所述变更函数调用关系图获取模块实现过程如下:
(1)利用ctags获取每个函数在相邻版本中的被定义位置,函数定义总是以‘{’开始,最终以‘}’结束,利用此原理,从函数开始行开始,利用栈的数据结构,去掉注释语句,每读到‘{’入栈,读到‘}’出栈,直到栈为空,这时候的行数为该函数的结束行,按照此方法得到函数被定义的结束行,然后提取各函数在相邻版本的源代码,利用diff命令,比较代码是否发生改变,如果是则是变更函数;
(2)得到变更函数后,利用变更函数,对源代码的函数调用关系图进行筛选,去掉没有变更过的函数,剩下的就是变更函数调用关系图。
所述边的不稳定度生成及函数变更预测模块实现过程如下:
(1)逐行录入变更函数调用关系图,每行分为调用函数(call function)和被调用函数(called function),每行录入的时候,调用函数的出度加1,被调用函数入度加1;
(2)变更函数调用关系图录入完毕之后,根据公式:
Figure BDA0001174581950000031
计算出函数节点的不稳定度Si
Figure BDA0001174581950000032
是该节点的入度,
Figure BDA0001174581950000033
是该节点的出度;
然后,根据公式Iij=Si-Sj计算出各条边的不稳定度;Iij是节点的不稳定度,Si是调用函数节点的稳定度,Sj是被调用函数节点的稳定度;
(3)采用的是快速排序算法,对所有边按照边的不稳定度由高到低排序;
(4)输入阈值,所述阈值在(-1,1)之间,去掉边的不稳定度低于所述阈值的边,剩下的边所连接的函数节点作为预测结果进行输出。
一种基于边不稳定性的软件函数变更预测方法,实现步骤如下:
第一步,生成函数调用关系图,根据需要处理相应的软件网络,生成相应软件网络的函数调用关系图;
第二步,获取变更函数,根据已生成的函数调用关系图,去掉图中所有没有发生变更的函数,得到每个相邻版本源代码的变更函数调用关系图;
第三步,边的不稳定度生成及函数变更预测:根据已生成的变更函数调用关系图,得到每条边的边的不稳定度,对所有边按照边的不稳定度进行排序,根据输入的阈值,去掉不稳定度低于阈值的边,剩下的边所连接的函数节点作为预测结果进行输出。
所述第一步具体如下:
在Linux下配置工具生成cdepn图,并通过脚本处理进而生成callpah,具体如下:(1)配置Codeviz工具;(2)编写脚本遍历目录为所有.c文件生成cdepn文件;(3)编写代码,利用cdepn文件生成该网络的函数调用关系图。
第二步具体实现如下:
步骤2.1、利用ctags可以对某个.c文件下所有的函数进行检索,并输出函数的起始行,编写脚本,递归遍历Linux内核代码下所有.c文件生成相应的.c文件;
步骤2.2、函数定义总是以‘{’开始,最终以‘}’结束,利用此原理,从函数开始行开始,利用栈的数据结构,去掉注释语句,每读到‘{’入栈,读到‘}’出栈,直到栈为空,这时候的行数为该函数的结束行;
步骤2.3、得到起始行后,利用shell命令,sed可以读取指定行之间的内容,通过diff命令,比较相邻版本间同名函数,可以知道该函数是被修改、被增加或者被删除;
步骤2.4、在得到相邻版本间的变更函数后,在之前生成的函数调用关系图中,去掉没有发生变更的函数,得到相邻版本变更函数调用关系图。
所述第三步具体实现如下:
步骤3.1、计算变更函数子图所有边的不稳定度,首先得到所有节点的出入度,根据公式得到各个节点的稳定度,再通过公式得到每条边的不稳定度;
步骤3.2、对EI按照不稳定度从大到小排序,排序方法用的是快速排序;
步骤3.3、将小于不稳定度a的边去掉,将剩下的边连接的函数输出,作为预测结果。
本发明与现有技术相比的优点在于:
(1)利用软件的源代码作为数据源进行研究,避免了不同的数据仓库所引起的问题,使得本发明更具有通用性。
(2)从复杂网络以及边的不稳定度入手,边的不稳定度与函数变更概率有正相关关系,预测结果准确率高于百分之五十。
附图说明
图1为本发明系统的结构框图;
图2为图1中函数调用关系图生成模块的实现流程图;
图3为图1中变更函数调用关系图获取模块的实现流程图;
图4为图1中边的不稳定度获取及变更函数预测模块的实现流程图;
图5为cdepn文件格式。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
在叙述之前,要对本发明涉及的技术和术语进行一下说明。
Codeviz,graphviz,ctags,sed是Linux下的第三方工具,在命令行输入sudo apt-get install工具名命令可以直接安装。
cdepn文件是利用安装好的codeviz和graphviz后,针对待处理源代码文件下的.c文件生成的相应的名字为*.cdepn文件,文件格式如图5所示。
Shell命令是Linux自带的命令行编辑器,用于处理各种常用操作。
如图1所示,本发明包括函数调用关系图生成模块、变更函数调用关系图获取模块和边的不稳定度获取及变更函数预测模块。
如图2所示,本发明中函数调用关系图生成模块具体实现如下:
(1)扫描源代码下未处理过的源代码文件,生成对应的cdepn文件;
(2)所有源代码处理完毕后,逐行读取所有cdepn文件,逐行读取文件,当读到开头为F时,表示该行函数为call函数,之后的所有开头为C的行的直到文件尾或者下一个F开头行为止,包含在里面的函数都被该函数调用,按照此方法生成整个软件网络的调用关系图。
如图3所示,本发明中变更函数调用关系图获取模块具体实现如下:
(1)利用Linux工具ctags,输入源代码下的源文件,得到该文件下所有函数被定义的起始行以及所在文件路径。
(2)函数定义总是以‘{’开始,最终以‘}’结束,利用此原理,从函数开始行开始,利用栈的数据结构,去掉注释语句,每读到‘{’入栈,读到‘}’出栈,直到栈为空,这时候的行数为该函数的结束行。
(3)使用Linux的diff命令,比较相邻版本函数源代码是否发生变更。
(4)去掉函数调用关系图中没有发生变更的函数,剩下的图就是变更函数调用关系图。并作为结果输出。
如图4所示,本发明中边的不稳定度获取及变更函数预测模块具体实现如下:
(1)逐行输入变更函数调用关系图,每行分为调用函数(call function)和被调用函数(called function),每行录入的时候,调用函数的出度加1,被调用函数入度加1。
(2)函数调用关系图录入完毕之后,根据公式:
Figure BDA0001174581950000061
计算出函数节点的不稳定度,K为节点的出度或者入度。
然后,根据公式Iij=Si–Sj
计算出各条边的不稳定度。
(3)对所有边按照边的不稳定度由高到低排序,这里采用的是快速排序算法。
(4)输入参数,这个参数在(-1,1)之间,去掉边的不稳定度低于这个参数的边,剩下的边连接的节点作为结果输出。
本发明,具体为如下步骤。
第一步、获得函数调用图:
在Linux下配置工具生成cdepn图,并通过脚本处理进而生成callpah。基本的思路如下:(1)配置Codeviz等工具;(2)编写脚本遍历目录为所有.c文件生成cdepn文件;(3)编写代码,利用cdepn文件生成该网络的函数调用关系图。
步骤1.1、配置工具。
首先安装graphviz和CodeViz
使用配置好的工具递归编译待处理源代码下所有*.c文件,会相应地生成一个*.c.cdepn文件。
步骤1.2、执行脚本生成函数调用关系图。
利用编写的代码生成函数调用关系图,对于生成的.cdepn文件,逐行读取文件,当读到开头为F时,表示该行函数为call函数,之后的所有开头为C的行的直到文件尾或者下一个F开头行为止,包含在里面的函数都被该函数调用,按照此方法生成整个软件网络的调用关系图。
第二步、利用call graph计算各条边的EI
步骤2.1、脚本编写
编写脚本,通过call graph生成相应网络各条边的EI。脚本由以下文件组成:
AutoRun.sh:执行./AutoRun.sh命令,程序将自动执行。
需要设置PATH2参数,为call graph所在路径。
AutoCount.sh:该脚本核心代码是arcunstabcount部分,该部分真正计算了EI,首先得到所有节点的出入度,根据公式得到各个节点的边的不稳定度,再通过公式求得该网络的所有边的不稳定度。
第三步、通过相邻版本函数调用图获得变更函数,包括:
步骤3.1、部署ctags,利用ctags得到每个函数在源代码中定义的起始行利用ctags,对某个.c文件下所有的函数进行检索,并输出该函数的起始行。编写脚本,递归遍历Linux内核代码下所有.c文件生成相应的.c文件。
步骤3.2、利用模式匹配,得到每个函数的结束行。
函数定义总是以‘{’开始,最终以‘}’结束,利用此原理,从函数开始行开始,利用栈的数据结构,去掉注释语句,每读到‘{’入栈,读到‘}’出栈,知道栈为空,这时候的行数为该函数的结束行。
步骤3.3、利用相邻版本函数的起始行,结束行,提取出源代码,进行比较,得到修改、增加、删除的函数。
得到起始行后,利用shell命令,sed可以读取指定行之间的内容,通过diff命令,比较相邻版本间同名函数,可以知道该函数是被修改、被增加或者被删除。
步骤3.4、得到发生修改函数的子图,及变更函数子图。
通过变更函数集合,在原内核生成的call graph上进行筛选,得到的子图即为变更函数的子图。
第四步、输出预测结果
步骤4.1、对变更函数子图的边按照边的不稳定度排序。
编写脚本,对EI按照不稳定度从大到小排序,排序方法用的是快速排序。
步骤4.2、设定最小边的不稳定度a,将所有大于a的边连接的函数节点作为结果输出。
编写脚本,将小于不稳定度a的边去掉,将剩下的边连接的函数输出,作为预测结果。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

Claims (6)

1.一种基于边不稳定度的软件函数变更预测系统,其特征在于包括:函数调用关系图生成模块、变更函数调用关系图获取模块和边的不稳定度生成及函数变更预测模块,其中:
函数调用关系图生成模块:根据需要处理相应的软件网络,生成相应软件网络的函数调用关系图;
变更函数调用关系图获取模块:对相邻版本的函数源码比较,得到变更函数,在已生成的函数调用关系图中,去掉没有变更的函数,得到每个相邻版本源代码的变更函数调用关系图;
边的不稳定度生成及函数变更预测模块:根据已生成的变更函数调用关系图,得到每条边的边的不稳定度,对所有边按照边的不稳定度进行排序,根据输入的阈值,去掉不稳定度低于阈值的边,剩下的边所连接的函数节点作为预测结果进行输出;
所述边的不稳定度生成及函数变更预测模块实现过程如下:
(1)逐行录入变更函数调用关系图,每行分为调用函数(call function)和被调用函数(called function),每行录入的时候,调用函数的出度加1,被调用函数入度加1;
(2)变更函数调用关系图录入完毕之后,根据公式:
Figure FDA0002609205620000011
计算出函数节点的不稳定度Si
Figure FDA0002609205620000012
是该节点的入度,
Figure FDA0002609205620000013
是该节点的出度;
然后,根据公式Iij=Si-Sj计算出各条边的不稳定度;Iij是边的不稳定度,Si是调用函数节点的稳定度,Sj是被调用函数节点的稳定度;
(3)采用的是快速排序算法,对所有边按照边的不稳定度由高到低排序;
(4)输入阈值,所述阈值在(-1,1)之间,去掉边的不稳定度低于所述阈值的边,剩下的边所连接的函数节点作为预测结果进行输出。
2.根据权利要求1所述的基于边不稳定度的软件函数变更预测系统,其特征在于:所述函数调用关系图生成模块实现过程如下:
(1)选择需要处理相应的软件网络,包括操作系统软件源代码,然后调用外部工具cdepn,对于所有.c文件,生成相应的cdepn文件;
(2)对于生成的.cdepn文件,逐行读取文件,当每一行第一个字符为F时,表示该行函数为call函数,之后的所有开头第一个字符为C的行的直到文件尾或者下一个开头第一个字符为F的行为止,包含在里面的函数都被该函数调用,按照此方法则生成相应整个软件网络的函数调用关系图。
3.根据权利要求1所述的一种基于边不稳定度的软件函数变更预测系统,其特征在于:所述变更函数调用关系图获取模块实现过程如下:
(1)利用ctags获取每个函数在相邻版本中的被定义位置,函数定义总是以‘{’开始,最终以‘}’结束,利用此原理,从函数开始行开始,利用栈的数据结构,去掉注释语句,每读到‘{’入栈,读到‘}’出栈,直到栈为空,这时候的行数为该函数的结束行,按照此方法得到函数被定义的结束行,然后提取各函数在相邻版本的源代码,利用diff命令,比较代码是否发生改变,如果是则是变更函数;
(2)得到变更函数后,利用变更函数,对源代码的函数调用关系图进行筛选,去掉没有变更过的函数,剩下的就是变更函数调用关系图。
Figure FDA0002609205620000021
4.一种如权利要求1-3任意之一所述的基于边不稳定性的软件函数变更预测系统的实现方法,其特征在于实现步骤如下:
第一步,生成函数调用关系图,根据需要处理相应的软件网络,生成相应软件网络的函数调用关系图;
第二步,获取变更函数,根据已生成的函数调用关系图,去掉图中所有没有发生变更的函数,得到每个相邻版本源代码的变更函数调用关系图;
第三步,边的不稳定度生成及函数变更预测:根据已生成的变更函数调用关系图,得到每条边的边的不稳定度,对所有边按照边的不稳定度进行排序,根据输入的阈值,去掉不稳定度低于阈值的边,剩下的边所连接的函数节点作为预测结果进行输出;
所述第三步具体实现如下:
步骤3.1、计算变更函数子图所有边的不稳定度,首先得到所有节点的出入度,根据公式得到各个节点的稳定度,再通过公式得到每条边的不稳定度;
步骤3.2、对EI按照不稳定度从大到小排序,排序方法用的是快速排序;
步骤3.3、将小于不稳定度a的边去掉,将剩下的边连接的函数输出,作为预测结果。
5.根据权利要求4所述的一种基于边不稳定性的软件函数变更预测方法,其特征在于:所述第一步具体如下:
在Linux下配置工具生成cdepn图,并通过脚本处理进而生成callgraph,具体如下:(1)配置Codeviz工具;(2)编写脚本遍历目录为所有.c文件生成cdepn文件;(3)编写代码,利用cdepn文件生成该网络的函数调用关系图。
6.根据权利要求4所述的一种基于边不稳定性的软件函数变更预测方法,其特征在于:第二步具体实现如下:
步骤2.1、利用ctags可以对某个.c文件下所有的函数进行检索,并输出函数的起始行,编写脚本,递归遍历Linux内核代码下所有.c文件生成相应的.c文件;
步骤2.2、函数定义总是以‘{’开始,最终以‘}’结束,利用此原理,从函数开始行开始,利用栈的数据结构,去掉注释语句,每读到‘{’入栈,读到‘}’出栈,直到栈为空,这时候的行数为该函数的结束行;
步骤2.3、得到起始行后,利用shell命令,sed可以读取指定行之间的内容,通过diff命令,比较相邻版本间同名函数,知道该函数是被修改、被增加或者被删除,即得到相邻版本间的变更函数;
步骤2.4、在得到相邻版本间的变更函数后,在之前生成的函数调用关系图中,去掉没有发生变更的函数,得到相邻版本变更函数调用关系图。
CN201611122380.1A 2016-12-08 2016-12-08 一种基于边不稳定性的软件函数变更预测系统及方法 Expired - Fee Related CN106775695B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611122380.1A CN106775695B (zh) 2016-12-08 2016-12-08 一种基于边不稳定性的软件函数变更预测系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611122380.1A CN106775695B (zh) 2016-12-08 2016-12-08 一种基于边不稳定性的软件函数变更预测系统及方法

Publications (2)

Publication Number Publication Date
CN106775695A CN106775695A (zh) 2017-05-31
CN106775695B true CN106775695B (zh) 2020-11-10

Family

ID=58881612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611122380.1A Expired - Fee Related CN106775695B (zh) 2016-12-08 2016-12-08 一种基于边不稳定性的软件函数变更预测系统及方法

Country Status (1)

Country Link
CN (1) CN106775695B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854693A (zh) * 2010-05-21 2010-10-06 南京邮电大学 应用于移动自组织网络的路由稳定度计算方法
CN103729296A (zh) * 2013-12-31 2014-04-16 北京理工大学 一种基于网络Motif的软件稳定性评估方法
CN103853739A (zh) * 2012-11-29 2014-06-11 中国移动通信集团公司 动态社会关系网络社区演化识别以及稳定社区提取方法
CN105045574A (zh) * 2015-06-24 2015-11-11 广东电网有限责任公司电力科学研究院 一种基于复杂网络故障传播的软件关键函数辨识方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120138546A (ko) * 2011-06-15 2012-12-26 한국전자통신연구원 분산 네트워크에서 우선순위에 기반한 디스커버리를 수행하는 장치 및 방법과, 디스커버리 백오프 타임 결정 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854693A (zh) * 2010-05-21 2010-10-06 南京邮电大学 应用于移动自组织网络的路由稳定度计算方法
CN103853739A (zh) * 2012-11-29 2014-06-11 中国移动通信集团公司 动态社会关系网络社区演化识别以及稳定社区提取方法
CN103729296A (zh) * 2013-12-31 2014-04-16 北京理工大学 一种基于网络Motif的软件稳定性评估方法
CN105045574A (zh) * 2015-06-24 2015-11-11 广东电网有限责任公司电力科学研究院 一种基于复杂网络故障传播的软件关键函数辨识方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"复杂网络中节点重要度评估算法的研究";杜雨弦;《中国优秀硕士学位论文全文数据库 基础科学辑》;20151215;A002-40,正文第41页 *
基于复杂网络的操作系统内核演化与稳定性研究;王雷等;《中国科学:信息科学》;20110920;第41卷(第9期);第1064-1073页 *

Also Published As

Publication number Publication date
CN106775695A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
JP7131199B2 (ja) クロスプロジェクト学習のための関連ソフトウェアプロジェクトの自動識別
US10394694B2 (en) Unexplored branch search in hybrid fuzz testing of software binaries
CN111382070B (zh) 兼容性测试方法、装置、存储介质和计算机设备
US7340475B2 (en) Evaluating dynamic expressions in a modeling application
CN113641701B (zh) 一种数据查询方法、系统、异构加速平台及存储介质
CN112540862A (zh) 一种接口文档数据生成方法、装置、设备及存储介质
JP6982049B2 (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
CN114491566B (zh) 一种基于代码相似性的模糊测试方法、装置及存储介质
CN111092894A (zh) 一种基于增量学习的webshell检测方法、终端设备及存储介质
WO2018161509A1 (zh) 条件编译预处理方法、终端及存储介质
CN111611766A (zh) 用于确定电路版图约束条件的方法、设备和存储介质
CN106648636B (zh) 一种基于图挖掘的软件函数变更预测系统及方法
CN112783736B (zh) 软件组件的运行体时间监测方法、装置及电子设备
CN113050987A (zh) 一种接口文档的生成方法、装置、存储介质及电子设备
CN117521629A (zh) 一种基于大语言模型的桥梁检测报告生成方法
CN106775695B (zh) 一种基于边不稳定性的软件函数变更预测系统及方法
WO2004051470A1 (ja) プログラム自動変換方法およびプログラム自動変換装置
CN106844218B (zh) 一种基于演化切片的演化影响集预测方法
CN115904482A (zh) 接口文档生成方法、装置、设备及存储介质
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
CN115129598A (zh) 一种sql语句的风险检测方法、装置、系统及介质
CN112130860A (zh) Json对象解析方法、装置、电子设备及存储介质
CN111625272A (zh) 一种源代码自动化审计开发方法
JP7513116B2 (ja) コールグラフ作成装置、コールグラフ作成方法及びプログラム
CN114328149B (zh) 编译时长的统计方法、装置、电子设备及可读介质

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201110