阅读以下关于嵌入式系统可靠性设计方面的描述,回答问题1至问题3。
【说明】
某宇航公司长期从事宇航装备的研制工作,嵌入式系统的可靠性分析与设计已成为该公司产品研制中的核心工作,随着宇航装备的综合化技术发展,嵌入式软件规模发生了巨大变化,代码规模已从原来的几十万扩展到上百万,从而带来了由于软件失效而引起系统可靠性降低的隐患。公司领导非常重视软件可靠性工作,决定抽调王工程师等5人组建可靠性研究团队,专门研究提高本公司宇航装备的系统可靠性和软件可靠性问题,并要求在三个月内,给出本公司在系统和软件设计方面如何考虑可靠性设计的方法和规范。可靠性研究团队很快拿出了系统及硬件的可靠性提高方案,但对于软件可靠性问题始终没有研究出一种普遍认同的方法。
【问题1】(共9分)
请用200字以内文字说明系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性一般采用哪些技术?
【问题2】(共8分)
王工带领的可靠性研究团队之所以没能快速取得软件可靠性问题的技术突破,其核心原因是他们没有搞懂高可靠性软件应具备的特点。软件可靠性一般致力于系统性地减少和消除对软件程序性能有不利影响的系统故障。除非被修改,否则软件系统不会随着时间的推移而发生退化。请根据你对软件可靠性的理解,给出表3-1所列出的硬件可靠性特征对应的软件可靠性特征之间的差异或相似之处。
【问题3】(共8分)
王工带领的可靠性研究团队在分析了大量相关资料基础上,提出软件的质量和可靠性必须在开发过程构建到软件中,也就是说,为了提高软件的可靠性,必须在需求分析、设计阶段开展软件可靠性筹划和设计。研究团队针对本公司承担的飞行控制系统制定出了一套飞控软件的可靠性设计要求。飞行控制系统是一种双余度同构型系统,输入采用了独立的两路数据通道,在系统内完成输入数据的交叉对比、表决制导率计算,输出数据的交叉对比、表决、输出等功能,系统的监控模块实现对系统失效或失步的检测与定位。其软件的可靠性设计包括恢复块方法和N版本程序设计方法。请根据恢复块方法工作原理完成图3-1,在(1)~(4)中填入恰当的内容。并比较恢复块方法与N版本程序设计方法,将比较结果(5)~(8)填入表3-2中。
图3-1 恢复块方法
表3-2 恢复块方法与N版本程序设计的比较
【问题1】
可靠性(Reliability)是指产品在规定的条件下和规定的时间内完成规定功能的能力。
子特性:成熟性,容错性,易恢复性,可靠性的依从性。
提高可靠性的技术:
(1)N版本程序设计
(2) 恢复块方法
(3) 防卫式程序设计
(4)双机热备或集群系统
(5)冗余设计
【问题2】
(1) 不考虑软件演化的情况下,失效率在统计上是非增的
(2) 如果不使用该软件,永远不会发生失效
(3) 软件维护会创建新的软件代码
(4) 软件失效之前很少会有报警
【问题3】
(1)主块
(2)验证测试
(3)输出正确结果
(4)异常处理
(5)表决
(6)后向恢复
(7)差
(8)好
【问题1】
国家标准《软件工程 产品质量 第1部分:质量模型》中给出了系统可靠性的4个主要子特性,如下图所示。
【问题2】
软件可靠性一般致力于系统性地减少和消除对软件程序性能有不利影响的系统故障。除非被修改,否则软件系统不会随着时间的推移而发生退化。我们可以从多个维度来分析它们之间的显著差异。
比如从老化的角度来看,硬件的可靠性确实会随着使用时间的延长而逐渐降低,这主要是由于硬件材料的老化、磨损、氧化等物理过程导致的。这种老化现象使得硬件的故障率随时间呈现“浴缸曲线”的分布,即初期由于制造缺陷等原因故障率较高,随后进入稳定期,最后由于老化等原因故障率再次上升。相比之下,软件则不存在物理老化的问题,其失效率在统计上通常是非增的。这是因为软件一旦开发完成并经过充分测试,其潜在的错误和缺陷会逐步被发现并修复,从而提高了软件的稳定性和可靠性。
比如从关于可更换性的角度,硬件具有显著的可更换性优势。当硬件出现故障时,可以通过更换故障部件来恢复系统的正常运行。这种可更换性不仅提高了系统的可维护性,还延长了系统的使用寿命。而软件则不同,软件一旦部署到系统中,就很难像硬件那样直接进行“更换”。当软件需要维护或更新时,通常涉及对软件代码的修改和重新部署,这可能会引入新的错误或问题。
比如从关于失效预警的角度,硬件失效往往存在一个发展过程,在发生故障之前可能会有一些预警信号或现象出现,如温度升高、性能下降等。这些预警信号有助于提前发现并采取措施来防止故障的发生。而软件失效则往往比较突然,很少会有明显的预警信号。软件的失效可能是由于程序中的逻辑错误、内存泄漏、资源耗尽等原因导致的,这些原因往往难以预测和防范。
综上所述,硬件和软件的可靠性在多个方面存在显著差异。了解这些差异有助于我们更好地设计和维护计算机系统,提高系统的整体可靠性和稳定性。
【问题3】
N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略,如下图所示。
恢复块方法是一种动态的故障屏蔽技术。采用后向恢复策略,如下图所示。