目录
案例
【题目】
【问题 1】(共 9 分)
【问题 2】(共 8 分)
【问题 3】(共 8 分)
【问题 1】解析
【问题 2】解析
【问题 3】解析
相关知识
案例
阅读以下关于嵌入式系统可靠性设计方面的描述,回答问题 1 至问题 3。
【题目】
某宇航公司长期从事宇航装备的研制工作,嵌入式系统的可靠性分析与设计已成为该公司产品研制中的核心工作,随着宇航装备的综合化技术发展,嵌入式软件规模发生了巨大变化,代码规模已从原来的几十万扩展到上百万,从而带来了由于软件失效而引起系统可靠性降低的隐患。公司领导非常重视软件可靠性工作,决定抽调王工程师等 5 人组建可靠性研究团队,专门研究提高本公司宇航装备的系统可靠性和软件可靠性问题,并要求在三个月内,给出本公司在系统和软件设计方面如何考虑可靠性设计的方法和规范。可靠性研究团队很快拿出了系统及硬件的可靠性提高方案,但对于软件可靠性问题始终没有研究出一种普遍认同的方法。
【问题 1】(共 9 分)
请用 200 字以内文字说明系统可靠性的定义及包含的 4 个子特性,并简要指出提高系统可靠性一般采用哪些技术?
【问题 2】(共 8 分)
王工带领的可靠性研究团队之所以没能快速取得软件可靠性问题的技术突破,其核心原因是他们没有搞懂高可靠性软件应具备的特点。软件可靠性一般致力于系统性地减少和消除对软件程序性能有不利影响的系统故障。除非被修改,否则软件系统不会随着时间的推移而发生退化。请根据你对软件可靠性的理解,给出表 3-1 所列出的硬件可靠性特征对应的软件可靠性特征之间的差异或相似之处,将答案写在答题纸上。
【问题 3】(共 8 分)
王工带领的可靠性研究团队在分析了大量相关资料基础上,提出软件的质量和可靠性必须在开发过程构建到软件中,也就是说,为了提高软件的可靠性,必须在需求分析、设计阶段开展软件可靠性筹划和设计。研究团队针对本公司承担的飞行控制系统制定出了一套飞控软件的可靠性设计要求。飞行控制系统是一种双余度同构型系统,输入采用了独立的两路数据通道,在系统内完成输入数据的交叉对比、表决‘制导率计算,输出数据的交叉对比、表决、一输出等功能,系统的监控模块实现对系统失效或失步的检测与宠位。其软件的可靠性设计包括恢复块方法和 N 版本程序设计方法。请根据恢复块方法工作原理完成图 3-1,在(1)~(4)中填入恰当的内容。并比较恢复块方法与 N 版本程序设计方法,将比较结果(5)~(8)填入表3-2 中。
【问题 1】解析
系统可靠性定义:系统在规定的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率。
系统可靠性包括:成熟性、容错性、易恢复性和可靠性的依从性4个子特性。
提高可靠性的技术:
(1)版本程序设计
(2)恢复块方法
(3)防卫式程序设计
(4)双机热备或集群系统
(5)冗余设计
补充知识
成熟性:成熟性是指系统避免因错误的发生而导致失效的能力;
容错性:容错性是指在系统发生故障或违反指定接口的情况下,系统维持规定的性能级别的能力;
易恢复性:易恢复性是指系统发生失效的情况下,重建规定的性能级别并恢复受直接影响的数据的能力;
依从性:可靠性的依从性是指系统依附于与可靠性相关的标准、约定或规定的能力。
【问题 2】解析
本问题主要要求考生在理解软件的特殊性基础上,深刻认识软件可靠性一般是致于系统性地减少和消除对软件程序性能有不利影响的系统故障。除非被修改,否则软系统不会随着时间的推移而发生退化。在掌握这一特征的基础上,可以回答硬件可靠特征与其对应的软件可靠性特征之间的差异或相似之处。
答案:
(1) 不考虑软件演化的情况下,失效率在统计上是非增的
(2) 如果不使用该软件,永远不会发生失效
(3) 软件维护会创建新的软件代码
(4) 软件失效之前很少会有报警
【问题 3】解析
软件的可靠性设计主要包括了恢复块和N版本程序设计两种方法,如果考生对这两种方法有所了解,则可很容易地进行判断。
恢复块方法是一种反向恢复的方法,其核心原理是:对于可靠性要求高的软件,在程序运行的某时刻,将数据或程序进行备份,一旦发现主程序块有异常发生时,可将已备份的数据或程序进行恢复,保证程序的正确性。基于这样的原理,显然(1)处是主块,而(2)处将是对正确性进行检验测试判断,一旦判断正确,(3)处将是“输出正确结果”,以此类推,显然(4)处是进入“异常处理”了。
如果考生能够答对第一问,说明考生已掌握恢复块与N版本两种方法,那么,填写第二问的空应该没问题的。在表 3-2 已经给出了两种方法适应的硬件环境,也就是说:恢复块方法的使用必然是单机环境,而N版本方法必然要使用多机环境。理解了环境需求,那么多机余度工作方式,必然采用“表决”(5)方式进行容错;同时不难分析出 N 版本的工作原理是向前恢复,恢复快则是反向恢复(6);由于恢复快方法是反复寻找正确的备份块,而N版本方法则是多个机器同时计算同样内容,表决完后即可给出正确结果,这样,恢复快方法相比N版本方法显然实时性差(7),而N版本方法显然好(8)于恢复快方法。
答案:
1.恢复块方法:
(1)主块
(2)验证测试
(3)输出正确结果
(4)异常处理
2.恢复块方法与 N 版本程序设计的比较
(5)表决
(6)反向恢复
(7)差
(8)好
相关知识
【系统架构设计师】十三、软件可靠性(基本概念|软件可靠性建模)-CSDN博客文章浏览阅读1.2k次,点赞14次,收藏18次。软件可靠性是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。软件可靠性和硬件可靠性区别: (1)复杂性:软件复杂性比硬件高,大部分失效来自于软件失效。 (2)物理退化:硬件失效主要是物理退化所致,软件不存在物理退化。 (3)唯一性:软件是唯一的,每个COPY版本都一样,而两个硬件不可能完全一样。 (4)版本更新周期:硬件较慢,软件较快。https://shuaici.blog.csdn.net/article/details/140492470【系统架构设计师】十三、软件可靠性(软件可靠性管理|软件可靠性设计|软件可靠性测试与评价)-CSDN博客文章浏览阅读787次,点赞25次,收藏11次。提高系统可靠性的技术可以分为避错(排错)技术和容错技术。避错是通过技术评审、系统测试和正确性证明等技术,在系统正式运行之前避免、发现和改正错误。容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。容错技术主要是采用冗余方法来消除故障的影响。软件容错技术主要包括恢复块方法、N版本程序设计、防卫式程序设计和冗余设计等多种方法。https://shuaici.blog.csdn.net/article/details/140516798