CN107145422A - 一种软件故障报警监测方法 - Google Patents

一种软件故障报警监测方法 Download PDF

Info

Publication number
CN107145422A
CN107145422A CN201710149727.XA CN201710149727A CN107145422A CN 107145422 A CN107145422 A CN 107145422A CN 201710149727 A CN201710149727 A CN 201710149727A CN 107145422 A CN107145422 A CN 107145422A
Authority
CN
China
Prior art keywords
module
software
detecting method
coding
sequence table
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
CN201710149727.XA
Other languages
English (en)
Other versions
CN107145422B (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.)
Casco Signal Ltd
Original Assignee
Casco Signal Ltd
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 Casco Signal Ltd filed Critical Casco Signal Ltd
Priority to CN201710149727.XA priority Critical patent/CN107145422B/zh
Publication of CN107145422A publication Critical patent/CN107145422A/zh
Application granted granted Critical
Publication of CN107145422B publication Critical patent/CN107145422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

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

Abstract

本发明涉及一种软件故障报警监测方法,包括以下步骤:步骤A:为每一个软件模块分配静态模块编码;步骤B:在软件模块中为每一个故障报警信息分配一个静态故障编码;步骤C:软件运行时在软件模块执行之前分配动态模块编码;步骤D:在软件模块执行时首先记录当前模块编码;步骤E:在软件模块运行时检查和搜集故障报警信息;步骤F:检测到故障信息后将系统全部内部状态记录到外部存储器,系统导向安全处理;步骤G:软件模块正常执行结束时擦除记录的当前模块编码;步骤H:使用故障分析诊断工具进行分析。与现有技术相比,本发明在软件故障时导向安全处理,并且能够快速定位故障位置,分析报警原因,提高了软件的安全性和可维护性。

Description

一种软件故障报警监测方法
技术领域
本发明涉及软件故障监测技术,尤其是涉及一种软件故障报警监测方法。
背景技术
对于涉及到生命攸关功能的软件,软件的故障可能导致极其灾难性的后果,因此对软件安全性极度关注,该类软件被称为安全苛求软件。
安全苛求软件可能包含了非常复杂的处理逻辑,人工的分析和测试并不能检查出所有的风险,为了保证软件始终运行在期望的设计空间内,引入契约式设计技术。
契约式设计是一种可以提高系统安全性的一种技术。契约由前置条件,后置条件,不变项组成。前置条件在每个操作(函数)最开始检查,为了执行操作必须为真;后置条件是函数保证做到的事情,是函数完成的状态;不变项在函数执行前必须为真,在函数执行结束后也必须为真。对于安全苛求软件,软件始终运行在期望且确定的状态空间内,每个函数的契约在运行时都必须满足,如果契约违背则系统处于预期设计空间之外,软件需要导向安全处理。
在软件运行时记录故障报警产生的位置是一个比较复杂问题,因为函数模块调用关系的是非常复杂的,一个子模块可以被不同层次的父模块调用,可以在同一模块中被调用多次,甚至被循环调用上万次,模块的位置是在软件运行时根据实时状态动态决定的。
分析报警原因也比较复杂,报警的产生是瞬时系统内部状态和外部输入共同导致的,产生异常数据的源头可能不在报警模块中,可能是多个模块组合影响的结果,这类问题采用人工分析的代价非常大。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种软件故障报警监测方法,在软件故障时导向安全处理,并且能够快速定位故障位置,分析报警原因,提高了软件的安全性和可维护性。
本发明的目的可以通过以下技术方案来实现:
一种软件故障报警监测方法,包括以下步骤:
步骤A:为每一个软件模块分配静态模块编码;
步骤B:在软件模块中为每一个故障报警信息分配一个静态故障编码;
步骤C:软件运行时在软件模块执行之前分配动态模块编码;
步骤D:在软件模块执行时首先记录当前模块编码;
步骤E:在软件模块运行时检查和搜集故障报警信息;
步骤F:检测到故障信息后将系统全部内部状态记录到外部存储器,系统导向安全处理;
步骤G:软件模块正常执行结束时擦除记录的当前模块编码;
步骤H:使用故障分析诊断工具进行分析。
所述的步骤A中的静态模块编码是全局唯一且不重复的模块标志。
所述的步骤B中的静态故障编码为在模块内部是唯一且不重复的错误标志。
所述的步骤C中的动态模块编码是由父模块A向被其调用子模块B临时分配动态模块编码。
所述的子模块在同一父模块中获得的动态模块编码是不重复的,子模块在同一父模块中被多次调用时,每次子模块将被分配唯一的且不重复的动态模块编码;同一子模块在不同父模块中被调用时,只要求子模块在同一父模块中获得的动态模块编码是不重复的。
所述的父模块通过形参传递动态模块编码给子模块。
所述的步骤D中的当前模块编码是由静态模块编码与动态模块编码组成的有序对,当前模块编码是系统运行时当前模块在父模块中执行的唯一相对路径。
存储所述的当前模块编码的集合称为模块信息序列表,每记录一条当前模块编码时,在模块信息序列表尾部插入一条数据,当模块信息序列表存满时,记录模块信息序列表溢出事件。
所述的步骤E中,在软件模块运行时检查和搜集故障报警信息具体为:在软件模块运行时检查前置、后置和不变项条件是否全部成立,结果为否定时产生异常报警,故障搜集模块将搜集所有异常报警信息。
所述的故障搜集模块首先记录自身模块编码到模块信息序列表,然后记录故障异常报警信息对应的故障编码到模块信息序列表。
所述的步骤F中系统全部内部状态是系统运行所使用的全部全局变量,包含模块信息序列表数据。
所述的步骤G具体为:没有异常报警信息发生时,模块正常执行结束,结束前最后一个动作是从模块信息序列表擦除记录的当前模块编码。
所述的从模块信息序列表擦除记录的当前模块编码具体为:
通过删除模块信息序列表尾部最后一条数据实现,当模块信息序列表为空时,记录模块信息序列表为空事件。
所述的唯一相对路径通过模块信息序列表存储的相对路径有序序列来表示,即是从系统运行的最顶层模块到当前执行模块的相对路径,按照执行顺序组成有序序列。
故障发生时异常报警信息的唯一绝对路径,通过模块执行时的唯一绝对路径,加上故障编码表示。
所述的步骤H中使用故障分析诊断工具进行分析具体为:读取外部存储器中保存的模块信息序列表数据,判断故障发生时异常报警信息的唯一绝对对路径,根据此时系统内部状态进行原因分析。
与现有技术相比,本发明具有以下优点:
本发明所述方法利用模块的相对路径组合定位报警产生的位置,能够适应复杂的程序动态调用关系,可以不限容量的增加报警事件,报告故障坐标更加精确。
采用本发明所述方法,将故障产生瞬间的系统内部状态记录到外部存储器,便于使用专用的故障分析诊断工具复现故障场景,快速分析故障原因。
附图说明
图1为本发明功能模块流程图;
图2为本发明故障报警搜集模块流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明所要解决的技术问题,是实时监测软件故障报警,并且为分析问题提供故障瞬间的软件内部状态。
如图.1所示流程是一个具有监测故障报警能力的功能模块流程图。
步骤A中,在软件设计阶段,为每一个软件模块分配静态模块编码,静态模块编码全局统一编码,只在模块内部可见和使用。
步骤B中,在软件设计阶段,每一条报警信息在模块中被分配一条静态的故障编码。
步骤C中,模块的输入参数接口中包含一个参数代表动态模块编码;模块中如果调用了子模块,每次调用的子模块将被赋予不同的编号,通过该编号是可以反向推导子模块执行的时序,该编号作为参数传递给子模块作为其动态模块编码。
步骤D中,在模块中静态模块编码和动态模块编码组合成为当前模块编码,当前模块编码代表模块在父模块中执行的唯一相对路径;功能模块执行的第一个动作是将当前模块编码记录到模块信息序列表。然后模块执行功能相关逻辑和契约检查。
步骤E中,模块执行功能相关逻辑时模块检查契约(前置条件,后置条件,不变项)是否违背,如果契约违背将生成报警信息,在检查契约之后,所有的故障报警事件都通过接口参数传输到故障搜集模块中。
如图2所示流程是故障搜集模块的处理流程。
步骤F中,故障搜集模块也通过静态模块编码和动态模块编码来唯一标识路径信息。故障搜集模块检查到故障报警时,转入软件安全侧处理;如果没有报警则返回上层模块。软件安全侧处理将中断软件正常运行,首先记录故障信息到模块信息序列表,然后设置标志位表明存在故障信息,并且将系统的全部内部状态记录到外部存储器,最后调用专用模块中断软件运行将系统导向安全侧。
步骤G中,模块正常执行的最后一个动作是将当前模块编码从模块信息序列表中删除。如果在模块的第一个和最后一个动作之间发生故障报警事件,模块的正常逻辑将不会正确执行。
其中步骤D中,向模块信息序列表写入一条模块编码时,如果模块信息序列表已满,将生成表溢出事件,如果不存在报警信息则在表尾插入一条数据。步骤G中,从模块信息序列表删除一条模块编码时,如果模块信息序列表为空,将生成表空出事件,如果不存在报警信息则在表尾删除一条数据。向模块信息序列表写入、删除一条数据在模块中是成对出现的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (16)

1.一种软件故障报警监测方法,其特征在于,包括以下步骤:
步骤A:为每一个软件模块分配静态模块编码;
步骤B:在软件模块中为每一个故障报警信息分配一个静态故障编码;
步骤C:软件运行时在软件模块执行之前分配动态模块编码;
步骤D:在软件模块执行时首先记录当前模块编码;
步骤E:在软件模块运行时检查和搜集故障报警信息;
步骤F:检测到故障信息后将系统全部内部状态记录到外部存储器,系统导向安全处理;
步骤G:软件模块正常执行结束时擦除记录的当前模块编码;
步骤H:使用故障分析诊断工具进行分析。
2.根据权利要求1所述的一种软件故障报警监测方法,其特征在于,所述的步骤A中的静态模块编码是全局唯一且不重复的模块标志。
3.根据权利要求1所述的一种软件故障报警监测方法,其特征在于,所述的步骤B中的静态故障编码为在模块内部是唯一且不重复的错误标志。
4.根据权利要求1所述的一种软件故障报警监测方法,其特征在于,所述的步骤C中的动态模块编码是由父模块A向被其调用子模块B临时分配动态模块编码。
5.根据权利要求4所述的一种软件故障报警监测方法,其特征在于,所述的子模块在同一父模块中获得的动态模块编码是不重复的,子模块在同一父模块中被多次调用时,每次子模块将被分配唯一的且不重复的动态模块编码;同一子模块在不同父模块中被调用时,只要求子模块在同一父模块中获得的动态模块编码是不重复的。
6.根据权利要求4所述的一种软件故障报警监测方法,其特征在于,所述的父模块通过形参传递动态模块编码给子模块。
7.根据权利要求1所述的一种软件故障报警监测方法,其特征在于,所述的步骤D中的当前模块编码是由静态模块编码与动态模块编码组成的有序对,当前模块编码是系统运行时当前模块在父模块中执行的唯一相对路径。
8.根据权利要求7所述的一种软件故障报警监测方法,其特征在于,存储所述的当前模块编码的集合称为模块信息序列表,每记录一条当前模块编码时,在模块信息序列表尾部插入一条数据,当模块信息序列表存满时,记录模块信息序列表溢出事件。
9.根据权利要求1所述的一种软件故障报警监测方法,其特征在于,所述的步骤E中,在软件模块运行时检查和搜集故障报警信息具体为:在软件模块运行时检查前置、后置和不变项条件是否全部成立,结果为否定时产生异常报警,故障搜集模块将搜集所有异常报警信息。
10.根据权利要求9所述的一种软件故障报警监测方法,其特征在于,所述的故障搜集模块首先记录自身模块编码到模块信息序列表,然后记录故障异常报警信息对应的故障编码到模块信息序列表。
11.根据权利要求1所述的一种软件故障报警监测方法,其特征在于,所述的步骤F中系统全部内部状态是系统运行所使用的全部全局变量,包含模块信息序列表数据。
12.根据权利要求1所述的一种软件故障报警监测方法,其特征在于,所述的步骤G具体为:没有异常报警信息发生时,模块正常执行结束,结束前最后一个动作是从模块信息序列表擦除记录的当前模块编码。
13.根据权利要求12所述的一种软件故障报警监测方法,其特征在于,所述的从模块信息序列表擦除记录的当前模块编码具体为:
通过删除模块信息序列表尾部最后一条数据实现,当模块信息序列表为空时,记录模块信息序列表为空事件。
14.根据权利要求7所述的一种软件故障报警监测方法,其特征在于,所述的唯一相对路径通过模块信息序列表存储的相对路径有序序列来表示,即是从系统运行的最顶层模块到当前执行模块的相对路径,按照执行顺序组成有序序列。
15.根据权利要求14所述的一种软件故障报警监测方法,其特征在于,故障发生时异常报警信息的唯一绝对路径,通过模块执行时的唯一绝对路径,加上故障编码表示。
16.根据权利要求15所述的一种软件故障报警监测方法,其特征在于,所述的步骤H中使用故障分析诊断工具进行分析具体为:读取外部存储器中保存的模块信息序列表数据,判断故障发生时异常报警信息的唯一绝对对路径,根据此时系统内部状态进行原因分析。
CN201710149727.XA 2017-03-14 2017-03-14 一种软件故障报警监测方法 Active CN107145422B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710149727.XA CN107145422B (zh) 2017-03-14 2017-03-14 一种软件故障报警监测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710149727.XA CN107145422B (zh) 2017-03-14 2017-03-14 一种软件故障报警监测方法

Publications (2)

Publication Number Publication Date
CN107145422A true CN107145422A (zh) 2017-09-08
CN107145422B CN107145422B (zh) 2020-08-28

Family

ID=59784137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710149727.XA Active CN107145422B (zh) 2017-03-14 2017-03-14 一种软件故障报警监测方法

Country Status (1)

Country Link
CN (1) CN107145422B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107807884A (zh) * 2017-11-07 2018-03-16 国云科技股份有限公司 一种模块化管理错误码的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949188A (zh) * 2006-09-21 2007-04-18 伍超 免复现快速问题定位及系统诊断的通用系统方法
CN101794224A (zh) * 2010-02-26 2010-08-04 中国人民解放军国防科学技术大学 一种基于性质规约模式的软件运行时性质监测方法
US20140380280A1 (en) * 2013-06-25 2014-12-25 International Business Machines Corporation Debugging tool with predictive fault location
CN106383759A (zh) * 2016-08-31 2017-02-08 福建联迪商用设备有限公司 一种便于跟踪和定位支付终端故障的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949188A (zh) * 2006-09-21 2007-04-18 伍超 免复现快速问题定位及系统诊断的通用系统方法
CN101794224A (zh) * 2010-02-26 2010-08-04 中国人民解放军国防科学技术大学 一种基于性质规约模式的软件运行时性质监测方法
US20140380280A1 (en) * 2013-06-25 2014-12-25 International Business Machines Corporation Debugging tool with predictive fault location
CN106383759A (zh) * 2016-08-31 2017-02-08 福建联迪商用设备有限公司 一种便于跟踪和定位支付终端故障的方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107807884A (zh) * 2017-11-07 2018-03-16 国云科技股份有限公司 一种模块化管理错误码的方法

Also Published As

Publication number Publication date
CN107145422B (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
US10102113B2 (en) Software test automation systems and methods
CN112436968B (zh) 一种网络流量的监测方法、装置、设备及存储介质
Papadopoulos et al. Model-based synthesis of fault trees from matlab-simulink models
US7975262B2 (en) Error tracing with context history
CN109284251A (zh) 日志管理方法、装置、计算机设备以及存储介质
US20150143182A1 (en) Varying Logging Depth Based On User Defined Policies
CN105095052B (zh) Soa环境下的故障检测方法及装置
CN110209684A (zh) 数据库ddl变更操作的跟踪方法、装置、系统及介质
CN108804326B (zh) 一种软件代码自动检测方法
CN114090647A (zh) 一种电力通信设备缺陷关联性分析方法及缺陷排查方法
CN109656894A (zh) 日志规范化存储方法、装置、设备及可读存储介质
CN113434346B (zh) 一种差分信号极性连接的自动检测方法及系统
CN105825641A (zh) 一种业务报警方法和装置
CN107145422A (zh) 一种软件故障报警监测方法
CN109445304A (zh) 一种基于车载信号的故障智能分析系统及方法
CN117312290A (zh) 一种提高异构系统数据质量的方法
CN106886471A (zh) 一种基于linux中磁盘的读写故障检测方法及系统
CN103197961B (zh) 一种基于rfid的物联网数据处理流程自动生成方法
CN112131090B (zh) 业务系统性能监控方法及装置、设备及介质
CN111599174B (zh) 一种交通指标的异常检测方法和电子设备
CN114880670A (zh) 一种终端安全数据指标可视化系统
CN111083123B (zh) 一种设备故障处理方法、装置、电子设备和存储介质
CN112187527A (zh) 微服务的异常定位方法、装置、电子设备及可读存储介质
US9852046B1 (en) Method and system for automated debugging memory allocation and memory release
CN109271306A (zh) 基于故障注入的寿命试验方法、装置、设备及介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1241487

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant