问题定位方法及系统.pdf

上传人:b*** 文档编号:267114 上传时间:2018-02-06 格式:PDF 页数:16 大小:4.39MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310219214.3

申请日:

2013.06.04

公开号:

CN104216825A

公开日:

2014.12.17

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 11/36申请公布日:20141217|||实质审查的生效IPC(主分类):G06F 11/36申请日:20130604|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

北京神州泰岳软件股份有限公司

发明人:

李淑芳

地址:

100089 北京市海淀区万泉庄路28号万柳新贵大厦A座6层601室

优先权:

专利代理机构:

北京市隆安律师事务所 11323

代理人:

权鲜枝

PDF下载: PDF下载
内容摘要

本发明公开了一种软件问题定位方法和系统,涉及计算机软件领域。通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。进一步的,在对软件本身进行故障检测之前,先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。

权利要求书

1.  一种问题定位方法,其特征在于,所述方法包括:
实时监控记录软件内部各模块的运行状态参数;所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;
当软件运行出现问题时,获取当前记录的运行状态参数;
根据所述运行状态参数计算各模块的故障概率值和相关度系数;
利用所述故障概率值和相关度系数计算各模块的故障系数;
根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。

2.
  根据权利要求1所述的问题定位方法,其特征在于,所述根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,所述方法还包括:
根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系;
若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行所述根据所述运行状态参数计算各模块的故障概率值和相关度系数步骤。

3.
  根据权利要求2所述的问题定位方法,其特征在于,所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,所述方法还包括:
读取所述预置模板中的内容缓存到内存中。

4.
  根据权利要求3所述的问题定位方法,其特征在于,所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性,具体为:
将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。

5.
  根据权利要求4所述的问题定位方法,其特征在于,所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性还包括:
根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。

6.
  根据权利要求1-5任一项所述的问题定位方法,其特征在于,所述根 据所述运行状态参数计算各模块的故障概率值和相关度系数包括:
根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;
所述利用所述故障概率值和相关度系数计算各模块的故障系数包括:
针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。

7.
  一种问题定位系统,其特征在于,所述系统包括:
监控模块,用于实时监控记录软件内部各模块的运行状态参数;所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;
获取模块,用于当软件运行出现问题时,获取所述监控模块记录的当前运行状态参数;
分析模块,用于根据所述运行状态参数计算各模块的故障概率值和相关度系数;
计算模块,用于利用所述故障概率值和相关度系数计算各模块的故障系数;和
定位模块,用于根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。

8.
  根据权利要求7所述的问题定位系统,其特征在于,所述系统还包括:
数据验证模块,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系;
所述定位模块还用于,判断所述数据验证模块的验证结果是否有数据错误,有则将该数据错误定位为软件问题所在;否则启动所述分析模块。

9.
  根据权利要求8所述的问题定位系统,其特征在于,所述数据验证模块具体用于:将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确;
所述数据验证模块还包括:
缓存单元,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,读取所述预置模板中的内容缓存到内存中;和/或
顺序控制单元,用于根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。

10.
  根据权利要求7-9任一项所述的问题定位系统,其特征在于,
所述分析模块具体用于:根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;
所述计算模块具体用于:针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。

说明书

问题定位方法及系统
技术领域
本发明涉及计算机软件技术领域,特别涉及一种问题定位方法及系统。
背景技术
近年来,软件开发完成后,维护对于每个公司来说,也显得尤为重要。当软件出现问题时,使用者希望尽快查找到问题。而现场维护人员对软件的开发过程不是特别了解,导致出现问题后不能及时解决,导致使用者对此产生不满。
发明内容
鉴于上述问题,本发明实施例提供一种问题定位方法及系统,用于现场维护人员能够在软件运行出现数据问题时,针对性的、快速的定位问题,提高软件维护效率。
本发明实施例采用了如下技术方案:
本发明一个实施例提供了一种问题定位方法,所述方法包括:
实时监控记录软件内部各模块的运行状态参数;所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;
当软件运行出现问题时,获取当前记录的运行状态参数;
根据所述运行状态参数计算各模块的故障概率值和相关度系数;
利用所述故障概率值和相关度系数计算各模块的故障系数;
根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。
所述根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,所述方法还包括:
根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系;
若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行所述根据所述运行状态参数计算各模块的故障概率值和相关度系数步骤。
所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,所述方法还包括:
读取所述预置模板中的内容缓存到内存中。
所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性,具体为:
将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。
所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性还包括:
根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。
所述根据所述运行状态参数计算各模块的故障概率值和相关度系数包括:
根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;
所述利用所述故障概率值和相关度系数计算各模块的故障系数包括:
针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。
本发明另一实施例提供了一种问题定位系统,所述系统包括:
监控模块,用于实时监控记录软件内部各模块的运行状态参数;所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;
获取模块,用于当软件运行出现问题时,获取所述监控模块记录的当前运行状态参数;
分析模块,用于根据所述运行状态参数计算各模块的故障概率值和相关度系数;
计算模块,用于利用所述故障概率值和相关度系数计算各模块的故障系数;和
定位模块,用于根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。
所述系统还包括:
数据验证模块,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系;
所述定位模块还用于,判断所述数据验证模块的验证结果是否有数据错误,有则将该数据错误定位为软件问题所在;否则启动所述分析模块。
所述数据验证模块具体用于:将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确;
所述数据验证模块还包括:
缓存单元,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,读取所述预置模板中的内容缓存到内存中;和/或
顺序控制单元,用于根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。
所述分析模块具体用于:根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;
所述计算模块具体用于:针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。
可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并 计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。
进一步的,本发明实施例,根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,还可以先根据运行状态参数,在预置模板中匹配校验各模块数据的正确性;预置模板中预先存储有数据属性名称及数据取值范围的对应关系;若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行根据运行状态参数计算各模块的故障概率值和相关度系数的步骤。这样,可以在对软件本身进行故障检测之前,可以先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。
附图说明
图1为本发明一实施例提供的一种问题定位方法流程图;
图2为本发明另一实施例提供的一种问题定位方法流程图;
图3为本发明方法实施例中采用浏览器实现的示意图;
图4为本发明一实施例提供的一种问题定位系统结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
软件故障时指软件在运行过程中出现的一种不正常的内部状态。软件故障有可能是在软件的设计过程中引入的,比如软件设计方法、编程语言和工具,软件开发人员不能保证在软件设计和程序编码过程中不引入故障。
当软件发生故障时,需要进行故障定位,深入代码的内部找出故障模块和故障代码。目前常用的故障定位方法有原始法、回溯法和排除法等。原始 法是通过计算机在出现故障的程序范围内找错,该方法复杂且效率低。回溯法是出现故障征兆处眼程序的控制流程往回追踪,直到发现出错的根源,该方法缺陷是具有一定的局限性,当程序范围较大时,由于回溯路线急剧增加,无法实现完全回溯。排除法基于归纳和演绎推理,根据故障数据,假设错误原因,通过测试逐一排除,该方法要求对软件总体设计和代码结果十分了解。
由于软件故障问题的复杂性,现有的故障定位方法存在过程复杂、依赖性强和通用性不高的缺陷,不能满足软件故障诊断的要求。
基于此,本发明实施例提供一种软件问题定位方法,本发明实施例提供的软件故障定位方法总体设计思想是:先通过监控获取软件发生故障时的模块运行序列,从中分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,以快速定位软件故障所在。
参见图1所示,本发明实施例提供的软件问题定位方法具体包括:
S101:实时监控记录软件内部各模块的运行状态参数。
上述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出等。
软件故障与软件的运行有密切的联系,因此,要定位软件故障,首先需要对软件的运行过程进行分析,本发明实施例中,在软件系统中嵌入监控模块,用于监控软件的运行状态,实时记录软件内部各模块的运行状态参数,包括软件系统中当前运行各模块的运行序列、数据输入和数据输出等。
S102:当软件运行出现问题时,获取当前记录的运行状态参数。
S103:根据运行状态参数计算各模块的故障概率值和相关度系数。
其中,根据运行状态参数计算各模块的故障概率值具体包括:
根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值。
假设该软件系统中共有n个软件模块,m1,m2,m3……mn
在软件故障发生时,当前软件系统中运行的模块运行序列M={mi,mi+1,mi+2……mi+k}。其中k越大,表示离故障点越近。
即发生故障时的软件模块运行序列为:
mi→mi+1,mi+2……→mi+k
用Ui表示软件运行系列中第i个模块的发生故障的概率,则得到模块序列的故障概率值为:
U={Ui,Ui+1,Ui+2……Ui+k}
其中,Ui+k的值,随K值的增加而增大,即越靠近软件故障点,所运行的模块的故障率越大。
根据运行状态Ui+k参数计算各模块的相关度系数具体包括:
根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵。
由于软件的各个模块之间可能存在数据交换和共享,软件故障也可能有多个模块传递的数据而引起,因此,建立相关矩阵E表示模块之间的相关程度。
E=e11,e12,······e1ne21,e22,······e2n······,eij,······en1en2,······enn]]>
其中,eij表示在mi后运行mj的相关系数,该系数取决于模块之间传递的数据和模块对数据的处理。
S104:利用所述故障概率值和相关度系数计算各模块的故障系数。
具体的,利用故障概率值和相关度系数计算各模块的故障系数具体包括:
针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。
例如,针对模块mi,其故障系数wi具体计算方法为:
其中,假设模块mi运行次数为t次。
S105:根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。
可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进 行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。
参见图2,本发明实施例还提供了另一种软件问题故障定位方法,其中,在根据对软件系统进行代码检测之前,先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。
参见图2,具体步骤如下:
S201:实时监控记录软件内部各模块的运行状态参数。
上述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出等。
软件故障与软件的运行有密切的联系,因此,要定位软件故障,首先需要对软件的运行过程进行分析,本发明实施例中,在软件系统中嵌入监控模块,用于监控软件的运行状态,实时记录软件内部各模块的运行状态参数,包括软件系统中当前运行各模块的运行序列、数据输入和数据输出等。
S202:当软件运行出现问题时,获取当前记录的运行状态参数。
S203:根据运行状态参数,在预置模板中匹配校验各模块数据的正确性。若发现有数据错误,执行步骤S204,若未发现有数据错误,则执行步骤S205。
其中,预置模板中预先存储有数据属性名称及数据取值范围的对应关系。
可以根据需求,预先将各模块有固定取值范围的属性,其属性名称及数据取值范围对应关系预先存储在预置模板中,用于数据正确性的校验。
例如,用户等级这一有固定取值范围的属性,可以预先在预置模板中存储一下属性名称和取值范围的对应关系:
属性名称:用户等级customerlevel,其对应的取值范围:A类、B类、C类、D类。
具体实现中,预置模板中记录的形式可以是:
按照以下格式将各条数据保存到以各个模块命名的module_XX.properties中:
格式:属性名称=属性取值范围。(取值以“,”隔开)
例如:customerlevel=A类,B类,C类,D类
上述根据运行状态参数,在预置模板中匹配校验各模块数据的正确性,具体为:
将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。
当对数据进行正确性校验时,在对用户等级这一数据进行正确性校验时,将正在运行模块中用户等级customerlevel的当前数值,与预置模板中的取值范围相匹配,若customerlevel的当前数值为A类、B类、C类或D类之一,则说明该数据是正确的,若customerlevel的当前数值为A,并非A类,则不能与预置模板中的取值范围匹配上,此时说明该数据错误,即可以快速的定位软件故障为用户等级这一数据发生了错误。
该预置模板预先存储在web服务器中,在对数据进行正确性校验之前,即在根据运行状态参数在预置模板中匹配校验各模块数据的正确性之前,优选的,还包括:读取所述预置模板中的内容缓存到内存中,以提高数据校验中的匹配速度,进一步提高定位效率。
具体实现中,可以是,模板module_XX.properties文件中保存的是以“属性名称”为key,属性取值范围为value的键值对,所以将读取出来的内容保存在以按键/数值对的形式存储数据的集合类Map中。具体读入内存的过程如下:
S01:读取properties文件内容。
S02:获取properties文件中所有的key。
S03:循环key值,将key以及对应的value值保存到集合类Map中。其中,集合类Map保存在内存中。
获取要校验的数据,即获取故障发生时各模块的运行参数,包括如下子步骤:
S04:从数据库中获取模块所需要的数据。
S05:将数据保存到模块数据集合中。
具体对数据正确性进行校验的过程具体为:
循环模块数据集合,将属性名称作为key,从集合类Map中查找对应的取值范围value,如果属性值与取值范围匹配,则表示校验正确,否则错误,并将校验结果赋值给当前数据对象。
本发明实施例中,优选的,可以采用浏览器方式实现,即将数据校验的过程及结果,在浏览器界面中进行展示,进一步提高用户体验。具体示意请参见图3所示。
进一步的,上述根据运行状态参数,在预置模板中匹配校验各模块数据的正确性还包括:
根据运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。因为离故障点越近,出现故障的可能性越大,所以按照离故障点由近至远的顺序,对数据正确性进行校验的话,能够进一步加快故障查找的速度,提高故障定位的效率。
S204:将该数据错误定位为软件问题所在,结束。
S205:根据运行状态参数计算各模块的故障概率值和相关度系数。
其中,根据运行状态参数计算各模块的故障概率值具体包括:
根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值。
假设该软件系统中共有n个软件模块,m1,m2,m3……mn
在软件故障发生时,当前软件系统中运行的模块运行序列M={mi,mi+1,mi+2……mi+k}。其中k越大,表示离故障点越近。
即发生故障时的软件模块运行序列为:
mi→mi+1,mi+2……→mi+k
用Ui表示软件运行系列中第i个模块的发生故障的概率,则得到模块序列的故障概率值为:
U={Ui,Ui+1,Ui+2……Ui+k}
其中,Ui+k的值,随K值的增加而增大,即越靠近软件故障点,所运行的模块的故障率越大。
根据运行状态Ui+k参数计算各模块的相关度系数具体包括:
根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵。
由于软件的各个模块之间可能存在数据交换和共享,软件故障也可能有多个模块传递的数据而引起,因此,建立相关矩阵E表示模块之间的相关程度。
E=e11,e12,······e1ne21,e22,······e2n······,eij,······en1en2,······enn]]>
其中,eij表示在mi后运行mj的相关系数,该系数取决于模块之间传递的数据和模块对数据的处理。
S206:利用所述故障概率值和相关度系数计算各模块的故障系数。
具体的,利用故障概率值和相关度系数计算各模块的故障系数具体包括:
针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。
例如,针对模块mi,其故障系数wi具体计算方法为:
其中,假设模块mi运行次数为t次。
S207:根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。
可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。
进一步的,本发明实施例,根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,还可以先根据运行状态参数,在预置模板中匹配校验各模块数据的正确性;预置模板中预先存储有数据属性名称及数据取值范围的对应关系;若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行根据运行状态参数计算各模块的故障概率值和 相关度系数的步骤。这样,可以在对软件本身进行故障检测之前,可以先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。
参见图3,本发明实施例还提供了一种软件问题定位系统,包括:
监控模块301,用于实时监控记录软件内部各模块的运行状态参数.
所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出等。
获取模块302,用于当软件运行出现问题时,获取监控模块301记录的当前运行状态参数。
分析模块304,用于根据运行状态参数计算各模块的故障概率值和相关度系数。
计算模块305,用于利用故障概率值和相关度系数计算各模块的故障系数。
和,定位模块306,用于根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。
优选的,该系统还包括:
数据验证模块303,用于根据获取模块302获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性。
所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系。
相应的,定位模块306还用于,判断数据验证模块303的验证结果是否有数据错误,有则将该数据错误定位为软件问题所在;否则启动分析模块304。
其中,数据验证模块303具体用于:将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。
优选的,数据验证模块303还包括:
缓存单元,用于根据所述获取模块获取的运行状态参数,在预置模板中 匹配校验各模块数据的正确性之前,读取所述预置模板中的内容缓存到内存中。和/或,顺序控制单元,用于根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。
所述分析模块具体用于:根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵。
所述计算模块具体用于:针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。
需要说明的是,本发明系统实施例中的各个模块或者子模块的工作原理和处理过程可以参见上述图1和图所示方法实施例中的相关描述,此处不再赘述。
可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。
进一步的,本发明实施例,根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,还可以先根据运行状态参数,在预置模板中匹配校验各模块数据的正确性;预置模板中预先存储有数据属性名称及数据取值范围的对应关系;若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行根据运行状态参数计算各模块的故障概率值和相关度系数的步骤。这样,可以在对软件本身进行故障检测之前,可以先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。
为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行 限定。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:(方法的步骤),所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

问题定位方法及系统.pdf_第1页
第1页 / 共16页
问题定位方法及系统.pdf_第2页
第2页 / 共16页
问题定位方法及系统.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《问题定位方法及系统.pdf》由会员分享,可在线阅读,更多相关《问题定位方法及系统.pdf(16页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104216825A43申请公布日20141217CN104216825A21申请号201310219214322申请日20130604G06F11/3620060171申请人北京神州泰岳软件股份有限公司地址100089北京市海淀区万泉庄路28号万柳新贵大厦A座6层601室72发明人李淑芳74专利代理机构北京市隆安律师事务所11323代理人权鲜枝54发明名称问题定位方法及系统57摘要本发明公开了一种软件问题定位方法和系统,涉及计算机软件领域。通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数。

2、,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。进一步的,在对软件本身进行故障检测之前,先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。51INTCL权利要求书2页说明书9页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图4页10申请公布号CN104216825ACN104216825A1/2页21一种问题定位方法,其特征在于,所述方法包括实时监控记录软件。

3、内部各模块的运行状态参数;所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;当软件运行出现问题时,获取当前记录的运行状态参数;根据所述运行状态参数计算各模块的故障概率值和相关度系数;利用所述故障概率值和相关度系数计算各模块的故障系数;根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。2根据权利要求1所述的问题定位方法,其特征在于,所述根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,所述方法还包括根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系;若发现有数据错误,则将该数。

4、据错误定位为软件问题所在;若未发现有数据错误,则执行所述根据所述运行状态参数计算各模块的故障概率值和相关度系数步骤。3根据权利要求2所述的问题定位方法,其特征在于,所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,所述方法还包括读取所述预置模板中的内容缓存到内存中。4根据权利要求3所述的问题定位方法,其特征在于,所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性,具体为将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。5根据权利要求4所述的问题定位。

5、方法,其特征在于,所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性还包括根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。6根据权利要求15任一项所述的问题定位方法,其特征在于,所述根据所述运行状态参数计算各模块的故障概率值和相关度系数包括根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;所述利用所述故障概率值和相关度系数计算各模块的故障系数包括针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各。

6、模块的故障系数。7一种问题定位系统,其特征在于,所述系统包括监控模块,用于实时监控记录软件内部各模块的运行状态参数;所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;获取模块,用于当软件运行出现问题时,获取所述监控模块记录的当前运行状态参数;分析模块,用于根据所述运行状态参数计算各模块的故障概率值和相关度系数;权利要求书CN104216825A2/2页3计算模块,用于利用所述故障概率值和相关度系数计算各模块的故障系数;和定位模块,用于根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。8根据权利要求7所述的问题定位系统,其特征在于,所述系统还包括数据验证模。

7、块,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系;所述定位模块还用于,判断所述数据验证模块的验证结果是否有数据错误,有则将该数据错误定位为软件问题所在;否则启动所述分析模块。9根据权利要求8所述的问题定位系统,其特征在于,所述数据验证模块具体用于将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确;所述数据验证模块还包括缓存单元,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各。

8、模块数据的正确性之前,读取所述预置模板中的内容缓存到内存中;和/或顺序控制单元,用于根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。10根据权利要求79任一项所述的问题定位系统,其特征在于,所述分析模块具体用于根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;所述计算模块具体用于针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。权利要求书CN104216825A1/9页4问题定位方法及系统技术。

9、领域0001本发明涉及计算机软件技术领域,特别涉及一种问题定位方法及系统。背景技术0002近年来,软件开发完成后,维护对于每个公司来说,也显得尤为重要。当软件出现问题时,使用者希望尽快查找到问题。而现场维护人员对软件的开发过程不是特别了解,导致出现问题后不能及时解决,导致使用者对此产生不满。发明内容0003鉴于上述问题,本发明实施例提供一种问题定位方法及系统,用于现场维护人员能够在软件运行出现数据问题时,针对性的、快速的定位问题,提高软件维护效率。0004本发明实施例采用了如下技术方案0005本发明一个实施例提供了一种问题定位方法,所述方法包括0006实时监控记录软件内部各模块的运行状态参数;。

10、所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;0007当软件运行出现问题时,获取当前记录的运行状态参数;0008根据所述运行状态参数计算各模块的故障概率值和相关度系数;0009利用所述故障概率值和相关度系数计算各模块的故障系数;0010根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。0011所述根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,所述方法还包括0012根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系;0013若发现有数据错误,则将该数据错误定位为软件问。

11、题所在;若未发现有数据错误,则执行所述根据所述运行状态参数计算各模块的故障概率值和相关度系数步骤。0014所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,所述方法还包括0015读取所述预置模板中的内容缓存到内存中。0016所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性,具体为0017将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。0018所述根据所述运行状态参数,在预置模板中匹配校验各模块数据的正确性还包括0019根据所述运行状态参数中的运。

12、行序列,按照离故障点由近至远的顺序,对各模块说明书CN104216825A2/9页5数据的正确性进行校验。0020所述根据所述运行状态参数计算各模块的故障概率值和相关度系数包括0021根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;0022所述利用所述故障概率值和相关度系数计算各模块的故障系数包括0023针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。0024本发明另一实施例提供了一种问题定位系统,所述系统包括0025监控模块,用于。

13、实时监控记录软件内部各模块的运行状态参数;所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出;0026获取模块,用于当软件运行出现问题时,获取所述监控模块记录的当前运行状态参数;0027分析模块,用于根据所述运行状态参数计算各模块的故障概率值和相关度系数;0028计算模块,用于利用所述故障概率值和相关度系数计算各模块的故障系数;和0029定位模块,用于根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。0030所述系统还包括0031数据验证模块,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性;所述预置模板中预先存储有数据属性名。

14、称及数据取值范围的对应关系;0032所述定位模块还用于,判断所述数据验证模块的验证结果是否有数据错误,有则将该数据错误定位为软件问题所在;否则启动所述分析模块。0033所述数据验证模块具体用于将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确;0034所述数据验证模块还包括0035缓存单元,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,读取所述预置模板中的内容缓存到内存中;和/或0036顺序控制单元,用于根据所述运行状态参数中的运行序列,按照离故。

15、障点由近至远的顺序,对各模块数据的正确性进行校验。0037所述分析模块具体用于根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵;0038所述计算模块具体用于针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。0039可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故。

16、障说明书CN104216825A3/9页6所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。0040进一步的,本发明实施例,根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,还可以先根据运行状态参数,在预置模板中匹配校验各模块数据的正确性;预置模板中预先存储有数据属性名称及数据取值范围的对应关系;若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行根据运行状态参数计算各模块的故障概率值和相关度系数的步骤。这样,可以在对软件本身进行故障检测之前,可以先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性。

17、进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。附图说明0041图1为本发明一实施例提供的一种问题定位方法流程图;0042图2为本发明另一实施例提供的一种问题定位方法流程图;0043图3为本发明方法实施例中采用浏览器实现的示意图;0044图4为本发明一实施例提供的一种问题定位系统结构框图。具体实施方式0045为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。0046软件故障时指软件在运行过程中出现的一种不正常的内部状态。软件故障有可能是在软件的设计过程中引入的,比如软件设计方法、编程语言和工具,软件开发人员不能保证在软件设计和程序。

18、编码过程中不引入故障。0047当软件发生故障时,需要进行故障定位,深入代码的内部找出故障模块和故障代码。目前常用的故障定位方法有原始法、回溯法和排除法等。原始法是通过计算机在出现故障的程序范围内找错,该方法复杂且效率低。回溯法是出现故障征兆处眼程序的控制流程往回追踪,直到发现出错的根源,该方法缺陷是具有一定的局限性,当程序范围较大时,由于回溯路线急剧增加,无法实现完全回溯。排除法基于归纳和演绎推理,根据故障数据,假设错误原因,通过测试逐一排除,该方法要求对软件总体设计和代码结果十分了解。0048由于软件故障问题的复杂性,现有的故障定位方法存在过程复杂、依赖性强和通用性不高的缺陷,不能满足软件故。

19、障诊断的要求。0049基于此,本发明实施例提供一种软件问题定位方法,本发明实施例提供的软件故障定位方法总体设计思想是先通过监控获取软件发生故障时的模块运行序列,从中分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,以快速定位软件故障所在。0050参见图1所示,本发明实施例提供的软件问题定位方法具体包括0051S101实时监控记录软件内部各模块的运行状态参数。0052上述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出等。0053软件故障与软件的运行有密切的联系,因此,要定位软件故障,首先需要对软件的运行过程进行分析,本发明实施例中,在软件系统中嵌入监。

20、控模块,用于监控软件的运行状说明书CN104216825A4/9页7态,实时记录软件内部各模块的运行状态参数,包括软件系统中当前运行各模块的运行序列、数据输入和数据输出等。0054S102当软件运行出现问题时,获取当前记录的运行状态参数。0055S103根据运行状态参数计算各模块的故障概率值和相关度系数。0056其中,根据运行状态参数计算各模块的故障概率值具体包括0057根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值。0058假设该软件系统中共有N个软件模块,M1,M2,M3MN。0059在软件故障发生时,当前软件系统中运行的模块运行序列MMI,MI1,。

21、MI2MIK。其中K越大,表示离故障点越近。0060即发生故障时的软件模块运行序列为0061MIMI1,MI2MIK0062用UI表示软件运行系列中第I个模块的发生故障的概率,则得到模块序列的故障概率值为0063UUI,UI1,UI2UIK0064其中,UIK的值,随K值的增加而增大,即越靠近软件故障点,所运行的模块的故障率越大。0065根据运行状态UIK参数计算各模块的相关度系数具体包括0066根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵。0067由于软件的各个模块之间可能存在数据交换和共享,软件故障也可能有多个模块传递的数据而引起,因此,建立相关矩阵E表示模。

22、块之间的相关程度。00680069其中,EIJ表示在MI后运行MJ的相关系数,该系数取决于模块之间传递的数据和模块对数据的处理。0070S104利用所述故障概率值和相关度系数计算各模块的故障系数。0071具体的,利用故障概率值和相关度系数计算各模块的故障系数具体包括0072针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。0073例如,针对模块MI,其故障系数WI具体计算方法为0074其中,假设模块MI运行次数为T次。0075S105根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。说明书CN104216825A5/9页8007。

23、6可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。0077参见图2,本发明实施例还提供了另一种软件问题故障定位方法,其中,在根据对软件系统进行代码检测之前,先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。0078参见图2,具体步骤如下0。

24、079S201实时监控记录软件内部各模块的运行状态参数。0080上述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出等。0081软件故障与软件的运行有密切的联系,因此,要定位软件故障,首先需要对软件的运行过程进行分析,本发明实施例中,在软件系统中嵌入监控模块,用于监控软件的运行状态,实时记录软件内部各模块的运行状态参数,包括软件系统中当前运行各模块的运行序列、数据输入和数据输出等。0082S202当软件运行出现问题时,获取当前记录的运行状态参数。0083S203根据运行状态参数,在预置模板中匹配校验各模块数据的正确性。若发现有数据错误,执行步骤S204,若未发现有数据错误,则执行。

25、步骤S205。0084其中,预置模板中预先存储有数据属性名称及数据取值范围的对应关系。0085可以根据需求,预先将各模块有固定取值范围的属性,其属性名称及数据取值范围对应关系预先存储在预置模板中,用于数据正确性的校验。0086例如,用户等级这一有固定取值范围的属性,可以预先在预置模板中存储一下属性名称和取值范围的对应关系0087属性名称用户等级CUSTOMERLEVEL,其对应的取值范围A类、B类、C类、D类。0088具体实现中,预置模板中记录的形式可以是0089按照以下格式将各条数据保存到以各个模块命名的MODULE_XXPROPERTIES中0090格式属性名称属性取值范围。(取值以“,”。

26、隔开)0091例如CUSTOMERLEVELA类,B类,C类,D类0092上述根据运行状态参数,在预置模板中匹配校验各模块数据的正确性,具体为0093将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。0094当对数据进行正确性校验时,在对用户等级这一数据进行正确性校验时,将正在运行模块中用户等级CUSTOMERLEVEL的当前数值,与预置模板中的取值范围相匹配,若CUSTOMERLEVEL的当前数值为A类、B类、C类或D类之一,则说明该数据是正确的,若CUSTOMERLEVEL的当。

27、前数值为A,并非A类,则不能与预置模板中的取值范围匹配上,此时说明该数据错误,即可以快速的定位软件故障为用户等级这一数据发生了错误。0095该预置模板预先存储在WEB服务器中,在对数据进行正确性校验之前,即在根据运行状态参数在预置模板中匹配校验各模块数据的正确性之前,优选的,还包括读取所述说明书CN104216825A6/9页9预置模板中的内容缓存到内存中,以提高数据校验中的匹配速度,进一步提高定位效率。0096具体实现中,可以是,模板MODULE_XXPROPERTIES文件中保存的是以“属性名称”为KEY,属性取值范围为VALUE的键值对,所以将读取出来的内容保存在以按键/数值对的形式存储。

28、数据的集合类MAP中。具体读入内存的过程如下0097S01读取PROPERTIES文件内容。0098S02获取PROPERTIES文件中所有的KEY。0099S03循环KEY值,将KEY以及对应的VALUE值保存到集合类MAP中。其中,集合类MAP保存在内存中。0100获取要校验的数据,即获取故障发生时各模块的运行参数,包括如下子步骤0101S04从数据库中获取模块所需要的数据。0102S05将数据保存到模块数据集合中。0103具体对数据正确性进行校验的过程具体为0104循环模块数据集合,将属性名称作为KEY,从集合类MAP中查找对应的取值范围VALUE,如果属性值与取值范围匹配,则表示校验正。

29、确,否则错误,并将校验结果赋值给当前数据对象。0105本发明实施例中,优选的,可以采用浏览器方式实现,即将数据校验的过程及结果,在浏览器界面中进行展示,进一步提高用户体验。具体示意请参见图3所示。0106进一步的,上述根据运行状态参数,在预置模板中匹配校验各模块数据的正确性还包括0107根据运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。因为离故障点越近,出现故障的可能性越大,所以按照离故障点由近至远的顺序,对数据正确性进行校验的话,能够进一步加快故障查找的速度,提高故障定位的效率。0108S204将该数据错误定位为软件问题所在,结束。0109S205根据运。

30、行状态参数计算各模块的故障概率值和相关度系数。0110其中,根据运行状态参数计算各模块的故障概率值具体包括0111根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值。0112假设该软件系统中共有N个软件模块,M1,M2,M3MN。0113在软件故障发生时,当前软件系统中运行的模块运行序列MMI,MI1,MI2MIK。其中K越大,表示离故障点越近。0114即发生故障时的软件模块运行序列为0115MIMI1,MI2MIK0116用UI表示软件运行系列中第I个模块的发生故障的概率,则得到模块序列的故障概率值为0117UUI,UI1,UI2UIK0118其中,UIK。

31、的值,随K值的增加而增大,即越靠近软件故障点,所运行的模块的故障率越大。0119根据运行状态UIK参数计算各模块的相关度系数具体包括说明书CN104216825A7/9页100120根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵。0121由于软件的各个模块之间可能存在数据交换和共享,软件故障也可能有多个模块传递的数据而引起,因此,建立相关矩阵E表示模块之间的相关程度。01220123其中,EIJ表示在MI后运行MJ的相关系数,该系数取决于模块之间传递的数据和模块对数据的处理。0124S206利用所述故障概率值和相关度系数计算各模块的故障系数。0125具体的,利用故。

32、障概率值和相关度系数计算各模块的故障系数具体包括0126针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。0127例如,针对模块MI,其故障系数WI具体计算方法为0128其中,假设模块MI运行次数为T次。0129S207根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快速定位。0130可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高。

33、,大大提高了软件故障的定位效率。0131进一步的,本发明实施例,根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,还可以先根据运行状态参数,在预置模板中匹配校验各模块数据的正确性;预置模板中预先存储有数据属性名称及数据取值范围的对应关系;若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行根据运行状态参数计算各模块的故障概率值和相关度系数的步骤。这样,可以在对软件本身进行故障检测之前,可以先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。。

34、0132参见图3,本发明实施例还提供了一种软件问题定位系统,包括0133监控模块301,用于实时监控记录软件内部各模块的运行状态参数0134所述运行状态参数包括软件系统中各模块的运行序列、数据输入和数据输出等。0135获取模块302,用于当软件运行出现问题时,获取监控模块301记录的当前运行状态参数。0136分析模块304,用于根据运行状态参数计算各模块的故障概率值和相关度系数。0137计算模块305,用于利用故障概率值和相关度系数计算各模块的故障系数。说明书CN104216825A108/9页110138和,定位模块306,用于根据故障系数由高至低的顺序,进行软件问题的检测,实现软件问题的快。

35、速定位。0139优选的,该系统还包括0140数据验证模块303,用于根据获取模块302获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性。0141所述预置模板中预先存储有数据属性名称及数据取值范围的对应关系。0142相应的,定位模块306还用于,判断数据验证模块303的验证结果是否有数据错误,有则将该数据错误定位为软件问题所在;否则启动分析模块304。0143其中,数据验证模块303具体用于将运行状态参数中的数据输入及数据输出,根据其对应的数据属性名称,在所述预置模板中验证其数值是否满足所述数据取值范围,若满足,则校验结果为正确,否则校验结果为不正确。0144优选的,数据验证模块303。

36、还包括0145缓存单元,用于根据所述获取模块获取的运行状态参数,在预置模板中匹配校验各模块数据的正确性之前,读取所述预置模板中的内容缓存到内存中。和/或,顺序控制单元,用于根据所述运行状态参数中的运行序列,按照离故障点由近至远的顺序,对各模块数据的正确性进行校验。0146所述分析模块具体用于根据模块的运行序列,按照离故障点由近至远对应故障概率值越低的方法得到各模块的故障概率值;根据当前模块与其它各模块之间数据传递和共享关系,确定当前模块的相关度系数矩阵。0147所述计算模块具体用于针对每个模块,计算该模块的相关度系数矩阵中各系数与故障概率值的乘积之和,得到各模块的故障系数。0148需要说明的是。

37、,本发明系统实施例中的各个模块或者子模块的工作原理和处理过程可以参见上述图1和图所示方法实施例中的相关描述,此处不再赘述。0149可见,本发明实施例中,通过对当前软件系统运行的软件模块状态参数进行实时监控,在故障发生时,能够根据故障时各模块的运行状况,分析并计算出当前运行各模块的故障系数,根据故障系数由高至低的顺序对问题进行排查,能够快速高效的定位软件故障所在,实现方式简单,通用性高,大大提高了软件故障的定位效率。0150进一步的,本发明实施例,根据所述运行状态参数计算各模块的故障概率值和相关度系数之前,还可以先根据运行状态参数,在预置模板中匹配校验各模块数据的正确性;预置模板中预先存储有数据。

38、属性名称及数据取值范围的对应关系;若发现有数据错误,则将该数据错误定位为软件问题所在;若未发现有数据错误,则执行根据运行状态参数计算各模块的故障概率值和相关度系数的步骤。这样,可以在对软件本身进行故障检测之前,可以先对数据正确性进行校验,因为有很多时候是因为数据错误引起的故障,而非代码运行出现了故障,先对数据正确性进行验证,可以避免代码检测,能够进一步提高软件故障定位的效率和准确度。0151为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限。

39、定。0152本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以说明书CN104216825A119/9页12通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤(方法的步骤),所述的存储介质,如ROM/RAM、磁碟、光盘等。0153以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。说明书CN104216825A121/4页13图1说明书附图CN104216825A132/4页14图2说明书附图CN104216825A143/4页15图3说明书附图CN104216825A154/4页16图4说明书附图CN104216825A16。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1