CN108536471A - 一种基于复杂网络的软件结构重要模块识别方法 - Google Patents

一种基于复杂网络的软件结构重要模块识别方法 Download PDF

Info

Publication number
CN108536471A
CN108536471A CN201810233854.2A CN201810233854A CN108536471A CN 108536471 A CN108536471 A CN 108536471A CN 201810233854 A CN201810233854 A CN 201810233854A CN 108536471 A CN108536471 A CN 108536471A
Authority
CN
China
Prior art keywords
node
module
software
metric
network
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.)
Pending
Application number
CN201810233854.2A
Other languages
English (en)
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 CN201810233854.2A priority Critical patent/CN108536471A/zh
Publication of CN108536471A publication Critical patent/CN108536471A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

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

Abstract

本发明公开了一种基于复杂网络的软件结构重要模块识别方法,包括步骤1:确定目标软件并获取其完整的软件源代码;步骤2:对目标软件源代码进行静态扫描,分析软件中的元素实体和元素之间的相互关系;步骤3:在步骤2的基础上,构建软件属性方法网络,并构造相应粒度的软件复杂网络模型;步骤4:在步骤3得到软件复杂网络模型后,得到节点按重要性度量值排序后的集合,结合实际工程情况选取重要模块。本发明基于复杂网络综合了对模块重要性有影响的四个维度的因素给出了识别重要模块的方法,整个度量分析过程都可在后台实现,建立在完全自动化的流程上,确保最大限度减低人力和时间成本。

Description

一种基于复杂网络的软件结构重要模块识别方法
技术领域
本发明属于软件复杂网络领域,是一种基于软件网络模型识别软件系统关键模块的方法。
背景技术
随着信息技术的不断发展,计算机软件已经广泛应用于人类生活的方方面面,为人类社会经济的发展和科研的进步做出了巨大的贡献,软件的重要性急剧上升。与此同时,由于人们对软件功能需求的增多和软件应用环境的日益复杂,软件系统的规模和复杂性不断增长,导致软件工程人员在软件维护过程中30%~60%的精力都耗费在对系统的理解上,他们很难在有限的时间和成本下对软件系统做到有效的测试、维护,所以软件系统的问题频出、质量难以提升。但是由于软件特有的逻辑复杂性,没有必要对所有的模块都进行完全的监测,可以通过对关键的软件模块的识别和分析,实现对软件系统的快速了解和质量把控。而复杂网络的出现,为以复杂逻辑关系为主的软件系统模型化提供了新的方法。
复杂网络是一种用于描述复杂系统的模型,通过将软件系统中的包、类、函数等元素以及元素之间的关系抽象为节点和边,整个软件可以抽象为一种具有特定拓扑结构的网络形态。这样的软件拓扑结构网络有助于程序开发人员对于软件整体框架有一个直观全面的理解,有利于对整个软件项目的开发、测试等工作。同时,这种软件网络在软件的演化规律、软件结构的复杂性和稳定性等方面取得了很好的研究效果。
当前,识别软件系统重要模块的过程中未对影响模块重要性的因素做详尽的分析,大多研究只考虑模块的度和中心性等有限的影响因素,但是这些影响因素都存在着单一或片面的缺点,而对于软件系统来说,其微观模块的重要性是由多个层面的共同因素决定的,因此当前对于软件关键模块的识别的方法从精确度上还存在极大的提升空间。此外,借助传统分析方法对软件实体进行度量分析,许多过程还需要人工参与,无形中增加了人力成本,增大了识别过程中出现错误的概率,同时导致从构建软件系统模型到对软件系统进行度量分析的效率大大降低,无法满足当前软件开发和维护对于人力成本和时间成本的控制。
发明内容
本发明针对目前软件系统重要模块识别方法中软件模型信息不全面、考量因素单一以及无法实现自动化等弱点导致的软件系统关键模块识别结果精确度较低、时效性较差,难以满足现代节奏快、时间紧的软件开发和维护过程的问题,提出一种基于复杂网络的软件结构重要模块识别方法。
本发明提出的一种基于复杂网络的软件结构重要模块识别方法,包括如下步骤:
步骤1:确定目标软件并获取其完整的软件源代码。
步骤2:对目标软件源代码进行静态扫描,分析软件中的元素实体和元素之间的相互关系。
步骤3:在步骤2的基础上,首先以软件系统中类的属性和方法为网络节点,构建软件属性方法网络;根据实际需要识别软件模块粒度大小,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型。
步骤4:在步骤3得到软件复杂网络模型后,对网络中的节点从设定的角度去度量分析,计算节点的重要性并进行排序,得到节点按重要性度量值排序后的集合,结合实际工程选取前t%的节点作为系统中的重要模块。t为正数。
所述的步骤4中,对网络中的节点从设定的角度去度量分析,具体分为整体度量和局部度量,再综合度量结果给出节点的重要性度量值;整体度量通过计算4个参数来度量软件模块,4个参数为接近数、核数、介数和逆向波及度;局部度量是通过计算强度、聚集系数、模块规模和模块内耦合度来度量软件模块。
所述的步骤4中,计算得到模块在整体度量或局部度量的4个参数的度量值后,对度量值进行标准化处理后,利用欧拉距离公式计算模块度量值与最优值之间的距离,用距离表示模块在整体层面或局部层面的重要程度;最后,对模块在整体层面和局部层面的重要程度进行加权求和,来表示软件模块的重要性度量值。
本发明所提出的一种基于复杂网络的软件结构重要模块识别方法,与现有技术相比,具有以下优势:本发明首先通过构建软件系统的属性方法网络,确保能够覆盖到软件系统最底层的信息,再在属性方法网络的基础上,按照实际需求的模块的粒度,从属性方法网络的基础上逐层逐级按照软件元素实体的粒度抽象出相应的网络模型,并将实际需求的粒度模块内部的属性方法的数量和其之间的耦合作用作为节点属性,这样能确保构建网络模型的过程中能做到软件信息的全覆盖,同时构建的过程更具有层次性。其次,通过从结构、软件特性、模块自身等多个角度对影响模块重要因素进行度量分析,并对比模块各项指标与系统最优值之间的差距综合各个因素的贡献给出软件系统中的重要模块,这样的过程能够对软件结构有着更为全面的认识和评价,以便于开发或研究人员能够更加快速准确的理解不熟悉的软件系统,并且可以实现对系统中重要组成部分进行充分测试和监控。此外,本方法整个度量分析过程都可在后台实现,建立在完全自动化的流程上,确保最大限度减低人力和时间成本。
附图说明
图1是本发明基于复杂网络的软件结构重要模块识别方法的整体流程图;
图2是Apache Ant软件某版本的属性方法网络图;
图3是Apache Ant软件某版本的加权类网络示意图;
图4是软件重要模块识别模型的示意图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步的详细和深入描述。
本发明的基于复杂网络的软件结构重要模块识别方法,包括四个步骤,如图1所示。步骤1,首先确定目标软件并获取其完整的软件源代码。步骤2,对目标软件源代码进行静态扫描,分析软件中的元素实体和元素之间的相互关系。元素包括类的属性和方法。步骤3,然后以属性方法为网络节点,构建软件属性方法网络,再根据实际需要识别软件模块粒度大小,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型。步骤4,在步骤3得到软件系统网络模型基础上,对网络中的节点从多个角度去度量分析,计算其节点的重要性并进行排序,得到节点按重要性度量值排序后的集合,结合实际工程情况选取前t%的节点则为系统中的重要模块。t为正数。
为了更清晰的介绍本发明,以面向对象软件识别其系统关键类为例说明步骤3中的属性方法网络模型和类网络模型。
对一个面向对象软件,在步骤2抽取软件系统中包含的属性方法以及它们之间的相互作用关系后,构建原始属性方法网络。然后分析属性方法网络中节点的从属关系,将表征同属于一个类的属性和方法的节点进行划分,对每一个类在坐标平面赋予其互不重叠的圆心,属性方法按其修饰符的不同给予不同的半径,以同心圆的形式让属性方法节点均匀分布在圆周上,并计算其相应坐标,构成一个以属性方法表征类的子网络,节点之间的依赖关系可划分为子网络内部作用和子网络之间的作用。
因此面向对象程序其属性方法网络D定义如下:
D={V,E}
V={vi=(name,class,attributes,coordinate)}
E={(vsource,vtarget)|vsource,vtarget∈V;vsource≠vtarget}
其中,V为节点集合,每一个节点vi具有的信息包括函数或者变量的名称name、函数或者变量所属的类class、函数或者变量的属性attribute、节点的坐标coordinate等,attributes为属性集合。E为边集合,vsource表示调用起始节点,vtarget表示调用的终止节点。对实际软件Apache Ant软件某版本的属性方法网络如图2所示,有很多节点和边。
在属性方法网络的基础上,将属性方法网络中隶属于同一个类的节点进行聚合构造表征软件系统类的节点,聚合类之间的作用构造有向边并统计类之间相互作用的频数,计算边的权重,从属性方法网络中抽取出类加权网络。类加权网络D定义如下:
D'={V',E'}
V'={vk=(name,size,innercoupling,types)
E'={(vsource,vtarget,weight)|vsource,vtarget∈V',vsource≠vtarget}
V’为节点集合,其中包含n个软件类节点vk,而每个节点包括节点所代表的类名称name、类的规模size、类内部的属性方法之间相互函数调用频次innercoupling、节点所代表的抽象数据的类型types等节点的细节属性信息,size即类内部所包含的属性和方法的数量。E’为边集合,vsource表示调用起始节点,vtarget表示调用的终止节点,weight表示边的权重。边的权重计算方法定义如下:
w=fi
其中,fi表示调用关系的频数。
Apache Ant软件的类加权网络如图3所示,边的粗细表明类之间耦合的紧密程度。
本发明方法可根据实际需要识别软件模块粒度大小,如包、文件、类以及函数等,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型。如图2所示的网络,和图3所示的类加权网络都分别是一个软件复杂网络模型。
步骤4中,在上述网络模型的基础上,本发明提出了一种基于复杂网络的软件结构重要模块识别模型。根据对模块重要性影响因素的分析可知,软件模块重要性与模块在软件系统中的位置、模块对软件系统信息传递的控制力、模块与邻居模块的交互作用以及模块自身内部的复杂特性有关。因此本发明从整体和局部两个度量层面出发,综合考虑多个度量参数,提出软件重要模块的识别模型SKMI,模型的框架如图4所示,为了更清晰的介绍重要模块识别模型,将分别对整体和局部层面的度量做详尽叙述。
(1)整体度量。
根据复杂网络特征与软件模块特性,在整体度量层面软件系统模块的重要性主要取决于两个方面,一是模块在软件系统中的位置,二是模块对整个软件信息流的控制力的大小,因此在整体度量评价层面通过4个参数来反映软件模块的重要性。参数的具体定义如下:
接近数cc:度量节点在软件网络中的位置,即模块在软件系统中的中心程度,接近数的取值越大,表示度量的模块与其他模块之间的距离越小,该模块越处于整个软件系统的核心位置,从网络信息传输与流动的角度来说,接近数越大的节点对于信息流动具有最佳的观察视野。节点i的接近数cci根据下式计算:
其中,N表示网络中节点的数量,dij为节点i到节点j之间的最短路径长度。
核数kc:度量模块在软件系统中的深度。一个网络的k-核是指反复去掉网络中度值小于k的所有节点及其连接边,即k-核分解,直到网络中剩下节点的度值都不小于k时的网络子图。一个节点存在于k-核网络中,而在(k+1)-核中被移除,那么该节点的核度就为k通过k核分解模块所处的层次越深,说明模块在软件系统中所提供的功能和服务越基础,模块的重要性越强。
介数bc:反映了节点对整个网络的影响力,在软件网络中从控制信息传递的角度来说,介数越高的节点对于网络中信息的流动具有越高的控制力,其重要性越大。
节点i的介数bci的计算公式如下:
其中guv为从节点u到节点v的最短路径的数目,ni uv为从节点u到节点v的最短路径中经过节点i的最短路径的数目。
逆向波及度rr:度量软件系统中直接或者间接调用模块i的其他模块的数量。模块的逆向波及度越大说明模块对信息流的潜在影响力越大,该模块越重要。节点i的逆向波及度rri的计算公式如下:
结合欧拉距离公式计算模块度量值与最优值之间的距离,用距离来表示模块在整体层面的重要程度,同时为了消除不同度量参数取值不同对评价结果的影响,首先对参数进行标准化处理,标准化处理的如下:
其中,x表示某一度量参数,min表示该参数的最小值,max表示该参数的最大值,qij表示度量值经过标准化处理之后的取值。j的取值从1到4,分别表示4个整体度量的参数,qij表示节点i的第j个参数的标准化值。
因此整体度量层面的计算方法如下:
qmax表示第j个参数的度量值标准化处理后的最大的取值,fi(cci,kci,bci,rri)表示模块度量值与最优值之间的距离,同时为了避免距离为0,进行避免除零处理。
(2)局部度量。
整体层面的软件模块重要性评价从一个方面给了工程人员软件模块重要性的初步认识,但是考虑到软件系统结构的不均匀性和复杂性,仅仅依靠整体层面的度量是不够充分的。在局部度量层面软件系统模块的重要性主要取决于模块与邻居模块的交互作用以及模块自身内部的复杂特性。局部评价参数的定义与软件网络含义如下:
强度s:节点强度反映了节点与网络中其他节点的连接情况,在软件网络中节点强度越大表示软件模块依赖的其他的模块的数量越大,模块与邻居模块之间的交互越紧密,模块的重要性越强。节点i的强度si表示为:
其中,V表示软件复杂网络中的节点集合,节点i和节点j为邻居节点,表示二者之间有调用或被调用关系。Wij表示节点i到节点j的边的权重值,Wji表示节点j到节点i的边的权重值。
聚集系数c:度量与节点直接交互的邻居节点之间的联系程度,在软件系统中,与模块i直接交互的邻居模块之间联系越紧密,在一定程度上说明模块越重要。节点i的聚集系数ci表示为:
其中,ki表示节点i的度,即节点i的邻居个数,ei表示节点i与ki个邻居节点之间实际存在的边的数目。
模块规模ms:度量模块内软件元素的数量。对于本发明实施例,是指类中属性和方法的数量。
模块内耦合度ac:度量模块内部元素之间的耦合程度。节点i的模块内耦合度aci表示为:
其中,n表示模块内的软件元素的数量,Ei表示这些元素之间存在的边的数量。模块规模和模块内耦合度都反映了模块自身的复杂程度。
同样,在得到计算得到模块在局部度量的4个参数的度量值后,对度量值进行标准化处理后,利用欧拉距离公式计算模块度量值与最优值之间的距离,用距离表示模块在局部层面的重要程度。局部层面的模块重要性度量方法如下:
其中,用j=1,2,3,4分别表示强度、聚集系数、模块规模和模块内耦合度,对应节点i的度量值分别为si、ci、msi和aci;qmax表示第j个参数的度量值在标准化处理后的最大取值;zi(cci,kci,bci,rri)表示模块度量值与最优值之间的距离,并进行避免除零处理。
最后,根据以上分别对整体和局部两个层面的分析,给出软件模块重要性的评价模型,具体公式如下:
Mkey={Ri|Maxt%(R1<R2<......<Ri)}
Ri=αgi(cci,kci,bci,rri)+βli(si,ci,msi,aci)
其中Mkey表示软件系统中关键模块的集合,Ri为软件系统中模块的重要性的评价值,t是可调节参数,工程人员可以根据实际确定t的大小,gi(cci,kci,bci,rri)表示基于整体层面的软件模块重要性的评价值,li(si,ci,msi,aci)表示基于局部层面的软件模块重要性评价值,α和β代表偏好和风险容忍,在本发明的研究中为了保证度量结果的均衡,α和β取值0.5,t的取值为10。
因此本发明基于复杂网络综合了对模块重要性有影响的四个维度的因素给出了识别重要模块的方法,利用本发明方法,可以有效为工程人员快速准确找出软件系统中的关键组成部分提供支撑,这对于软件测试、软件维护等方面的工作都有一定的实际意义。

Claims (10)

1.一种基于复杂网络的软件结构重要模块识别方法,实现步骤包括:步骤1,确定目标软件并获取完整的软件源代码;步骤2,对目标软件源代码进行静态扫描,分析软件中的元素实体和元素之间的相互关系;其特征在于,
步骤3,以软件系统中类的属性和方法为网络节点,构建属性方法网络;根据需要识别软件模块粒度大小,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型;
步骤4:在得到软件复杂网络模型后,对网络中的节点从设定的角度去度量分析,计算节点的重要性并进行排序,得到节点按重要性度量值排序后的集合,结合实际工程选取前t%的节点作为系统中的重要模块;t为正数;
其中,对网络中的节点从设定的角度去度量分析,具体分为整体度量和局部度量,再综合度量结果给出节点的重要性度量值;整体度量通过计算4个参数来度量软件模块,4个参数为接近数、核数、介数和逆向波及度;局部度量是通过计算强度、聚集系数、模块规模和模块内耦合度来度量软件模块;
计算得到模块在整体度量或局部度量的4个参数的度量值后,对度量值进行标准化处理后,利用欧拉距离公式计算模块度量值与最优值之间的距离,用距离表示模块在整体层面或局部层面的重要程度;最后,对模块在整体层面和局部层面的重要程度进行加权求和,来表示软件模块的重要性度量值。
2.根据权利要求1所述的方法,其特征在于,所述的步骤3中,从属性方法网络中抽取出类加权网络,是:将属性方法网络中隶属于同一个类的节点进行聚合,构造表征软件系统类的节点,聚合类之间的作用构造有向边,并统计类之间相互作用的频数,作为边的权重。
3.根据权利要求1或2所述的方法,其特征在于,所述的步骤3中,属性方法网络构建方法是:抽取软件系统中类的属性、方法以及它们之间的相互作用关系,构建属性方法网络,表示为D,如下:
D={V,E}
V={vi=(name,class,attributes,coordinate)}
E={(vsource,vtarget)|vsource,vtarget∈V;vsource≠vtarget}
其中,V为节点集合,每一个节点vi具有的信息包括函数或者变量的名称name、函数或者变量所属的类class、函数或者变量的属性集合attributes、节点的坐标coordinate;E为边集合,vsource表示调用起始节点,vtarget表示调用的终止节点;
进一步的,从属性方法网络中抽取类加权网络,类加权网络D’定义如下:
D'={V',E'}
V'={vk=(name,size,innercoupling,types)
E'={(vsource,vtarget,weight)|vsource,vtarget∈V',vsource≠vtarget}
其中,V’为节点集合,每个节点代表软件中的一个类,每个节点vk包括:节点所代表的类名称name,类的规模size,类内部的属性方法之间相互函数调用频次innercoupling,节点所代表的抽象数据的类型types;E’为边集合,vsource表示调用起始节点,vtarget表示调用的终止节点,weight表示边的权重。
4.根据权利要求1所述的方法,其特征在于,所述的步骤4中,整体度量的4个参数分别计算如下:
(1)接近数cc:度量模块在软件网络中的位置,接近数的取值越大,表示模块越处于整个软件系统的核心位置;节点i的接近数cci根据下式计算:
其中,N表示网络中节点的数量,dij为节点i到节点j之间的最短路径长度;每个节点对应一个模块;
(2)核数kc:度量模块在软件系统中的深度,核数值越大,表示模块所处的层次越深,模块的重要性越强;通过k-核分解来获得模块的核数kc;
(3)介数bc:度量模块对整个网络的影响力,介数越高,表示模块对网络中信息的流动具有越高的控制力,重要性越大;节点i的介数bci的计算公式如下:
其中,guv为从节点u到节点v的最短路径的数目,ni uv为从节点u到节点v的最短路径中经过节点i的最短路径的数目;
(4)逆向波及度rr:度量软件系统中直接或者间接调用模块i的其他模块的数量;逆向波及度越大说明模块对信息流的潜在影响力越大,该模块越重要;节点i的逆向波及度rri的计算公式如下:
其中,V为软件复杂网络中的节点集合。
5.根据权利要求1或4所述的方法,其特征在于,所述的步骤4中,对度量值依据下面公式进行标准化处理,
其中,qij表示节点i的第j个参数的度量值x在标准化后的值,min表示该参数的最小值,max表示该参数的最大值,i,j均为正整数。
6.根据权利要求5所述的方法,其特征在于,所述的步骤4中,根据下面公式获得模块在整体层面的重要程度的度量值gi(cci,kci,bci,rri);
其中,用j=1,2,3,4分别表示接近数、核数、介数和逆向波及度,对应节点i的度量值分别为cci、kci、bci和rri;qmax表示第j个参数的度量值在标准化处理后的最大取值;fi(cci,kci,bci,rri)表示模块度量值与最优值之间的距离,并进行避免除零处理。
7.根据权利要求1所述的方法,其特征在于,所述的步骤4中,局部度量的4个参数分别计算如下:
强度s:反映节点与网络中其他节点的连接情况,节点的强度越大表示模块依赖的其他的模块的数量越大,模块的重要性越强;每个节点对应一个模块;节点i的强度si表示为:
其中,V表示软件复杂网络中的节点集合,节点i和节点j为邻居节点,Wij表示节点i到节点j的边的权重值,Wji表示节点j到节点i的边的权重值;
聚集系数c:度量与节点直接交互的邻居节点之间的联系程度,聚集系数越大,表示模块越重要;节点i的聚集系数ci表示为:
其中,ki表示节点i的邻居个数,ei表示节点i与ki个邻居节点之间实际存在的边的数目。
模块规模ms:度量模块内软件元素的数量;
模块内耦合度ac:度量模块内部元素之间的耦合程度;节点i的模块内耦合度aci表示为:
其中,n表示模块内的软件元素的数量,Ei表示这些元素之间存在的边的数量。
8.根据权利要求1或7所述的方法,其特征在于,所述的步骤4中,根据下面公式获得模块在局部层面的重要程度的度量值li(si,ci,msi,aci);
其中,用j=1,2,3,4分别表示强度、聚集系数、模块规模和模块内耦合度,对应节点i的度量值分别为si、ci、msi和aci;qmax表示第j个参数的度量值在标准化处理后的最大取值;zi(cci,kci,bci,rri)表示模块度量值与最优值之间的距离,并进行避免除零处理。
9.根据权利要求1所述的方法,其特征在于,所述的软件模块的重要性度量值Ri表示为:
Ri=αgi(cci,kci,bci,rri)+βli(si,ci,msi,aci)
其中,gi(cci,kci,bci,rri)为模块在整体层面的重要程度的度量值,li(si,ci,msi,aci)为模块在局部层面的重要程度的度量值;权重α和β分别代表偏好和风险容忍;
在获得模块的重要性度量值后,根据下式来获得系统中的重要模块;
Mkey={Ri|Maxt%(R′1<R′2<......<R′i)}
其中,Mkey表示系统中的重要模块的集合。
10.根据权利要求9所述的方法,其特征在于,所述的权重α和β取值0.5,t取值为10。
CN201810233854.2A 2018-03-21 2018-03-21 一种基于复杂网络的软件结构重要模块识别方法 Pending CN108536471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810233854.2A CN108536471A (zh) 2018-03-21 2018-03-21 一种基于复杂网络的软件结构重要模块识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810233854.2A CN108536471A (zh) 2018-03-21 2018-03-21 一种基于复杂网络的软件结构重要模块识别方法

Publications (1)

Publication Number Publication Date
CN108536471A true CN108536471A (zh) 2018-09-14

Family

ID=63484496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810233854.2A Pending CN108536471A (zh) 2018-03-21 2018-03-21 一种基于复杂网络的软件结构重要模块识别方法

Country Status (1)

Country Link
CN (1) CN108536471A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656615A (zh) * 2018-12-28 2019-04-19 四川新网银行股份有限公司 一种基于代码方法重要程度进行权限预警的方法
CN109871318A (zh) * 2019-01-14 2019-06-11 浙江工商大学 一种基于软件运行网络的关键类识别方法
CN111913702A (zh) * 2020-08-11 2020-11-10 湖北大学 一种基于图神经网络的软件系统中关键类的识别方法
CN112087488A (zh) * 2020-08-03 2020-12-15 济南浪潮高新科技投资发展有限公司 一种重要云机器人节点的确定方法、装置、设备及介质
CN112231175A (zh) * 2020-10-14 2021-01-15 北京航空航天大学 一种基于动态仿真的软件状态监控点选择方法及系统
CN113158372A (zh) * 2021-04-20 2021-07-23 天津大学 一种面向自适应设计的工程机械产品质量改进方法
CN117311806A (zh) * 2023-11-30 2023-12-29 南昌航空大学 基于加权有向耦合网络的软件结构风险识别方法与装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038151B1 (en) * 2012-09-20 2015-05-19 Wiretap Ventures, LLC Authentication for software defined networks
CN106502669A (zh) * 2016-10-20 2017-03-15 北京航空航天大学 一种软件复杂网络的三维坐标模型构建方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038151B1 (en) * 2012-09-20 2015-05-19 Wiretap Ventures, LLC Authentication for software defined networks
CN106502669A (zh) * 2016-10-20 2017-03-15 北京航空航天大学 一种软件复杂网络的三维坐标模型构建方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIAMING WANG等: "Identifying Key Classes of Object-Oriented Software Based on Software Complex Network", 《2017 2ND INTERNATIONAL CONFERENCE ON SYSTEM RELIABILITY AND SAFETY》 *
任卓明: "复杂网络中的节点重要性度量研究", 《中国优秀硕士学位论文全文数据库 基础科学辑》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656615A (zh) * 2018-12-28 2019-04-19 四川新网银行股份有限公司 一种基于代码方法重要程度进行权限预警的方法
CN109871318A (zh) * 2019-01-14 2019-06-11 浙江工商大学 一种基于软件运行网络的关键类识别方法
CN109871318B (zh) * 2019-01-14 2022-05-17 浙江工商大学 一种基于软件运行网络的关键类识别方法
CN112087488A (zh) * 2020-08-03 2020-12-15 济南浪潮高新科技投资发展有限公司 一种重要云机器人节点的确定方法、装置、设备及介质
CN112087488B (zh) * 2020-08-03 2023-08-25 山东浪潮科学研究院有限公司 一种重要云机器人节点的确定方法、装置、设备及介质
CN111913702A (zh) * 2020-08-11 2020-11-10 湖北大学 一种基于图神经网络的软件系统中关键类的识别方法
CN111913702B (zh) * 2020-08-11 2022-04-01 湖北大学 一种基于图神经网络的软件系统中关键类的识别方法
CN112231175A (zh) * 2020-10-14 2021-01-15 北京航空航天大学 一种基于动态仿真的软件状态监控点选择方法及系统
CN112231175B (zh) * 2020-10-14 2022-05-13 北京航空航天大学 一种基于动态仿真的软件状态监控点选择方法及系统
CN113158372A (zh) * 2021-04-20 2021-07-23 天津大学 一种面向自适应设计的工程机械产品质量改进方法
CN117311806A (zh) * 2023-11-30 2023-12-29 南昌航空大学 基于加权有向耦合网络的软件结构风险识别方法与装置
CN117311806B (zh) * 2023-11-30 2024-03-29 南昌航空大学 基于加权有向耦合网络的软件结构风险识别方法与装置

Similar Documents

Publication Publication Date Title
CN108536471A (zh) 一种基于复杂网络的软件结构重要模块识别方法
CN106909643B (zh) 基于知识图谱的社交媒体大数据主题发现方法
Yang et al. Epidemic spreading in weighted networks: An edge-based mean-field solution
CN109005055B (zh) 基于多尺度拓扑空间的复杂网络信息节点重要度评价方法
Chopade et al. A framework for community detection in large networks using game-theoretic modeling
CN105550714A (zh) 一种异构网络环境中告警信息的聚类融合方法
CN105574191B (zh) 在线社会网络多源点信息溯源系统及其方法
CN115278741B (zh) 一种基于多模态数据依赖关系的故障诊断方法和装置
CN111176953B (zh) 一种异常检测及其模型训练方法、计算机设备和存储介质
CN110213164A (zh) 一种基于拓扑信息融合的识别网络关键传播者的方法及装置
CN110188882A (zh) 一种基于模糊推理的高冲突证据融合方法
CN105376223B (zh) 网络身份关系的可靠度计算方法
CN109242250A (zh) 一种基于模糊熵权法与云模型的用户行为可信度检测方法
CN114598539B (zh) 根因定位方法、装置、存储介质及电子设备
Shen et al. The application of artificial intelligence to the bayesian model algorithm for combining genome data
CN110287237B (zh) 一种基于社会网络结构分析社团数据挖掘方法
CN116049438B (zh) 一种基于知识图谱的群体成员关系分析方法
US11836637B2 (en) Construction method of human-object-space interaction model based on knowledge graph
Shen et al. Developer cooperation relationship and attribute similarity based community detection in software ecosystem
CN116668105A (zh) 一种结合工控安全知识图谱的攻击路径推理系统
CN108664728A (zh) 一种基于复杂网络动态仿真的软件模块变更影响确定方法
CN113259402B (zh) 一种异常网络协议地址的确定方法和装置
CN106550387B (zh) 一种无线传感器网络路由层服务质量评价方法
CN115345753A (zh) 一种基于互联网渠道的电力客户消息精准推送方法
CN110889614A (zh) 基于scada大数据的电网系统重要用户供电风险分析方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180914

RJ01 Rejection of invention patent application after publication