2020年系统架构师真题(案例分析及答案解析).pdf
2020年11月系统架构师案例分析及答案解
析
试题一(质量属性)
某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统
的主要功能包括:我的编辑、语法高亮提示、代码编译、系统调试、代码仓库管理等,在需
求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
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)处的空白。
【问题2】(12分)
请分析题干中的需求描述,填写图1-2中(1)~(6)处的空白。
【问题1我的解答】
该需求应该采用仓库风格。
1)以数据为中心,数据在中央节点,交互性好
2)一个组件的输出是另一个组件的输入,数据与处理有相关性
3)中心节点要求可靠性要高,出现故障的话影响整个系统
4)添加或删除组件不改变其性能
【问题1标准答案】
应该采用仓库风格
1)模型驱动,处理流程事先不确定,交互性强
2)数据与处理紧耦合,以接口适配方式实现扩展
3)知识源之间不直接通讯,他们之间的交互只能通过黑板完成,性能较低
4)更容易处理任务之间的协作,系统更加灵活,性能好
【问题2我的解答】
1)安全性
2)可修改性
3)g
4)I
5)f
6)J
【问题2标准答案】
同上
【试题一心得体会】
这里第二问考查的是质量属性,就是送分题。这里我就不多说了。
第一问考查的是两种架构风格的比较。数据仓库和管道过滤器这两种风格。比较出来选择数
据仓库。
数据仓库是模型驱动的,所以交互性强,但流程在事先是不确定的,它在数据处理方式的特
点,和管道过滤器正好是相反的。
管道过滤器是紧耦合,因为这里的紧耦合,扩展是需要适配接口,而数据仓库是解耦合的,
更加容易实现组件的追加和删除;
数据仓库单位性能较低,因为解耦之后组件也就是知识源之间无法直接调用,都需要通过黑
板来完成,也正因为解耦,所以灵活性就比管道过滤器更加高效。
软件架构风格的优点缺点应用场景,特点等都需要搞清楚明白之后才可以。考查方式简单经
典,但要拿全分还是需要背诵概念的。
试题二(数据库系统)
某企业委托软件公司开发包裹信息管理系统,以便于对该企业通过快递收发定位包裹信息进
行统一管理。在系统设计阶段,需要对不同快递信息的包裹单信息进行建模,其中邮政包裹
单如下图所示。
图略
【问题1】
请说明关系型数据库开发中,逻辑数据模型设计过程包含哪些任务?根据图2-1包裹详情单
应该设计出哪些关系模式的名称,并指出每个关系模式的主键属性。
【问题2】
请说明什么是超类实体,结合图中包裹单信息,试设计一种超类实体,给出完整的属性列表。
【问题3】
请说明什么是派生属性,结合图中包裹单信息,说明哪个属性是派生属性。
【问题1我的解答】
将ER图转化为关系表;
定义关系表的主键和外键;
定义关系表中元祖的自定义完整性;
关系模式:
收件人(姓名,电话,单位名称,详细地址);其中收件人电话是主键;
寄件人(姓名,电话,单位名称,详细地址,用户代码,邮政编码);其中寄件人电话是主
键;
发件(寄件人电话,收件人电话,资费,重量,挂号费,保险费,回执单,总计);寄件人
电话和收件人电话的组合键是主键,而两者分别又是外键;
【问题1标准答案】
1)确定数据模型
2)将ER图转换为指定的数据模型
3)确定完整性约束
4)确定用户视图
设计的关系模式主要有:
1)收件人