admin 管理员组文章数量: 887006
2021系统架构案例分析(试题+答案+做题技巧)
题目一
某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,采用自助方式进行智能应用设计、实现与部署,并可以开发新算法组件加入平台中。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同;
(b)平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问;
©平台支持分布式部署,当主站点断电后,应在20秒内将请求重定向到备用站点;
(d)平台支持初学者和高级用户两种界面操作模式,用户可以根据自己的情况灵活选择合适的模式;
(e)平台主站点宕机后,需要在15秒内发现错误并启用备用系统;
(f)在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒;
(g)平台支持硬件扩容与升级,能够在3人天内完成所有部署与测试工作;
(h)平台需要对用户的所有操作过程进行详细记录,便于审计工作;
(i)平台部署后,针对界面风格的修改需要在3人天内完成:
(j)在正常负载情况下,平台应在0.5秒内对用户的界面操作请求进行响应;
(k)平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致;
(l)平台提供机器学习算法的远程调试功能,支持算法工程师进行远程调试。
【问题1】(9分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称域入图1-1中(1)、(2)空白处,并从题干中的(a) ~ (I)中选择合适的质量属性描述,填入(3) ~ (6)空白处,完成该平台的效用树。
答案:(1)性能,(2)可修改性(3)e,(4)j,(5)h,(6)i
做题技巧:第一步、把图中已出现的描述做标记。第二步、填写对应的质量属性。第三步、填写对应的描述
【问题2】(16分)
针对该系统的功能,赵工建议采用解释器(interpreter)架构风格,李工建议采用管道-过滤器(ppe-and-hlter)的架构风格,王工则建议采用隐式调用(implicit invocation)架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格。
解释器风格属于虚拟机风格的一种,可以制定一系列规则,按照制定的规则进行解析;管道-过滤器风格属于数据流风格的一种,过滤器表示构件,管道表示输入输出的数据流;隐式调用风格是独立构件风格的一种,事件被调用时会出发一系列操作。
灵活性和可扩展性方面,解释器风格可以自定义规则,在扩展时可以制定新规则具有良好的灵活性和可扩展性;管道过滤器风格由于是数据流风格所以可扩展性和灵活性都一般;隐式调用风格属于独立构件风格中的一种,可灵活性较好。
由于该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,所以选择解释器风格比较合适。
大题技巧:1、解释题干中的知识点。2、分析题干中的要点。3、结合题目回答问题
【题目二】
某医院拟委托软件公司开发一套预约挂号管理系统,以便为患者提供更好的就医体验,为医院提供更加科学的预约管理。本系统的主要功能描述如下:
(a)注册登录,(b)信息浏览,©账号管理,(d)预约挂号,(e)查询与取消预约,(f)号源管理,(g)报告查询,(h)预约管理,(i)报表管理 和 (j)信用管理等。
【问题1】(6 分)
若采用面向对象方法对预约挂号管理系统进行分析,得到如图2-1所示的用例图。请将合适的参与者名称填入图2-1中的(1)和(2)处,使用题干给出的功能描述(a) ~ (j),完善用例(3) ~ (12)的名称,将正确答案填在答题纸上。
答案:(1)系统管理员,(2)患者(3)a,(4)c,(5)f,(6)h,(7)i,(8)j,(9)b,(10)d,(11)e,(12)g
【问题2】 (10分)
预约人员(患者)登录系统后发起预约挂号请求,进入预约界面。进行预约挂号时使用数据库访问类获取医生的相关信息,在数据库中调用医生列表,并调取医生出诊时段表,将医生出诊时段反馈到预的界面,并显示给预的人员;预约人员选择医生及就诊时间后确认预约,系统返网预约结果,并向用户显示是否预约成功。
采用面向对象方法对预约挂号过程进行分析,得到如图2-2所示的顺序图,使用题干中给出的描述,完善图2-2中对象(1),及消息(2)(4)的名称,将正确答案填在普题纸上请简要说明在描述对象之间的动态交互关系时,协作图与顺序图存在哪些区别。
(1)患者,(2)发起预约挂号请求,(3)显示医生出诊时段,(4)显示是否预约成功。
协作图表示个对象之间的互相协作、交互。顺序图是按时序描述一个事件在各对象之间的交互。
【问题3】(9分)
采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这3种模型,并详细说明它们之间的关联关系,针对上述模型,说明哪些模型可用于软件的需求分析?
【题目四】
某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。
通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓存(Redis)的混合架构实现。
经过规范化设计之后,该系统的部分数据库表结构如下所示。
供应商(供应商ID,供应商名称,联系方式,供应商地址)﹔药品(药品ID,药品名称,药品型号,药品价格,供应商ID);药品库存(药品ID,当前库存数量)﹔
订单(订单号码,药品ID,供应商ID,药品数量,订单金额)。
【问题1】(9分)
在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计后,关系表过于细分,造成了大量的多表关联查询
,影响了性能。例如当用户查询商品信息时,需要同时显示该药品的信息、供应商的信息、当前库存等信息。
为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查询性能。修改后的药品关系结构为:药品(药品ID,药品名称,药品型号,药品价格,供应商ID,供应商名称,当前库存数量)﹔
请用200字以内的文字说明常见的反规范化设计方法,并说明用户查询商品信息应该采用哪种反规范化设计方法。
答案:
(1)增加冗余列:增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。例如:以规范化设计的理念,学生成绩表中不需要字段“姓名”,因为“姓名”字段可以通过学号查询到,但在反规范化设计中,会将“姓名”字段加入表中。这样查询一个学生的成绩时,不需要与学生表进行连接操作,便可得到对应的“姓名”。
(2)增加派生列:增加派生列指增加的列可以通过表中其他数据计算生成。它的作用是在查询时减少计算量,从而加快查询速度。例如:订单表中,有商品号、商品单价、采购数量,我们需要订单总价时,可以通过计算得到总价,所以规范化设计的理念是无须在订单表中设计“订单总价”字段。但反规范化则不这样考虑,由于订单总价在每次查询都需要计算,这样会占用系统大量资源,所以在此表中增加派生列“订单总价”以提高查询效率。(3)重新组表:重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
(4)分割表
有时对表做分割可以提高性能。表分割有两种方式。
水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。水平分割通常在下面的情况下使用。
情况1:表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高查询效率。
情况2:表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。
情况3:需要把数据存放到多个介质上。
垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少IO 次数。其缺点是需要管理冗余列,查询所有数据需要连接操作。
本题中用到了重新组表得方式。
【问题2】(9分)
王工认为,反规范化设计可提高查询的性能,但必然会带来数据的不一致性问题。请用200字以内的文字说明在反规范化设计中,解决数据不一致性问题的三种常见方法,并说明该系统应该采用哪种方法。
【问题⒉解析】
批处理维护、应用逻辑和触发器。【问题3】(7分)
该系统采用了Redis来实现某些特定功能(如当前热销药品排名等),同时将药品关系数据放到内存以提高商品查询的性能,但必然会造成Redis 和 MySQL的数据实时同步问题。(1) Redis 的数据类型包括String、Hash、List、Set和ZSet等,请说明实现当前热销药品排名的功能应该选择使用哪种数据类型。
(2)请用200字以内的文字解释说明解决Redis和 MySQL数据实时同步问题的常见方案。【问题3解析】
( 1) ZSet
(2 一、引用Mysql的事务,因为事务有一致性保证,事务提交成功后再更新缓存。
二、在缓存里面引用一些访问控制位,数据库数据变化后,同步变更对应的访问控
制位,然后从缓存查询时,率先判断该访问控制位,有变化就从数据库查,无变化直接从缓存返回数据。
三、通过数据库中间件产品保证缓存和数据库数据时时同步
【题目五】
某公司拟开发一个智能家居管理系统,该系统的主要功能需求如下:
1)用户可使用该系统客户端实现对家居设备的控制,且家居设备可向客户端反馈实时状态;
2)支持家居设备数据的实时存储和查询;
3)基于用户数据,挖掘用户生活习惯,向用户提供家居设备智能化使用建议。
基于上述需求,该公司组建了项目组,在项目会议上,张工给出了基于家庭网关的传统智能家居管理系统的设计思路,李工给出了基于云平台的智能家居系统的设计思路。经过深入讨论,公司决定采用李工的设计思路。
【问题1】(8 分)
请用400字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点,以说明项目组选择李工设计思路的原因。
基于云平台的智能家居管理系统可以使用云服务器来处理数据,云服务可以随时随地的增加计算资源使数据处理更加高效;而且数据存储在云服务器上更加安全,云存储具有很好的容灾性,并且数据扩容也很方便;在云上部署也可以设置多种网关,使系统更加安全。基于家庭网关的传统智能系统需要购买硬件设施,并且数据存储设备一旦损坏很难恢复。
【问题2】(12分)
请从下面给出的(a)(j)中进行选择,补充完善图5-1中空(1)(6)处的内容,协助李工完成该系统的架构设计方案。
( a)Wi-FI(b)蓝牙(c)驱动程序(d)数据库(e)家庭网关(f)云平台(g〉微服务(h)用户终端(i)鸿蒙 (j)TCP/IP
(1)h,(2)i,(3)f,(4)d,(5)e,(6)c
【问题3】(5分)
该系统需实现用户终端与服务端的双向可靠通信,请用300字以内的文字从数据传输可靠性的角度对比分析TCP和UDP通信协议的不同,并说明该系统应采用哪种通信协议。
TCP在IP协议提供的不可靠数据服务的基础上,采用了重发技术,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。TCP协议一般用于传输数据量比较少,且对可靠性要求高的场合。
UDP是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信,与TCP相比,UDP是一种无连接的协议,它的错误检测功能要弱得多。
该系统应采用TCP协议。
交流
对软考有兴趣的朋友可以进博主的交流群,目前有软件设计师、高项、系统架构师、系统分析师四个群。
- 群内有历年真题、电子书等资料可以自取;
- 无营销、纯交流群;
- 每周会有两次送书活动一次三本,包邮到家。
交流入口
本文标签: 2021系统架构案例分析(试题答案做题技巧)
版权声明:本文标题:2021系统架构案例分析(试题+答案+做题技巧) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732352805h1533569.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论