首页> 中国专利> SFMEA与SFTA逆向综合分析辅助方法

SFMEA与SFTA逆向综合分析辅助方法

摘要

本发明是一种SFMEA与SFTA逆向综合分析辅助方法,属于软件可靠性与安全性分析领域。本方法的内容主要包括了功能结构图、数据流图、控制流程图对故障树的辅助构建和对SFMEA的辅助,其中对故障树构建的辅助是本发明的重点内容。获取功能结构图、数据流图和控制流程图,确定顶事件,分别或者综合利用功能结构图、数据流图和控制流程图辅助构建故障树,利用功能结构图和数据流图辅助SFMEA。本方法通过利用功能结构图、数据流图和控制流程图对SFMEA和SFTA逆向综合分析的辅助,能够有效地降低分析难度、理清分析脉络、使得分析更加充分。

著录项

  • 公开/公告号CN103970656A

    专利类型发明专利

  • 公开/公告日2014-08-06

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201410193908.9

  • 发明设计人 张虹;赵金富;徐莉莉;

    申请日2014-05-08

  • 分类号G06F11/36;

  • 代理机构北京永创新实专利事务所;

  • 代理人祗志洁

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-17 00:55:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-29

    未缴年费专利权终止 IPC(主分类):G06F11/36 授权公告日:20161207 终止日期:20170508 申请日:20140508

    专利权的终止

  • 2016-12-07

    授权

    授权

  • 2014-09-03

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20140508

    实质审查的生效

  • 2014-08-06

    公开

    公开

说明书

技术领域

本发明属于软件可靠性与安全性分析领域,涉及故障树分析技术,具体涉及一种对软件 失效模式和影响分析(Software Failure Mode and Effects Analysis,简称SFMEA)与软件故障树 分析(Software Fault Tree Analysis,简称SFTA)逆向综合分析进行辅助的方法。

背景技术

目前在软件可靠性与安全性分析领域,SFMEA与SFTA是两种常见的软件可靠性分析方 法,并且有相关的辅助工具的支持,可以通过一些自动化工具来实现,极大地加快了软件可 靠性分析的速度,分析也更加全面,在工程中得到了广泛的应用。但是由于它们各自的一些 特点,导致它们独自进行分析时存在不可避免的缺陷如顶事件的遗漏、失效原因间缺乏逻辑 联系、定量分析困难等。这些问题在当今的软件可靠性及安全性分析过程中经常出现,导致 了一些重大软件事故的出现。为解决这些问题,基于SFMEA与SFTA两种分析方法的特点, 有人提出了将SFMEA与SFTA综合起来进行分析的方法,得到很多人的认可并在应用中发 挥了明显的优势。

基于SFMEA与SFTA各自优缺点,将SFMEA与SFTA进行综合,通过对SFTA底事件 进行SFMEA分析,可以解决SFTA顶事件遗漏问题,也是对SFTA过程进行一个逆向的检 查;使得传统的两种方法能够有机地结合起来对软件进行较全面而系统的分析,可以达到定 量分析与定性分析的综合效果。此方法以SFTA为主,由SFTA分析出失效底事件,根据底 事件的失效模式进行SFMEA,形式上看,是一种从SFTA到SFMEA的过程,称为SFMEA 与SFTA逆向综合分析方法,如图1所示,具体的实施方法如下:

(1)根据软件安全性要求或者风险分析结果,推导出故障树的顶事件,选取一个或多个 顶事件,建树;

(2)分析故障树,求解最小割集;

(3)对底事件进行SFMEA分析。在时间有限的情况下,通常根据最小割集的求解结果, 选取重要的底事件进行SFMEA。底事件重要程度的划分原则是:a)阶数越小的最小割集越 重要;b)在低阶最小割集中出现的底事件比高阶最小割集中的底事件重要;c)在最小割集 阶数相同的情况下,在不同最小割集中重复出现次数越多的底事件越重要。

(4)根据SFMEA结果修正故障树,制定改进措施。

(5)如果由SFMEA分析得到的新的顶层影响,其严酷度等级较高,则需要以此作为顶 事件建立一棵新树重复上述的步骤继续分析,直至不再出现严酷度高于限定值的潜在顶层影 响为止。

SFMEA与SFTA逆向综合分析在很大程度上解决了SFMEA与SFTA单独进行分析时 的缺点,但同时兼顾两种分析方法,用到两种分析思路,使得分析的复杂度和难度增加。

发明内容

本发明的目的是要解决SFMEA与SFTA逆向综合分析缺乏分析依据、思路不清晰的难 题,为了降低分析的难度与复杂度,提供了一种SFMEA与SFTA逆向综合分析辅助方法。 该辅助方法旨在提高SFMEA与SFTA逆向综合分析的速度与质量,使得分析更加的充分。

本发明提供的SFMEA与SFTA逆向综合分析辅助方法,利用软件功能结构图、数据流 图和控制流程图对SFMEA和SFTA逆向综合分析进行辅助,具体实施步骤如下:

步骤1、获得软件的功能结构图。功能结构图根据《软件需求规格说明书》中软件的功 能结构和层次分解关系获得。功能结构图由上到下逐层分解,直到分解至《软件需求规格说 明书》中所示的最小的功能模块,对各个功能模块进行编号。

步骤2、获得软件的数据流图。根据《软件需求规格说明书》,数据流图采用由上到下逐 层分解的方式为功能结构图中的每一层模块建立数据流程关系,直至最底层的模块。数据流 图中的功能模块采用与功能结构图中相同的编号。

步骤3、获得软件的控制流程图。根据《软件需求规格说明书》,控制流程图采用由上到 下逐层分解的方式为功能结构图中的每一层模块建立控制流程关系,直至最底层的模块。控 制流程图中的功能模块采用与功能结构图相同的编号。

步骤4、获得顶事件,分析与其相关的功能结构图、数据流图和控制流程图,准备建立 故障树;

步骤5、利用功能结构图、控制流程图和数据流图辅助构建故障树;包括了步骤5.1~步 骤5.3;

步骤5.1:利用功能结构图对故障树的构建进行辅助,功能结构图为故障树构建提供分析 线索与层次关系,具体是:对于顶事件,分析功能结构图中顶层的功能模块,识别出可能导 致顶事件的功能模块故障,作为顶事件的直接原因事件;对于某一个中间事件,在功能结构 图找到其所对应的功能模块,则该事件可能是该功能模块的子模块故障造成的,分析该功能 模块的子模块,将子模块的故障作为该中间事件的原因事件;

步骤5.2:利用数据流图对故障树的构建进行辅助,数据流图为故障树的构建提供了故障 原因追溯的线索,具体是:软件故障的直接表现形式是输出故障,在数据流图中采用沿着数 据流逆向回溯的方式来查找故障原因;对于某一个输出故障,可能是由于产生该输出数据的 功能模块的逻辑处理故障,和/或是该功能模块的输入数据故障造成的,可将这些故障事件作 为该输出故障的原因事件;对于功能模块的逻辑处理故障,可在其下层的子功能模块中分析 其故障原因,利用下层子功能模块的数据流,从输出故障开始分析,按上面的思路沿着数据 流逆向回溯,进一步查找故障原因;对于输入数据故障,如果该数据为与之相交联的功能模 块所产生的输出,可按照上述方法继续分析其故障原因,直至被分析软件边界的输入数据。

步骤5.3:利用控制流程图对故障树的构建进行辅助,控制流程图为追溯故障原因、确定 事件间逻辑关系提供了分析线索,具体是:对于某一个中间事件,可能是由于该中间事件对 应的功能模块下层中的某些子功能模块故障造成的,利用下层的控制流程图,分析该流程中 的功能模块,将可能的故障作为中间事件的原因事件;同时根据控制流程图中各个功能模块 之间的逻辑关系,来辅助确定原因事件间的逻辑关系,由此进一步的补充和完善故障树。

功能结构图、数据流图和控制流程图可以单独地对故障树的构建进行辅助,也可以将这 些辅助技术综合起来,逐步地对故障树进行辅助构建。根据步骤5.1~步骤5.3所述的方法辅 助建立故障树,并通过调整与补充,得到最终的故障树。

相对于现有技术,本发明的优点和积极效果在于:本发明提出利用软件功能结构图所表 现出的功能间的层次关系、数据流图中数据的交互关系和控制流程图中的功能实现过程对 SFMEA与SFTA逆向综合分析进行指导,辅助SFTA中故障树的构建,对SFTA所获得的重 要的中间事件和底事件进行SFMEA;利用功能结构图、数据流图和控制流程图对SFMEA的 影响进行分析,将严重的影响作为顶事件再进行故障树分析。相对现有技术通过经验分析失 效模式来获取顶事件,本发明通过利用功能结构图、数据流图和控制流程图对SFMEA和SFTA 逆向综合分析的辅助,能够降低分析难度、清晰分析脉络、使得分析更加全面。

附图说明

图1是SFMEA与SFTA逆向综合分析的示意图;

图2是本发明实施例软件功能结构图;

图3是本发明实施例软件数据流图;

图4是本发明实施例软件控制流程图;

图5是本发明利用三种图对SFMEA和SFTA逆向综合分析进行辅助的示意图;

图6是本发明SFTA辅助方法中功能结构图对SFTA的辅助流程示意图;

图7是本发明SFTA辅助方法中数据流图对SFTA的指导与验证作用示意图;

图8是本发明SFTA辅助方法中控制流程图对故障树构建指导作用示意图;

图9是本发明通过控制流程图对图7中所得故障树调整、补充与完善后得到故障树;

图10是本发明利用功能结构图对SFMEA的辅助的示例图;

图11是本发明利用数据流图在SFMEA中辅助的示例图。

具体实施方式

下面结合附图对本发明的技术方案进行具体说明。

本发明利用软件的功能结构图、控制流程图和数据流图对SFMEA和SFTA的逆向综合 分析中故障树的构建、割集的获取、重要事件的SFMEA等过程进行辅助,提供一种软件故 障树分析辅助方法,旨在明晰分析结构,提供分析依据,有效地降低分析难度、提高分析的 速度与质量,完善分析过程。本发明的实施过程包括了以下两部分:功能结构图、数据流图 与控制流程图的获得与处理;功能结构图、数据流图和控制流程图对逆向综合分析的辅助。 《软件需求规格说明书》中通常都记载了一些功能结构图、控制流程图和数据流图,但本发 明需要绘制功能结构图中每个层次的模块之间的数据交互关系和控制流程,所以需要根据《软 件需求规格说明书》内容完善得到软件的控制流程图和数据流图。

本发明的软件故障树分析辅助方法,利用软件功能结构图、数据流图和控制流程图对 SFMEA和SFTA逆向综合分析进行辅助,具体包括如下步骤1至步骤5,下面结合附图具体 说明。

步骤1、获得软件的功能结构图。根据《软件需求规格说明书》中的软件功能的层次分 解关系和一些软件功能结构图来获得软件完整的功能结构图。《软件需求规格说明书》明确地 标识出了软件功能的分解关系,根据这种功能分解关系和已知功能结构图可以对软件从上到 下逐层分解,得到软件各个功能模块的功能结构图。功能结构图具有如下特点:功能结构图 分解至《软件需求规格说明书》所示最小的功能模块为止;对功能模块按层次进行编号,如 功能模块1.1.1,其意义为“功能1”中“模块1”的“功能单元1”,通过编号以便于进行层 次的确认与分析。

功能结构图利用《软件需求规格说明书》中标识的软件功能层次关系对应得到,该图显 示出了软件自上向下的所有的功能层次结构,有着明确的层次性,最上层为软件整体层,第 二层为该软件所有的功能模块,第三层为第二层各个功能的子功能,第四层为第三层各个功 能的子功能,如此向下,下面的每一层都是对上层进一步的细化。图2为部分功能结构图。

步骤2、获得软件的数据流图。根据《软件需求规格说明书》为功能结构图中每一层的 功能模块建立数据交互关系。数据流图采用由上到下逐层分解的方式细化,逐层向下分解到 最小的功能模块,如图3所示,由上而下逐步细化,建立不同层次的数据流图;数据流图中 的功能模块使用功能结构图中相同的编号。

步骤3、获得软件的控制流程图。根据《软件需求规格说明书》为功能结构图中每一层 次的模块建立控制流程关系,控制流程图采用由上到下逐层分解的方式进行细化,逐层向下 分解到需求中最小的功能模块;控制流程图中的功能模块采用与功能结构图中相同的编号, 如图4所示。

步骤4、获得顶事件,分析与其相关的功能结构图、数据流图和控制流程图,准备建立 故障树;

步骤5、根据步骤1到3得到的软件功能结构图、数据流图和控制流程图辅助构建故障 树。如图5所示。

步骤5.1:利用功能结构图对故障树的构建进行辅助,功能结构图为故障树构建提供分析 线索与层次关系,具体是:对于顶事件,分析功能结构图中顶层的功能模块,识别出可能导 致顶事件的功能模块故障,作为顶事件的直接原因事件;对于某一个中间事件,在功能结构 图找到其所对应的功能模块,则该事件可能是该功能模块的子模块故障造成的,分析该功能 模块的子模块,将子模块的故障作为该中间事件的原因事件;

功能结构图中某一个功能模块故障,有可能是其子模块发生了故障。顶事件对应的功能 模块故障,可能是其下层的子模块出现了故障,通过分析这些子模块,将可能的故障模式作 为顶事件的原因事件;同理,某一中间事件,可能是由其对应的功能模块的子模块故障所造 成,分析这些子模块的故障模式,将导致该中间事件发生的故障模式作为该中间事件的原因 事件。由此类推,直至到达功能结构图中的最底层模块。但是此时并不能确定这些事件之间 的逻辑关系,也就无法确定逻辑门。如图6所示,软件系统被分解为功能1、功能2与功能3 三个模块。根据前面的分析,顶事件的发生,有可能是某一个模块发生故障所导致的,分别 分析功能1、2、3可能会导致顶事件发生的故障,作为顶事件的原因事件,得到图6中顶事 件下第一层事件;在将功能2分解后,得到功能2.1、2.2、2.3,以同样的方式分析得到第二 层事件;同理,得到第三层事件;然后根据故障原因间的关系,为事件添加逻辑关系。

步骤5.2:利用数据流图对故障树的构建进行辅助,数据流图为故障树的构建提供了故障 原因追溯的线索,具体是:软件故障的直接表现形式是输出故障,在数据流图中采用沿着数 据流逆向回溯的方式来查找故障原因;对于某一个输出故障,可能是由于产生该输出数据的 功能模块的逻辑处理故障,和/或是该功能模块的输入数据故障造成的,可将这些故障事件作 为该输出故障的原因事件;对于功能模块的逻辑处理故障,可在其下层的子功能模块中分析 其故障原因,利用下层子功能模块的数据流,从输出故障开始分析,按上面的思路沿着数据 流逆向回溯,进一步查找故障原因;对于输入数据故障,如果该数据为与之相交联的功能模 块所产生的输出,可按照上述方法继续分析其故障原因,直至被分析软件边界的输入数据。

如图7所示:顶事件由错误的输出数据O1所导致,则首先确定产生该O1的模块为功能 3,功能3的输入数据有I2、A2、A3,分析输入数据的故障,确定了事件:功能3故障、A2 数据故障、A3数据故障、I2数据故障,然后根据事件间的关系,确定逻辑门。然后分析数据 A2的产生原因:功能1故障或I1数据故障,将其作为A2数据故障的原因事件。同理得到 A3数据故障的原因事件。根据功能2的数据流程来确定事件功能2故障的原因,功能2故障 产生的直接原因是A3数据故障,产生A3数据的模块为功能2.2和功能2.3,功能2.2的输入 数据为B1,功能2.3的输入数据为B2,分析它们的故障模式得到功能2的原因事件;分析功 能2.2故障的原因,功能2.2内部数据流图中包括了功能2.2.1、2.2.2、2.2.3,内部数据C1、 C2、A3,外界输入数据B1,沿着数据流从后向前分析,得到相关的事件,因为B1数据为外 界输入数据,不属于功能2.2故障原因,但为了符合我们的分析方法,这里将B1数据故障虚 线标示。

步骤5.3:利用控制流程图对故障树的构建进行辅助,控制流程图为追溯故障原因、确定 事件间逻辑关系提供了分析线索,具体是:对于某一个中间事件,可能是由于该中间事件对 应的功能模块下层中的某些子功能模块故障造成的,利用下层的控制流程图,分析该流程中 的功能模块,将可能的故障作为中间事件的原因事件;同时根据控制流程图中各个功能模块 之间的逻辑关系,来辅助确定原因事件间的逻辑关系,由此进一步的补充和完善故障树。

如图8所示,顶事件的发生可能是功能1、2、3中某个发生故障引起的,通过分析,得 到事件:功能1故障、功能2故障、功能3故障,并将这些故障模式作为顶事件的原因事件; 同时由于功能1、2、3之间为顺序执行关系,任何一个发生故障都可能造成顶事件的发生, 因此暂且将事件之间的关系定为“或门”(真实的逻辑门还需要视具体情况而定)。对于事件 “功能2故障”,查看其功能实现流程,得到功能2.1故障与功能2.2故障,根据判断条件与 功能2.1、2.2之间的关系,暂且将功能2.1故障与功能2.2故障之间的关系定为“与门”(真 实的逻辑门还需要视具体情况而定)。同理,对于功能2.1故障,查看其功能实现流程,得到 事件:功能2.1.1故障、功能2.1.2故障、功能2.1.3故障,然后根据他们之间的执行顺序辅助 确定事件间的逻辑关系,如图8中所示。

功能结构图、数据流图和控制流程图可以单独地对故障树的构建进行辅助,也可以将这 些辅助技术综合起来,逐步地对故障树进行辅助构建。如图9所示的是利用控制流程图对步 骤5.2中的故障树的调整、补充与完善,包括了:为事件间添加逻辑关系、调整事件间的层 次关系、将最底层的B1数据故障去除,在第一层事件中添加“条件判断故障”。

由此,根据步骤5.1~步骤5.3所述的方法辅助建立故障树,并通过调整与补充,得到最 终的故障树。

下面利用得到的故障树,继续进行SFMEA与SFTA逆向综合分析。

步骤6、根据步骤5构建的故障树,得到底事件与割集,对割集的重要程度进行分析, 得到重要的中间事件和底事件,这样初步完成SFTA分析。

在利用功能结构图、控制流程图和数据流图辅助构建故障树时,可以将重要事件进行标 识,然后在本步骤进行分析时以所标识的重要事件为基准,进行重要事件的选择分析。根据 分析的结果,提出改进措施,完成SFTA分析表。

步骤7、对SFTA获得的重要底事件和中间事件,进行SFMEA。获得要分析的中间事件 或底事件的失效模式,利用功能结构图和数据流图对SFMEA进行辅助分析。

功能结构图对SFMEA的辅助作用。功能结构图的层次关系直接为SFMEA中失效原因 和影响的分析提供了线索。如图10所示,以功能2.3的失效模式作为SFMEA的分析对象, 功能2.3作为功能2的子功能,功能2将直接受到影响,而功能2作为软件系统一个功能模 块也将直接影响到软件的运行。由功能2.3向下分析其子功能2.3.1和2.3.2,则可以帮助确定 其失效的原因。

数据流图对SFMEA的辅助作用。根据数据流图中的数据交互关系,能够更加全面地得 到失效数据的传递与来源,从而能够更好地帮助SFMEA进行分析。在图11中,功能3.3的 失效模式作为SFMEA的分析对象,则根据数据交互关系,功能3.3、功能3和整个软件系统 都将直接或间接地受到影响。由功能3.3向下分析其三个子功能的失效模式,最终得到失效 原因为功能3.3.3的失效。

控制流程图对SFMEA的辅助作用。根据控制流程图中功能模块间的逻辑关系,对重要 事件的失效影响和原因分析过程及其追踪过程的逻辑关系进行指导。

本发明方法利用功能结构图中的功能模块的层次关系为故障树的构建、为重要事件的 SFMEA的影响与原因的分析提供参考依据,辅助逆向综合分析的进行;利用数据流图对故障 树构建中失效原因及影响的分析、事件的确定提供辅助,对重要事件进行SFMEA时失效原 因及影响的追踪分析等提供参考依据与分析线索,完善分析脉络;利用控制流程图对故障树 构建过程中事件及其逻辑关系的确定进行辅助,对重要事件的SFMEA中失效影响和原因分 析过程及其追踪过程的逻辑关系进行指导,提供参考依据。

步骤8、分析得到的失效原因及失效影响,给出改进措施和影响等级,并建立SFMEA表, 利用该表对之前的SFTA表进行完善;根据相关的标准对失效影响的严酷度进行衡量,当某 事件的失效影响的严酷度超过设定阈值时,认为该事件具有严重影响,则以该事件为顶事件, 重新构建一个故障树进行SFTA,转步骤4开始分析顶事件,得到相关的功能结构图、控制流 程图和数据流图,对新的故障树构建进行辅助,完成新的故障树分析。

步骤9、根据逆向综合分析结果,得到故障树的最小割集和重要事件的SFMEA结果,提 出改进措施,完成逆向综合分析报告。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号