【软考系统架构设计师】2010年下系统架构师案例分析历年真题

【软考系统架构设计师】2010年下系统架构师案例分析历年真题

2010年下系统架构师案例分析历年真题

    • 【软考系统架构设计师】2010年下系统架构师案例分析历年真题
      • 2010年系统架构师案例分析真题第一题(软件架构)
      • 2010年系统架构师案例分析真题第二题(数据架构)
      • 2010年系统架构师案例分析真题第三题(嵌入式系统)
      • 2010年系统架构师案例分析真题第四题(服务架构集成)
      • 2010年系统架构师案例分析真题第五题(可靠性设计)

2010年系统架构师案例分析真题第一题(软件架构)

某公司欲针对Linux操作系统开发一个KWIC (KeyWord in Context)检索系统。该系统接收用户输入的査询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其他方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其他的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上, 大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价, 最终采用了李工的方案。
【问题1】
在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。
【问题2】
请完成表1-1中的空白部分(用+表示优、一表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。
【软考系统架构设计师】2010年下系统架构师案例分析历年真题_第1张图片
【问题3】
图1-1是李工给出的架构设计示意图,请将恰当的功能描述填入图中的(1)〜(4)。
【软考系统架构设计师】2010年下系统架构师案例分析历年真题_第2张图片

  • 【问题1我的解答】
  1. 软件架构风格是一系列软件构件组成的方式和风格。一般从高层级来描述软件架构的特征。
  2. 主程序子程序是调用返回风格中的一种类型,它一般用于结构化开发方法中,有分治法的思想在里面。他将一个问题一个功能从一个主程序分解到各个子程序中去实现。
    管道过滤器风格是数据流风格的一种实现。它关注的是数据的流动。数据一般从一个构件输入,加工完成后输出;输出的数据是另一个构件的输出。

【问题2我的解答】

- 主程序-子程序 管道过滤器
算法变更 1)加
功能变更 2)减
数据表示变更 3)减 4)减
性能 5)减 6)减
  • 【问题3我的解答】
    1)处理查询关键字
    2)依据字母顺序给出帮助文档
    3)重复剪切帮助文档中的第一个单词
    4)将第一个单词插入到行尾以实现循环滚动

  • 【问题1标准答案】

  1. 软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
  2. 主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序 顺序地调用这些子程序,构件通过共享存储区交换数据。
  3. 管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。
  • 【问题2标准答案】
    【软考系统架构设计师】2010年下系统架构师案例分析历年真题_第3张图片
  1. 根据题干描述:“用户后续还有可能采用其他方式展示帮助内容”,因此KWIC系统对功能变更要求较高;
  2. 根据题干描述:“后续还将采用其他的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高。
  3. KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高。
    KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不髙。
  4. 综合上述分析,可以看出应该采用李工提出的管道-过滤器架构风格。
  • 【问题3标准答案】
    1)文档检索
    2)查询结果按照字母表排序
    3)剪切行首单词
    4)单词插入行尾

  • 【心得体会】

  1. 第一问考查基本概念:什么是软件架构,它是描述特定软件的组织方式的一种惯用模式,组成构件和这些构件之间的组成方式,主程序子程序风格中,所有的计算构件作为子程序来辅助主程序协同工作,构件是通过共享存储区来交换信息;而在管道过滤器风格当中,有一组构件,每个构件都接受一组数据,然后经过内部处理后输出数据,数据流传输的管道就是连接件,而构件在这里被称作过滤器。通过此题,所有的软件架构风格都需要的用自己的语言能够组织。
  2. 第二空用四个维度比较了主程序子程序与管道过滤器,也是对概念的一个考察。主程序子程序因为是共享存储区来交换数据,所以在性能上优于管道过滤器,在算法变更,功能变更方面都是其短板。
  3. 第三空就是理论联系实际了,但其实也不难,在案例背景中找到关键字的考法。

2010年系统架构师案例分析真题第二题(数据架构)

RMO是一家运动服装制造销售公司,计划在5年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统CRSS。RMO公司决定由其技术部成立专门的项目组负责CRSS的开发和维护工作。
项目组在仔细调研和分析了系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过“局部数据库+缓存”的读写分离结构实现,具有较好的运行性能和可扩展性。
项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。
【问题1】
请用300字以内的文字,说明张工和刘工提出的数据架构的基本思想。
【问题2】
在刘工建议的基础上,为了避免CRSS系统的单点故障,请用200字以内的文字简要说明如何建立CRSS的数据库系统;对于数据的读取、添加、更改和删除操作分别如何实现。
【问题3】
RMO公司销售区域将在未来5年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性

  • 【问题1我的解答】
  1. 集中式数据架构
    所有的数据都存放在单台数据库服务器中,也就是数据都在一个物理节点
  2. 分布式数据架构
    所有的数据存放在不同的物理节点上,有的数据库服务器负责读,有的负责写;经常访问的数据存在缓冲区以提高访问的性能。
  • 【问题2我的解答】
    建立主从结构的数据库,具体来说就是一台主服务器负责数据的添加、更改和删除操作,建立多台从服务器只负责读取数据,实现读写分离。同时定期需要把主服务器中的数据同步到只读服务器。
    同时为了避免单点故障,在多台数据库服务器件建立集群,具体可以采用心跳技术,当主服务器心跳停止时,停止故障服务器并启动任意从数据库服务器来进行更新插入,删除等操作。

  • 【问题3我的解答】
    集中式(可扩展性) 更新服务器硬件配置;使用分区技术将不常用数据进行分区
    分布式(可扩展性) 增加集群中服务器数量;改善集群算法;使用内存数据库;

  • 【问题1标准答案】

  1. 张工提出的集中式数据架构是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。
  2. 刘工提出的分布式数据架构使用多个计算机系统上的多个局部数据库系统构成,数据可以在多个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。
  • 【问题2标准答案】
  1. 读写分离架构利用了数据库的复制技术,将数据的读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。
  2. CRSS的分布式数据库系统需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。局部数据库负责数据的写入,多个热备份数据库系统用以解决单点故障的问题,数据缓存负责为应用提供所读取的数据。
No CURD 说明
01 读取数据 用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回
02 添加数据 采用延迟加载策略,应用将数据直接写入局部数据库
03 更改数据 应用更改局部数据库中的数据,将缓存中的数据标记为失效
04 删除数据 应用删除局部数据库中的数据,将缓存中的数据标记为失效
  • 【问题3标准答案】
  1. 张工提出的集中式数据架构通过向上扩展(Scale Up)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数ft、内存容童、磁盘数量)和硬件升级(更换为高端主机或髙速磁盘等)。
  2. 刘工提出的分布式数据架构通过向外扩展(Scale Out)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分或/和水平切分、缓存和全文搜索。

【心得体会】

  1. 此题考察数据读写方面的知识。
  2. 第一问考查的是基本概念。集中式数据架构和分布式架构的基本思想;集中式数据架构的特点:数据管理被某个或中心站点集中控制,且被物理定义到单个位置。
  3. 放在多个地址位置,通过多种通信网络连接在一起是分布式数据架构的基本思想。
  4. 第二问是围绕如何实现增删查改数据的。首先查找的原理是先从缓存读取,如果缓存无法命中,就得要去局部数据库去取出相应的数据,并放入缓存;添加数据时,应将数据插入到局部数据库;在更改数据时,应该将局部数据库中的数据进行修改,同时标记缓存中的数据失效;删除数据时可将局部数据库删除,然后将缓存中的数据标记失效。
  5. 第三问考查集中式数据和分布式数据架构如何扩展。分布式好就好在可以向外扩展,而集中式数据架构只能向上扩展,也就是升级软硬件。这个案例其实就可以理解为是NoSQL诞生的背景。
  6. 其中向外扩展具体实现方式又可以分为了数据库复制,缓存技术,水平和垂直切分等。

2010年系统架构师案例分析真题第三题(嵌入式系统)

某软件公司承担了某项国家重点项目的研制工作,任务重点是参考国外汽车电子发展趋势,开发某汽车公司的企业汽车电子基础软件的架构,逐步实现汽车企业未来技术发展规划。
该软件公司接受此项任务后,调动全体技术人员深入收集国外相关技术资料,经过多方调研和分析,公司提出遵照国际组织最新推出的AUTOSAR规范,按统筹规划、分步骤实施的原则,实现汽车公司的基础软件架构设计。图3-1给出了 AUTOSAR规范所定义的工作包,图中灰色部分代表本项目工作所包含的内容,即软件架构和基础软件。
【软考系统架构设计师】2010年下系统架构师案例分析历年真题_第4张图片【问题1】
AUTOSAR规范中要求,汽车电子软件开发流程应尽量满足并发、可多次迭代的特性。为了定义汽车电子的软件开发过程,公司李工和王工分别提出了两种软件开发流程, 其开发流程见图3-2和图3-3 (图中ECU是指汽车电子中的电子控制单元)。请说明李工和王工谁定义的流程更符合AUTOSAR的规定,并说明理由
【问题2】
图3-1中的II-U.1项中定义了软件架构和操作系统的要求,图3-4是满足AUTOSAR定义的操作系统各功能模块的层次结构,请说明(1)〜(5)箭头所标的具体操作含义。
【软考系统架构设计师】2010年下系统架构师案例分析历年真题_第5张图片
【软考系统架构设计师】2010年下系统架构师案例分析历年真题_第6张图片
【问题3】
AUTOSAR是一种开放式架构,用150字以内的文字,说明采用AUTOSAR架构的主要优点,并说明汽车电子ECU覆盖汽车的哪三个领域。

  • 【问题1我的解答】
    选择李工的方案。因为李工的方案满足并发、可多次迭代的特性。

  • 【问题1标准答案】

  1. 李工设计的流程符合AUTOSAR要求,理由是:
    1. 李工定义的流程是将软件组件描述、系统描述和ECU资源描述同时定义,而王工定义的流程仅仅只做系统描述;
    2. 王工定义的流程没有考虑软件组件的描述,只是简单将软件组件作为第4步被集成;
    3. 李工定义的ECU软件开发流程的优势是明确了顶层定义阶段,并行度高,迭代清晰。
  • 【问题2标准答案】
  1. 操作系统的警报管理发现ECU系统出错时,启动错误处理程序;
  2. 错误处理程序将具体动作交由进程管理完成对发生错误的任务进行处理;
  3. 错误处理程序产生一个错误事件;
  4. 任务控制块处理程序调用资源管理功能,实现硬件资源重分配;
  5. 任务控制块处理程序通知事件管理,对错误事件进行应答。
  • 【问题3标准答案】
  • 采用AUTOSAR开放式架构的优点是:
  1. 可以有效支持多厂家汽车电子基础软件的研制;
  2. 有利于软件的重用,可根据不同的ECU结构,通过数据配置,自动生成各种ECU软件组件;
  3. AUTOSAR定义的软件框架支持了汽车电子软件的全生存周期,包括构架、开发、测试、验证、授权、版本和接口。
  4. AUTOSAR规范覆盖整个汽车电子的三大领域:动力、底盘、车身。
  • 【心得体会】
  1. 第一问主要考查在一定规范的约束下,系统设计流程的设计与定义。
  2. AUTOSAR规范中要求,汽车电子软件开发流程应尽量满足并发、可多次迭代的特性。因此应该紧扣该规范对系统设计流程方面的要求,对李工和王工定义的流程进行评价。具体来说:
    (1)李工定义的流程是将软件组件描述、系统描述和ECU资源描述同时定义,而王工定义的流程仅仅只做系统描述;
    (2)王工定义的流程没有考虑软件组件的描述,只是简单将软件组件作为第4步被集成;
    (3)李工定义的ECU软件开发流程的优势是明确了顶层定义阶段,并行度高,迭代清晰。
  3. 综上,应该采用李工的设计方案。
  4. 答对李工的方案之后,也围绕了关键字“并法,迭代”进行了答题。但是我缺少了对图的分析,比如王工方案中没有组件的描述,李工的方案中有;ECU资源描述也只出现在了李工的方案中。
  5. 第二问是一道读图题。要求考生在分析AUTOSAR定义的操作系统结构进行分析与理解的基础上进行填空。系统从下至上依次可以分为中断管理、事件管理、警报管理、进程管理和调度以及资源管理五个部分。
    1)发现错误,启动活动来处理错误。
    2)让进程管理来对错误的任务进行处理
    3)错误处理程序输出一个错误事件
    4)调用资源管理程序,对资源重新分配
    5)应答错误事件
  6. 此问有一定的难度,看了答案之后也无法找到答题思路。
  7. 第三问主要考查考生对AUTOSAR架构的分析与总结能力。这里是层次架构风格,可以说说该风格的特点与优点,比如硬件独立性(厂商无关性),对组件化的可重用性,支持ECU汽车电子软件的全生命周期。
  8. 题目背景有说是基础架构的构建,可重用性是必须要有的。AUTOSAR架构是汽车电子软件领域的基础架构,所以除了可重用性好,独立硬件厂商等优点外,支持ECU汽车电子软件的生命周期这点也可以推理出来吧。

2010年系统架构师案例分析真题第四题(服务架构集成)

TeleDev是一个大型的电信软件开发公司,公司内部采用多种商业/开源的工具进行软件系统设计与开发工作。为了提高系统开发效率,公司管理层决定开发一个分布式的系统设计与开发工具集成框架,将现有的系统设计与开发工具有效集成在一起。集成框架开发小组经过广泛调研,得到了如下核心需求。
(1) 目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能;
(2) 目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信和数据格式转换
(3) 集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系:
(4) 集成框架应能集成一些常用的第三方实用工具,如即时通信、邮件系统等。
集成框架开发小组经过分析与讨论,最终决定采用企业服务总线(ESB)作为集成框架的基础架构。
【问题1】
ESB是目前企业级应用集成常用的基础架构。请列举出ESB的4个主要功能,并从集成系统的部署方式、待集成系统之间的耦合程度、集成系统的可扩展性三个方面说明为何采用ESB作为集成框架的基础架构。
【问题2】
在ESB基础架构的基础上,请根据题干描述中的4个需求,说明每个需求应该采用何种具体的集成方式或架构风格最为合适。
【问题3】
请指出在实现工具之间数据格式的灵活转换时,通常采用的设计模式是什么,并对实现过程进行简要描述。

【问题1我的解答】

  1. 集成系统的部署方式
    以服务为单位部署
  2. 待集成系统之间的耦合程度
    服务之间相对独立,服务之间通过消息进行交互;
  3. 集成系统的可扩展性
    向ESB框架中增加服务(构件)时,就可以实现对服务的添加
  • 【问题2我的解答】
No 需求 集成方式
1 目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能 界面集成
2 目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信和数据格式转换 使用服务来封装,应用集成
3 集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系 解释器风格
4 集成框架应能集成一些常用的第三方实用工具,如即时通信、邮件系统等 界面集成
  • 【问题3我的解答】
    适配器模式。统一不同数据之间的接口,使之统一化。

【问题1标准答案】
ESB 的主要功能包括:

  1. 应用程序的位置透明性
  2. 传输协议转换
  3. 消息格式转换
  4. 消息路由
  5. 消息增强
  6. 安全支持
  7. 监控和管理
  • 采用ESB作为集成框架,能够实现灵活的部署结构,包括CS结构、P2P结构等。采用ESB作为集成框架,待集成系统只需要和总线进行联系,彼此之间不需要互相通信,这样就大大降低了系统的耦合程度。
  • 采用ESB作为集成框架,在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。
  • 【问题2标准答案】
  1. 对于需求1来说,由于需要共享系统的功能,并且系统的运行平台与语言差异较大,应该采用面向服务的方式进行功能集成,可以将工具的功能包装为服务,实现跨语言与跨平台访问。
  2. 对于需求2来说,工具所支持的通信协议和数据格式各不相同,并需要实现工具之间的灵活通信协议和数据格式交换,因此应该基于消息总线,以协议及数据适配器的方式实现灵活的通信协议和数据格式转换。
  3. 对于需求3.来说,集成框架需要根据实际的软件系统开发流程,灵活、动态地定义系统设计与开发工具之间的协作关系,因此应该引入工作流定义语言及其引擎来动态描述工具之间的协作关系。
  4. 对于需求4来说,应该采用界面集成的方法对第三方工具进行集成,绕过工具内部的复杂处理逻辑
  • 【问题3标准答案】
  1. 在实现工具之间数据格式的灵活转换时,通常采用适配器设计模式。即应首先定义一个统一的数据转换接口类,然后针对不同的数据格式转换需求定义对应的实际转换类,实际转换类需要继承数据转换接口类,并实现接口转换类定义的接口
  • 【心得体会】
  1. 本体考查的是面向服务架构及中的企业集成总线结构和集成技术。
  2. 第一问我个人觉得出题出了比较好。从耦合度,可扩展性,部署方式这三个维度来看ESB。因为不熟悉ESB,只能结合面向服务开发方法的优缺点来看,可扩展性强(服务的适配),耦合度低(服务以插件挂在总线上),部署方式(服务可以灵活部署体现集成的框架)。至于ESB的四个主要功能,真心不知道。不过看了答案之后应该也能回答几个了。比如和消息相关的有消息协议转换,消息格式转换,消息路由,消息增强,除了消息外,有应用系统位置透明性,安全支持,监控和管理。
  3. 第三问考查设计模式的应用。答出适配器模式之后,还要说明适配器模式的应用特点。
  4. 第二问算是理论和实际联系的考查方式。集成第三方的应用,界面集成是最妥当的;共享系统的功能,并且系统的运行平台与语言差异较大的时候,功能集成是首选,将功能包装成服务挂在总线上供统一调用;通信协议和数据格式各不相同的时候,可以使用消息总线的方式;
  5. 最后集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系,应该引入工作流定义语言及其引擎,这里应该使用业务流程集成。

2010年系统架构师案例分析真题第五题(可靠性设计)

阅读以下信息系统可靠性的问题,在答题纸上回答问题1至问题3。
某软件公司开发一项基于数据流的软件,其系统的主要功能是对输入的数据进行多次分析、处理和加工,生成需要的输出数据。需求方对该系统的软件可靠性要求很高,要求系统能够长时间无故障运行。该公司将该系统设计交给王工负责。王工给出该系统的模块示意图,如图5-1所示。王工解释:只要各个模块的可靠度足够高,失效率足够低,则整个软件系统的可靠性是有保证的。
在这里插入图片描述
李工对王工的方案提出了异议。李工认为王工的说法有两个问题:第一,即使每个模块的可靠度足够高,假设各个模块的可靠度均为0.99,但是整个软件系统模块之间全部采用串联,则整个软件系统的可靠度为0.994=0.96,即整个软件系统的可靠度下降明显;第二,软件系统模块全部采用串联结构,一旦某个模块失效,则意味着整个软件系统失效。
李工认为,应该在软件系统中采用冗余技术中的动态冗余或者软件容错的N版本程序设计技术,对容易失效或者非常重要的模块进行冗余设计,将模块之间的串联结构部分变为并联结构,来提高整个软件系统的可靠性。同时,李工给出了采用动态冗余技术后的软件系统模块示意图,如图5-2所示。
【软考系统架构设计师】2010年下系统架构师案例分析历年真题_第7张图片
刘工建议,李工方案中Ml和M4模块没有釆用容错设计,但Ml和M4发生故障有可能导致严重后果。因此,可以在Ml和M4模块设计上采用检错技术,在软件出现故障后能及时发现并报警,提醒维护人员进行处理。
注:假设各个模块的可靠度均为0.99。
【问题1】
在系统可靠性中,可靠度和失效率是两个非常关键的指标,请分别解释其含义。
【问题2】
请解释李工提出的动态冗余和N版本程序设计技术,给出图5-1中模块M2采用图5-2动态冗余技术后的可靠度。
请给出采用李工设计方案后整个系统可靠度的计算方法,并计算结果。
【问题3】
请给出检错技术的优缺点,并说明检错技术常见的实现方式和处理方式。

  • 【问题1我的解答】
  1. 可靠性是系统能够在发生错误的情况下,仍然能够正常运行的能力;
  2. 失效率是是指系统在发生错误,失效的概率。
  • 【问题2我的解答】
  1. M2-1,M2-2和M2-3的可靠度=1-(1-0.99)的三次方=1-0.000001=0.999999;
    同样M3-1,M3-2和M3-3的可靠度也是0.999999;
    整个系统的可靠度=0.9999990.9999990.99*0.99=0.98;
  • 【问题3我的解答】
  1. N版本程序设计:对重要的模块进行重复计算,然后采用表决器对多个结果进行确认,找出并回避错误;
  2. 恢复块设计:先执行主块,当主块执行失败时,调用后备块,并以此类推。
  3. 防卫式编程技术:出现错误时及时报错并提出错误,以提高系统可靠性
  4. 数据冗余(结构冗余):在通信过程中,增加冗余数据位来检错;
  5. 时间冗余:同样的计算或函数执行多次以演算其正确性;
  • 【问题1标准答案】
  1. 可靠度就是系统在规定的条件下、规定的时间内不发生失效的概率。
  2. 失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。
  • 【问题2标准答案】
  1. 动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。
  2. N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。
  3. M2采用动态冗余后的可靠度为:R= 1- (1-0.99) 3 = 0.999999
  4. 李工给出的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,再按照串联系统的计算方法计算出整个系统的可靠度。
    R = 0.99 * 0.999999 * 0.999999 * 0.99 = 0.98
  • 【问题3标准答案】
  1. 检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。
  2. 检错技术常见的实现方式:最直接的一种实现方式是判断返回结果,如果返回结果 超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。
  3. 检错技术的处理方式,大多数都采用“査出故障-停止软件运行-报警”的处理方式。 但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定
  • 【心得体会】
  1. 第一问我把可靠性回答成了容错性,可靠性是系统在规定条件,规定时间内不发生错误的概率;失效率是单位时间内系统出现失效的概率;
  2. 第二问考查的是计算题,发现自己数学功底不够,只能列出列对公式;
  3. 第三问考查检错技术,这里首先要区分开检错与容错,避错之间的区别,检错的特征就是实现成本较低,但检测出错误之后无法在没有人工干预的情况下解决错误。
  4. 检错的常见实现方式有检查返回值,或者计算运行时间,设置状态标志位等方式来实现;
  5. 检错技术的处理方式,大多数都采用“査出故障-停止软件运行-报警”的处理方式。
    通过做此题发现,我对于容错,检错,避错等还不是很熟悉。
  6. 在这里还有一个方法叫做降低复杂度,也可以提高系统整体的可靠性,因为设计复杂度降低了,系统正常运行时发生出错的概率就减少了。
  7. 还有在可靠性设计中,最重要的还是容错技术;说到容错技术常见的有:恢复块设计(动态冗余),N版本程序设计(静态冗余),最后一个是防卫式编程技术;
  8. 容错技术如果要分类可以分为:时间冗余,结构冗余和信息冗余。信息冗余最常见的就是校验码,结构冗余包括硬件和软件冗余两个子分类,时间冗余一般就是进行多次计算;

你可能感兴趣的:(#,系统架构设计师---历年真题,系统架构,运维,java)