首页 / 专利库 / 人工智能 / 因果图 / 一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法

一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法

阅读:117发布:2020-05-14

专利汇可以提供一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 虚拟现实 与复杂网络的 软件 可靠性仿真分析方法,实现在虚拟现实环境中显示任务网络与函数复杂网络耦合的双层网络,便于技术人员从多 角 度观察网络的运行情况;并在虚拟现实的技术 基础 上,确定基于操作剖面的任务仿真,在执行任务过程中实时观察代码的流动情况以及经过函数 节点 的次数,计算并评估节点的重要程度,这种基于操作剖面的任务仿真方法对于节点的重要性评估更具有说服性。该分析方法将虚拟现实与可靠性仿真分析结合起来实时观察任务执行时复杂网络中代码运行的路径,路径和函数间的调用关系均可直观展示,利于相关技术人员进行有效的观察和评估。,下面是一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法专利的具体信息内容。

1.一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法,其特征在于,包括:
获取被测对象软件的网络数据;所述网络数据包括函数及调用关系、任务集及任务关联关系;
根据所述函数及调用关系、任务集及任务关联关系,建立双层耦合网络;所述双层耦合网络包括:三维函数网络和三维任务网络;
将所述双层耦合网络,置于虚拟现实环境中;
基于操作剖面,确定任务的分配概率P;采用抽样方式,确定任务的执行过程;
执行任务,确定所述虚拟环境中所述耦合网络中网络的动态变化情况;
根据函数节点是否被调用及所述函数节点被调用次数,确定所述函数节点的重要度并进行排序;
根据所述函数及调用关系、任务集及任务关联关系,建立双层耦合网络,包括:
将所述函数及调用关系,导入建模工具并输出三维函数复杂网络;
根据所述任务集及任务关联关系,建立三维任务网络;
获取动态执行数据,建立任务Ti与函数复杂网络间的映射关系;或基于设计逻辑,获取任务Ti与函数复杂网络间的映射关系;
根据所述映射关系联通所述三维任务网络与三维函数复杂网络,建立双层耦合网络。
2.如权利要求1所述的方法,其特征在于,将所述函数及调用关系,导入建模工具并输出三维函数复杂网络,包括:
采用三维图像可视化库创建被测对象软件应用程序的三维立体图,输出各个节点的三维坐标;
根据用于虚拟现实的三维建模工具,在三维空间中根据所述三维坐标,创建三维函数复杂网络。
3.如权利要求1所述的方法,其特征在于,根据所述任务集及任务关联关系,建立三维任务网络,包括:
确定每个任务Ti的关联关系;所述关联关系包括:因果、并列和交集;
确定任务Ti间的连接关系;所述连接关系包括任务的转移对象、任务的转移概率;
将所述任务的转移对象表示为单双箭头的指向;将任务的转移概率表示为连接线的粗细;
通过连接存在关联关系的任务,形成任务关系网络;
将所述关系网络采用三维建模工具进行处理,生成三维任务网络。
4.如权利要求1所述的方法,其特征在于,将所述双层耦合网络,置于虚拟现实环境中;
包括:
将所述三维函数网络和三维任务网络的相对位置,通过三维坐标数值表示;
根据所述三维坐标数值,在三维空间中创建耦合网络实体;
将所述耦合网络实体,置于虚拟现实环境中。
5.如权利要求1所述的方法,其特征在于,执行任务,确定所述虚拟环境中所述耦合网络中网络的动态变化情况,包括:
在任务执行过程中,获取函数的调用信息;所述函数的调用信息包括节点传递过程、函数的调用顺序、函数的调用时间和函数的调用次数;
不同任务对应的函数调用信息表现为发射不同颜色的粒子,获取粒子的流动情况;
记录粒子经过每个函数节点的总次数及发生故障时粒子所处位置。
6.如权利要求1所述的方法,其特征在于,根据函数节点是否被调用及所述函数节点被调用次数,确定所述函数节点的重要度并进行排序,包括:
根据所述函数及调用关系,计算节点P的度值,并为归一化后的节点度值D分配权值Wd;
根据任务仿真的动态执行数据,计算节点P调用次数,并为归一化后节点的调用次数N分配权值Wn;
节点P的重要程度I=D×Wd+N×Wn,综合评估节点P的重要程度;
并根据重要程度进行排序。

说明书全文

一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法

技术领域

[0001] 本发明涉及软件测试技术领域,特别涉及一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法。

背景技术

[0002] 在基于复杂网络的软件可靠性分析领域,相关技术人员通过将代码导入工具中,张成以函数为节点、以函数间的调用关系为边的复杂网络,分析所张成复杂网络的中心度、节点的度、聚集系数、介数和特征向量等,从而计算并确定重要节点;进一步地,进行抗毁性分析,通过去除网络中的某个节点或边,分析网络的可靠性。
[0003] 然而,代码所张成的复杂网络通常是二维平面图或只能做简单变换视的三维立体图,技术人员通常需要花费更多的时间精理清节点间的关系,对于规模更大的复杂网络更是如此。而且在进行抗毁性分析时,在将某个节点或边删除来观察对网络的破坏程度过程中,网络的变化情况也无法观察清晰。上述情况说明二维或简单三维立体网络图限制了技术人员对网络变化的分析和评估。
[0004] 因此,针对复杂网络的软件,如何提供一种易于分析和展示的方法,是目前同行从业人员亟待解决的问题。

发明内容

[0005] 鉴于上述针对复杂网络的软件,对常见二维或简单变换视角的三维网络难以全角度清晰观察的难题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法。
[0006] 本发明实施例提供一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法,包括:
[0007] 获取被测对象软件的网络数据;所述网络数据包括函数及调用关系、任务集及任务关联关系;
[0008] 根据所述函数及调用关系、任务集及任务关联关系,建立双层耦合网络;所述双层耦合网络包括:三维函数网络和三维任务网络;
[0009] 将所述双层耦合网络,置于虚拟现实环境中;
[0010] 基于操作剖面,确定任务的分配概率P;采用抽样方式,确定任务的执行过程;
[0011] 执行任务,确定所述虚拟环境中所述耦合网络中网络的动态变化情况;
[0012] 根据函数节点是否被调用及所述函数节点被调用次数,确定所述函数节点的重要度并进行排序。
[0013] 在一个实施例中,根据所述函数及调用关系、任务集及任务关联关系,建立双层耦合网络,包括:
[0014] 将所述函数及调用关系,导入建模工具并输出三维函数复杂网络;
[0015] 根据所述任务集及任务关联关系,建立三维任务网络;
[0016] 获取动态执行数据,建立任务Ti与函数复杂网络间的映射关系;或基于设计逻辑,获取任务Ti与函数复杂网络间的映射关系;
[0017] 根据所述映射关系联通所述三维任务网络与三维函数复杂网络,建立双层耦合网络。
[0018] 在一个实施例中,将所述函数及调用关系,导入建模工具并输出三维函数复杂网络,包括:
[0019] 采用三维图像可视化库创建被测对象软件应用程序的三维立体图,输出各个节点的三维坐标;
[0020] 根据用于虚拟现实的三维建模工具,在三维空间中根据所述三维坐标,创建三维函数复杂网络。
[0021] 在一个实施例中,根据所述任务集及任务关联关系,建立三维任务网络,包括:
[0022] 确定每个任务Ti的关联关系;所述关联关系包括:因果、并列和交集;
[0023] 确定任务Ti间的连接关系;所述连接关系包括任务的转移对象、任务的转移概率;
[0024] 将所述任务的转移对象表示为单双箭头的指向;将任务的转移概率表示为连接线的粗细;
[0025] 通过连接存在关联关系的任务,形成任务关系网络;
[0026] 将所述关系网络采用三维建模工具进行处理,生成三维任务网络。
[0027] 在一个实施例中,将所述双层耦合网络,置于虚拟现实环境中;包括:
[0028] 将所述三维函数网络和三维任务网络的相对位置,通过三维坐标数值表示;
[0029] 根据所述三维坐标数值,在三维空间中创建耦合网络实体;
[0030] 将所述耦合网络实体,置于虚拟现实环境中。
[0031] 在一个实施例中,执行任务,确定所述虚拟环境中所述耦合网络中网络的动态变化情况,包括:
[0032] 在任务执行过程中,获取函数的调用信息;所述函数的调用信息包括节点传递过程、函数的调用顺序、函数的调用时间和函数的调用次数;
[0033] 不同任务对应的函数调用信息表现为发射不同颜色的粒子,获取粒子的流动情况;
[0034] 记录粒子经过每个函数节点的总次数及发生故障时粒子所处位置。
[0035] 在一个实施例中,根据函数节点是否被调用及所述函数节点被调用次数,确定所述函数节点的重要度并进行排序,包括:
[0036] 根据所述函数及调用关系,计算节点P的度值,并为归一化后的节点度值D分配权值Wd;
[0037] 根据任务仿真的动态执行数据,计算节点P调用次数,并为归一化后节点的调用次数N分配权值Wn;
[0038] 节点P的重要程度I=D×Wd+N×Wn,综合评估节点P的重要程度;
[0039] 并根据重要程度进行排序。
[0040] 本发明实施例提供的一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法,将虚拟现实与可靠性仿真分析结合起来实时观察任务执行时复杂网络中代码运行的路径,路径和函数间的调用关系均可直观展示,利于相关技术人员进行有效的观察和评估。
[0041] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0042] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0043] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0044] 图1为本发明实施例提供的基于虚拟现实与复杂网络的软件可靠性仿真分析方法的流程图
[0045] 图2为本发明实施例提供的完整实施例的流程图。
[0046] 图3为本发明实施例提供的基于虚拟现实与复杂网络的软件可靠性仿真分析方法的框图
[0047] 图4为本发明实施例提供的基于虚拟现实与复杂网络的软件可靠性仿真分析的原理图。

具体实施方式

[0048] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0049] 参照图1所示,本发明实施例提供的一种基于虚拟现实与复杂网络的软件可靠性仿真分析方法,包括:
[0050] S1、获取被测对象软件的网络数据;所述网络数据包括函数及调用关系、任务集及任务关联关系;
[0051] S2、根据所述函数及调用关系、任务集及任务关联关系,建立双层耦合网络;所述双层耦合网络包括:三维函数网络和三维任务网络;
[0052] S3、将所述双层耦合网络,置于虚拟现实环境中;
[0053] S4、基于操作剖面,确定任务的分配概率P;采用抽样方式,确定任务的执行过程;
[0054] S5、执行任务,确定所述虚拟环境中所述耦合网络中网络的动态变化情况;
[0055] S6、根据函数节点是否被调用及所述函数节点被调用次数,确定所述函数节点的重要度并进行排序。
[0056] 本实施例中,虚拟现实观察方法通过建立软件的任务网络与函数复杂网络的双层耦合网络,通过将耦合网络置于虚拟现实环境中,比如采用控制设备控制耦合网络的角度和方向,采用观察设备方便技术人员从不同的角度观察和分析。
[0057] 方案中的可靠性仿真分析方法基于用户操作剖面,确定任务执行概率,采用抽样方法对任务进行抽样并执行任务程序;在仿真过程中,比如采用激光指针与控制设备结合实现网络的动态化显示,其中,任务执行过程,比如可通过粒子的动态化流动表示,进而实现任务执行与观察立体网络中粒子流动同时进行。
[0058] 通过在任务执行过程中实时观察耦合网络中粒子的流动情况并记录经过函数节点的次数,评估节点重要程度。这样将虚拟现实与可靠性仿真分析方法结合起来实时观察任务执行时复杂网络中代码运行的路径,函数间的调用关系也能通过网络立体中粒子的流动直观展示于人前,更利于相关技术人员进行重要节点的识别和分析。
[0059] 下面通过一个完整实施例用于解释说明本发明提供的技术方案:
[0060] 参照图2所示,其具体实施可参照如下步骤101~109,参照图3作为图2的补充示出了方案实施步骤的框图,图4为基于虚拟现实与复杂网络的软件可靠性仿真分析的原理图。
[0061] 101、获取包含函数调用关系的静态数据;
[0062] 首先确定被测对象,该被测对象,比如可以是:计算器软件的源代码;使用静态分析软件获取静态数据,该静态数据信息包括所有的函数及函数间的调用关系。比如,静态数据获取采用Doxygen工具获得,通过配置工具并执行,提取代码结构以及代码中函数与边的连接关系,并初步产生函数及调用关系的网络示意图。其中Doxygen是一个程序的文件产生工具。
[0063] 102、将静态数据导入建模工具并输出三维函数复杂网络;
[0064] 首先将步骤101中获取的静态数据输入三维建模工具中,该三维建模工具可应用于虚拟现实制作和虚拟现实系统开发的图形图像三维处理。
[0065] 本实施例中,采用三维图形可视化库创建被测对象应用程序的三维立体图,输出其各个节点的三维坐标;然后选取可用于虚拟现实的三维建模工具,在三维空间中的指定坐标处创建三维函数复杂网络图形,从而将静态数据转化为三维函数复杂网络,该三维函数复杂网络图形可在虚拟现实环境下进行观察。
[0066] 比如采用plotly,plotly是一个非常著名且强大的开源数据可视化框架,根据这一图形可视化工具生成三维网络,由于网络的可视化效果不佳,观察角度的调整难以实现,不能完成虚拟现实环境下的观察;
[0067] 比如再采用unity3d,unity3d是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。这一可用于虚拟现实的三维建模工具进行三维可视化,由于该工具只能在指定区域建立指定物体并实现预期动态化效果,而自身没有网络搭建与分析功能,该工具执行需要人为输入所需建立物体的坐标。故将plotly和unity3d两种建模工具结合起来,前者用于输出所需建模的节点三维坐标,后者根据前者所输出的三维坐标建立指定物体,并为后续虚拟现实环境下观察打下基础。需要说明的是,本实施例中的可视化模型构建方法仅是基于以上构建三维可视化图形思路所制定的可行性实施步骤的一种,本发明实施例对此不做限定。本发明实施例专利保护范围不仅局限于该种实施过程,在本发明范围之外的通过三维建模工具进行函数复杂网络立体建模,并利用该模型实现虚拟现实环境下观察分析的方案与本方案属于同种方案,均属于本发明的保护范围。
[0068] 103、构建任务网络:确定任务集合{T1,T2,T3…}及任务Ti间的连通关系,建立三维任务网络。
[0069] 通过设计逻辑确定被测软件对象所需执行的任务集合{T1,T2,T3…}以及每个任务Ti存在的因果、并列、交集等关联关系,任务Ti之间的连接关系由设计逻辑确定,任务Ti间的连接关系分为:任务的转移对象、任务的转移概率。其中任务的转移对象表示为单双箭头的指向;任务的转移概率表示为连接线的粗细。通过连接存在关联关系的任务,形成基于设计逻辑的任务网络。
[0070] 将任务关系网络采用三维建模工具进行处理,具体实施过程如步骤102所述,通过输出任务节点的三维坐标并输入三维空间中,在制定坐标处创建三维任务网络,该任务网络图形可在虚拟现实环境下进行观察。
[0071] 在本实施例中,可根据专家打分法或软件设计文档确定任务间的迁移关系,任务网络的关联关系的有效性可通过根据路径执行软件,观察并记录复杂网络的覆盖率,进行评估。
[0072] 104、获取动态执行数据,建立任务Ti与函数复杂网络间的映射关系;或基于设计逻辑,获取任务Ti与函数复杂网络间的映射关系。
[0073] 采用动态数据分析软件获取动态执行数据,其中动态执行数据包括运行程序执行任务Ti后,运行过程中各个函数间的调用信息,该调用信息包括函数序号、函数调用时间和次数。
[0074] 采用动态数据分析软件按照步骤103中所述的任务网络执行任务,从而建立任务与节点函数间的映射关系;或根据设计逻辑,在软件开发过程中确定每个任务执行所调用的函数类型以及函数执行路径,从而确定任务与函数节点之间的调用关系。为区分不同任务Ti对应函数复杂网络的连接关系,分别为任务Ti对应的函数节点以及路径分配不同的颜色。
[0075] 在本实施例中,上述动态数据分析软件比如可采用Gprof,该软件在程序正常结束退出后生成程序测评报告,报告内容包括函数调用关系、调用次数(被父函数调用次数及调用子函数的次数)、调用时间(函数本身调用时间、子函数调用时间)等,以供程序员分析程序的运行流程。
[0076] 105、建立耦合网络:基于步骤104中所获取的映射关系连通任务网络与函数复杂网络。
[0077] 根据步骤103所建立的任务网络和步骤104所获取的单任务与函数网络之间的映射关系,将函数复杂网络与任务网络连通起来,形成耦合网络。
[0078] 106、基于虚拟现实工具,将步骤105中的耦合网络置于虚拟现实环境。
[0079] 将步骤105中所建立的耦合网络通过虚拟现实环境进行控制和观察。耦合网络中任务网络和函数复杂网络的相对位置通过三维坐标的数值表示,从而在三维空间中的指定位置创建耦合网络实体,通过设备硬件按键操作实现虚拟现实环境中的控制按压功能,从而进行图形控制。
[0080] 在本实施例中,比如通过虚拟现实头盔调整观察视角,从全方位(图形内外视角、上下视角、前后视角)观察上述耦合网络,通过手柄控制器按键移动虚拟现实中图形主体的位置,通过激光指针与手柄控制器按键执行动态化效果。
[0081] 107、基于操作剖面的可靠性仿真:基于操作剖面,确定任务的分配概率P;采用抽样方法,确定任务的执行过程。
[0082] 其具体做法如下:在软件开发和运行过程中,均涉及任务的执行,任务的分配概率P从任务的执行次数和任务的重要程度两方面综合进行评估确定。根据操作剖面确定任务Ti的执行概率Cwi(0抽取任务的顺序。
[0083] 在本实施例中,定义每个任务的代号为A、B、C…,则依此抽取十次任务,获得的任务代号及顺序为A、A、B、B、C、A、D、B、C、A,那么仿真执行任务类型及顺序则为A→A→B→B→C→A→D→B→C→A。
[0084] 108、仿真过程可视化:执行任务,观察虚拟环境中耦合网络中网络的动态变化情况。
[0085] 根据步骤107抽样所确定的数量及任务顺序进行仿真试验,在任务执行过程中,观察函数的调用信息,函数调用信息包括节点传递过程、函数的调用顺序、函数的调用时间和函数的调用次数。节点的传递过程表现为粒子从某一节点向另一节点的发射,函数的调用顺序表现为粒子的发射顺序,函数的调用时间表现为粒子的发射时间间隔,该时间间隔通过比例放大以及同趋化操作完成,函数的调用次数表现为节点的大小;不同任务对应的函数调用信息表现为发射不同颜色的粒子。
[0086] 观察通过粒子的流动情况,也即是观察虚拟现实环境下耦合网络的运行情况,观察过程中应关注单个任务执行过程中粒子的运动顺序,以及记录粒子发生突然停止或粒子路径出现误差时任务网络对应的任务;进一步地,观察由当前任务转移到下一执行任务时耦合网络中粒子的运动情况并记录粒子发生停止或错误情况;整个仿真测试过程中,应记录粒子经过每个函数节点的总次数及发生故障时粒子所处位置(节点及路径)。
[0087] 109、计算分析,并对函数节点的重要度进行排序。
[0088] 根据步骤108中所记录完成仿真测试后粒子经过每个函数节点及的总次数,确定函数节点的相对重要程度,被经过次数越多说明该节点越重要,从而对函数节点的重要度进行排序。
[0089] 在本实施例中,结合静态分析数据与任务仿真的动态执行数据,综合评估节点的重要程度I。根据静态分析数据,计算节点P的度值,并为归一化后的节点度值D分配权值Wd,根据任务仿真的动态执行数据,计算节点P调用次数,并为归一化后节点的调用次数N分配权值Wn,则节点P的重要程度I=D×Wd+N×Wn,从而综合评估节点的重要程度。
[0090] 通过以上步骤,能实现将虚拟现实技术与复杂网络结合起来,以更全面清晰的视角观察分析网络变化情况。
[0091] 本发明提供的技术方案,可以解决常见二维或简单变换视角的三维网络难以全角度清晰观察的难题,实现在虚拟现实环境中显示任务网络与函数复杂网络耦合的双层网络,便于技术人员从多角度观察网络的运行情况;并在虚拟现实的技术基础上,确定了一种基于操作剖面的任务仿真方法,在执行任务过程中实时观察代码的流动情况以及经过函数节点的次数,计算并评估节点的重要程度,这种基于操作剖面的任务仿真方法对于节点的重要性评估更具有说服性。
[0092] 本发明提供的技术方案,相较于单纯通过静态数据分析节点的度值、聚集系数等来评估节点重要度的方法,评估效果更加真实可信。并且,将虚拟现实与可靠性仿真分析方法结合起来实时观察任务执行时复杂网络中代码运行的路径,路径可通过网络立体中粒子的流动直观展示于人前,更利于相关技术人员进行有效的观察和评估。
[0093] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈