一种基于复杂网络动态仿真的软件模块变更影响确定方法技术

技术编号:19177955 阅读:19 留言:0更新日期:2018-10-17 00:29
本发明专利技术公开了一种基于复杂网络动态仿真的软件模块变更影响确定方法,属于软件复杂网络领域,包括:首先对目标软件的源代码进行静态扫描,构建软件属性方法网络;再根据实际需要识别软件模块粒度大小,构造软件复杂网络模型,对变更发生在确定软件模块后的影响传播进行动态仿真,得到各节点受影响程度量化值和变更影响范围;最后,将节点在每个变更传播代的衰减系数求和,作为节点受影响程度量化值,依赖此量化值得到软件网络上的变更影响程度可视化结果图。本发明专利技术综合考虑了变更传播特性和节点特性进行动态仿真,利用变更影响的衰减过程,整个度量分析过程都可在后台实现,并建立在完全自动化的流程上,确保最大限度减低人力和时间成本。

A method for determining software module change impact based on complex network dynamic simulation

The invention discloses a software module change impact determination method based on complex network dynamic simulation, which belongs to the field of software complex network. The method comprises: firstly, the source code of the target software is scanned statically, and the software attribute method network is constructed; secondly, the granularity of the software module is identified according to actual needs, and the software is complex. The network model simulates the influence propagation after the change occurs in the software module, and obtains the quantization value and the influence range of each node. Finally, the attenuation coefficient of each node in each change propagation generation is summed up as the quantization value of the influence degree of each node, and the quantization value is worth to the software network. The visualization of the impact of change. The method integrates the propagation characteristics of change and node characteristics for dynamic simulation. By utilizing the attenuation process of change influence, the whole measurement and analysis process can be realized in the background, and is established in a fully automated process to ensure the maximum reduction of labor and time costs.

【技术实现步骤摘要】
一种基于复杂网络动态仿真的软件模块变更影响确定方法
本专利技术属于软件复杂网络领域,是一种基于软件网络动态仿真的软件模块变更影响确定方法。
技术介绍
随着信息技术的不断发展,计算机软件已经广泛应用于人类生活的方方面面,为人类社会经济的发展和科研的进步做出了巨大的贡献,软件的重要性急剧上升。与此同时,由于人们对软件功能需求的增多和软件应用环境的日益复杂,软件系统的规模和复杂性不断增长。变更可以是因为用户提出新的需求,软件使用过程中发现的错误,或是因为软件所使用的环境发生变化。对软件进行变更时,肯定会对软件的其他模块造成一些潜在影响,从而带来软件的不一致性。软件修改影响分析,就是用来识别软件修改对软件其他部分带来的潜在影响的。而复杂网络的出现,为软件模块变更的影响确定提供了新的方法。复杂网络是一种用于描述复杂系统的模型,通过将软件系统中的包、类、函数等元素以及元素之间的关系抽象为节点和边,整个软件可以抽象为一种具有特定拓扑结构的网络形态。这样的软件拓扑结构网络有助于程序开发人员对于软件整体框架有一个直观全面的理解,有利于对整个软件项目的开发、测试等工作。同时,这种软件网络在软件的演化规律、软件结构的复杂性和稳定性等方面取得了很好的研究效果。目前已有研究人员在软件网络中研究节点的波及效应,并进行了波及度的研究。对变更传播建立模型是探索影响传播规律的重要手段。目前的研究认为(参考文件:孙小兵,李斌,陈颖,李必信,文万志.软件修改影响分析研究与进展[J].电子学报,2014,42(12):2467-2476.),软件的缺陷、变更等的传播,因为软件结构是一种复杂网络,所以其传播代价比较小,因为涟漪效应,缺陷、变更等很容易扩散到其他的节点。然而在网络拓扑上研究软件节点之间的影响(变更、缺陷的传播、耦合度等),没有考虑软件网络自身的特殊性。由于软件网络的节点有其特殊的结构,在目前的研究中所采用的软件网络模型与真实的软件网络有着很大的不同。故发现,在以软件的模块、类、包等为软件网络的节点时,夸大了软件网络的传播性。这样的传播性夸大在很多复杂网络上都有表现,比如传染病的传播性、Internet上的病毒等。在这些复杂网络上的传染病和病毒并不像复杂网络理论给出的那样会瞬间传播到大部分的节点上。软件网络中,由于封装、容错等实际因素,实际的网络传播范围比复杂网络理论给出的预计要小。
技术实现思路
本专利技术针对目前软件网络上进行模块变更影响确定问题存在的传播性夸大、未在软件网络上研究影响的传播与节点自身特性(如出/入度、介数等)之间的关联关系、变更影响确定方法自动化程度低等问题,提出一种基于复杂网络的软件模块变更影响确定方法。本专利技术提出的一种基于复杂网络的软件模块变更影响确定方法,首先获取待分析的目标软件的完整源代码,并对源代码进行静态扫描,以软件系统中类的属性和方法为网络节点,构建软件属性方法网络,再根据实际需要识别软件模块粒度大小,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型。在得到软件复杂网络模型后,对变更发生在确定软件模块后的影响传播进行动态仿真,得到各节点受影响程度量化值和变更影响范围。所述的方法采用软件变更影响传播仿真模型来进行动态仿真;仿真参数从变更传播特性和节点特性两方面来度量;变更传播特性的仿真参数包括:正向衰减率k正、逆向衰减率k逆、影响被标记的最小阈值s_min和变更传播的代数time;节点特性的仿真参数包括介数、度和紧密度活性;仿真过程中采用广度优先的遍历方式寻找受到影响波及的下一代节点,对于传播路径上的节点i,当节点i的衰减系数βi小于等于最小阈值s_min时,停止对节点i的影响波及计算;其中,衰减系数βi与变更传播的代数time呈指数正相关,表示为βi∝(k正/逆)(time);最后,将节点i在每个变更传播代的衰减系数求和,作为节点i受影响程度量化值。本专利技术与现有技术相比,具有以下优势:(1)本专利技术方法综合考虑变更衰减传播的特性和节点自身属性两个方面的多种特性参数,再通过侧重不同的变更影响仿真模型给出节点受波及程度量化值;变更传播特性的度量中采用正向/逆向衰减率、影响被标记的最小阈值、变更传播的代数4个参数进行仿真计算;节点特性是通过计算节点度、节点介数、前辈节点数3个参数来描述软件模块自身属性对传播过程的影响。(2)本专利技术在对变更过程的仿真过程中,通过广度优先算法,一代一代地寻找新的受波及节点,对每个节点采用逐代衰减的计算机制,有效解决了目前对变更波及效应的夸大性。针对类型不同的变更,可按实际情况选择合理的衰减率值和影响被标记的最小阈值进行仿真,按照节点衰减系数确定其变更影响传播路径上该节点处的衰减程度,判断影响范围边界的方法是在该节点处衰减系数小于影响被标记的最小阈值,相比目前的仿真方法更加科学与细化。(3)本专利技术将变更在节点间的传播当作不确定事件,考虑变更传播的概率与节点自身属性的关系,对网络中的节点从特定的角度去进行动态仿真,根据对节点特性(度、介数、紧密度活性等)的侧重不同,各仿真模型采用有相应侧重的节点间传播概率和受影响量化值计算方法,得到不同侧重情况下变更在其他模块的影响程度和整个软件中的受影响范围。在计算节点受影响程度量化值时,也考虑了节点的自身属性,这是本专利技术独有的内容,使得变更影响在软件网络传播的分析结果更加合理。(4)本专利技术首先通过构建软件系统的属性方法网络,确保能够覆盖到软件系统最底层的信息,再在属性方法网络的基础上,按照实际需求的模块的粒度,从属性方法网络的基础上逐层逐级按照软件元素实体的粒度抽象出相应的网络模型,这样能确保构建网络模型的过程中能做到软件信息的全覆盖,同时构建的过程更具有层次性。(5)本专利技术方法整个度量分析过程都可在后台实现,建立在完全自动化的流程上,确保最大限度减低人力和时间成本。附图说明图1是本专利技术基于复杂网络的软件模块变更影响确定方法的整体流程图;图2是本专利技术Filter软件某版本的属性方法网络图;图3是本专利技术软件模块变更影响动态仿真模型的算法思路示意图;图4是本专利技术Filter软件某版本的其中一种变更模型动态仿真结果可视化图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图对本专利技术作进一步的详细和深入描述。本专利技术提出的一种基于复杂网络动态仿真的软件模块变更影响确定方法,包括四个步骤,如图1所示。步骤1,确定目标软件并获取其完整的软件源代码。步骤2,对目标软件源代码进行静态扫描,分析软件中的元素实体和元素之间的相互关系。元素实体包括类的属性和方法。步骤3,在步骤2的基础上,以软件系统中类的属性和方法为网络节点,构建软件属性方法网络,再根据实际需要识别软件模块粒度大小,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型。步骤4,在步骤3得到软件复杂网络模型的基础上,根据建立的软件网络,对变更发生在确定软件模块后的影响传播进行动态仿真,得到各节点受影响程度量化值和变更影响范围。步骤5,在步骤4得到各节点受波及程度量化值的基础上,依赖此量化值得到软件网络上的变更影响可视化结果图。对一个面向对象软件,在步骤2抽取软件系统中包含的属性方法以及它们之间的相互作用关系后,构建原始属性方法网络。然后分析属性方法网络中节点的从属本文档来自技高网
...

【技术保护点】
1.一种基于复杂网络的软件模块变更影响确定方法,对待分析的目标软件,以软件系统中类的属性和方法为网络节点,构建软件属性方法网络,再根据需要识别的软件模块粒度,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型;其特征在于,在软件复杂网络模型基础上,对变更发生在确定软件模块后的影响传播进行动态仿真,得到各节点受影响程度量化值和变更影响范围;所述的方法采用软件变更影响传播仿真模型来进行动态仿真;仿真参数从变更传播特性和节点特性两方面来度量;变更传播特性的仿真参数包括:正向衰减率k正、逆向衰减率k逆、影响被标记的最小阈值s_min和变更传播的代数time;节点特性的仿真参数包括介数、度和紧密度活性;仿真过程中采用广度优先的遍历方式寻找受到影响波及的下一代节点,对于传播路径上的节点i,当节点i的衰减系数βi小于等于最小阈值s_min时,停止对节点i的影响波及计算;其中,衰减系数βi与变更传播的代数time呈指数正相关,表示为βi∝(k正/逆)(time);最后,将节点i在每个变更传播代的衰减系数求和,作为节点i受影响程度量化值。

【技术特征摘要】
1.一种基于复杂网络的软件模块变更影响确定方法,对待分析的目标软件,以软件系统中类的属性和方法为网络节点,构建软件属性方法网络,再根据需要识别的软件模块粒度,对属性方法网络进行组织和抽象构造相应粒度的软件复杂网络模型;其特征在于,在软件复杂网络模型基础上,对变更发生在确定软件模块后的影响传播进行动态仿真,得到各节点受影响程度量化值和变更影响范围;所述的方法采用软件变更影响传播仿真模型来进行动态仿真;仿真参数从变更传播特性和节点特性两方面来度量;变更传播特性的仿真参数包括:正向衰减率k正、逆向衰减率k逆、影响被标记的最小阈值s_min和变更传播的代数time;节点特性的仿真参数包括介数、度和紧密度活性;仿真过程中采用广度优先的遍历方式寻找受到影响波及的下一代节点,对于传播路径上的节点i,当节点i的衰减系数βi小于等于最小阈值s_min时,停止对节点i的影响波及计算;其中,衰减系数βi与变更传播的代数time呈指数正相关,表示为βi∝(k正/逆)(time);最后,将节点i在每个变更传播代的衰减系数求和,作为节点i受影响程度量化值。2.根据权利要求1所述的方法,其特征在于,所述的正向衰减率k正是计算变更模块在其正向相连模块上传播其影响的基础变量,正向衰减过程的出发点是变更发生的模块;设置k正是一个介于0和1之间的数,且大于等于影响被标记的最小阈值s_min;所述的逆向衰减率是计算变更模块在其逆向相连模块上传播其影响的基础变量,逆向衰减过程的出发点是变更发生的模块;设置k逆是一个介于0和1之间的数,且大于等于影响被标记的最小阈值s_min。3.根据权利要求1所述的方法,其特征在于,所述的节点特性的仿真参数中,节点i的介数bci的计算公式为:其中,guv为从节点u到节点v的最短路径的数目,niuv为从节点u到节点v的最短路径中经过节点i的最短路径的数目;进一步得到节点i的相对介数betw为:其中,表示软件复杂网络中所有节点的介数平均值,n为软件复杂网络中的节点数量。4.根据权利要求1所述的方法,其特征在于,所述的节点特性的仿真参数中,节点i的度di定义为与节点i连接的其他节点的数目;进一步得到节点i的相对度dge为:其中,表示软件复杂网...

【专利技术属性】
技术研发人员:艾骏邹卓良苏文翥杨益文郭皓然王飞
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

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

1