GO法在软件可靠性分析中的应用

时间:2022-10-19 10:00:55

GO法在软件可靠性分析中的应用

摘要:GO法是一种图形化的、以成功为导向的系统可靠性分析方法,该文介绍了GO法的基本概念及基本原理,应用GO法对学员选课系统进行可靠性分析,同时还给出采用FTA法分析的结果,通过对比两种结果来说明采用GO法进行软件系统可靠性分析的可行性。

关键词:GO法;可靠性分析

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)34-8157-03

随着计算机技术的发展,软件被广泛应用于现代社会中,同时软件也越来越复杂,而软件一旦发生故障可能会导致灾难性后果,如经济损失,甚至人员伤亡等。因此,软件的可靠性已成为评估软件系统质量的重要指标。所谓的软件可靠性分析就是在软件设计过程中,对可能发生的失效进行分析,并采取必要的措施去避免引起失效的缺陷引入软件。目前用于软件可靠性分析的方法主要有软件失效模式和影响分析(软件FMEA)和软件故障树分析(软件FTA)。

FTA一种以故障为导向、自顶向下的系统可靠性分析方法,GO法是一种以成功为导向的系统可靠性分析技术,GO法与故障树都是图形化的系统可靠性分析方法,二者对系统进行可靠性分析的步骤相似,对大多数系统来说,GO法和故障树都能进行很好地模拟,只是侧重点不同。FTA已经用于对软件系统的可靠性分析中,而GO法还是主要用于实际工程系统的可靠性分析。该文根据软件系统的特点及GO法的基本原理,尝试将GO法应用于软件系统的可靠性分析中,并采用该方法对学员选课信息修改系统进行可靠性分析,用得到的结果与采用FTA方法分析的结果进行对比,来说明GO法分析结果的正确性。

1 GO法的基本原理

GO法是一种图形化的、以成功为导向的系统可靠性分析方法,它的基本思想是把系统原理图、流程图或工程图按一定规则直接翻译成GO图。GO图中的操作符用来代表单元功能或具体的部件如阀门、电阻等,或者是代表单元输入、输出信号之间的逻辑关系;操作符用信号流连接,信号流表示系统单元的输入和输出以及单元之间的关联,或者是代表逻辑的进程。GO图是由操作符和连接操作符的信号流组成,操作符与其输入、输出信号有一定的运算规则,利用GO图和GO操作符的运算规则进行GO运算,从而得到系统的各种可靠性指标。GO法定义了17种标准的操作符,用类型1~17表示,如图1所示,图中的文字表示操作符的名称,操作符内部的数字表示类型号,箭头S代表输入信号,箭头R代表输出信号。

GO法有以下的特点: GO法直接从系统图建立GO图,GO图中的操作符直接表示系统中的部件的功能,操作符的输入、输出信号表示部件之间的关系和相互作用,因此,GO图是系统的直接模拟,GO图中的操作符和系统的部件几乎是一一对应的;GO法的定性分析可以分别确定系统成功和系统故障的事件集合;GO法可以描述系统和部件在各个时间点的状态和状态变化,可用于有时序的系统概率分析。

2 GO法在软件可靠性分析中的应用实例

软件的开发过程中,可以通过用系统流程图来描绘组成系统的每个部件,用数据流图来描绘数据在软件中流动和被处理的逻辑过程,,用程序流程图来描述程序处理过程。根据GO图的原理及特点,可以尝试从以上描述软件系统的图出发,用GO图的操作符表示软件系统的功能部件,用GO图的信号流表示系统控制流,从而构建出GO图。

2.1 系统定义和模块定义

该实例是某培训单位的学员选课信息修改系统。学员的个人选课信息都保存在“course”数据库中。学员输入正确的登录信息,通过系统安全验证后登录数据库,并修改个人的选课信息。当学员的个人选课信息被修改,数据库修改程序会批准相应的修改,并更新数据库中的数据。该系统的流程图如图2所示。该系统的模块定义如下:(1)登录模块:用来接收用户的登录信息;(2)验证模块:对用户输入的登录信息进行验证,验证通过才可以登录系统;(3)修改信息输入模块,用来接收修改信息;(4)数据库修改模块:修改数据库中的信息。

2.2 建立GO图

根据选课信息修改系统的系统流程及模块定义可知,登录界面用于接收登录信息的输入,是系统的输入,可用类型5操作符表示;系统验证模块有验证成功和失败两种状态,用类型1操作符表示;修改信息输入模块用于接收修改信息的输入,用类型5操作符表示;数据库修改模块本身有修改成功和失败两种状态,同时要输入修改信息后才能执行修改,因此用类型6操作符表示。选课信息修改系统对应的GO图如图3所示,图中操作符内部的数字分别表示操作符的类型及操作符的编号。

2.3 定性GO运算

建立GO图后,可根据操作符代表的部件特性,确定操作符的状态值及状态概率,该文只进行定性GO运算,因此未给出操作符的状态概率。选课信息修改系统操作符数据如表1所示。表中编号为1、2、3、4操作符分别用标识符A、B、C、D代表,操作符的状态值1和2分别表示成功状态和故障状态,用下标表示操作符的状态值,如A1表示操作符1的状态值为1。

确定操作符的数据后,就可以进行定性GO运算。对于简单系统,可采用状态组合法进行GO运算,即从输入操作符开始,逐个操作符按运算规则,由操作符输入信号状态和操作符的状态组合,得到输出信号的状态值。沿着信号流序列进行运算,就可以得到所有信号流的状态值和状态概率。

1)操作符1是类型5输入操作符,只有输出没有输入,其输出信号状态和输入操作符相同,所以信号流1的状态组合关系如下:

2)操作符2是类型1操作符,有2个状态,成功和故障,其输出信号状态的状态值由输入信号状态值代表的状态和操作符状态值代表的状态组合得到,如果操作符正常,输出信号的状态值就等于输入信号的状态值,如果操作符故障,则输出信号的状态值为2。信号流2的状态组合关系表中第3行和第4行状态值相同都是2,这两行的状态包括了部件B的全部状态,而状态组合中其余部分相同,因此这两行状态组合可以合并,记为A2 B。因为不带下标的B表示包括全部的状态,为了简化可以在状态组合中略去,得到合并并简化后的信号流2的状态组合表如下。

3)操作符3也是类型5输入操作符,其信号流的状态组合只有C1和C2,状态值分别为1和2。

4)操作符4是类型6操作符,有两个输入信号,信号2为主输入信号,信号3为次输入信号,表示要执行数据库修改程序必须先进入修改界面,且有正确的修改信息输入时,才更新数据库信息。操作符6的运算规则是:操作符状态值为1时,输出信号的状态值取两个输入信号值中较大的值,操作符状态值为2时,输出信号状态值也为2。经过运算后得到简化后的信号4的状态组合表如下:

表3

2.4 定性分析结果

信号流4代表系统,通过定性运算得到系统处于成功状态和故障状态的全部状态组合集,以此可以定性分析系统成功和故障的因素。选课信息修改系统定性分析结果如表4所示。不考虑系统故障的状态组合集中的成功事件,得到该系统故障的最小割集如表5所示。

文献2中为该选课信息修改系统建立的故障树如图4所示,系统底事件有4个,分别是登录界面无法显示、系统验证失败、用户无法输入信息和数据库修改程序破坏,若采用以上GO分析的标识符作为4个底事件的代码,则可用A2、B2、C2、D2依次表示4个底事件。对该故障树进行定性分析后,可得到4个一阶割集A2、B2、C2、D2,其结果与GO法分析结果完全一致。

3 结束语

应用GO法对学员选课信息修改系统进行了定性可靠性分析,通过与故障树分析法分析的结果进行对比,对比结果直观的说明了采用GO法对软件系统进行可靠性分析是可行的。

参考文献:

[1] 沈祖培,黄祥瑞.GO原理及应用―一种系统可靠性分析方法[M].北京:清华大学出版社,2004.

[2] 韩建军.基于故障树的软件分析技术(SFTA)浅析[J].科技创新导报,2007(22).

[3] 陆民燕.软件可靠性工程[M].北京:国防工业出版社,2011.

上一篇:台湾元宵节,狂欢中的“暴力”味 下一篇:云计算环境下SAS的应用