北京航空航天大学工程系统工程系2009-5-6软件FMEA软件FMEA通过识别软件失效模式,分析造成的后果,研究分析各种失效模式产生的原因,寻找消除和减少其有害后果的方法,以尽早发现潜在的问题,并采取相应的措施,从而提高软件的可靠性和安全性。2目标1.什么是软件FMEA,有何特点?2.何时开展软件FMEA,软件FMEA的分析对象,方法类型3.如何进行软件FMEA分析3内容1.软件FMEA相关基本概念2.软件FMEA的分析阶段与级别3.软件FMEA分析方法类型4.系统级软件FMEA分析方法5.系统级软件FMEA实例4概述FMEA是一种传统的可靠性、安全性分析方法,在硬件的可靠性工作中已获得了广泛的应用,对提高硬件的可靠性、安全性发挥了重要作用。软件FMEA概念的提出始于1979年,近年来软件FMEA的应用有逐步增多的趋势,主要集中在嵌入式软件领域,并成功应用于安全关键领域,如医疗仪器、军用产品、汽车业等。5z是测试技术吗?z属于静态还是动态测试技术?z从发现的问题类型的角度和其他静态测试技术有何不同?关于SFMEA的几个问题6z不执行程序而发现缺陷,因此属于静态测试技术z可以在早期发现需求的问题、设计的缺陷,体现了尽早检测的原则z和其他审查、评审等静态方法配合使用,可尽早、尽可能多的发现需求、设计的缺陷概述7相关基本概念8z软件失效(softwarefailure):软件失效就是泛指程序在运行中丧失了全部或部分功能、出现偏离预期的正常状态的事件。如死机,计算结果错误。软件失效是由软件的缺陷引起的。z软件失效模式(softwarefailuremode):软件失效模式指软件失效发生的不同方式。例如输出结果错误,或精度不满足要求。失效、失效模式9z软件失效影响(softwarefailureeffect):软件失效的影响是指软件失效模式对软件系统的运行、功能或状态等造成的后果。例如软件失效会影响任务的完成或造成设备的损坏。z失效严酷度(severity):失效严酷度指失效模式所产生后果的严重程度。最严重的失效影响可能导致人员死亡、对环境造成灾难性后果,而轻微的失效影响仅降低使用的舒适性、方便性等。失效影响、失效严酷度10分析阶段及分析对象11z分析阶段:可用于软件开发后期的可靠性分析更适用于软件开发阶段的早期,如需求分析和概要设计阶段因为软件质量是设计出来的!z分析对象:硬件可到导线、元件、焊点,因为失效模式明确且有限软件到语句级基本不可行,太繁琐!根据软件结构层次和功能来确定分析阶段和对象12分析方法类型13z可在软件设计阶段的早期即需求分析和概要设计阶段进行用于发现软件需求或软件体系结构等存在的缺陷在这一阶段进行需求或体系结构的修改费用较低z分析对象是设计阶段早期的高层次的子系统、部件方法1-系统级软件FMEA14z分析对象是已经编码实现的模块或由伪代码描述的模块,因此至少要在详细设计完成以后进行z通过分析模块的输入变量和算法的失效模式,推导出对输出变量产生的影响,直至对整个系统的输出z极其繁琐,是劳动密集型工作,因此适用于如内存、通讯、处理结果等缺乏硬件保护的安全关键系统方法2-详细级软件FMEA15软件FMEA方法与分析阶段的关系16系统级分析方法17系统级SFMEA方法步骤18z首先,应说明系统的主要功能和次要功能、用途、系统的约束条件和失效判据等。系统定义还应包括系统工作的各种模式的说明、系统的环境条件,以及软、硬件配置。z其次,根据软件系统的功能、结构特征等层次结构确定系统的分析级别,以及分析对象,如功能模块、软件部件等。z通过识别对系统功能和安全性影响较大的危险事件,确定对上述危险事件的出现有直接或间接关系的功能模块、软件部件等,作为软件FMEA分析的重点。步骤1——系统定义19z软件失效模式的分析是软件FMEA的基础z针对每个分析对象,确定其潜在的失效模式例:响应时间超时或者输出错误的值等步骤2——失效模式分析20失效模式21z国内外相关标准对软件失效、软件故障和软件异常现象的描述,可用于指导软件失效模式分析。IEEE“StandardtoClassificationforSoftwareAnomalies93”标准国军标《GJB/Z1391A-2006故障模式、影响及危害性分析指南》软件异常类型具体软件异常操作系统失效——程序挂起——程序失败程序不能自动启动程序运行不能终止程序不能退出输入问题错误输入被接受正确输入被拒绝描述不正确或遗漏参数不正确或遗漏输出问题错误的格式不正确的结果或数据不完全或遗漏拼写问题、语法问题美化问题未达到要求的性能不能满足用户对运行时间的要求不能满足用户对数据处理量的要求多用户系统不能满足用户数的要求发现的整个产品失效——系统错误信息——其他程序运行改变了系统配置参数程序运行改变了其他程序的数据其他IEEE软件异常分类22类别软件故障模式示例软件的通用故障模式1)运行时不符合要求2)输入不符合要求3)输出不符合要求软件的详细故障模式输入故障1)未收到输入未满足功能及性能要求故障1)未达到功能/性能的要求2)收到错误输入2)不能满足用户对运行时间的要求3)收到数据轻微超差3)不能满足用户对数据处理量的要求4)收到数据中度超差4)多用户系统不能满足用户数的要求5)收到数据严重超差5)其他6)收到参数不完全或遗漏7)其他23GJB/Z1391A-2006实用的软件故障模式分类及其典型示例类别软件故障模式示例软件的详细故障模式输出故障1)输出结果错误(如输出项缺损或多余等)程序故障1)程序无法启动2)输出数据精度轻微超差2)程序运行中非正常中断3)输出数据精度中度超差3)程序运行不能终止4)输出数据精度严重超差4)程序不能退出5)输出参数不完全或遗漏5)程序运行陷入死循环6)输出格式错误6)程序运行对其他单元或环境产生有害影响7)输出打印字符不符合要求7)程序运行轻微超时8)输出拼写错误/语法错误8)程序运行明显超时9)其他9)程序运行严重超时10)其他其他1)程序运行改变了系统配置要求6)人为操作错误2)程序运行改变了其他程序的数据7)接口故障3)操作系统错误8)I/O定时不准确导致数据丢失4)硬件错误9)维护不合理/错误5)整个系统错误10)其他24GJB/Z1391A-2006实用的软件故障模式分类及其典型示例z软件失效的原因是软件中潜藏的缺陷z在进行失效原因分析时应尽可能全面地分析所有可能的软件缺陷,为制定改进措施提供依据步骤3——失效原因分析25失效原因26一般失效原因具体失效原因逻辑遗漏或执行错误-遗忘细节或步骤-逻辑重复-忽略极限条件-不必要的函数-需求的错误表述-未进行条件测试-检查错误变量-循环错误算法的编码错误-等式不完整或不正确-丢失运算结果-操作数错误-操作错误-括号使用错误-精度损失-舍入和舍去错误-混合类型-标记习惯不正确软硬件接口故障-中断句柄错误-I/O时序错误-时序错误导致数据丢失失效原因27一般失效原因具体失效原因软硬件接口故障-子函数或模块-子函数调用不当-子函数调用位置错误-调用不存在的子函数-子函数不一致数据操作错误-数据初始化错误-数据存取错误-标志或索引设置不当-数据打包解包错误-变量参考错误数据-数据越界-变量缩放比率或单位不正确-变量维度不正确-变量类型错误-变量下标错误-数据范围不对数据错误或丢失-传感器数据错误或丢失-操作数据错误或丢失-嵌入到表中的数据错误或丢失-外部数据错误或丢失-输出数据错误或丢失-输入数据错误或丢失步骤4——失效影响分析在进行软件FMEA分析时,应根据软件的特点加以实例化,制定适合的失效影响严重性等级分类失效影响严重性等级分类示例28严重性等级严重性定义关键引起人员死亡,系统报废,或对周围环境造成灾难性破坏严重引起人员严重伤害,系统严重损坏,任务失败,或环境严重破坏一般引起人员轻度伤害,系统轻度损坏,导致任务延误或降级,环境受影响轻微不会导致人员伤害,不影响任务完成,不影响环境,但使用的方便性或舒适性降低z通过分析得到失效产生的原因及影响的严重性等,确定出需要采取的改进措施。z改进措施途径:修改软件缺陷增加硬件防护措施步骤5——制定改进措施29系统级软件FMEA分析实例30实例1:某舰载防御武器型号通讯软件31z某舰载防御武器型号的转塔控制与伺服系统的并行通讯采取主从双机8255通讯(固定字节长度)的方式,其中控制计算机为主计算机(A),伺服计算机为从计算机(B)实例1-系统定义32软件结构层次图33转塔控制与伺服系统控制计算机系统(主计算机A)伺服计算机系统(从计算机B)软件配置项(CSCI)硬件配置项(CHCI)并行通讯模块(CSU01)信息处理(CSC1)软件配置项(CSCI)硬件配置项(CHCI)并行通讯模块(CSU21)信息处理(CSC3)…信息处理1(CSU11)信息处理n(CSU1n)…信息处理1(CSU31)信息处理n(CSU3n)…zA进入通讯子程序后,先发中断,B响应中断后进入通讯子程序准备接收A的数据z先由A向B发送N字节,待B接收完N字节后,B再向A发送M字节zA发送的第一字节为HeadA,HeadA为控制机命令标识,A发送的第N字节为TailA,TailA为控制机校验标识。B发送的第一字节为HeadB,HeadB为从属机接收状况回应标识,B发送的第M字节为TailB,TailB为从属机校验标识zA发送过程的容忍时间为TSA,A接收过程的容忍时间为TTA,B发送过程的容忍时间为TSB,B接收过程的容忍时间为TTBz采用8255,实现能判别是否对方已提供字节数据,能判别对方是否已取走字节数据双机通讯协议34通讯协议示意图35主计算机A从计算机B①N个字节HeadA···TailA②M个字节HeadB···TailB发送容忍时间TSA接收容忍时间TTA发送容忍时间TSB接收容忍时间TTB某并行通讯系统根据通讯协议,可确定分析对象的失效模式:模块的通讯控制•A无法进入通讯子程序接收和发送数据的内容•A发送头字节出现错误•A发送的中间字节出现错误•A发送尾字节出现错误•A处于接收状态时,无法接收数据接收和发送数据的时间•A接收数据超时•A发送中断超时实例1-失效模式确定36失效原因主要从以下方面分析:通信传输干扰•外界干扰•中断被阻塞•A接收到其它中断或其它原因对方发送的原因•始终无B提供数据信号•B发送数据超时自身程序的原因•没有数据合法性检验•没有超时处理设计实例1-失效原因分析37实例1-失效影响分析失效影响分析针对每个失效模式,分别分析其对本通讯模块、控制计算机,直至整个转塔控制与伺服系统造成的影响及其严重程度。38实例1-改进措施制定根据以上失效模式、原因、影响及其严重程度的分析结果,对每个失效模式制定相应的改进措施。39控制计算机系统并行通讯模块软件FMEA表40编号失效模式可能的失效原因失效影响严重性改进措施本层次影响上一层次影响最终影响1A无法进入通讯子程序A接收到其它中断或其它原因无A无法发送数据系统无法通讯关键由A的通讯外程序采取措施保证按时进入通讯子程序。2A发送中断超时中断被阻塞;没有超时处理设计无A发送数据周期混乱系统通讯混乱严重在A中设置定时器,或通过计数控制,以保证规定时间内发送数据。3A发送头字节HeadA出现错误外界干扰;没有数据合法性检验无A发送错误数据系统通讯错误严重B接收A的头字节后,判别头字节的合法性。4A发送的中间字节出现错误外界干扰;没有数据合法性检验无A发送错误数据系统通讯错误严重利用异或等校验手段进行校验。5A发送尾字节TailA出现错误外界干扰;没有数据合法性检验无A发送错误数据系统通讯错误严重B接收A的尾字节后,判别尾字节的合法性。41控制计算机系统并行通讯模块软件FMEA表编号失效模式可能的失效原因失效影响严重性改进措施本层次影响上一层次影响最终影响6A处于接收状态时,无法接收数据始数终无B提供据信号无法进入信息处理单元A通讯瘫痪系统无法通讯关键参见失效模式{2}的措施。7A接收数据超时B发送