收藏 分销(赏)

下半年系统架构设计师下午I试题解析与参考答案.docx

上传人:a199****6536 文档编号:4013798 上传时间:2024-07-25 格式:DOCX 页数:8 大小:71.07KB
下载 相关 举报
下半年系统架构设计师下午I试题解析与参考答案.docx_第1页
第1页 / 共8页
下半年系统架构设计师下午I试题解析与参考答案.docx_第2页
第2页 / 共8页
下半年系统架构设计师下午I试题解析与参考答案.docx_第3页
第3页 / 共8页
下半年系统架构设计师下午I试题解析与参考答案.docx_第4页
第4页 / 共8页
下半年系统架构设计师下午I试题解析与参考答案.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、2010年下半年系统架构设计师_下午I试题解析与答案试题一、阅读以下关于软件系统架构选择的说明,在答题纸上回答问题1至问题3试题分析问题1本问题主要考查软件架构风格的定义,并考查对两种与本题相关的架构风格的定义。软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件成为过滤器,

2、构件之间的连接件称为数据流传输的管道。问题2本问题是一道填表题,其核心是对两种架构风格在算法变更、功能变更、数据表示变更和性能等方面的特点进行比较。共享数据的主程序-子程序在算法变更方面灵活性较差,算法变更时一般需要重新编译整个系统;在功能变更方面也比较差;在数据表示方面,当需要变更是,也意味着程序传递参数的变化以及整个程序的调整,表现比较差;在性能方面,由于整个程序处在一个紧耦合的状态,因此性能较高。管道-过滤器架构风格在算法变更方面实现比较简单,只需要修改过滤器的实现即可;在功能变更方面也比较简单;在数据表示方面,需要同时改变数据格式和过滤器的结构,相对比较复杂;在性能方面,由于整个系统是

3、松耦合连接在一起的,因此性能不高。根据题干描述:“用户后续还有可能采用其他方式展示帮助内容”,因此KWIC系统对功能变更要求较高;根据题干描述:“后续还将采用其他的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高;KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高;KWIC系统的现实帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。针对这些考虑,可以看出应该采用管道-过滤器的架构风格。问题3本问题是一道读图题,考查用户都系统架构的理解程度。根据题干中的关键描述“接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读”

4、和“公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动”,可以看出整个系统的流程是:输入文档检索查询结果按字母排序剪切行首单词单词插入行尾输出。解答要点【问题1】软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,

5、构件之间的连接件称为数据流传输的管道。【问题2】选择李工方案的原因:根据题干描述:“用户后续还有可能采用其他方式展示帮助内容”,因此KWIC系统对功能变更要求较高;根据题干描述:“后续还将采用其他的方法实现这一功能”,因此KWIC系统对实现某一功能的算法变更要求较高。KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高。KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。综上所述,可以看出应该采用李工提出的管道-过滤器架构风格。【问题3】试题二、阅读以下关于软件系统数据架构建模的说明,在答题纸上回答问题1至问题3试题分析本题考查考生对于软件系统数据架构建

6、模的掌握情况。数据架构定义了信息系统中文件和数据库的分布结构。数据架构建模是以数据为中心,建模业务数据类型和结构,以及设计满足应用需求的数据库系统。传统以主机为中心的信息系统开发中,利用单个的数据库系统实现数据的集中式存储,物理上所有的数据位于同一个位置,构成的是一种集中式的数据架构;现代基于网络的分布式系统开发中,很少有组织会将其全部的数据存储在单个的数据库中,通常需要多个数据库系统组成,数据在这些数据库系统之间可以传送,由多个不同的数据库管理系统控制,构成的是一种分布式的数据架构。【问题1】集中式数据架构中,一个或多个局域网中的客户共享一个单独计算机系统中的单个数据库。系统提供数据处理能力

7、,用户可以在同样的站点上操作,也可以在地里位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个站点或中心站点集中控制。单个数据库服务器结构的主要优点就是简单、易维护开发及运行成本低;但由于所有的客户直接请求服务器,容易发生性能瓶颈,如果服务失败,单个服务器不能提供备份和恢复,所有依赖的应用程序都将不能工作。分布式数据架构中,使用多个计算机系统,用户能够访问远程系统的数据,数据可以在多个不同的数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的

8、计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。多个数据库服务器结构的主要优点就是系统的容错能力和对广域网容量的需求有所降低,可以采用多种策略提升整个系统的服务质量;由于多个数据库系统分布在不同的网络节点上,位于不同位置的数据之间需要同步和协作,系统结构复杂、运行成本高并且维护困难。在实际应用系统的数据架构建模中,应根据不同的应用需求选择集中式或分布式的数据架构。本题中由于RMO要扩展其销售区域,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性;并且由于其销售区域扩大后,系统中的数据会存储于不同的地理位置,所以采用分布式数据架构最为合理。【问题2

9、】读写分离架构应用非常广泛,很多网站采用数据库+缓存的方式实现。通过缓存层来承载大量的读访问,如广泛采用的Mencached,其自身往往不具备持久层存储的功能,通常和数据库一起组成分布式的数据架构,由数据库负责数据持久化存储和写入功能,缓存负责承载大量的并发访问,从而提高了系统的数据处理效率。要避免数据访问的单点故障,通常采用主数据库热备份的方式实现。所以,要实现题目要求的分布式数据架构,需要多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。读写分离结构中,应用读取数据时访问缓存,如果没有命中所需数据,则从主数据库中读取数据并写入缓存;对于新增、修改和删除操作,需要采用延迟加载的策略

10、,新增时至修改主数据库,修改和删除时处理修改主数据库中的内容,还需要将缓存中的数据标记为失效。【问题3】传统的集中式数据架构中由于只有的单个的数据库系统,所以要满足可扩展性的要求,更多的只能通过硬件的方式来实现。具体的实现方式包括硬件扩容(增加CPU、内存容量和磁盘数量)和硬件升级(更换高端主机或高速磁盘等)。基于网络的分布式数据架构中由多个数据库系统共同组成,可以通过更改和优化数据分布来满足系统可扩展性的要求。具体的实现方式包括数据复制、数据垂直切分或/和水平切分、缓存和全文搜索。解答要点:【问题1】(1)张工提出的集中式数据架构是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,

11、它被物理定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。(2)刘工提出的分布式数据架构使用多个计算机系统上的多个局部数据库系统构成,数据可以在多个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。【问题2】读写分离架构利用了数据库的复制技术,将数据的读和写分布在不同的处

12、理节点上,从而达到提高可用性和扩展性的目的。CRSS的分布式数据库系统需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。局部数据库负责数据的写入,多个热备份数据库系统用以解决单点故障的问题,数据缓存负责为应用提供所读取的数据。(1)读取数据:应用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回。(2)添加数据:采用延迟加载策略,应用将数据直接写入局部数据库。(3)更改数据:应用更改局部数据库中的数据,将缓存中的数据标志为失效。(4)删除数据:应用删除局部数据库中的数据,将缓存中的数据标记为失效。【问题3】张工提出的集中式数据架构通过向上扩展(Sc

13、ale Up)提升系统的扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、硬盘数量)和硬件升级(更换为高端主机或高速磁盘等)。刘工提出的分布式数据架构通过向外扩展(Scale Out)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分或/和水平切分、缓存和全文搜索。试题三、阅读以下关于汽车电子基础软件架构的说明,在答题纸上回答问题1至问题3试题分析本题主要考查汽车电子基础软件架构的分析和设计,特别是系统的开发和架构设计方面。问题1本问题主要考查在一定规范的约束下,系统设计流程的设计与定义。AUTOSAR规范中要求,汽车电子软件开发流程应尽量满足并发、可多次迭代的特性。因此

14、应该紧扣该规范对系统设计流程方面的要求,对李工和王工定义的流程进行评价。具体来说:(1)李工定义的流程是将软件组件描述、系统描述和ECU资源描述同时定义,而王工定义的流程仅仅只做系统描述;(2)王工定义的流程没有考虑软件组件的描述,只是简单讲软件组件作为第4步被集成;(3)李工定义的ECU软件开发流程的优势是明确了顶层定义阶段,并行度高,迭代清晰。综上,应该采用李工的设计方案。问题2本问题是一道读图题,要求考生在分析AUTOSAR定义的操作系统结构进行分析与理解的基础上进行填写。根据图示,系统从上至下依次可以分为中断管理、事件管理、警报管理、进程管理和调度以及资源管理4个部分。根据图中模块之间

15、的关系,可以看出:(1)处主要表示当操作系统的警报管理发现ECU系统出错时,启动错误处理程序;(2)处表示错误处理程序将具体动作交由进程管理完成对发生错误的任务进行处理;(3)处表示错误处理程序产生一个错误事件;(4)处表示任务控制块处理程序调用资源管理功能,实现硬件资源重分配;(5)处表示任务控制块处理程序通知事件管理,对错误事件进行应答。问题3本题主要考查考生对AUTOSAR架构的分析与总结能力。根据题干和上述两个题目的回答,可以看出,采用AUTOSAR开放式架构的优点主要包括:(1) 具有厂商独立性,可以有效支持多厂家汽车电子基础软件的研制;(2) 软件层次上的重用性,可根据不同的ECU

16、结构,通过数据配置,自动生成各种ECU软件组件;(3) 支持汽车电子软件的全生存周期,包括架构、开发、测试、验证、授权、版本和接口。另外,该规范覆盖整个汽车电子的三大领域为动力、底盘和车身。解答要点【问题1】李工设计的流程符合AUTOSAR要求,理由是:李工定义的流程是将软件组件描述、系统描述和ECU资源描述同时定义,而王工定义的流程仅仅只做系统描述;王工定义的流程没有考虑软件组件的描述,只是简单将软件组件作为第4步被集成;李工定义的ECU软件开发流程的优势是明确了顶层定义阶段,并行度高,迭代清晰。【问题2】(1)操作系统的警报管理发现ECU系统出错时,启动错误处理程序;(2)错误处理程序将具

17、体工作交由进程管理完成对发生错误的任务进行处理;(3)错误处理程序产生一个错误事件;(4)任务控制块处理程序调用资源管理功能,实现硬件资源重分配;(5任务控制块处理程序通知事件管理,对错误事件进行应答。【问题3】采用AUTOSAR开放式架构的优点是:(1)可以有效支持多厂家汽车电子基础软件的研制;(2)有利于软件重用,可根据不同的ECU结构,通过数据配置,自动生成各种ECU软件组件;(3)AUTOSAR定义的软件框架支持了汽车电子软件的全生存周期,包括架构、开发、测试、验证、授权、版本和接口。AUTOSAR规范覆盖整个汽车电子的三大领域:动力、底盘、车身。试题四、阅读以下关于系统设计与开发工具

18、集成的说明,在答题纸上回答问题1至问题3试题分析本题主要考查系统集成的相关知识及应用,需要考生结合题干描述和自己的实际经验进行回答。问题1本问题主要考查企业服务总线(ESB)的基本概念,需要考生列举出企业服务总线7个核心功能中的任意4个。根据ESB的特点,其核心功能包括:(1) 应用程序的位置透明性(2) 传输协议转换(3) 消息格式转换(4) 消息路由(5) 消息增强(6) 安全支持(7) 监控和管理选择ESB作为基础架构的好处:从部署方式看,采用ESB作为集成框架,能够实现灵活的部署结构,包括CS结构、P2P结构等。从待集成系统之间哦耦合程度看,采用ESB作为集成框架,带集成系统只需要和总

19、线进行联系,彼此之间不需要互相通信,这样就大大降低了系统的耦合程度。从集成系统的可扩展性,可以看出采用ESB作为集成框架,在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。问题2对于需求(1)“目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能”来说,由于需要共享系统的功能,并且系统的运行平台与语言差异较大,应该采用面向服务的方式进行功能集成,可以将工具的功能包装为服务,实现跨语言与跨平台的访问。对于需求(2)“目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信

20、和数据格式转换”来说,应该基于消息总线,以协议及数据适配器的方式实现灵活的通信协议和数据格式转换。对于需求(3)“集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系”来说,应该采用解释器架构风格,引入工作流定义语言及其引擎来动态描述工具之间的协作关系。对于需求(4)“集成框架应能集成一些常用的第三方使用工具,如即时通信、邮件系统等”来说,应该采用界面集成的方法对第三方工具进行集成,绕过工具内部的复杂处理逻辑,实现集成功能。问题3本问题主要考查数据转换在实现层面上的常用方法。在实现工具之间数据格式的灵活转换时,通常采用适配器设计模式。即应首先定义一个统一的哦数据转换接口类,然后

21、针对不同的数据格式转换需求定义对应的实际转换类,实际转换类需要继承数据转换接口类,并实现接口转换类定义的接口。解答要点【问题1】ESB的主要功能包括:(1)应用程序的位置透明(2)传输协议转换(3)消息格式转换(4)消息路由(5)消息增强(6)安全支持(7)监控和管理采用ESB作为集成框架的好处:部署方式:能够实现灵活的部署结构,包括CS结构、P2P结构等。耦合度方面:待集成系统只需要和总线进行联系,彼此之间不需要互相通信,这样就大大降低了系统的耦合程度。可扩展性方面:在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。【问题2】对于需求(1)来说

22、,由于需要共享系统的功能,并且系统的运行平台与语言差异较大,应该采用面向服务的方式进行功能集成,可以将工具的功能包装为服务,实现跨语言与跨平台的访问。对于需求(2)来说,工具所支持的通信协议和数据格式各不相同,并需要实现工具之间的灵活通信协议和数据格式交换,因此应该基于消息总线,以协议及数据适配器的方式实现灵活的通信协议和数据格式交换。对于需求(3)来说,集成框架需要根据实际的软件系统开发流程,灵活、动态地定义系统设计与开发工具之间的协作关系,因此应该采用解释器架构风格,引入工作流定义语言及其引擎来动态描述工具之间的协作关系。对于需求(4)来说,应该采用界面集成的方法对第三方工具进行集成,绕过

23、工具内部的复杂处理逻辑。【问题3】在实现工具之间数据格式的灵活转换时,通常采用适配器设计模式。即应首先定义一个统一的数据转换接口类,然后针对不同的数据格式转换需求定义对应的实际转换类,实际转换了需要集成数据转换接口类,并实现接口转换类定义的接口。试题五、阅读以下信息系统可靠性的问题,在答题纸上回答问题1至问题3试题分析本题考查信息系统中可靠性的设计,是比较传统的题目,要求考生细心分析题目中所描述的内容。问题1本问题考查信息系统可靠性的两个基本概念:可靠度和失效率。在软件可靠性的定量描述中,软件可靠性可以基于使用条件、规定时间、系统输入、系统使用和软件缺陷等变量构建数据表达式,来对软件可靠性进行

24、定量描述。相关概念有规定时间、失效概率、可靠度、失效强度、失效率、平均无失效时间等。其中可靠度是表示可靠性的最直接的方式,是软件系统在规定的条件下、规定的时间内不发生失效的概率。而失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统为出现失效的情况下,单位时间系统出现失效的概率。问题2本问题考查才常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户功能和性能需求的同时,全面满足软件的可靠性要求。常见的软件可靠性技术主要有容错设计、检错设计和降低复杂度设计等技术。其中,容错设计技术主要有恢复块设计、N版本程序设计和冗余设计三种方法。N版本程序设计是一种静态的故障屏蔽技术,其设计思

25、想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。动态冗余又称主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误是,就用一个备用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。计算机系统是一个复杂系统,影响其可靠性的因素很多,很难直接进行可靠性分析,往往需要

26、建立对应的数据模型。组合模型是分析系统可靠性的一种常用方法。组合模型下可靠性的计算方法为:串联系统:R=R1R2Rn;并联系统:R=1-(1-R1)(1-R2)(1-Rn);串联和并联混合系统则根据实际情况,灵活运行上述两个计算公式。M2采用动态冗余后,称为并联系统,则其可靠度为:R=1-(1-0.99)3=0.999999。李工给出的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,在按照串联系统的计算方法计算出整个系统的可靠度。R=0.99*0.999999*0.999999*0.99=0.98。问题3本题考查软件可靠性设计中的检错技术。检错技术常见的

27、实现方式有多种,最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预测时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选择。检错技术的处理方式也有多种,大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般有故障是否需要实时处理来决定。检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。解答要点【问题1

28、】可靠度就是系统在规定条件下、规定时间内不发生失效的概率。失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。【问题2】动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来

29、选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。王工的模块示意图M2采用动态冗余后,称为并联系统,则其可靠度为:R=1-(1-0.99)3=0.999999。李工给出的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,再按照串联系统的计算方法计算出整个系统的可靠度。R=0.99*0.999999*0.999999*0.99=0.98【问题3】检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。检错技术常见的实现方式:最直接的一种实现方式就是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。检错技术的处理方式,大多数都采用“查出故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服