CN113010437A - 一种基于故障分析的软件系统可靠性管理方法及系统 - Google Patents

一种基于故障分析的软件系统可靠性管理方法及系统 Download PDF

Info

Publication number
CN113010437A
CN113010437A CN202110461710.4A CN202110461710A CN113010437A CN 113010437 A CN113010437 A CN 113010437A CN 202110461710 A CN202110461710 A CN 202110461710A CN 113010437 A CN113010437 A CN 113010437A
Authority
CN
China
Prior art keywords
software system
components
network model
reliability
component
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.)
Granted
Application number
CN202110461710.4A
Other languages
English (en)
Other versions
CN113010437B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202110461710.4A priority Critical patent/CN113010437B/zh
Publication of CN113010437A publication Critical patent/CN113010437A/zh
Application granted granted Critical
Publication of CN113010437B publication Critical patent/CN113010437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于故障分析的软件系统可靠性管理方法及系统。该方法包括步骤:根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;根据网络模型挖掘影响系统可靠性的关键节点以及典型故障行为模式;根据挖掘结果对软件系统中构件及构件之间的相互作用关系进行改进;对改进后的软件系统重新构建网络模型,并根据网络模型评估改进后的软件系统的整体可靠性。本发明能够提高软件运行维护人员故障分析及可靠性评估水平,并且更加适用于大型复杂软件系统。

Description

一种基于故障分析的软件系统可靠性管理方法及系统
技术领域
本发明属于软件安全技术领域,更具体地,涉及一种基于故障分析的软件系统可靠性管理方法及系统。
背景技术
当前,随着软件技术的发展,大型软件系统在国防军事、企业管理、工程制造、金融股市等领域发挥着重要作用,软件系统这些领域中通常需要提供连续、稳定、可靠的服务,有着严格的稳定性、安全性、可维护性及鲁棒性要求。软件系统可靠性管理作为软件系统开发设计、运行维护的重要内容,是保障软件系统充分发挥其规定性能的关键手段。目前,对于软件可靠性开展的研究中,针对单个软件的可靠性评估手段和方法较为完善,而针对大型软件系统的可靠性评估手段较少,因此本发明具有较大的理论和实际意义。
现阶段,大型软件系统可靠性评估存在的现实问题主要体现为以下两个方面:一是大型软件系统普遍缺少评估其整体可靠性的方法手段,当软件系统中的某一软件更新升级时,只能采取传统的人工测试方式来检测升级后的软件功能是否运行稳定,而无法评估软件升级是否会对软件系统整体可靠性造成影响,从而造成系统软件更新上线后存在一定故障隐患,这将直接影响系统运行维护效率。二是大型软件系统普遍呈现出构件化、网络化、流程化和层次性等复杂系统特征,其内部拓扑结构极为复杂,系统运行维护人员凭现有的手段工具和工作经验难以及时定位故障点并进行正确处置。随着软件系统的不断迭代发展,系统架构将越来越复杂,功能模块将越来越丰富,故障处置难度大的问题将会不断被放大,亟需采用更加科学的方式来解决,从而维护软件系统在运行过程中的可靠性水平。
发明内容
针对现有技术的至少一个缺陷或改进需求,本发明提供了一种基于故障分析的软件系统可靠性管理方法及系统,能够提高运软件运行维护人员故障分析及可靠性评估水平,并且更加适用于大型复杂软件系统。
为实现上述目的,按照本发明的第一方面,提供了一种基于故障分析的软件系统可靠性管理方法,包括步骤:
根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
根据网络模型挖掘影响系统可靠性的关键节点以及典型故障行为模式;
根据挖掘结果对软件系统中构件及构件之间的相互作用关系进行改进;
对改进后的软件系统重新构建网络模型,并根据网络模型评估改进后的软件系统的整体可靠性。
优选的,所述构件包括软件系统中的软件、数据库和服务。
优选的,所述网络模型表示为(N,E,W),W=n×δ,其中,N表示软件系统的构件集合,E表示构件关系集合,W表示两个构件之间边的权重系数,n代表两个构件之间互相作用的次数,δ表示预定义的相互作用关系对权重的影响系数。
优选的,相互作用关系包括依赖、关联、组合三类,预定义依赖、关联、组合三类相互作用关系对权重的影响系数依次从低到高;
权重系数W的计算公式为:
Figure BDA0003042535410000021
nk代表两个构件之间第k(1≤k≤3)类关系相互作用的次数,δk表示第k类互相作用关系对权重的影响系数。
优选的,整体可靠性评估包括步骤:
获取每个构件的可靠性;
根据两个构件之间边的权重系数计算两个构件间发生相互作用的概率,将节点Ni与结点Nj发生相互作用的概率记为pi,j
构建各个构件间的随机转移矩阵,记为Q,
Figure BDA0003042535410000031
其中,Rn表示第n个构件自身的可靠性;
根据随机转移矩阵Q计算由构件Ni开始并最终转移到构件Nj的所有路径概率和,记为N(i,j)
计算软件系统的整体可靠性,计算公式为:
Figure BDA0003042535410000032
其中,Rsys为整体可靠性,
Figure BDA0003042535410000033
为软件系统中任意两构件之间成功转移的概率之和,若两构件之间未形成通路,则该项取值为0,num为构件之间全部通路的总数。
优选的,pi,j的计算公式为:
Figure BDA0003042535410000034
其中,DINS(Nj)表示形成节点Nj的所有入度邻居集合。
优选的,N(i,j)的计算公式为:
Figure BDA0003042535410000035
其中,Q(i,j)为构件Ni经1次转移后到达构件Nj的概率,
Figure BDA0003042535410000036
为构件Ni需要2次转移后到达构件Nj的所有路径的概率之和,…表示依次类推,穷举构件Ni到达构件Nj的所有可能路径,K为软件系统中构件的总数。
按照本发明的第二方面,提供了一种软件系统的整体可靠性评估方法,包括步骤:
根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
获取每个构件的可靠性;
根据两个构件之间边的权重系数计算两个构件间发生相互作用的概率,将节点Ni与节点Nj发生相互作用的概率记为pi,j
构建各个构件间的随机转移矩阵,记为Q,
Figure BDA0003042535410000041
其中,Rn表示第n个构件的可靠性;
根据随机转移矩阵Q计算由构件Ni开始并最终转移到构件Nj的所有路径概率和,记为N(i,j)
计算软件系统的整体可靠性,计算公式为:
Figure BDA0003042535410000042
其中,Rsys为整体可靠性,
Figure BDA0003042535410000043
为软件系统中任意两构件之间成功转移的概率之和,若两构件之间未形成通路,则该项取值为0,num为构件之间全部通路的总数。
按照本发明的第三方面,提供了一种基于故障分析的软件系统可靠性管理系统,包括:
网络模型构建模块,用于根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
故障分析模块,用于根据网络模型挖掘影响系统可靠性的关键节点以及典型故障行为模式;
改进模块,用于根据挖掘结果对软件系统中构件及构件之间的相互作用关系进行改进;
整体可靠性评估模块,用于对改进后的软件系统重新构建网络模型,并根据网络模型评估改进后的软件系统的整体可靠性。
按照本发明的第四方面,提供了一种软件系统的整体可靠性评估系统,包括步骤:
网络模型构建模块,用于根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
整体可靠性评估模块,用于实现以下步骤:
获取每个构件的可靠性;
根据两个构件之间边的权重系数计算两个构件间发生相互作用的概率,将节点Ni与节点Nj发生相互作用的概率记为pi,j,构建各个构件间的随机转移矩阵,记为Q,
Figure BDA0003042535410000051
其中,Rn表示第n个构件的可靠性;
根据随机转移矩阵Q计算由构件Ni开始并最终转移到构件Nj的所有路径概率和,记为N(i,j)
计算软件系统的整体可靠性,计算公式为:
Figure BDA0003042535410000052
其中,Rsys为整体可靠性,
Figure BDA0003042535410000053
为软件系统中任意两构件之间成功转移的概率之和,若两构件之间未形成通路,则该项取值为0,num为构件之间全部通路的总数。
总体而言,本发明与现有技术相比,具有有益效果:通过从整体上对软件系统内部结构建立网络模型,依据网络拓扑结构,能够挖掘出软件系统中故障特性明显的关键软件实体及其行为模式、评估得到软件系统整体进行可靠性,解决软件系统可靠性评估缺少定量分析方法、故障根因定位难、影响范围确定难、故障归零难等难点问题。
附图说明
图1是本发明实施例的软件系统可靠性管理原理示意图;
图2是本发明实施例的软件故障行为模式分析流程图;
图3是本发明实施例的软件系统可靠性管理方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明基于软件系统网络模型,以管理软件系统整体可靠性为目标,对软件系统网络建模、故障特征分析、故障关键节点挖掘、故障行为模式分析、可靠性量化评估等技术充分整合,提出软件系统可靠性管理模式FSR(Fault analysis-Systemimprovement-Reliability assessment)。
本发明实施例的一种基于故障分析的软件系统可靠性管理方法包括步骤:根据软件系统的拓扑结构构建网络模型;根据网络模型挖掘影响系统可靠性的关键节点以及典型故障行为模式;根据挖掘结果对软件系统中构件及构件之间的相互作用关系进行改进;对改进后的软件系统重新构建网络模型图,并根据网络模型图评估改进后的软件系统的整体可靠性。
下面具体说明每个步骤的优选实现方式。
1.1基于构件动态执行轨迹的软件系统网络模型构建
本发明将软件系统中的构件视为网络节点,构件之间的相互作用关系视为边,从而以构件为剖面建立网络模型。此外,由于软件系统在运行过程中,构件之间的依赖、关联、组合等复杂相互作用关系具有一定方向性,且构件之间的相互作用频率与类型又是进行后续故障分析及可靠性评估的依据,因此本发明采用有向加权图构建软件系统网络模型。具体包含以下两个内容:
(1)网络分析剖面及映射关系建立
①选定分析剖面。网络模型可以基于软件系统中的函数、类、构件等不同剖面进行构建,选择分析剖面的作用是定义网络模型构建的粒度。以函数和类作为分析剖面会使得网络较为精细,但随着软件系统中软件数量的增加,网络中节点数量、相互作用关系会呈几何倍数增加,以致难以进一步对其进行故障分析和可靠性评估。所谓软件构件(SoftwareComponent)是指一组按一定技术规范封装的、可重用的软件模块,对外具有一致的接口,是组织系统的基本单元。构件作为大多数大型软件系统的基本功能模块,将其作为分析剖面更能反映软件系统的整体结构与特性,本发明定义的构件主要包含以下类型:
1)软件:一种独立于特定的程序设计语言和应用系统、可重用和自包含的软件成分;
2)数据库:一种以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合;
3)服务:是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。
②映射关系建立。其主要作用是将软件系统拓扑结构与网络模型之间建立对应关系,将软件系统中的构件视为节点,构件之间的依赖、关联、组合等复杂相互作用关系视为边,而将各类构件之间相互作用的频率与类型作为边的权重,从而建立起软件系统加权构件执行网络WFEN(Weight Function Execution Network),如式(1)(2)所示。
WFEN=(N,E,W) (1)
Figure BDA0003042535410000071
Figure BDA0003042535410000072
Figure BDA0003042535410000081
表1构件关系类型与δ值对应表
(2)构件动态执行轨迹获取。软件系统中构件类型复杂多样,构件之间的相互作用关系从错中复杂,仅靠人工分析、推理难以构建软件系统网络拓扑结构,为此本发明将追踪标记植入需要分析的构件,在系统实际运行过程中检测追踪标记的运行轨迹,获取构件间的相互作用类型、频率与方向,进而形成软件系统构件动态执行数据集,从而构建软件系统网络模型。具体过程如下:
①将追踪标记植入需要分析的构件之中,将软件系统运行一个周期后,得到构件的执行轨迹文件,其中记录着构件间的相互作用类型、频率与方向。
②构件的执行轨迹文件进行格式转换为“构件1,构件2,作用次数,作用类型”,其中构件1、构件2的顺序反映了构件间相互作用的方向,从而得到软件系统网络模型数据集。
③利用可视化工具将动态分析文件中构件节点及其相互作用关系以图形化的方式展示出来,生成图片文件。
1.2基于故障特性的软件系统关键节点挖掘
网络模型中,对于少数能够显著地影响网络结构和性能的特殊节点,称之为关键节点,而故障特性则主要指故障行为特征,基于故障特性的软件系统关键节点挖掘的主要目的是寻找对于软件系统可靠性具有较大影响力的节点。为此,关键节点的挖掘需要分为两个步骤:首先归纳定义软件系统网络模型中的典型故障特性;在此基础上,为了发现对于软件系统可靠性具有较大影响的关键节点,需要针对故障特性制定相应的量化度量指标,基于该指标对网络模型各节点进行排序,从而挖掘出对于软件系统可靠性具有较大影响力的节点。
(1)故障特性定义
为了便于分析网络模型结构故障特性,首先进行以下的定义。
定义1直接出度邻居集合DONS(Direct Out-degree Neighbor Set):将节点Ni需要直接依赖、关联、组合的节点Nj进行组合,则形成节点Ni的直接出度邻居集合DONS,具体如式(3)所示。
DONS(Ni)={Nj|Ni→Nj},Ni,Nj∈N (3)
定义2直接入度邻居集合DINS(Direct In-degree Neighbor Set):将直接依赖、关联、组合节点Ni的节点Nj进行组合,则形成节点Ni的直接入度邻居集合DINS,具体如式(4)所示。
DINS(Ni)={NjNj→Ni},Ni,Nj∈N (4)
定义3故障可能性FP(The fault probability of a node):节点Ni的故障可能性受到直接出度邻居集合DONS与δ的影响,DONS中的节点个数越多、结构越复杂、节点间关系对应对δ值越大,故障可能性越高。利用递归方法,定义节点Ni的故障可能性FP如式(5)(6)所示。
Figure BDA0003042535410000091
Figure BDA0003042535410000092
其中,α为节点Ni的自身故障可能性,节点Nj属于节点Ni的直接出度集合,N表示DONS(Ni)中的节点的数量,Nm属于节点Nj的直接入度集合,n表示DINS(Nj)中节点的数量,k表示节点关系类型数量(1≤k≤3)。
Figure BDA0003042535410000093
表示节点Ni与Nj之间发生各类相互作用关系次数的加权求和,
Figure BDA0003042535410000094
表示所有节点与Nj直接发生各类相互作用关系次数的加权求和,因此,pi,j在WFEN中表示Ni与Nj发生相互作用的概率。
定义4故障传播能力FPC(The fault propagation capability of a node):节点Ni的故障传播特性受到直接入度邻居集合DINS与δ的影响,DINS中的节点个数越多、结构越复杂、节点间关系对应对δ值越大,故障传播特性越强。利用递归方法,定义节点Ni的故障传播能力FPC如式(7)所示。
Figure BDA0003042535410000101
Figure BDA0003042535410000102
其中,
Figure BDA0003042535410000103
是节点Ni的入度值,
Figure BDA0003042535410000104
是网络中节点的最大入度值,因此
Figure BDA0003042535410000105
表示节点Ni自身的故障传播能力,同理pj,i表示在WFEN中Nj与Ni发生相互作用的概率。
(2)软件系统关键节点挖掘
通过公式(5)(7)能够计算得到软件系统每个节点的故障可能性值FP、故障传播能力值FPC,进而可以获得软件网络中故障可能性大、故障传播能力强的关键节点。以计算FP为例,其实现过程如下:
①首先新建集合,用于存储节点信息(节点名,FP,FPC)。
②利用循环程序计算并存储所有节点FP与FPC值。
③将计算得到的节点集合分别依据FP,FPC值进行排序,得到故障可能性大或故障传播能力强的节点排序。
1.3基于蚁群算法的软件系统故障行为模式分析
如图2所示,结合本发明构建的加权构件执行网络WFEN,通过设定故障可能性FP和故障传播能力FPC为启发式函数,则蚁群系统算法可直接在软件系统中寻找具有相应故障特性的最优路径,即挖掘出故障可能性高的路径和故障传播能力强的路径。并且,通过加权构件执行网络中边的权重系数来更新信息素浓度,可以引导蚂蚁发现关系密切的构件相互作用过程,从而分析得出故障行为模式。主要内容包含了以下三个部分。
(1)节点状态转移规则
本发明设定的启发函数由式(10)和(11)定义。
η1(Nr,Ns)=FP(Nr)+FP(Ns) (10)
η2(Nr,Ns)=FPC(Nr)+FPC(Ns) (11)
①发现故障可能性大的路径状态转移规则
假设第m个蚂蚁当前在节点Nr,则其下一个要访问的节点
Figure BDA0003042535410000111
为:
Figure BDA0003042535410000112
Figure BDA0003042535410000113
其中,DONSm(Nr)为节点Nr处的蚂蚁m可能访问的节点集合,
Figure BDA0003042535410000114
为Nr到Nu的边上的信息素浓度,ω(ω>0)、β(β>0)是信息素浓度和启发式函数的相对重要性的参数,q是均匀分布在[0,1]之间的随机数,q0(0≤q0≤1)则是由用户预先定义的参数。
②发现故障传播能力强的路径状态转移规则
Figure BDA0003042535410000115
Figure BDA0003042535410000116
其中,DINSm(Nr)为节点Nr处的蚂蚁m可能访问的节点集合,
Figure BDA0003042535410000117
为Nu到Nr的边上的信息素浓度,ω、β、q、q0含义同上。
(2)路径的信息素更新规则
本发明通过全局更新规则和局部更新规则更新信息素浓度。全局更新规则用来调整全局最优路径上的信息素浓度,局部更新规则用于避免蚂蚁总是选择相同的边而陷入局部最优,具体规则如下所示。
①发现故障可能性大的路径的全局更新规则
Figure BDA0003042535410000121
Figure BDA0003042535410000122
其中,t为当前的迭代,
Figure BDA0003042535410000123
为节点Nr和Ns的边上的信息素浓度,ρ(0<ρ<1)为全局信息素挥发因子,FPbest为全局迭代的最优路径的故障可能性值之和,这里使得故障可能性更大的最优路径的信息素浓度得到了更新。
②发现故障传播能力强的路径的全局更新规则
Figure BDA0003042535410000124
Figure BDA0003042535410000125
FPCbest为全局或本次迭代的最优路径的故障传播能力之和,这里使得故障传播性更强的最优路径的信息素浓度得到了更新。
(3)局部更新规则
当一个蚂蚁选择了节点Nr和Ns之间的一条边时,使用局部更新规则来更新这条边上的信息素浓度,以避免蚂蚁陷入局部最优,具体描述如式(20)所示。
Figure BDA0003042535410000126
其中,
Figure BDA0003042535410000127
为节点Nr和Ns的边上的信息素浓度,ξ为局部信息素挥发因子,τ0为常数。
基于蚁群系统的软件故障行为模式分析基本流程图如图2所示,其主要步骤如下。
①初始化相关参数,每只蚂蚁按状态转移规则选择下一个节点,并应用局部更新规则更新所经过路径上的信息素浓度,当全部蚂蚁完成路径选择与信息素浓度更新,即完成一次迭代;
②基于不同的故障特性寻找本次迭代中的最优路径,应用全局更新规则公式对该路径信息素浓度进行更新;
③当系统达到最大迭代次数,输出M条典型故障行为模式。
1.4软件系统可靠性评估
结合本发明构建的加权构件执行网络WFEN,本发明在假定软件系统内部各个结构的可靠性已知,且满足独立失效条件下,评估整个软件系统的可靠性。
假设加权构件执行网络WFEN中每个构件的可靠性为Ri,节点Ni到节点Nj的有向边表示为Ei,j=<Ni,Nj>,且该边的权值系数为
Figure BDA0003042535410000131
Figure BDA0003042535410000132
代表了节点Ni与节点Nj发生相互作用的概率,因此各个节点间的随机转移矩阵为:
Figure BDA0003042535410000133
因此,所有的由构件Ni开始并最终转移到构件Nj的概率和为:
Figure BDA0003042535410000134
其中,Q(i,j)为构件Ni经1次转移后到达构件Nj的概率,
Figure BDA0003042535410000135
为构件Ni需要2次转移后到达构件Nj的所有路径的概率之和,K为软件系统中构件的总数,通过穷举构件Ni到达构件Nj的所有可能情况,可以计算得出构件Ni与Nj之间全部通路可靠性之和N(i,j)
则整个软件系统的可靠性的计算表达式为:
Figure BDA0003042535410000136
其中,
Figure BDA0003042535410000137
为软件系统中任意两构件之间成功转移的概率之和,若两构件之间未形成通路,则该项取值为0,num为构件之间全部通路的总数,因此Rsys可以衡量软件系统的整体可靠性水平。
1.5基于FSR的软件系统可靠性管理模式
基于1.1中构建的加权构件执行网络WFEN,以管理软件系统整体可靠性为目标,借鉴软件系统开发、运营、保障三者结合的DevOps模式,本发明实施例将“关键节点挖掘、故障行为模式挖掘、故障处理与系统改进建议、软件系统可靠性评估”四个环节充分整合,形成软件系统可靠性管理模式FSR(Fault analysis-System improvement-Reliabilityassessment)。其中关键节点挖掘、典型故障行为模式分析主要提供FSR故障预测能力,二者将分析影响软件系统可靠性的关键节点以及节点故障行为模式,指出软件系统中需要改进或优化的构件或构件间的相互作用关系,该分析结果将作为故障处理与系统改进的重要依据。可靠性评估主要提供FSR闭环检测能力,能够反映改进方案是否有效,并提供判定系统是否达到可靠性要求、是否需要进一步改进的科学依据。FSR的主要结构如3所示。
基于FSR的软件系统可靠性管理方法处理流程包括步骤:
(1)基于软件系统构件动态执行轨迹,构建加权构建执行网络WFEN;
(2)基于故障可能性FP与故障传播能力FPC两项度量指标,分别对加权构建执行网络WFEN中关键节点进行排序,得出故障可能性大、故障传播能力强两类影响软件系统可靠性的关键节点;
(3)通过设定故障可能性FP和故障传播能力FPC为启发式函数,利用加权构建执行网络WFEN中边的权重系数来更新信息素浓度,基于蚁群算法分别在两种启发函数模式中寻找最优路径,得出软件系统典型故障行为模式。
(4)基于(2)和(3)中分析得出的影响软件系统可靠性的关键节点、软件系统典型故障行为模式,对于故障可能性高的构件,减少其直接出度邻居集合DONS中节点的数量,对于故障传播能力强的构建,减少其直接入度邻居集合DINS中节点的数量,对于故障可能性高、传播能力强的路径,降低路径中节点间相互作用频率,将构件间的组合、关联关系尽量转化为依赖关系,从而降低构件间相互作用权值系数,最终实现对软件系统构件及其相互作用关系的改进。
(5)依据DTMC可靠性分析方法评估整个加权构件执行网络WFEN整体可靠性,从而评估(4)中改进方案是否有效、确定软件系统是否达到预定可靠性要求,进而确定是否需要回到步骤(2)进一步改进完善软件系统可靠性。
但是特别说明的是,步骤(2)的关键节点挖掘、步骤(3)的典型故障行为模式分析、步骤(5)的整体可靠性评估都可以单独使用,单独使用的方法参考1.2、1.3、1.4,此处不再赘述。
本发明实施例的一种基于故障分析的软件系统可靠性管理系统,包括:
网络模型构建模块,用于根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
故障分析模块,用于根据网络模型挖掘影响系统可靠性的关键节点以及典型故障行为模式;
改进模块,用于根据挖掘结果对软件系统中构件及构件之间的相互作用关系进行改进;
整体可靠性评估模块,用于对改进后的软件系统重新构建网络模型,并根据网络模型评估改进后的软件系统的整体可靠性。
本发明实施例的一种软件系统的整体可靠性评估系统,包括步骤:
网络模型构建模块,用于根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
整体可靠性评估模块,用于实现上述整体可靠性评估步骤。
系统和上述方法的原理、技术效果相同,此处不再赘述。
必须说明的是,上述任一实施例中,方法并不必然按照序号顺序依次执行,只要从执行逻辑中不能推定必然按某一顺序执行,则意味着可以以其他任何可能的顺序执行。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于故障分析的软件系统可靠性管理方法,其特征在于,包括步骤:
根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
根据网络模型挖掘影响系统可靠性的关键节点以及故障行为模式;
根据挖掘结果对软件系统中构件及构件之间的相互作用关系进行改进;
对改进后的软件系统重新构建网络模型,并根据网络模型评估改进后的软件系统的整体可靠性。
2.如权利要求1所述的一种基于故障分析的软件系统可靠性管理方法,其特征在于,所述构件包括软件系统中的软件、数据库和服务。
3.如权利要求1所述的一种基于故障分析的软件系统可靠性管理方法,其特征在于,所述网络模型表示为(N,E,W),W=n×δ,其中,N表示软件系统的构件集合,E表示构件关系集合,W表示两个构件之间边的权重系数,n代表两个构件之间互相作用的次数,δ表示预定义的相互作用关系对权重的影响系数。
4.如权利要求3所述的一种基于故障分析的软件系统可靠性管理方法,其特征在于,相互作用关系包括依赖、关联、组合三类,预定义依赖、关联、组合三类相互作用关系对权重的影响系数依次从低到高;
权重系数W的计算公式为:
Figure FDA0003042535400000011
nk代表两个构件之间第k(1≤k≤3)类关系相互作用的次数,δk表示第k类互相作用关系对权重的影响系数。
5.如权利要求1所述的一种基于故障分析的软件系统可靠性管理方法,其特征在于,整体可靠性评估包括步骤:
获取每个构件的可靠性;
根据两个构件之间边的权重系数计算两个构件间发生相互作用的概率,将节点Ni与结点Nj发生相互作用的概率记为pi,j
构建各个构件间的随机转移矩阵,记为Q,
Figure FDA0003042535400000021
其中,Rn表示第n个构件自身的可靠性;
根据随机转移矩阵Q计算由构件Ni开始并最终转移到构件Nj的所有路径概率和,记为N(i,j)
计算软件系统的整体可靠性,计算公式为:
Figure FDA0003042535400000022
其中,Rsys为整体可靠性,
Figure FDA0003042535400000023
为软件系统中任意两构件之间成功转移的概率之和,若两构件之间未形成通路,则该项取值为0,num为构件之间全部通路的总数。
6.如权利要求5所述的一种基于故障分析的软件系统可靠性管理方法,其特征在于,pi,j的计算公式为:
Figure FDA0003042535400000024
其中,DINS(Nj)表示形成节点Nj的所有入度邻居集合。
7.如权利要求5所述的一种基于故障分析的软件系统可靠性管理方法,其特征在于,N(i,j)的计算公式为:
Figure FDA0003042535400000031
其中,Q(i,j)为构件Ni经1次转移后到达构件Nj的概率,
Figure FDA0003042535400000032
为构件Ni需要2次转移后到达构件Nj的所有路径的概率之和,…表示依次类推,穷举构件Ni到达构件Nj的所有可能路径,K为软件系统中构件的总数。
8.一种软件系统的整体可靠性评估方法,其特征在于,包括步骤:
根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
获取每个构件的可靠性;
根据两个构件之间边的权重系数计算两个构件间发生相互作用的概率,将,将节点Ni与节点Nj发生相互作用的概率记为pi,j
构建各个构件间的随机转移矩阵,记为Q,
Figure FDA0003042535400000033
其中,Rn表示第n个构件的可靠性;
根据随机转移矩阵Q计算由构件Ni开始并最终转移到构件Nj的所有路径概率和,记为N(i,j)
计算软件系统的整体可靠性,计算公式为:
Figure FDA0003042535400000034
其中,Rsys为整体可靠性,
Figure FDA0003042535400000035
为软件系统中任意两构件之间成功转移的概率之和,若两构件之间未形成通路,则该项取值为0,num为构件之间全部通路的总数。
9.一种基于故障分析的软件系统可靠性管理系统,其特征在于,包括:
网络模型构建模块,用于根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
故障分析模块,用于根据网络模型挖掘影响系统可靠性的关键节点以及故障行为模式;
改进模块,用于根据挖掘结果对软件系统中构件及构件之间的相互作用关系进行改进;
整体可靠性评估模块,用于对改进后的软件系统重新构建网络模型,并根据网络模型评估改进后的软件系统的整体可靠性。
10.一种软件系统的整体可靠性评估系统,其特征在于,包括:
网络模型构建模块,用于根据软件系统的拓扑结构构建网络模型,将软件系统中的构件视为网络模型的节点,将构件的相互作用关系视为网络模型的边;
整体可靠性评估模块,用于实现以下步骤:
获取每个构件的可靠性;
根据两个构件之间边的权重系数计算两个构件间发生相互作用的概率,将节点Ni与节点Nj发生相互作用的概率记为pi,j,构建各个构件间的随机转移矩阵,记为Q,
Figure FDA0003042535400000041
其中,Rn表示第n个构件的可靠性;
根据随机转移矩阵Q计算由构件Ni开始并最终转移到构件Nj的所有路径概率和,记为N(i,j)
计算软件系统的整体可靠性,计算公式为:
Figure FDA0003042535400000051
其中,Rsys为整体可靠性,
Figure FDA0003042535400000052
为软件系统中任意两构件之间成功转移的概率之和,若两构件之间未形成通路,则该项取值为0,num为构件之间全部通路的总数。
CN202110461710.4A 2021-04-27 2021-04-27 一种基于故障分析的软件系统可靠性管理方法及系统 Active CN113010437B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110461710.4A CN113010437B (zh) 2021-04-27 2021-04-27 一种基于故障分析的软件系统可靠性管理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110461710.4A CN113010437B (zh) 2021-04-27 2021-04-27 一种基于故障分析的软件系统可靠性管理方法及系统

Publications (2)

Publication Number Publication Date
CN113010437A true CN113010437A (zh) 2021-06-22
CN113010437B CN113010437B (zh) 2023-04-28

Family

ID=76380714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110461710.4A Active CN113010437B (zh) 2021-04-27 2021-04-27 一种基于故障分析的软件系统可靠性管理方法及系统

Country Status (1)

Country Link
CN (1) CN113010437B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546561A (zh) * 2022-02-22 2022-05-27 湖南泛联新安信息科技有限公司 一种程序静态分析结果中最佳修复点的展示方法
CN115800272A (zh) * 2023-02-06 2023-03-14 国网山东省电力公司东营供电公司 基于拓扑识别的电网故障分析方法、系统、终端及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013113532A1 (en) * 2012-01-30 2013-08-08 Telefónica, S.A. A method and a system to detect malicious software
CN105808435A (zh) * 2016-03-08 2016-07-27 北京理工大学 一种基于复杂网络的软件缺陷评估模型的构建方法
CN109828925A (zh) * 2018-06-25 2019-05-31 北京航空航天大学 一种基于软件网络结构特征的软件可靠性度量方法
CN110275825A (zh) * 2019-05-15 2019-09-24 南京航空航天大学 一种基于构件影响力的软件可靠性评估方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013113532A1 (en) * 2012-01-30 2013-08-08 Telefónica, S.A. A method and a system to detect malicious software
CN105808435A (zh) * 2016-03-08 2016-07-27 北京理工大学 一种基于复杂网络的软件缺陷评估模型的构建方法
CN109828925A (zh) * 2018-06-25 2019-05-31 北京航空航天大学 一种基于软件网络结构特征的软件可靠性度量方法
CN110275825A (zh) * 2019-05-15 2019-09-24 南京航空航天大学 一种基于构件影响力的软件可靠性评估方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546561A (zh) * 2022-02-22 2022-05-27 湖南泛联新安信息科技有限公司 一种程序静态分析结果中最佳修复点的展示方法
CN114546561B (zh) * 2022-02-22 2024-05-24 湖南泛联新安信息科技有限公司 一种程序静态分析结果中最佳修复点的展示方法
CN115800272A (zh) * 2023-02-06 2023-03-14 国网山东省电力公司东营供电公司 基于拓扑识别的电网故障分析方法、系统、终端及介质

Also Published As

Publication number Publication date
CN113010437B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
Yang et al. Community mining from signed social networks
CN113010437A (zh) 一种基于故障分析的软件系统可靠性管理方法及系统
Xie et al. An efficient two-phase approach for reliable collaboration-aware service composition in cloud manufacturing
Bilgin et al. Dynamic network evolution: Models, clustering, anomaly detection
CN104539601A (zh) 动态网络攻击过程可靠性分析方法及系统
Shahraki et al. An outlier detection method to improve gathered datasets for network behavior analysis in IoT
CN110889493A (zh) 针对关系网络添加扰动的方法及装置
CN114418399A (zh) 一种流程行业工厂知识图谱自维护系统及方法
Kumar et al. Community-enhanced Link Prediction in Dynamic Networks
CN111128292B (zh) 一种基于蛋白质成簇特性和活性共表达的关键蛋白质识别方法
CN115174263B (zh) 攻击路径动态决策方法与装置
CN116955335A (zh) 一种基于大数据模型算法的地址数据治理方法及其系统
Kalanat et al. A fuzzy method for discovering cost-effective actions from data
CN115689191A (zh) 一种面向指标体系筛选优化的智能电网安全性评估方法
CN113569961B (zh) 一种电网节点分类方法及计算机可读介质
CN108960401A (zh) 一种面向Web服务计算环境的数据细胞自愈方法
CN110135747B (zh) 基于神经网络的流程定制方法
Zhang et al. Approach to mine the modularity of software network based on the most vital nodes
CN112882914A (zh) 开源软件生态系统健康性的多维度度量系统
Martins et al. On a multisensor knowledge fusion heuristic for the internet of things
Neerumalla et al. Improved invasive weed-lion optimization-based process mining of event logs
Yarlagadda et al. Clustering based on correlation fractal dimension over an evolving data stream.
Ngonmang et al. Toward community dynamic through interactions prediction in complex networks
Yu et al. An event-based approach to overlapping community evolution by three-way decisions
CN115408272B (zh) 一种基于TOPSIS法的Java冗余代码评估方法

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