2020年下半年系统架构设计师下午真题及答案解析
试题一(25分)
某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的主要功能包括:我的编辑、语法高亮提示、代码编译、系统调试、代码仓库管理等,在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能;
b)在正常负载情况下,系统应该在0.2s内对用户的界面操作请求进行响应;
c)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测和防御;
d)系统主站点断电后应在3s内将请求重定向到备用站点;
e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符;
f)系统宕机后,需要在15s内发现错误,并启用备用系统;
g)在正常负载情况下,用户的代码提交请求应在0.5s内完成;
h)系统支持硬件设备灵活扩容,应保证在2人天内完成;
i)系统需要针对代码仓库的所有操作进行详细记录,便于后期查阅与审计;
j)更改系统web界面风格需要在4人天内完成;
k)系统本身需要提供远程调试接口,支持开发团队进行远程排错。
在对系统需求质量属性和架构特性进行分析的基础上,该公司的系统架构师给了两种方案,分别是管道-过滤器和仓库风格。
问题1(13分)
请问该需求应该采用哪一种风格?表1-1是对这两种风格分别从数据处理方式、系统拓展方式和处理性能三个方面进行了比较,请填写表1-1中(1) ~ (4)处的空白。
表1-1
架构风格名称 |
数据处理方式 |
系统拓展性 |
处理性能 |
管道-过滤器 |
数据驱动机制,处理流程事先确定,交互性差 |
( 2 ) |
劣势:需数据格式转换,性能降低 优势:支持开发调用,性能提高 |
仓库 |
( 1 ) |
数据与处理解耦合,可动态添加或删除组件 |
劣势( 3 ) 优势( 4 ) |
问题2(12分)
请分析题干中的需求描述,填写图1-2中(1)~ (6)处的空白。
试题二(25分) (试题二至试题五选答二题)
某企业委托软件公司开发一套包裹信息管理系统,以便于对该企业通过快递收发的包裹信息进行统一管理,在系统设计阶段,需要对不同快递信息的包裹单信息进行建模,其中邮政包裹单如图2-1
图2-1 包裹详情单
问题1(13分)
请说明关型数据库开发中,逻辑数据模型设计过程包含哪些任务? 根据图2-1包裹详情单应该设计出哪些关系模式的名称,并指出每个关系模式的主键属性。
问题2(6分)
请说明什么是超类实体?结合图中包裹单信息试设计一种超类实体,给出完整的属性列表。
问题3(6分)
请说明什么是派生属性?结合图中包裹单信息说明哪个属性是派生属性。
试题三(25分)
全网还没有此题。
试题四(25分)
互联网公司因业务发展要建立网上平台为用户提供一个对网络文化产品(小说,电影等)进行评论交流的平台,该平台的部分功能如下:
(a)用户帖子的评论计数器
(b)支持粉丝列表功能
(c)支持标签管理
(d)支持共同好友功能
(e)提供排名功能
(f)用户信息的结构化存储
(g)提供好友信息的发布/订阅功能
该系统在性能上需要考虑高性能、并发,以支持大量的用户同时访问,经过考虑在数据管理上,决定采用Redis+数据库的解决方案。
问题1
Redis支持丰富的类型,请选择题干描述的(a)~(g)功能选项。填入表4-1中(1)~(5)空白处。
4-1Redis数据类型与业务功能对照表
数据类型 |
存储的值 |
可实现的业务功能 |
String |
字符串等 |
( 1 ) |
List |
列表 |
( 2 ) |
Set |
无序集合 |
( 3 ) |
Hash |
包括键值对的无序列表 |
( 4 ) |
Zset |
有序集合 |
( 5 ) |
问题2
缓存中存储当前的热点数据Redis为每个key值都设置了过期时间,以提高缓存命中率,为了消除非热点数据Redis选择了定期删除加惰性删除策略。如果该策略失效Redis内存使用率会越来越高,一般采用内存淘汰机制来解决。 请用100字以内的文字,简要描述该策略的失效场景,并给出三种内存淘汰机制。
试题五(25分)
开发基于Web的工业设备检测系统,以实现对多种工业数据的分类采集、运行状态检测以及相关信息的管理,该系统应具备以下功能:
同时,该系统还需满足以下非功能性需求:
(a)系统应支持大于100个工业设备的运行检测
(b)设备数据从制造现场传输到系统后台传输时间小于1s
(c)系统应7*24小时工作
(d)可抵御XSS攻击
(e)系统在故障情况下,应在0.5小时内恢复
(f)支持数据审计
面对系统需求,公司召开项目讨论会议制定系统设计方案,最终决定使用三层拓扑结构,即现场设备数据采集层、Web检测服务层和前端Web显示层。
问题1
请按照性能、安全性和可用性三种非功能需求分类将题干的(a) ~ (f)填入(1) ~(3)。
非功能性需求归类表:
非功能性需求类别 |
非功能性需求 |
性能 |
( 1 ) |
安全性 |
( 2 ) |
可用性 |
( 3 ) |
问题2
该系统Web检测服务层拟采用SSM框架进行系统研发,SSM工作流程图如图所示,请从下面给出的(a) ~ (k)中进行选择,补充完善图5-1中(1) ~ (7)处空白的内容:
(a) Connection pool
(b) Struts2
(c) Persistent Layer
(d) Mybatis
(e) HTTP
(f) MVC
(g) Kafka
(h) ViewLayer
(i) Jsp
(j) Controller Layer
(k) Spring
图5-1 SSM框架工作流程图
问题3
该工业设备检测系统拟采用工业控制领域中统一的数据访问机制,实现与各种不同设备的数据交互,请用100以内的文字说明采用标准的数据访问机制的原因。
2020年下半年系统架构设计师下午答案及解析
试题一(25分) 单击此链接查看真题解析视频https://ke.qq.com/course/329379
问题1(13分)
应该采用仓库风格。
(1)模型驱动,处理流程事先不确定,交互性强
(2)数据与处理紧耦合,以接口适配方式实现扩展
(3)知识源之间不直接通讯,它们之间的交互只能通过黑板完成,性能较低
(4)更容易处理任务间的协作,系统更加灵活、性能好。
问题2 (12分)
(1)安全性 (2)可修改性 (3) g (4) i (5) f (6) j
试题二(25分)
问题1(13分)
逻辑结构设计阶段的主要任务包括:1.确定数据模型、2.将E-R图转换为指定的数据模型、3.确定完整性约束、4.确定用户视图。
设计的关系模式主要有:
收件人信息。主键:电话号码
寄件人信息。主键:电话号码(身份证号)
包裹单信息。主键:包裹单编号
快递员信息。主键:员工编号
邮局站点信息。主键:邮局编号
问题2(6分)
将一些子实体所共有的属性抽象为一个单独的新实体,这个新的实体就是超类实体。
结合图中包裹单信息设计一个“人员信息”的超类:人员信息(姓名,电话,单位名称,详细地址,邮政编码)。
问题3(6分)
可以根据其它属性计算得出的属性就叫派生属性。如快递包裹费用中的“总计”属性就是派生属性。
试题四(25分)
问题1
(1)a (2)b (3) c d (4)f (5)e
问题2
由于redis定期删除是周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度,不可能扫描清除掉所有过期的key并删除,而惰性策略就是在客户端访问这个key的时候,对过期时间进行检查,如果过期了就立即删除。如果一些key定期删除没有抽取到,惰性删除也未触发,这样redis的内存占用会越来越高,此时就需要内存淘汰机制。
常用的内存淘汰机制:
(1)volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。
(2)volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。
(3)volatile-random:从已设置过期时间的数据集中任意选择数据淘汰。
(4)volatile-lfu:从已设置过期时间的数据集挑选使用频率最低的数据淘汰。
(5)allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
(6)allkeys-lfu:从数据集中挑选使用频率最低的数据淘汰。
(7)allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
(8)no-enviction(驱逐):禁止驱逐数据,这也是默认策略。
(任选其中三种)
试题五(25分)
问题1
(1) a b (2) d f (3) c e
问题2
(1) a (2) c (3) d (4) k (5) j (6) h (7) i
问题3
采用标准的数据访问机制,可以屏蔽不同设备之间数据交互的差异,解决系统使用数据不一致性,在一定程度上降低了数据结构与应用系统的耦合度,减少了应用系统的维护工作量。