摘要:故障模式影响及危害性分析(Failure Mode Effects and Criticality Analysis─FMECA)技术是从工程实践中总结出来的科学方法,将其应用于软件领域,有助于提高软件的可靠性、安全性、维修性、保障性水平。本文详细介绍了FMECA特征,作用、目的,适用范围、使用原则等原理。
关键词:FMECA 软件质量
引言
人们对软件产品质量的认识如同对其它客观事物一样,随着社会的发展和科学技术的进步而不断演变、进化。传统的质量观强调产品“符合规定的要求”,即“符合性”;产品只要符合生产图纸和工艺规定的要求,就是好的。当代的质量观既重视产品的符合性要求,更强调产品的“适用性”要求,也就是说,产品只要在适用时能成功地适合用户的需要才是高质量的。用户的需要是多方面的,因此产品质量是产品满足规定或潜在需要的特性的总和。这些性能包括性能、可靠性、安全性、维修性、保障性、经济性等等。一个好的产品不仅要具备所需要的性能(固有能力),而且要能长期保持这种性能,使用中无故障或少故障;发生故障时要好维修,使功能得到迅速恢复,还要使用安全、易于保障,整个寿命周期费用较低等。
随着科学技术的发展,软件结构日益复杂化,研制时间不断增长、寿命周期费用不断增加,如果在使用过程中发生故障,很可能会造成无法挽回的经济损失甚至人员伤亡,树立当代质量观,不断提高产品质量,已成为国民经济和国防科技发展中引人注目的关键问题。可靠性、维修性、安全性、保障性是产品质量的重要内涵,要提高产品质量,就要从这些方面入手,从而使其具有较高的效能及较低的寿命周期费用,以达到获取最佳效费比的目的。
FMECA的特征
故障模式影响及危害性分析(Failure Mode Effects and Criticality Analysis─FMECA)是一种可靠性、安全性、维修性、保障性分析与设计技术,用来分析、审查系统及其设备的潜在故障模式,确定其对系统和设备javascript:;" onClick="javascript:tagshow(event, '%B9%A4%D7%F7');" target="_self">工作能力的影响,从而发现设计中潜在的薄弱环节,提出可能采取的预防改进措施,以消除或减少故障发生的可能性,提高系统和设备的可靠性、安全性、维修性、保障性水平。我们同样可以将其应用于软件质量管理领域。
FMECA本质上是一种定性的逻辑推理方法,通过它,可以识别故障的根本原因,确定可靠性、安全性、维修性关键部件,并提出预防改进措施,使工程设计人员对系统和设备进行优化设计,以提高系统和设备的可靠性、安全性、维修性水平,从而达到提高产品质量、减少系统生命周期费用的目的。
FMECA技术是从工程实践中总结出来的科学方法,它起源于美国。FMECA是一种有效、经济而且比较容易掌握的可靠性分析方法,所以深受广大工程设计人员的喜爱;但同时,FMECA又是一项烦琐、乏味而且非常耗时间、容易出错的工作。实际应用中,为了判别故障发生与否,需要故障判据;为了判别系统是否成功地实现其全部功能以及绘制可靠性框图,需要系统工作原理图和功能方块图;为了确定各种故障模式及原因,需要各种方案的比较及相应的工作限制;为了确定被分析系统的约定层次划分,需要从系统开始直至最低一级产品的结构、接口关系等描述。为了进行FMECA的定性和定量分析,需要有大量的可靠性信息,包括系统的可靠性分析资料、使用或实验数据;为了不断提高FMECA的分析水平,需要过去FMECA中积累的设计、工艺、生产和使用经验等等。基于这些数据,还要找出每一种潜在的故障模式以及潜在故障模式的机理,并进一步分析产品故障模式对每一约定层次上的项目功能、使用或状态所造成的故障影响;并对每一种故障模式按最坏的潜在后果确定其严酷度类别;分析或计算每一种故障模式的发生概率或危害度等等。最后,还需形成各种报表清单,包括FMEA和CA表格、各种框图、危害性矩阵等等。上述过程,其工作量和费用都是巨大的,手工作业不但因为过多的重复性劳动导致效率低下,而且也会由于标准的不同及人为的差错导致分析结果的差异,另外分析中获得的结果和数据还不能直接被引用等等。
FMECA是按规定的规则记录产品设计中所有可能的故障模式,分析每种故障模式对系统的工作及状态(包括整体完好、任务成功、维修保障、系统安全等)的影响并确定单点故障,将每种故障模式按其影响的严酷度及发生概率排序,从而发现设计中潜在的薄弱环节,提出可能采取的预防改进措施(包括设计、工艺或管理),以消除或减少故障发生的可能性,保证产品的可靠性。
FMECA由两部分工作构成,即故障模式影响分析(Failure Mode and Effects Analysis─FMEA)和危害性分析(Criticality Analysis—CA)。
FMECA通常又分析硬件法和功能法两种。目前,工程上运用最为广泛的是硬件法。
硬件法
这种分析方法根据产品的功能对每个故障模式进行评价,用表格列出各个产品,并对可能发生的故障模式极其影响进行分析。各产品的故障影响与分系统或系统的功能有关。当产品可按设计图纸及其它工程设计资料明确确定时,一般采用硬件法。这种分析方法适用于从零件级开始分析,再扩展到系统级即自下而上进行分析,然而也可以从任一层开始向任一方向进行分析。采用这种分析方法进行FMECA是较为严格的,应用也比较广泛。
功能法
这种分析方法认为每个产品可以完成若干功能,而功能可以按输出进行分类。使用这种分析方法时,将输出一一列出,并对它们的故障模式进行分析。当产品构成不能明确确定时(如产品研制初期,各部件设计未完成,无详细部件清单,无产品原理图及装配图),或当产品复杂程度要求从初始约定层次开始向下分析时,一般采用功能法。然而也可以从产品的任一层次开始向任一方向进行。这种分析方法比硬件法简单,所以可能忽略某些故障模式。
FMECA的作用及目的
实践表明,FMECA是目前最基本的、应用最广泛的、收效最大的分析设计方法。
FMECA的作用是:
(1)保证有组织地、系统地、全面地查明一切可能的故障模式及其影响,对它们应该或是已采取适当的补救措施,或是确认其风险已低于可以接受的水平。
(2)找出被分析对象的“单点故障”。所谓单点故障是指这种故障单独发生时,就会导致不可接受的或严重的影响后果。一般来说,如果单点故障出现概率不是极低的话,则应在设计、工艺、管理等方面采取切实有效的措施。产品发生单点故障的方式就是产品的单点故障模式。
(3)为制定关键项目清单或关键项目可靠性控制计划提供依据。
(4)为可靠性建模、设计、评定提供信息。
(5)揭示安全性薄弱环节,为安全性设计(例如载人飞船的应急系统、火箭地面爆炸等等)提供依据。
(6)为制定试验大纲提供信息,以便试验前作好充分检测、尽可能达到预定目的。
(7)为确定需要及时更换那些有限寿命的零部件、元器件的清单,以提供使用可靠性(包括贮存可靠性)设计的信息。
(8)为确定需要重点控制质量及生产工艺(包括采购、检验)的薄弱环节清单信息。
(9)为确定维修方案、机内测试(BIT)、测试点设计、编定维修指南、维修保障设计提供信息。
(10)为设计故障诊断、隔离及结构重组等提供信息。
(11)作为使可靠性指标符合要求的一种反复叠代的设计手段。
(12)及早发现设计、工艺中的各种缺陷,以便提出改进措施。
FMECA的目的:
(1)为确定可靠性关键件和重要件提供依据。这些产品是进行设计、工艺改进,进而提高其可靠性的重要目标,也是详细分析,可靠性增长试验、鉴定试验、应力分析和保证安全性的主要对象。
(2)有助于设计人员考虑在薄弱环节上是否采用冗余设计、元器件筛选、工艺改进、降额设计和热设计等可靠性设计技术。
(3)为确定可靠性性试验和检验的程序、方法提供重要信息。
此外,FMECA还为安全性分析与设计、维修性分析与设计、测试性分析与设计、保障性分析、以可靠性为中心的维修分析(RCMA)、试验计划的制定,质量检验点的设置,可靠性设计和评审等提供信息和技术决策依据。
FMECA的适用范围及使用原则
FMECA适用于软件产品的研制、生产和使用等各阶段,随设计的进展不断地修改,即使跟踪设计的变动。产品的故障必然和该故障的零部件之间存在着一定的因果关系。FMECA方法就是从这种因果关系出发,发现问题,找出原因,明确影响(后果),进而制定有效的改进途径。
为使FMECA卓有成效,在实施时应遵循如下原则:
(1)分析工作的及时性
FMECA的首要目的是为产品的设计改进提供有效的信息和依据。因此FMECA工作应与产品的设计同步进行,尤其应在设计的早期阶段就开始进行FMECA。这样有助于及时发现设计中的薄弱环节并为安排改进措施的先后顺序提供依据。同时,应按照产品研制阶段的不同,进行不同程度、不同层次的分析。也就是说,FMECA应及时反映设计、工艺上的变化,并随着研制阶段的展开而不断补充、完善和反复迭代。
(2)分析工作的有效性
FMECA的有效程度,取决于可利用的资料和分析人员的技术水平和经验。,因此为了提高FMECA的有效程度,FMECA工作应由设计人员完成,即贯彻“谁设计、谁分析”的原则,这里因为设计人员对自己设计的产品最了解。在分析过程中还应当充分吸收生产、管理和使用等各部门有经验的工程技术人员,特别是可靠性工程技术人员参与FMECA工作。在FMECA之前,还应当广泛收集有助于实施分析的各种信息和资料。此外,FMECA的结果可以为其它分析工作提供必要的信息,因此当其它分析工作需要FMECA的结果时,可以对FMECA的基本步骤和方法进行适地剪裁和修改,以满足这些分析的特殊要求。这可以提高FMECA的有效程度,并避免在工程研制中出现要求过多或工作重复的现象。
(3)分析工作的一致性
FMECA分析应加强规范化工作,以保证产品FMECA的分析结果具有可比性。分析开始前,产品的总设计师单位就应遵循国标GB1391的要求,结合产品特点,对FMECA的分析约定层次、故障判据、严酷度与危害度定义、分析表格、故障率数据源和分析报告要求等均应作统一规定及必要说明。若承制单位或转承制单位为寻找所负责产品(系统或设备)的薄弱环节、关键部件而需进行FMECA,亦应作好统一要求,尤其对故障影响层次、严酷度定义更应作出明确规定。
(4)分析结果的可跟踪性
依据FMECA结果,所制定出相应的改进措施是否会引发系统新的故障?其效果如何?以及所找出的产品故障是否全面而无遗漏等问题,均应从管理角度对FMECA的分析结果进行跟踪与分析,以验证其正确性和改进措施的有效性。这种跟踪分析的过程,也是FMECA反复叠代、逐步积累工程经验的过程。这个过程也是对系统再认识、再理解的过程,这种认识和理解最终体现在FMECA技术报告中。一套完整的FMECA资料,是各方面经验的积累和总结,是宝贵的工程财富,应当不断积累并归档,以备查考。
(5)分析方法的综合性
为了有效地进行故障分析,可以视工程研制中的需要与可能采用FMECA和其他技术的综合分析方法,以取长补短,更全面地找出系统的薄弱环节,并针对每个薄弱环节制定相应的设计、工艺和使用补偿措施。这对减少产品设计、工艺缺、保证研制进度、降低费用具用重要作用。在复杂软件项目研制中,应该普遍地开展FMEA或FMECA工作,进而针对其中发现的系统重大故障后果有重点地进行FTA。此外,值得再次强调的是,FMECA和FTA虽都是有效的可靠性、安全性和维修性分析方法,但并非万能。它们不能代替其它可靠性分析工作。特别应注意,FMECA和FTA均是静态分析方法,在动态分析方面还不完善,若对系统实施全面的分析还应与时间序列有关的方法(如事件树分析)相结合。
结束语
软件系统的可靠性、安全性、维修性问题越来越受到人们的重视,FMECA作为其中的一个核心内容,它是FTA、维修分析、测试分析等的基础,但它又是一项耗时、容易出错的工作,所以针对这些问题,国内外开始研究仿真技术、因果推理和专家系统在FMECA中使用。但由于FMECA本质是定性的和系统模型比较难描述、故障数据很难收集,所以目前这方面的工作主要在某些电路中得到使用,很难在工程中应用推广,在软件质量领域的应用就更少了。但我们认为,让FMECA朝着这些方向发展,是具有很大实际意义的。