热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

软考高级《系统架构设计师》论文之可靠性设计备考知识点

软考高级《系统架构设计师》论文之--可靠性设计备考知识点-theme:channing-cyan前言可靠性设计,对于只有一些前端基础的我,真的是太友好了。如果论文出现可靠性设

theme: channing-cyan

前言

可靠性设计,对于只有一些前端基础的我,真的是太友好了。如果论文出现可靠性设计和架构风格的题目,我一定会选这两个题目。

可靠性设计中需要准备的知识点

可靠性设计需要遵循的原则

  • 软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。
  • 软件可靠性设计在满足软件质量的前提下,以提高和保障软件可靠性为最终目标。
  • 软件可靠性设计应确定软件的可靠性目标,不能无限扩大,并且排在功能、用户需求、开发费用之后考虑。

常见的软件可靠性技术有哪些

容错设计技术

  • 恢复块设计

选择一组软件操作作为容错设计单元,把普通的程序块变成恢复块。一个恢复块包含若干个功能相同、设计差异的程序块文本,一个运行文本,多个备份文本,构成“动态冗余”,一旦运行文本出现故障,则用备份文本替换。软件容错的恢复块方法就是使软件包含一些列的恢复块。

  • N版本程序设计

N版本程序的核心是通过设计出多个模块或者不同的版本,对于相同的初始条件和相同的输入的操作,实现多数表决,防止其中一个模块/版本的故障提供错误的服务,已实现软件容错。

  • 冗余设计

在一套完整的软件体系之外,设计一种不同路径,不同算法或者不同实现方法的模块或系统作为备份,在出现故障的时候,可以用冗余的部分进行替换,从而维持软件系统的正常运行。缺点是费用和资源的消耗会增加。

检错技术

在软件系统中,无需在线容错的地方,或者不能采用冗余设计技术的部分,如果对可靠性要求比较高,故障有可能导致严重后果时,一般需要采用检错技术,在软件出现故障的时候能及时发现并报警。缺点是不能自动解决故障。

降低复杂度设计

软件系统的复杂度与可靠性有着密切的关系,是产生软件缺陷的重要根源。在设计时考虑降低软件的复杂度,是提高软件可靠性的重要手段。减低复杂度的设计思想是在保证实现软件功能的基础上,简化软件结构,缩短程序代码,优化软件数据流向,减低软件复杂度,从而提高软件的可靠性。

软件可靠性分析方法

在软件可靠性设计之前和软件可靠性的设计过程中,都需要采用软件可靠性分析和预测方法,来确定当前系统中的主要可靠性因素和目标。常见的软件可靠性分析方法包括故障树分析方法、失效模式与效应分析方法。

故障树分析法

一种自顶向下的软件可靠性分析方法,即从软件系统不希望发生的事件(顶事件),特别是对人员和设备的安全性产生重大影响的事件开始,向下逐步追查导致顶事件发生的原因,直至基本事件(底事件),从而确定软件故障的原因和各种可能组合方式和发生概率。基本的步骤是:

  • 软件故障树的建立
  • 定性分析
  • 定量分析

失效模式与效应分析方法

在软件开发的早期,通过软件失效模式,分析造成的后果,研究分析各种失效迷失产生的原因,寻找消除和减少有害后果的方法,一边今早发现潜在的问题,并采取相应的措施,从而提高软件可靠性和安全性。


推荐阅读
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文通过思维导图的形式,深入解析了大型网站技术架构的核心原理与实际案例。首先,探讨了大型网站架构的演化过程,从单体应用到分布式系统的转变,以及各阶段的关键技术和挑战。接着,详细分析了常见的大型网站架构模式,包括负载均衡、缓存机制、数据库设计等,并结合具体案例进行说明。这些内容不仅有助于理解大型网站的技术实现,还能为实际项目提供宝贵的参考。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Juval Löwy主张,每个类都应被视为服务,这并非是为了让服务无处不在,而是因为微服务是经过深思熟虑后系统分解的自然结果。在他的设计和构建的系统中,这种理念有助于提高模块化、可维护性和扩展性。通过将每个类视为独立的服务,系统能够更好地应对复杂性,实现更灵活的部署和更高的性能。 ... [详细]
  • 汽车电子架构与CAN网络基础解析——鉴源实验室专业解读 ... [详细]
  • 本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 本文探讨了在Windows操作系统中,尽管能够通过Ping命令成功通信,但仍无法访问网页的情况。可能的原因包括系统防火墙设置、第三方安全软件干扰以及网络编程接口问题等,并提供了相应的解决方法。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节
    揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节 ... [详细]
author-avatar
zealyw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有