2019年下半年软件水平考试(高级)系统架构师下午(案例分析)真题试卷
试题一
阅读以下关于软件架构设计与评估的叙述,在答题纸上回答问题。
【说明】
某电子商务公司为了更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信用情况等指标将用户划分为不同的等级,并针对不同等级的用户提供相应的折扣方案。在需求分析与架构设计阶段,电子商务公司提出的需求、质量属性描述和架构特性如下:
(a)用户目前分为普通用户、银卡用户、金卡用户和白金用户四个等级,后续需要能够根据消费情况进行动态调整;
(b)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(c)在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应;
(d)在各种节假日或公司活动中,针对所有级别用户,系统均能够根据用户实时的消费情况动态调整折扣力度;
(e)系统主站点断电后,应在5秒内将请求重定向到备用站点;
(f)系统支持中文昵称,但用户名要求必须以字母开头,长度不少于8个字符;
(g)当系统发生网络失效后,需要在15秒内发现错误并启用备用网络;
(h)系统在展示商品的实时视频时,需要保证视频画面具有1024×768像素的分辨率,40帧/秒的速率;
(i)系统要扩容时,应保证在10人,月内完成所有的部署与测试工作;
(i)系统应对用户信息数据库的所有操作都进行完整记录;
(k)更改系统的Web界面接口必须在4人·周内完成;
(1)系统必须提供远程调试接口,并支持远程调试。
在对系统需求、质量属性描述和架构特性进行分析的基础上,该系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对系统架构进行评估。
1.针对用户级别与折扣规则管理功能的架构设计问题,李工建议采用面向对象的架构风格,而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种架构风格,并从用户级别、折扣规则定义的灵活性、可扩展性和性能三个方面对这两种架构风格进行比较与分析,填写表1一1中的(1)~(3)空白处。
用户级别与折扣规则管理功能更适合采用基于规则的架构风格。
(1)将用户级别、折扣规则等描述为可动态改变的规则数据;
(2)加入新的用户级别和折扣规则时需要重新定义新的对象,并需要重启系统;
(3)用户级别和折扣规则已经在系统内编码,可直接运行,性能较好。
解析:在解答本题时,需要仔细考虑用户实际需求和现有的架构风格之间的关系,并从架构的灵活性、可扩展性和性能等方面进行综合考虑。总体来说,该系统最关注各种折扣定义的灵活性,因此需要采用基于规则的系统,将规则定义以数据的方式进行定义,从而避免修改代码。具体来说,采用基于规则的架构风格,需要将用户级别、折扣规则等描述为可动态改变的规则数据,加入新的用户级别和折扣规则时只需要定义新的规则,解释规则即可进行扩展。但其缺点在于需要对用户级别与折扣规则进行实时解释、性能较差。采用面向对象的架构风格,需要将用户级别、折扣规则等封装为对象,在系统启动时加载,用户级别和折扣规则已经在系统内编码,可直接运行,性能较好,但其最大的问题是加入新的用户级别和折扣规则时需要重新定义新的对象,并需要重启系统。
2.在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)空白处,并选择题干描述的(a) ~ (1) 填入(3) ~ (6)空白处,完成该系统的效用树。
(1)安全性
(2)可修改性
(3)(h)
(4)(j)
(5)(e)
(6)(k)
解析:质量属性效用树是对质量属性进行分类、权衡、分析的架构分析工具,主要关注系统的性能、可用性、可修改性和安全性四个方面。根据对相关质量属性的定义和含义,其中“系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御”和“系统应对用户信息数据库的所有操作都进行完整记录”对应安全性;“在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应”和“系统在展示商品的实时视频时,需要保证视频画面具有1024×768像素的分辨率,40帧/秒的速率”对应系统的性能;“系统主站点断电后,应在5秒内将请求重定向到备用站点”和“当系统发生网络失效后,需要在15秒内发现错误并启用备用网络”对应可用性;“系统要扩容时,应保证在10人·月内完成所有的部署与测试工作”和“更改系统的Web界面接口必须在4人·周内完成”对应可修改性。
试题二
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某软件企业为快餐店开发一套在线订餐管理系统,主要功能包括:
(1)在线订餐:已注册客户通过网络在线选择快餐店所提供的餐品种类和数量后提交订单,系统显示订单费用供客户确认,客户确认后支付订单所列各项费用。
(2)厨房各餐:厨房接收到客户已付款订单后按照订单餐品列表选择各类食材进行餐品加工。
(3)食材采购:当快餐店某类食材低于特定数量时自动向供应商发起采购信息,包括食材类型和数量,供应商接收到采购信息后按照要求将食材送至快餐店并提交己采购的食材信息,系统自动更新食材库存。
(4)生成报表:每个周末和月末,快餐店经理会自动收到系统生成的统计报表,报表中详细列出了本周或本月订单的统计信息以及库存食材的统计信息。
现采用数据流图对上述订餐管理系统进行分析与设计,系统未完成的0层数据流图
如图2一1所示。
3. 根据订餐管理系统功能说明,请在图2—1所示数据流图中给出外部实体E1~E4和加工P1~P4的具体名称
E1:客户
E2:厨房
E3:经理
E4:供应商
P1:在线订餐
P2:厨房各餐
P3:生成报表
P4:食材采购
解析:图中给出了四个实体,根据题目说明中“系统显示订单费用供客户确认”可确定E1为客户,Pl为在线订餐:“厨房接收到客户已付款订单后按照订单餐品列表选择各类食材进行餐品加工”可确定E2为厨房,P2为厨房备餐;“当快餐店某类食材低于特定数量时自动向供应商发起采购信息”可确定E4为供应商,P4为食材采购;最后可确定P3为生成报表,则E3为经理。
4.根据数据流图规范和订餐管理系统功能说明,请说明在图2.1中需要补充哪些数据流可以构造出完整的0层数据流图。
(1)增加E1到P1数据流“餐品订单”;
(2)增加P1到P2数据流“餐品订单”;
(3)增加D1到P3数据流“订单汇总”;
(4)增加P3到E3数据流“统计报表”。
解析:数据流图中常见错误包括黑洞、灰洞和无输入三种类型的逻辑错误和部分语法错误。P1只有输出没有输入为无输入错误,需要增加E1到P1数据流“餐品订单”;P2同样为无输入错误,需要增加P1到P2数据流“餐品订单”:根据P3生成报表要求输入中有订单信息和食材信息,所以需要增加D1到P3数据流“订单汇总”;P3只有输入没有输出存在黑洞错误,需要增加P3到E3数据流“统计报表”。
5.根据数据流图的含义,请说明数据流图和系统
本文档预览:3600字符,共12043字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载