找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 400|回复: 0

软件开发中,如何更好使用FMEA?

[复制链接]
发表于 2023-9-4 11:23:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转质量管理社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

在过去的几年时间里,由于软件故障,从发动机管理程序、稳定性控制问题、制动控制系统以及车载信息娱乐系统,经历了数次召回事件。汽车召回案例统计数据,软件故障导致的汽车召回频率正在快速增加。而FMEA作为降低汽车召回必要的风险分析管控的有效工具,在软件的开发过程中,如何更好使用FMEA值得大家一同探讨。

1、软件FMEA的理解

软件产品与硬件产品不同,有其自己的特殊性。软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。软件失效模式与影响分析应贯穿于软件的整个研制周期,可以帮助设计者较早发现设计缺陷,并提出改进措施和避错容错方案按照软件产品的生命周期。

因此,根据软件系统开发的一般过程将SFMEA方法分为四个层次:

◆ ◆系统级FMEA

◆ ◆功能FMEA

◆ ◆接口级FMEA

◆ ◆详细级FMEA

层次之间的关系和模型,如图:


                               
登录/注册后可看大图

2、软件FMEA分析范围

嵌入式软件开发需要软硬件开发环境和工具,嵌入式软硬件必须协同设计,因此在进行FMEA分析时,我们不能严格将软硬件完全分开,需要考虑软件和硬件交互的接口,软件FMEA分析时需要考虑必要的软件运行环境,同时需要考虑来自硬件一定的输入、输出关系,将软件、硬件视为一个系统功能分析,根据开发不同阶段进行不同范围FMEA分析,同时在进行测试验证时,需要软件、硬件集于一体才能完成系统验证功能。

如图,软件生产周期模型-瀑布模型:


                               
登录/注册后可看大图

3、关注软件接口分析

软件接口分析不同于硬件,硬件接口一般可以通具体形式表现出来;如物理连接、能量交换等;而软件接口是比较抽象且复杂的,涉及到软件与硬件接口;软件不同模块之间接口;软件不同架构层级间接口;重要的是软件与用户操作界面接口,以上接口在进行软件FMEA分析时,需要按照合理的逻辑关系列出其交互关系以及功能,然后又针对性地识别失效,进行一系列的设计验证与测试。

因此做好接口FMEA分析,我们需要充分借助于FMEA框图,基于框图列出结构,然后进行功能失效分析。如图:


                               
登录/注册后可看大图

4、软件FMEA类型及分析粒度

软件FMEA分析层级及粒度跟硬件FMEA分析范围思路几乎类似,原则是基于产品开发流程以及所设计范围决定,根据软件开发流程,我们可以将软件FMEA分析范围分为两类:

◆ ◆系统级软件FMEA

◆ ◆详细级软件FMEA


                               
登录/注册后可看大图

(1)系统级软件FMEA

系统级软件FMEA主要对系统的功能方面进行失效分析,即从软件系统的顶层分析软件失效的模式,常应用于软件开发阶段的早期,如概要设计阶段。

系统级软件FMEA的分析对象是目标系统的高层设计结构,因此首先要确定分析对象,对分析层次进行约定,从而明确分析的粒度,在此基础上进行失效模式及影响分析其分析的对象是设计阶段早期的高层次的子系统、功能模块或部件。由于系统级软件FMEA侧重于从系统的角度去分析子模块和各模块之间的协调匹配,因此可将各个软件模块看做功能已知的黑盒进行分析。

进行系统级软件FMEA不像硬件FMEA那样简单,因为软件是一种逻辑结构,而不是一种物理实体,必须将潜在的失效识别出来并翻译成软件术语。在设计过程中应该尽可能早的进行系统级软件FMEA,以减少设计缺陷并降低软件开发成本。

​系统级软件FMEA需要在开发阶段的各过程中不断的重复进行,后期还应与详细级软件FMEA同步进行。值得注意的是在这个过程中要充分考虑到分析的成本和软件开发的成本。

(2)详细级软件FMEA

详细级软件FMEA主要从代码层次,即从软件底层的基本失效模式入手进行软件失效模式的分析。详细级软件FMEA能够深入软件模块内部,分析各个软件模块在失效的情况下会发生怎样的行为,通过分析每个软件模块的变量和算法的失效模式,追踪每个失效模式对当前模块的影响直至输出变量,确定失效的根因。

因此详细级软件FMEA应该在软件设计的后期,至少应该在详细设计阶段的后期进行。详细级软件FMEA可以验证在软件顶层设计中采取的并经过系统级软件FMEA评估的各种保护措施是否已实现。同时,详细级软件FMEA方法可以为软件测试与维护提供依据,可以由失效模式触发失效状态来生成测试用例集。

【备注说明】

(1)详细级软件FMEA是一项费时费力的工作,对于一些大型软件来说,实施的成本是不容忽视的。因此,详细级软件FMEA适用于没有或有很少硬件保护措施的安全关键系统。具体是否需要分析到详细级FMEA,要根据实际开发范围而定,一般情况下针对软件应用层级展开分析。

(2)在FMEA分析级别方面,硬件FMEA分析的对象可以深入到最底层的元件、导线等等,由于它们的失效模式明确,使得分析过程准确,并且可行。同样,软件FMEA也可深入到基本的语句结点,但是这将导致分析过程复杂、失效模式数目繁多等等问题。因此对于软件FMEA分析级别,应根据需求决定,按照软件的体系结构及功能进行划分。

5、总结

综上所述,与其它软件可靠性、安全性分析方法相比,软件FMEA分析具有如下优点

◆ ◆在软件开发阶段的早期对失效模式进行预计及量化,为提高软件设计质量提供依据;

◆ ◆在详细设计阶段,分析代码失效为软件测试与软件维护提供依据。

然而,软件FMEA也存在其局限性

◆ ◆对于分析路径十分复杂或内部调用关系复杂的软件而言,软件FMEA工作非常繁琐,并且工作量很大;

◆ ◆作为一种辅助工具,还没有广泛的应用于对软件错误的评估当中,没有固定的分析标准,可以参考硬件FMEA分析步骤进行。

在软件FMEA分析过程中的难点在于:

◆ ◆如何对目标系统进行描述,确定分析范围;

◆ ◆如何全面识别各系统、模块、单元等中间的接口;

◆ ◆如何识别定义各层级功能以及接口功能;

◆ ◆如何根据功能识别失效关系;

◆ ◆如何提高分析过程的自动化程度,避免冗余繁琐任务。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|QPDCA平台自律公约|QPDCA质量论坛 ( 苏ICP备18014265号-1 )

QPDCA质量论坛最好的质量管理论坛 GMT+8, 2024-5-16 12:33 , Processed in 0.093564 second(s), 17 queries , Gzip On.

无锡惠山区清华创新大厦901室0510-66880106

江苏佳成明威管理咨询有限公司 版权所有

快速回复 返回顶部 返回列表