第1题(案例题试题一是必答题:阅读以下关于软件架构设计与评估的叙述,在答题纸上回答问题1和问题2。
[说明]某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对简单,系统性能方面不做过多考虑。新系统除了保持现有的四级固定会员制度外,还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度,并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合,提供个性化的打折促销活动。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑,设置后即可生效;
(b)系统应该具备完整的安全防护措施,支持对恶意攻击行为进行检测与报警;
(c)在正常负载情况下,系统应在0.3秒内对用户的界面操作请求进行响应;
(d)用户名是系统唯一标识,要求以字母开头,由数字和字母组合而成,长度不少于6个字符;
(e)在正常负载情况下,用户支付商品费用后在3秒内确认订单支付信息;
(f)系统主站点电力中断后,应在5秒内将请求重定向到备用站点;
(g)系统支持横向存储扩展,要求在2人·天内完成所有的扩展与测试工作;
(h)系统宕机后,需要在10秒内感知错误,并自动启动热备份系统;
(i)系统需要内置接口函数,支持开发团队进行功能调试与系统诊断;
(j)系统需要为所有的用户操作行为进行详细记录,便于后期查阅与审计;
(k)支持对系统的外观进行调整和配置,调整工作需要在4·人天内完成。
在对系统需求、质量属性描述和架构特性进行分析的基础上,系统架构师给出了两种候选的架构设计:方案,公司目前正在组织相关专家对系统架构进行评估。
【问题1】(12分)在架构评估过程中,质量属性效用树(utilitytree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)空白处,并选择干描述的(a)~(k)填入(3)~(6)空白处,完成该系统的效用树。

【问题2](13分)针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对应的功能;王工则建议采用解释器(interpreters)架构风格,将折扣力度计算和用户筛选条件封装为独立的规则,通过解释规则实现对应的功能。请针对系统的主要功能,从折扣规则的可修改性、个性折扣定义灵活性和系统性能三个方面对这两种架构风格进行比较与分析,并指出该系统更适合采用哪种架构风格。
【问题1解答】(1)安全性(2)可修改性(3)(e) (4) (j)(5)(h)(6)(k)
【问题2解答】应该选择解释器架构风格。折扣规则的可修改性:解释器风格比面向对象方式实现更强。因为解释器风格折扣规则是独立的语法规则,由解释器可变化的规则进行解析,修改更容易。而面相对象相对固化需要修改具体的类。个性化折扣定义灵活性:解释器强于面向对象,解释器可以用户灵活解释执行规则,做到千人千面。系统性能:面向对象优于解释器。面向对象多为编译期静态绑定,程序结构与调用地址提前确定、运行开销低;解释器模式在运行时动态解析语法、动态绑定执行逻辑,额外解析与寻址开销更大,因此面向对象实现性能优于解释器。
第2题(案例题):阅读以下关于软件系统设计与建模的叙述,在答题纸上回答问题1至问题3。
【说明】煤炭生产是国民经济发展的主要领域之一,其煤矿的安全非常重要。某能源企业拟开发一套煤矿建设项目安全预警系统,以保护煤矿建设项目从业人员生命安全。本系统的主要功能包括如下(a)~(h)所述。
(a)项目信息维护
(b)影响因素录入
(c)关联事故录入
(d)安全评价得分
(e)项目指标预警分析
(f)项目指标填报
(g)项目指标审核
(h)项目指标确认
【问题1](9分)王工根据煤矿建设项目安全预警系统的功能要求,设计完成了系统的数据流图,如图2-1所示。请使用题干中描述的功能(a)~(h),补充完善空(1)~(6)处的内容,并简要绍数据流图在分层细化过程中遵循的数据平衡原则。

【问题2】(9分)请根据【问题1】中数据流图表示的相关信息,补充完善煤矿建设项目安全预警系统总体E-R图(见图2-2)中实体(1)~(6)的具体内容,将正确答案填在答题纸上。

【问题3】(7分)在结构化分析和设计过程中,数据流图和数据字典是常用的技术手段,请用200字以内的文字简要说明它们在软件需求分析和设计阶段的作用。
【问题1解答】(1) f (2) g (3) h (4) d (5) b (6)e
分层细化的数据平衡原则:
1、子图与父图之间的平衡:
(1)父图与子图之间平衡是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据流保持一致。
(2)如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。
2、子图内部:加工的输入和输出需要平衡。
【问题2解答】(1)项目管理员(2)项目经理 (3)项目指标数据(4)~(6)指标参数、项目信息、事故及影响因素参数
【问题3解答】
数据流图分析阶段:建立系统的功能模型,从而完成需求分析。
数据流图设计阶段:为模块划分与模块之间接口设计提供依据。
数据字典在分析与设计阶段的作用为:是所有人员工作的依据,统一的标准。它可以确保数据在系统中的完整性和一致性。具体作用包括:按各种要求列表、相互参照、由描述内容检索名称、一致性检验和完整性检验。
第3题(案例题):嵌入式略
第4题(案例题):阅读以下关于数据库缓存的叙述,在答题纸上回答问题1至问题3。
【说明】某大型电商平台建立了一个在线B2B商店系统,并在全国多地建设了货物仓储中心,通过提前备货的方式来提高货物的运送效率。但是在运营过程中,发现会出现很多跨仓储中心调货从而延误货物运送的情况。为此,该企业计划新建立一个全国仓储货物管理系统,在实现仓储中心常规管理功能之外,通过对在线B2B商店系统中订单信息进:行及时的分析和挖掘,并通过大数据分析预测各地仓储中心中各类货物的配置数量,从而提高运送效率,降低成本。当用户通过在线B2B商店系统选购货物时,全国仓储货物管理系统会通过该用户所在地址、商品类别以及仓储中心的货物信息和地:址,实时为用户订单反馈货物起运地(某仓储中心)并预测送达时间。反馈送达时间的响应时间应小于1秒。为满足反馈送达时间功能的性能要求,设计团队建议在全国仓储货物管理系统中采用数据缓存集群的方式,将仓储中心基本信息、商品类别以及库存数量放置在内存的缓存中,而仓储中心的其它商品信息则存储在数据库系统。
【问题1】(9分)设计团队在讨论缓存和数据库的数据一致性问题时,李工建议采取数据实时同步更新方案,而张工则建议采用数据异步准实时更新方案。请用200字以内的文字,简要介绍两种方案的基本思路,说明全国仓储货物管理系统应该采用哪种方案,并说明采取该方案的原因。
【问题2】(9分)随着业务的发展,仓储中心以及商品的数量日益增加,需要对集群部署多个缓存节点,提高缓存的处理能力。李工建议采用缓存分片方法,把缓存的数据拆分到多个节别存储,减轻单个缓存节点的访问压力,达到分流效果。缓存分片方法常用的有哈希算法和一致性哈希算法,李工建议采用一致性哈希算法来进行分片。请用200字以内的文字简要说明两种算法的基本原理,并说明李工采用一性哈希算法的原因。
【问题3】(7分)全国仓储货物管理系统开发完成,在运营一段时间后,系统维护人员发现大量黑客故意发起非法的商品送达时间查询请求,造成了缓存击穿。张工建议尽快采用布隆过方法解决。请用200字以内的文字解释布隆过滤器的工作原理和优缺点。
【问题1解答】实时同步更新方案:当数据库更新数据时,同时更新内存的缓存数据。异步准实时更新方案:当数据库数据更新时,不立即更新缓存数据,而是将需要更新的操作记录成日志,再
逐步排队完成更新。应该采用异步准实时更新。理由:题目中对性能有严格要求,要求1s内完成。实时同步方案最大问题在于同步并发时的性能不可控。
【问题2解答】哈希分片:通过对key进行hash运算,把数据分配到不同实例,类似取余操作,余数相同的放在一个实例上。
一致性哈希算法:哈希分片的改进,把存储节点和需要存储的数据都放在一个hash环上,数据根据hash值在hash环按正时针找到对应的数据存储节点上。一致性哈希分片的方式在扩充缓存节点时,只需要对少量数据进行存储位置的更新,而哈希分片需要对几乎所有数据进行存储更新。
【问题3解答】布隆过滤器可以快速判断一个元素是否存在列表中。他是通过多个哈希函数将元素映射到一个数组中,查询时检查对应位的状态,存在一个为0则一定不存在,所有哈希函数位都为1,则可能存在。
优点:快速查询,内存占用低,使用处理大规模数据,可以快速过滤无效请求,减轻系统负担。
缺点:存在误判率,可能不存在的元素误判为存在,且无法删除已添加的元素。
第5题(案例题):阅读以下关于Web系统架构设计的叙述,在答题纸上回答问题1至问题3。
【说明】某公司拟开发一套基于边缘计算的智能门禁系统,用于如园区、新零售、工业现场等存在来访、被访业务的场景。来访者在来访前,可以通过线上提前预约的方式将自己的个人信息记录在后:台,被访者在系统中通过此请求后,来访者在到访时可以直接通过“刷脸”的方式通过门禁,无需做其他验证。此外,系统的管理员可对正在运行的门禁设备进行管理。基于项目需求,该公司组建项目组,召开了项目讨论会。会上,张工根据业务需求并结合边缘计算的思想,提出本系统可由访客注册模块、模型训练模块、端侧识别模块与设备调度平台模块等四项功能组成。李工从技术层面提出该系统可使用Flask框架与SSM框架为基础来开发后台服务器,将开发好的系统通过Docker进行部署,并使用MQTT协议对Docker进行管理。
【问题1】(5分)MQTT协议在工业物联网中得到广泛的应用,请用300字以内的文字简要说明MQTT协议。
【问题2】(14分)在会议上,张工对功能模块进行了更进一步的说明:访客注册模块用于来访者提交申请与被访者确认申请,主要处理提交来访申请、来访申请审核业务,同时保存访客据,为训练模块准备训练数据集;模型训练模块用于使用访客数据进行模型训练,为端侧设备的识别业务提供模型基础;端侧识别模块在边缘门禁设备上运行,使用训的模型来识别来访人员,与云端服务协作完成:访客来访的完整业务;设备调度平台模块用于对边缘门禁设备进行管理,管理人员能够使用平台对边缘设备进行调度管理态监控,实现云端协同。图5-1给出了基于边缘计算的智能门禁系统架构图,请结合HTTP协议和MQTT协议的特点,为图5-1中(1)~(6)处选择合适的协议;并结合张工关于功能模块的描述,补充完善图5-1中(7)~(10)处的空白。

【问题3】(6分)请用300字以内的文字,从数据通信、数据安全和系统性能等方面简要分析在传统云计算模型中引入边缘计算模型的优势。
【问题1解答】MQTT(消息队列遥测传输)是一个基于发布/订阅模式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅议。MQTT协议是轻量、简单、开放和易于实现的。【问题2解答】(1) HTTP (2)MQTT(3)MQTT(4)MQTT (5)HTTP (6)HTTP (7)端侧别(8)模型训练 (9)设备调度(10)访客注册
【问题3解答】数据通信:通信更快捷,数据量更少。因为数据处理对比在边缘设备上完成,通信更多时候只传输匹配与结果的指令。数据安全:数据以加密方式存储在需要用到的边缘设备上,本地化处理比对,减少原始信息在网上的传递带来的安全隐患。黑客也无法通过攻破一个结点使整个系统瘫痪。系统性能:性能更高,以人脸识别为例,在进行识别时,只在本地进行比对不用把人脸数据传递到远程服务器对比。