一种面向复杂软件密集型系统的故障分类方法技术方案

技术编号:16101690 阅读:33 留言:0更新日期:2017-08-29 22:28
本发明专利技术针对现有的软件故障分类方法没有考虑复杂软件密集型系统新特性的问题,提出了一种面向复杂软件密集型系统的故障分类方法,该方法充分考虑复杂软件密集型系统的新特性如逻辑复杂性、边界腐蚀性等,通过生命周期、故障类别等五个维度对故障进行分类,采用人工判定加机器自动化标识的方式来确定故障分类中各个分类属性值。本方面方法提高了对软件密集型系统故障类别划分和认知的准确程度和精细程度,为针对该类型系统的故障注入研究以及失效机理研究提供基础。

【技术实现步骤摘要】
一种面向复杂软件密集型系统的故障分类方法
本专利技术涉及软件系统故障分类
,尤其涉及一种复杂软件密集型系统的故障分类研究的技术。
技术介绍
随着计算机软件以及互联网技术飞速发展,软件与其它软件、系统、设备、传感器、人的交互日益密切,因此出现了软件密集型系统的概念。软件密集型系统是指在系统的设计、构建、部署与演化过程中,软件起着核心作用的系统,如而在美国国防部计划中的全球信息网格(GIG)、Boeing777客机飞机信息管理系统(AIMS)等。复杂软件密集型系统尤其是国防军事领域的安全关键软件系统,一旦发生失效,将会造成不可估量的后果影响。复杂软件密集型系统复杂度相对于传统的软件系统,其面向的任务的多样性系统、外部环境的易变性、设计部署的复杂性都达到了一个前所未有的程度。而且复杂软件密集型系统由于其逻辑复杂性、边界腐蚀性、长寿性与失效常态性导致其出现与传统软件系统不同的故障类型,如由于内部模块间的交互、传播出现的涌现性故障、由于软件与硬件或环境交互异常导致的交互性故障、由于长期运行过程中逐渐积累的因为不同演化策略及动态配置策略偏离软件属性约束而导致的演化性故障等。为认识、管理、预测和消除复杂软件密集型系统中的故障,对其故障进行分类是基础但是重要的一步。专利技术人发现现有的软件故障分类技术存在如下问题:现有对软件故障的分类方法是针对传统的软件系统提出的,并没有考虑复杂软件密集型系统的特性。如复杂软件系统密集型系统对硬件或环境的交互越来越频繁,系统中软件与硬件或环境交互而产生的异常行为逐渐成为复杂软件密集型系统失效的重要原因。到目前为止,还没有一种从复杂软件密集型系统各种新特性角度出发对其故障进行分类的方法。
技术实现思路
本专利技术提供一种面向复杂软件密集型系统故障分类研究的技术,考虑复杂软件密集型系统的特征,使得故障描述信息更加精细充分,为后续对软件故障进行分析研究保留足够清晰的信息。为达到上述目的,本专利技术的实施例采用如下步骤。步骤1,获取故障报告或者故障管理中心库中的故障信息,对得到的不同格式故障报告信息进行预处理,从不同形式的原始故障报告中提取出故障分类所需的信息。故障F预处理后具体包括:故障名称Name,故障发生的时间信息Time,故障发生的位置Location,故障描述信息Description等。因此经过预处理的故障F可以表示为F(Name,Time,Location,Description)。后续步骤,利用故障F中的相关信息从生命周期L、故障影响E、故障强度S、故障类别T、故障表现形式C共5个属性对故障进行描述,这个5个属性共同构成该故障的分类描述。即可用向量VF=<K,E,S,T,C>描述出故障F的分类。分类过程即为确定向量各个属性值的过程。步骤2,将得到的故障发生的时间信息Time与软件生命周期划分描述文件进行模糊匹配,标识待分类故障所处的软件生命周期L。步骤3,根据故障发生的位置Location可以确定故障影响的范围,确定是“内部影响”还是“外部影响”。结合故障描述信息Description,进一步确定故障范围E。步骤4,将故障按照强度划分为5个级别,即I级、II级、III级、IV级、V级。故障强度越大表示导致软件失效的可能性越大并且失效导致的后果也越严重,其中I级表示故障强度最低。故障强度的划分需要结合软件系统的设计文档、需求描述文档等,甚至需要通过做仿真实验等手段来确定故障强度S。当然,工程上一种简化的做法可以是从历史数据,根据相似故障类型失效可能性来确定当前故障强度。步骤5,根据故障描述信息Description,根据我们归纳总结的对于复杂软件密集型系统常见的故障类型来对标识故障类别T。步骤6,根据故障描述信息Description,利用文本数据机器学习算法进行故障表现形式C的确定。本专利技术的优点和积极效果在于。(1)根据复杂软件密集型系统区别于传统的软件系统的新特性如逻辑复杂、边界腐蚀等,本专利技术采用多维度划分方法,通过生命周期、故障类别等5个维度对故障进行划分,从而使得软件密集型系统故障类别划分更加细致,对于复杂软件密集型系统的研究如复杂软件密集型系统故障注入研究或者是失效机理研究等具有重要意义和帮助。(2)本专利技术采用人工判断加机器自动化标识结合的方式来确定故障分类中各个分类属性值,在面对复杂软件密集系统大规模的故障信息分类时在效率方面有一定的优势。随着积累的分类数据的增加,通过机器学习方法逐步提高自动化对故障分类的精确度,人工参与的比例可以越来越低,从而更加提高该方法的自动化程度。附图说明为了更加清楚地说明本专利技术实施例或技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。图1为本专利技术软件故障分类方法的流程图。图2为故障表现形式数据训练器获取流程。图3为根据训练器故障表现形式获取流程。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术所提出的方法,下面通过具体实施方式对本专利技术做进一步的详细和深入描述。内存泄漏(MemoryLeak,以下简写为ML)是常见的一种故障。本方面以一个ML故障为例子进行方法说明。其中该ML故障用自然语言描述如下。第82号缺陷(编号#82),部署到实际环境,系统持续运行一段时候后,软件高精度计算模块占用CPU资源越来越多。步骤1:对该用自然语言描述的故障进行预处理分析后,得到F(Name,Time,Location,Description)=F(82,“系统持续运行一段时间后”,“软件高精度计算模块”,“占用CPU资源越来越多”)。步骤2:利用提现设定好的软件生命周期划分描述文件与故障发生时间进行模糊匹配。软件生命周期划分描述文件如表1所示。表1软件生命周期划分结果。为实现该过程的自动化在模糊匹配之前,需要对故障F中的故障发生时间信息Time的描述语句进行词法分割,该分割过程可以借助词法分析器如Lex或Flex等进行。如本例中Time的描述语句为“系统持续运行一段时间后”,该字符流进行入词法分析器之后产生一系列Token流“系统”、“持续”,“运行”,“一”,“断”,“时间”、“后”。将这些生成的Token流和表1中关键字/搜索规则(Keyword)进行模糊匹配,其中关机子/搜索规则中“&”表示“与”的关系。匹配过程如下所示:for(Token流中的字符串Tokenstring)for(Keyword中的字符串Keystring)if(模糊匹配(Tokenstring,Keystring)==true){记录下Keyword对应的软件生命周期阶段;}匹配结束之后,对模糊匹配记录的结果对匹配结果排序,匹配命中次数最高的软件生命周期作为该故障对应的软件生命周期。在本例中,“系统持续运行一段时间”对应于运行维护阶段的平稳阶段。步骤3,根据故障发生位置信息Location可以故障影响范围。影响范围涉及到软件设计、需求确定等内容的理解,因此在该步骤需要和系统设计人员、分析人员、测试人员等进行交流合作才能较为准备地确定故障的影响范围。表2提供了一个划分结果作为内置的参考模板。表2故障影响划分结果。对故障影响的划分按照最严重的情况确定。其中内部影响的严重程度排序为。SE(软件单节点影响)<LE(软件局部影响)<SE(软件系统级影响)如本文档来自技高网
...
一种面向复杂软件密集型系统的故障分类方法

【技术保护点】
一种面向复杂软件密集型系统的故障分类方法,其特征在于,对复杂软件密集型型系统中的故障,刻画分类步骤如下:步骤一:故障信息获取和预处理;获取故障报告或者故障管理中心库中的故障信息,对信息预处理,得到故障F,将其表示为F(Name,Time,Location,Description),其中Name表示故障名称,Time表示故障发生的时间信息,Location表示故障发生的位置,Description表示故障描述信息。步骤二:分析提取故障所处的软件生命周期;将得到的故障发生的时间信息Time与软件生命周期划分描述文件进行模糊匹配,标识待分类故障所处的软件生命周期L。步骤三:分析确定故障影响范围;根据故障发生的位置Location可以确定故障影响的范围,确定是“内部影响”还是“外部影响”。结合故障描述信息Description,进一步确定故障范围E。步骤四:分析确定故障强度;结合软件系统的设计文档、需求描述文档等,甚至需要通过做仿真实验等手段来将故障按照故障强度分为I级、II级、III级、IV级、V级共5级,分别表示软件失效的可能性越来越高以及失效导致的后果越来越严重。步骤五:标识故障类别;根据故障描述信息Description,根据我们归纳总结的对于复杂软件密集型系统常见的故障类型来对标识故障类别T。步骤六:分析确定故障表现形式;根据故障描述信息Description,利用文本数据机器学习算法进行故障表现形式C的确定。...

【技术特征摘要】
1.一种面向复杂软件密集型系统的故障分类方法,其特征在于,对复杂软件密集型型系统中的故障,刻画分类步骤如下:步骤一:故障信息获取和预处理;获取故障报告或者故障管理中心库中的故障信息,对信息预处理,得到故障F,将其表示为F(Name,Time,Location,Description),其中Name表示故障名称,Time表示故障发生的时间信息,Location表示故障发生的位置,Description表示故障描述信息。步骤二:分析提取故障所处的软件生命周期;将得到的故障发生的时间信息Time与软件生命周期划分描述文件进行模糊匹配,标识待分类故障所处的软件生命周期L。步骤三:分析确定故障影响范围;根据故障发生的位置Location可以确定故障影响的范围,确定是“内部影响”还是“外部影响”。结合故障描述信息Description,进一步确定故障范围E。步骤四:分析确定故障强度;结合软件系统的设计文档、需求描述文档等,甚至需要通过做仿真实验等手段来将故障按照故障强度分为I级、II级、III级、IV级、V级共5级,分别表示软件失效的可能性越来越高以及失效导致的后果越来越严重。步骤五:标识故障类别;根据故障描述信息Description,根据我们归纳总结的对于复杂软件密集型系统常见的故障类型来对标...

【专利技术属性】
技术研发人员:叶千陆民燕李璐祎
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

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

1