一种基于复杂网络的软件网络关键节点挖掘方法技术

技术编号:21833633 阅读:24 留言:0更新日期:2019-08-10 18:21
本发明专利技术提供一种基于复杂网络的软件网络关键节点挖掘方法,首先根据网络的拓扑结构,以类中的方法数作为边的权值,重新定义了边权值的概念,即根据类的方法数对软件系统的有向网络中的边进行加权,从而抽象出有向加权网络模型,然后将被不同关键节点挖掘算法均判断为备选关键节点的节点作为有向加权网络模型中最终的关键节点,由此得到的关键节点是在软件网络中占据更重要的地位的关键节点,则通过对找到的软件系统的关键节点加以防护,可以增强软件系统的可靠性、安全性,有效减少软件系统遭受的来自外界的攻击,进而大大减小因系统遭受破环带来的损失。

A Method of Mining Key Nodes in Software Network Based on Complex Network

【技术实现步骤摘要】
一种基于复杂网络的软件网络关键节点挖掘方法
本专利技术属于软件安全
,尤其涉及一种基于复杂网络的软件网络关键节点挖掘方法。
技术介绍
关键节点在软件网络中具有很大的影响力,在移动互联网、科研教育网络、物理网络甚至生物网络等现实网络中,关键节点都起着至关重要的作用。随着复杂网络在软件网络相关特性中的深入研究和关键节点的广阔应用前景,关键节点的研究也在软件复杂网络中的重要地位越来越显著。为了评估节点的影响性,研究人员会对软件网络中所有抽象出的节点和节点之间的关系进行研究分析,通过一定的条件去量化节点在整个网络中的地位和影响程度,进而挖掘出软件网络中的关键节点。另外,国内外相关的关键节点的研究都是从节点的不同属性进行的。CallawayDS等人研究了具有完全一般度分布的图的渗流问题,给出了各种情况下的精确解,包括位置渗流、键渗流和占用概率依赖于顶点度的模型,认为节点的度越大,节点就越关键,然而却忽略了软件网络全局信息对节点重要性的影响。FreemanLC提出介数中心性度量方法,认为节点的介数值越大该节点在网络中承担的任务越重要,节点越重要,但是随着网络规模的不断增大,计算每个节点的介数不仅耗时而且计算复杂度也是难以接受的。MaharaniW等人认为图的结构和权重对中心值本身的影响很大,运用度和特征向量中心性观察推特数据中心性值的影响,以此来判断信息在社会网络中的传播速度。KitsakM等人提出了节点重要程度依赖于其在整个网络中的相对位置,认为最有效的传播者是那些位于网络核心的,由k-shell分解分析确定的传播者。然而,目前的度量方法大多基于有向无权网络或无向无权网络,在无权网络的基础上提取节点的度、节点间距离、聚集系数、相关系数等参数值作为度量指标,但是无权网络会忽略掉软件系统的一些重要的结构属性,使得度量缺乏准确性。而且这样的网络模型研究起来过于简单,虽然在表现软件网络的全局特性时有不错的效果,但是在对软件网络的局部研究中有一定的局限性。软件网络也和复杂网络一样,网络中模块的缺陷和变更,并不是瞬间就传播到整个网络,因此对软件网络全局和局部特征一起研究,会达到更好的效果。
技术实现思路
为解决上述问题,本专利技术提供一种基于复杂网络的软件网络关键节点挖掘方法,由此得到的关键节点是在软件网络中占据更重要的地位的关键节点,可以增强软件系统的可靠性、安全性,有效减少软件系统遭受的来自外界的攻击,进而大大减小因系统遭受破环带来的损失。一种基于复杂网络的软件网络关键节点挖掘方法,包括以下步骤:S1:根据软件系统的源代码中各个类之间的依赖、关联、聚合、组合以及继承关系得到类图;S2:统计各个类的方法数,然后分别将每个类的方法数作为所述类图中该类指向其下一个类的有向边的权值,得到有向加权网络模型;S3:分别根据至少三种关键节点挖掘算法,获取有向加权网络模型中的备选关键节点;S4:将被各关键节点挖掘算法均判断为备选关键节点的节点作为有向加权网络模型中最终的关键节点。进一步地,分别根据缺陷可能性、缺陷传播代价以及KeyNode算法,获取有向加权网络模型中的备选关键节点;其中,根据缺陷可能性获取所述备选关键节点的方法如下:获取有向加权网络模型中各个节点的出度在各自的度总数中所占的比例R1;获取各个节点的度总数与其对应的方法数的和值S1;获取各个节点对应的比例R1与其对应方法数的乘积;将各个节点对应的乘积与其对应的和值S1的比值,作为各个节点的缺陷可能性;将缺陷可能性最大的前M个节点作为备选关键节点,其中M至少为25;根据缺陷传播代价获取所述备选关键节点的方法如下:分别获取有向加权网络模型中各个节点可达的节点的个数N;分别获取各个节点与其可达节点之间的最短路径所包括的所有节点的出度之和S2;将各个节点对应的出度之和S2与个数N的平方的比值,作为各个节点的缺陷传播代价;将缺陷传播代价最大的前M个节点作为备选关键节点;根据KeyNode算法获取所述备选关键节点的方法如下:依次将有向加权网络模型中各个节点作为待测节点,获取指向该待测节点的所有节点的出度,同时假设指向待测节点的所有节点的个数为m,则各指向待测节点的节点对应的出度分别为D(j),j=1,2,…,m;其中,第一个待测节点为出度不为0而入度为0的节点;对于指向待测节点的所有节点,将各节点的KN值与各自的出度D(j)求比值后,将所得比值进行求和;将所得和值与待测节点的缺陷可能性的乘积作为待测节点的KN值,其中,第一个待测节点的KN值为其缺陷可能性与其出度的比值;将KN值最大的前M个节点作为备选关键节点。有益效果:1、本专利技术提供一种基于复杂网络的软件网络关键节点挖掘方法,首先根据网络的拓扑结构,以类中的方法数作为边的权值,重新定义了边权值的概念,即根据类的方法数对软件系统的有向网络中的边进行加权,从而抽象出有向加权网络模型,然后将被不同关键节点挖掘算法均判断为备选关键节点的节点作为有向加权网络模型中最终的关键节点,由此得到的关键节点是在软件网络中占据更重要的地位的关键节点,则通过对找到的软件系统的关键节点加以防护,可以增强软件系统的可靠性、安全性,有效减少软件系统遭受的来自外界的攻击,进而大大减小因系统遭受破环带来的损失。2、本专利技术提供一种基于复杂网络的软件网络关键节点挖掘方法,利用节点的出度、入度和权值等自身具有的属性,提出缺陷可能性、缺陷传播代价以及KeyNode算法等三种新的关键节点的挖掘方法,然后再分别根据各节点的缺陷可能性、缺陷传播代价以及KN值对有向加权网络中每个节点进行差别排序,从而确定关键节点的存在,由此得到的关键节点更能反映软件系统的潜在缺陷,可以增强软件系统的可靠性、安全性,不仅能够有效减少软件系统遭受的来自外界的攻击,还能减小因系统遭受破环带来的损失。附图说明图1为本专利技术提供的一种基于复杂网络的软件网络关键节点挖掘方法的流程图;图2为本专利技术提供的有向加权网络模型的局部示意图;图3为本专利技术提供的实际操作流程图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。本实施例涉及到复杂网络相关特性,软件网络的拓扑结构,是对软件网络关键节点研究的新方法探索。参见图1,该图为本实施例提供的一种基于复杂网络的软件网络关键节点挖掘方法的流程图。一种基于复杂网络的软件网络关键节点挖掘方法,包括以下步骤:S1:根据软件系统的源代码中各个类之间的依赖、关联、聚合、组合以及继承关系得到类图。需要说明的是,根据代码量不同区分,软件系统可以为Tomcat、JUnit、Hystrix等不同规模大小的系统;然后,可以将软件系统的源代码导入IntelliJ中,根据源代码中各个类之间的继承、关联等关系,利用IntelliJ的自带插件抽象出UML类图,并保存类图文件;其中,类图为有向图,也就是说,类与类之间的指向具有方向性。S2:统计各个类的方法数,然后分别将每个类的方法数作为所述类图中该类指向其下一个类的有向边的权值,得到有向加权网络模型。需要说明的是,可以用Python语言编写相关程序,统计每个类中的方法数,其中,方法数即为能够实现这个类的功能的方法的个数;有向边的权值用来度量类的复杂性,权值越大,本文档来自技高网
...

【技术保护点】
1.一种基于复杂网络的软件网络关键节点挖掘方法,其特征在于,包括以下步骤:S1:根据软件系统的源代码中各个类之间的依赖、关联、聚合、组合以及继承关系得到类图;S2:统计各个类的方法数,然后分别将每个类的方法数作为所述类图中该类指向其下一个类的有向边的权值,得到有向加权网络模型;S3:分别根据至少三种关键节点挖掘算法,获取有向加权网络模型中的备选关键节点;S4:将被各关键节点挖掘算法均判断为备选关键节点的节点作为有向加权网络模型中最终的关键节点。

【技术特征摘要】
1.一种基于复杂网络的软件网络关键节点挖掘方法,其特征在于,包括以下步骤:S1:根据软件系统的源代码中各个类之间的依赖、关联、聚合、组合以及继承关系得到类图;S2:统计各个类的方法数,然后分别将每个类的方法数作为所述类图中该类指向其下一个类的有向边的权值,得到有向加权网络模型;S3:分别根据至少三种关键节点挖掘算法,获取有向加权网络模型中的备选关键节点;S4:将被各关键节点挖掘算法均判断为备选关键节点的节点作为有向加权网络模型中最终的关键节点。2.如权利要求1所述的一种基于复杂网络的软件网络关键节点挖掘方法,其特征在于,分别根据缺陷可能性、缺陷传播代价以及KeyNode算法,获取有向加权网络模型中的备选关键节点;其中,根据缺陷可能性获取所述备选关键节点的方法如下:获取有向加权网络模型中各个节点的出度在各自的度总数中所占的比例R1;获取各个节点的度总数与其对应的方法数的和值S1;获取各个节点对应的比例R1与其对应方法数的乘积;将各个节点对应的乘积与其对应的和值S1的比值,作为各个节点的缺陷可能性;将缺...

【专利技术属性】
技术研发人员:单纯胡昌振梅珊珊高献伟王鹏
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1