系统架构设计师 历年真题 2014年11月 系统架构设计师 下午题.docx
-
资源ID:88495612
资源大小:186.72KB
全文页数:11页
- 资源格式: DOCX
下载积分:10金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
系统架构设计师 历年真题 2014年11月 系统架构设计师 下午题.docx
2014年11月 系统架构设计师 下午题【简答题】【说明】某公司正在研发一套新的库存管理系统。系统中一个关键事件是接收供应商供货。项目组系统分析员小王花了大量时间在仓库观察了整个事件的处理过程,并开发出该过程所执行活动的列表:供应商发送货物和商品清单。公司收到商品后执行收货处理,包括卸载商品、确定收到了订单上的商品、处理与供应商的分歧等。对于已有商品,调整其库存信息,对于新采购的商品,在库存中添加新的商品记录。收货完成后,系统执行入库处理,将商品放到仓库对应的货架上。在付款处理活动中,自动生成应付账款信息,如果查询到该供应商有待付款记录,则进行合并付款,付款完成后消除应付账款记录。最后,仓库管理员根据最新的库存商品,调整出货信息。小王根据自己观察的过程创建了该事件的1层数据流图,如下图所示。【问题1】请用300以内文字说明数据流图(Data Flow Diagram)的基本元素及其作用。<br/>【问题2】数据流图在绘制过程中可能出现多种语法错误,请分析题图所示数据流图中哪些地方有错误,并分别说明错误的类型。<span style="mso-spacerun:'yes'font-family:Courier;mso-fareast-font-family:'Times New Roman'mso-hansi-font-family:'Times New Roman'font-size:10.5000pt;mso-font-kerning:1.0000pt;"> <br/></span>1、【问题1】数据流图(Data Flow Diagram)的四种基本元素及其作用:<br/><p> (1)External Agent(实体/外部代理):定义位于项目范围之外,但与正在被研发的系统有交互关系的人、部门、外部系统或组织。(2)Process(加工/处理):在输入数据流或条件上执行,或者对输入数据流或条件做出响应的工作。(3)Data Store(数据存储):静止的数据,表示系统中需要保存的数据。(4)Data Flow(数据流):运动中的数据,表示到一个过程的数据输入,或者来自一个过程的数据输出。</p><p>【问题2】(1)D1到A2:缺少移动数据流的加工。(2)P5.3:没有输出数据流,输入输出不平衡。(3)P5.4:没有输入数据流,输入输出不平衡。 (4)D2:数据存储没有输出的数据流。(此条可不必写)</p><p>【问题3】(1)R (2)R (3)CRU (4)RU (5)CRUD</p>答案:解析:【简答题】请详细阅读有关嵌入式构件设计方面的说明,回答下列问题。<br/>【说明】构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。某公司长期从事飞行器电子设备研制工作,已积累了大量成熟软件。但是,由于当初管理和设计等原因,公司的大量软件不能被复用,严重影响了公司后续发展。公司领导层高度重视软件复用问题,明确提出了要将本公司的成熟软件进行改造,建立公司可复用的软件构件库,以提升开发效率、降低成本。公司领导层决定将此项任务交给技术部门的王工程师负责组织实施。两个月后,王工程师经过调研、梳理和实验,提交了一份实施方案。此方案得到了公司领导层的肯定,但在实施过程中遇到了许多困难,主要表现在公司软件架构的变更和构件抽取的界面等方面。<br/>【问题1】请用200字以内文字说明获取构件的方法有哪几种?开发构件通常采用哪几种策略?并列举出两种主流构件标准。【问题3】<span style="caret-color: red;">王工程师的实施方案指出:本公司的大部分产品是为用户提供标准计算平台的,而此平台中的主要开发工作是为嵌入式操作系统研制板级支持软件(BSP)。为了提高BSP软件的复用,应首先开展BSP构件的开发,且构件架构应符合国外GENESYS规范定义的嵌入式系统架构风格。下图给出了架构风格定义的构件通用接口,其中:链接接口(LIF.是构件对外提供的功能服务接口;局部接口建立了构件和它的局部环境的连接,如传感器、作动器或人机接口;技术相关接口(TDI)提供了查看构件内部、观察构件的内部变量的手段,如诊断等;技术无关接口(TII)用来在运行时配置、复位、重启构件的接口。现需要针对BSP中常用的RS-232串行驱动程序设计一个可复用的软构件,请说明该软构件四类接口的具体功能。</span><br/>1、答案:解析:问题一、基于构件的软件开发中,可以通过不同的途径来获取构件,主要包括以下4种方法:<br/>(1)从现有构件中获得符合要求的构件,直接使用或做适应性修改,得到可复用的构件;<br/>(2)通过遗留工程(Legacy Engineering),将具有潜在复用价值的软件提取出来,得到可复用的构件;<br/>(3)从市场上购买现成的商业构件,即COTS (Commercial Off-The-Shell)构件;<br/>(4)开发新的符合要求的构件。<br/>开发构件通常采取3种策略:<br/>(1)分区(partitioning):指的是将问题情景的空间分割成几乎可以独立研究的部分;<br/>(2)抽象(abstraction):是对在给定实践内执行指定计算的软/硬件单元的一种抽象;<br/>(3)分割(segmentation);是将结构引入构件的行为,支持对行为性质进行时序推理。<br/>当前主流构件标准有:<br/>(1)CORBA:由OMG(对象管理集团)制定;<br/>(2)COM/DCOM:由Microsoft制定;<br/>(3)EJB:由SUN的Java企业Bean制定。<br/>问题二、(1) (2)× (3)× (4) (5)× (6)×<br/>错误分析:<br/>(2)“构件是解决软件复用的基础,复用的形式可分为垂直式复用和水平式复用。而垂直式复用的主要关键点在于领域分析,具有领域特征和相似性,受到广泛关注”。垂直式复用是与领域特性相关的,而水平式复用是一种公用的服务,不予某个特殊领域相关。<br/>(3)“构件构建在平台之上,平台提供核心平台服务,是构件实现与构件组装的基础。构件组装通常采用基于功能的组装技术、基于数据的组装技术和面向对象的组装技术等三种技术”。配置只是一种构件功能组合动态方法,而不是构件组装的技术。<br/>(5)“构件可分为硬件构件、软件构件、系统构件和应用构件。RTL(运行时库)属于软件构件,由于RTL可适应多种应用领域,所以RTL与属于水平式复用构件”。RTL是C/C+语言为用户提供的一种运行时库,如数学库、stdio库等,它可服务于多种应用,而与领域需求无关,所以说RTL不属于垂直式复用构件。<br/>(6)“硬件构件的功能被给定的硬件结构如ASIC预先确定,他是不能修改的。同样,软件构件的功能由在FPGA或者CPU上的软件确定的,我们将加载在软件构件上的软件称为作业。将作业分配给适当的可以执行该作业的硬件单元就创建了新的构件。软件构件的功能所以在构件的寿命期中可以修改”。<br/>问题三、RS-232驱动程序主要完成对RS-232芯片的初始化,实现RS-232数据发送、接收和控制等功能。依据GENESYS规范定义的构件接口含义,RS-232驱动程序构件的接口定义如下:<br/>(1)链接接口<br/>RS-232驱动构件的使用者是上层的操作系统或应用软件,本构件应该给他们提供串行接口的数据发送、数据接收服务。因此,链接接口至少包括以下功能服务:<br/>Send():处理机中的程序向RS-232芯片输出数据;<br/>Receive():处理机中的程序通过RS-232芯片从外部接收数据;<br/>Init232():初始化RS-232芯片。<br/>(2)局部接口<br/>RS-232驱动构件的局部接口应该是RS-232芯片为编程提供的各类寄存器和CPU对外围芯片的支持,此接口与硬件紧密相关。就RS-232芯片而言,局部接口至少包括以下功能服务:<br/>Intconnect():将RS-232芯片的外部中断向量连接到CPU;<br/>Read():从RS-232芯片中读取寄存器的内容(包括控制、状态类寄存器和数据输入寄存器);<br/>Write():将控制信息或输出的数据写入RS-232芯片的相应寄存器。<br/>(3)技术相关接口<br/>RS-232驱动构件的技术相关接口应该是RS-232驱动构件为维护人员提供的芯片诊断接口,此接口与硬件和应用紧密相关。就RS-232芯片使用而言,技术相关接口至少包括以下诊断功能服务:<br/>Datacheck():诊断数据传输校验的错误。<br/>(4)技术无关接口<br/>RS-232驱动构件的技术无关接口应该是RS-232驱动构件为编程人员提供的芯片初始化或运行时的配置接口。技术无关接口至少包括以下功能服务:<br/>Reset():RS-232芯片或驱动构件复位;<br/>Restart():RS-232芯片或驱动构件重启动;<br/>Rateconfigure():配置、重新配置RS-232传输速率。<br/>【简答题】请详细阅读以下关于网络设备管理系统架构设计的说明,回答下列问题。<br/>【说明】某软件公司欲开发一个网络设备管理系统,对管理区域内的网络设备(如路由器和交换机等)进行远程监视和控制。公司的系统分析师首先对系统进行了需求分析,识别出如下3项核心需求:<br/> (a)目前需要管理的网络设备确定为10类20种,未来还将有新类别的网络设备纳入到该设备管理系统中;<br/>(b)不同类别的网络设备,监视和控制的内容差异较大;同一类网络设备,监视和控制的内容相似,但不同厂商的实现方式(包括控制接口格式、编程语言等)差异较大;<br/>(c)网络管理员能够在一个统一的终端之上实现对这些网络设备的可视化呈现和管理操作。<br/>针对上述需求,公司研发部门的架构师对网络设备管理系统的架构进行了分析与设计,架构师王工认为该系统可以采用MVC架构风格实现,即对每种网络设备设计一个监控组件,组件通过调用网络设备厂商内置的编程接口对监控指令进行接收和处理;系统管理员通过管理模块向监控组件发送监控指令,对网络设备进行远程管理;网络状态、监控结果等信息会在控制终端上进行展示。针对不同网络设备的差异,王工认为可以对当前的20种网络设备接口进行调研与梳理,然后通过定义统一操作接口屏蔽设备差异。李工同意王工提出的MVC架构风格和定义统一操作接口的思路,但考虑到未来还会有新类别的网络设备接入,认为还需要采用扩展接口的方式支持系统开发人员扩展或修改现有操作接口。公司组织专家进行架构评审,最终同意了王工的方案和李工的改进意见。<br/>【问题1】请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述,指出该系统中的M、V、C分别对应什么。【问题2】<span style="caret-color: red;">扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端,它们之间的关系如下图所示。其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识。每个具体的组件需要实现扩展接口完成实际操作。客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接口根据请求查找并选择合适的实现组件响应客户端请求。请根据下图所示和题干描述,指出扩展接口模式结构中的四个角色分别对应网络设备管理系统的哪些部分;并以客户端发起调用操作这一场景为例,填写表1中的(1)(5)。 </span>1、答案:解析:问题一、MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,控制器负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映自身的变化。<br/>在本系统中,模型(M)代表监控组件、视图(V)代表控制终端、控制器(C)代表管理模块。<br/>问题二、1.扩展接口 2.组件 3.操作接口 4.接口ID<br/>各个角色与网络设备管理系统的对应关系为:基础接口对应统一操作接口; 组件对应监控组件;扩展接口对应新网络设备的操作接口;客户端对应控制终端。 <br/>【简答题】请详细阅读有关软件架构评估方面的说明,回答下列问题。<br/>【说明】某电子商务公司拟升级目前正在使用的在线交易系统,以提高客户网上购物时在线支付环节的效率和安全性。公司研发部门在需求分析的基础上,给出了在线交易系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求、架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:<br/>(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;<br/>(b)用户的信用卡支付必须保证99.999%的安全性;<br/>(c)系统升级后用户名要求至少包含8个字符;<br/>(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;<br/>(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能;<br/>(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;<br/>(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;<br/>(h)需要在30人月内为系统添加公司新购买的事务处理中间件;<br/>(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性;<br/>(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点;<br/>(k)用户信息数据库授权必须保证99.999%可用;<br/>(l)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成;<br/>(m)系统需要为后端工程师提供远程调试接口,并支持远程调试。<br/>【问题1】在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入下图中(1)、(2)空白处;并选择题干描述的(a)(m),填入(3)(6)空白处,完成该系统的效用树。【问题2】在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。1、【问题1】在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。效用树主要关注性能、可修改性、可用性和安全4个方面<img src="https:/oss- title="108.png" alt="108.png"/>【问题2】系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。根据上述分析可知题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点;(f)描述的是权衡点。<br/>答案:解析:【简答题】请详细阅读有关Web应用架构设计方面的说明,回答下列问题。<br/>【说明】某软件公司开发运维了一个社交网站系统,该系统基于开源软件平台LAMP(Linux+Apache+MySQL+PHP)构建,运行一段时间以来,随着用户数量及访问量的增加,系统在Web服务器负载、磁盘I/O等方面出现了明显瓶颈,已不能满足大量客户端并发访问的要求,因此公司成立了专门的项目组,拟对系统架构进行调整以提高系统并发处理能力。目前系统采用了传统的三层结构,系统架构如下图所示。<br/>【问题2】针对并发数据库访问所带来的磁盘I/O瓶颈问题,项目组决定在数据层引入数据库扩展机制。经过调研得知系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,且系统运行时发生的大部分数据库操作为查询操作。经过讨论,项目组决定引入数据库分区和MySQL主从复制两种扩展机制。数据库分区可采用水平分区和垂直分区两种方式,请用350字以内的文字说明在本系统中应采用哪种方式及其原因,并分析引入主从复制机制给系统带来的好处。<br/>【问题3】为进一步提高数据库访问效率,项目组决定在中间层与数据层之间引入缓存机制。赵工开始提出可直接使用MySQL的查询缓存(query cache)机制,但项目组经过分析好友动态显示等典型业务的操作需求,同时考虑已引入的数据库扩展机制,认为查询缓存尚不能很好地提升系统的查询操作效率,项目组最终决定在中间层与数据层之间引入Memcached分布式缓存机制。<br/>(a)请补充下述关于引入Memcached后系统访问数据库的基本过程:系统需要读取后台数据时,先检查数据是否存在于_中,若存在则直接从其中读取,若不存在则从_中读取并保存在_中;当_中数据发生更新时,需要将更新后的内容同步到_实例中。(备选答案:数据库、Memcached缓存)<br/>(b)请结合已知信息从缓存架构、缓存有效性及缓存数据类型等方面分析使用Memcached代替数据库查询缓存的原因。1、【问题1】两种机制的基本原理:基于DNS的负载均衡机制通过DNS服务器实现,通常通过循环复用具有同一域名的多个主机地址的服务器实现负载均衡。 反向代理负载均衡则是将来自Internet的连接请求以反向代理的方式动态转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。 区别比较:从系统执行效率方面讲,基于DNS的负载均衡机制实现简单,但其通常不能区分服务器的差异,也不能反映服务器的当前运行状态。基于反向代理的则可以根据内部服务器的性能差异及实时负载情况进行动态负载均衡,当系统多个Web服务器性能存在明显差异或内部Web服务器出现故障时,负载均衡器可以更快做出响应,从而保证客户端的访问效率。采用基于反向代理的负载均衡机制,可在代理服务器中引入调速缓存机制,对Web服务器返回的静态页面或图片等静态资源进行缓存,由代理服务器承担对原始服务器的静态资源访问请求,从而进一步降低原始Web服务器的负载。 从安全性方面讲,采用基于反向代理的负载均衡机制,代理服务器屏蔽了客户端对真实Web服务器的直接访问,恶意用户无法对真实Web服务器进行攻击,且可以通过代理服务器为原本不安全的客户端与Web服务器之间的连接建立安全通道。因此采用基于反向代理的负载均衡机制可为系统提供更好的安全性保障。<br/>(1) 否(2)是(3)否(4)是(5)否(6)是(7)是(8)否(注:主要意思答出来即可)<br/>【问题2】<span style="caret-color: red;">(1)本系统中应主要使用水平分区机制。根据已知信息,系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,采用水平分区机制可根据用户标识将用户数据进行水平分割,用户操作时先将请求分发到不同数据库分区,再进行具体数据库操作,以提高数据库访问效率。(2)引入主从复制机制所带来的好处:避免数据库单点故障:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。提高查询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。</span><p>【问题3】(a) (1)Memcached缓存(2)数据库(3)Memcached缓存(4)数据库(5)Memcached缓存(b) 使用Memcached代替数据库查询缓存的原因:(1)缓存架构:数据库查询缓存通常每个数据库只有一个实例,因此存储内容受数据库服务器可用内存限制,可缓存数据有限。而Memcaehed可采用高速分布式缓存服务器结构,不受数据库服务器约束,可扩展性更好。(2)缓存有效性:数据库查询缓存只要在发生写操作时就会失效,即使更新的是数据库中的其他行。而Memcached可通过键值将数据进行散列缓存,有效降低缓存的更新频率,从而提高缓存的有效性。(3)缓存数据类型:数据库查询缓存只能缓存数据库行,对社交网站好友动态显示等典型业务所需要的组合数据缓存缺乏有效支持,而Memcached理论上可缓存任何内容。因此可以将分散在数据库中的关系或者列表组合后进行缓存,以提高缓存数据的针对性和效率。 </p>答案:解析: