软考系列(系统架构师)- 2022年系统架构师软考案例分析考点

发布时间 2023-10-23 23:58:36作者: 黑帅-quan

试题一 软件架构(架构风格、质量属性)

【问题1】(12分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)空白处,并选择题干描述的(a)(k)填入(3)(6)空白处,完成该系统的效用树。
image
【问题2】(13分)
针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对应的功能:王工则建议采用解释器(interpreters)架构风格,将折扣力度计算和用户筛选条件封装为独立的规则,通过解释规则实现对应的功能。请针对系统的主要功能,从折扣规则的可修改性、个性化折扣定义灵活性和系统性能三个方面对这两种架构风格进行比较与分析,并指出该系统更适合采用哪种架构风格。

解释器可修改性:
面向对象风格通过编写新的规则实现代码,并通过应用重启或热加载添加规则,可修改性稍差;解释器风格通过编写新的规则文件,并通过导入资源文件或外部配置添加规则,可修改性较好。
灵活性:
面向对象风格通过策略模式定义规则对象,规则以程序逻辑实现,灵活性较差,解释器风格可灵活定义规则计算表达式,灵活性更好。
性能:
面向对象风格以编译后代码运算规则,性能好;而虚拟机风格需要加载规则,解析规则,规则运算,再得出结果,性能较差。
从项目关注点来看,系统性能不做过多考虑,则王工建议的解释器风格较为合适;

试题二 系统开发(结构化分析:致据流图、ER 图、数据字典)

【问题1】(9分)
王工根据煤矿建设项目安全预警系统的功能要求,设计完成了系统的数据流图,如图2-1所示。请使用题干中描述的功能(a)(h),补充完善空(1)(6)处的内容,并简要介绍数据流图在分层细化过程中遵循的数据平衡原则。
【问题2】(9分)
请根据【问题1】中数据流图表示的相关信息,补充完善煤矿建设项目安全预警系统总体ER图(见图2-2)中实体(1)-(6)的具体内容,将正确答案填在答题纸上。
image
【问题3】(7分)
在结构化分析和设计过程中,数据流图和数据字典是常用的技术手段,请用200字以内的文字简要说明它们在软件需求分析和设计阶段的作用。

在分析阶段:
数据流图用于界定系统上下文范围和建立业务流程的加工说明,
自顶向下对系统进行功能分解;指明数据在系统内移动变换;描述功能及加工规约。
数据字典用于建立业务概念有组织的集合,是模型核心库,
有组织的系统相关数据元素列表,使涉众对模型中元素有共同的理解。
在设计阶段
结构化设计根据不同的数据流图类别分别做变换和事务映射来初始化系统结构图;
根据数据字典中的数据存储描述来建立数据库存储设计。

试题三 嵌入式(宇航装备架构、看图填空、故障分析)

【问题1】(8分)
张工提出:宇航装备的软件架构可采用四层的层次化体系结构,即模块支持层、操作系统层、分布式中间件层和功能应用层。为了有效、方便地实现分布式系统的故障检测和诊断能力,方案建议将系统的故障检测和诊断能力构建在分布式中间件内,通过使用心跳或者超时探测技术来实现故障检测器。请用300字以内的文字分别说明心跳检测和超时探测技术的基本原理及特点。

心跳检测技术是节点每隔一个固定周期就向其他节点发送心跳信息,表示自己存活。如果其他节点在几个周期之后仍然没有收到来自此节点的心跳,就认定节点已失效,接管其资源和服务。其优点是可以快速反应,缺点是容易产生误判。为了减少误判,通常会采用多种介质冗余传输心跳信息,如串口、网络、共享磁盘等。
超时探测技术是节点主动向被探测节点发出PING信号,被探测节点则在收到PING信号后回复一个ECHO信号,表示自己的健康状态良好,还可以附加一些状态信息。如果在预定的时间之后仍然收不到ECHO信号,则判定被探测节点失效。优点是可以获得更详细的探测结果,缺点是判断的周期较长。

【问题2】(8分)
张工针对分布式综合化电子系统的架构特征,给出了初步设计方案,指出每个节点的故障监测与诊断器主要负责监控系统中所有的故障信息,并将故障信息进行综合分析判断,使用故障诊断器分析出故障原因,给出解决方案和措施。系统可以给模块的每个处理机器核配置核状态监控器、给每个分区配置分区状态监控器、给每个模块配置模块状态监控器、给系统配置系统状态监控器,如图3-1所示。
image
【问题3】(9分)
张工在方案中指出,本系统的故障诊断采用故障诊断器实现,它可综合多种故障信息和系统状态,依据智能决策数据库提供的决策策略判定出故障类型和处理方法。智能决策数据库中的策略可以对故障开展定性或定量分析,通常,在定量分析中,普遍采用基于解析模型的方法和数据驱动的方法,张工在方案中提出该系统定量分析时应采用基于解析模型的方法。但是此提议受到王工的反对,王工指出采用数据驱动的方法更适合分布式综合化电子系统架构的设计。请用300字以内的文字,说明数据驱动方法的基本概念,以及王工提出采用此方法的理由。

数据驱动方法是一种问题求解方法。从初始的数据或观测值出发,运用启发式规则,寻找和建立内部特征之间的关系,从而发现一些定理或定律。通常也指基于大规模统计数据的自然语言处理方法。
在本题中,由于是分布式环境,需要综合多种故障信息和系统状态,依据智能决策数据库的决策策略判定,如果采用预先定制的解析模型,这个模型可能会非常复杂。因此采用数据驱动方法能通过已有的数据去训练模型,可以达到逐渐精细化,并兼容未来的变化。

试题四 数据库(同步和异步、溪存分片、布隆过滤器)

【问题1】(9分)
设计团队在讨论缓存和数据库的数据一致性问题时,李工建议采取数据实时同步更新方案,而张工则建议采用数据异步准实时更新方案。
请用200字以内的文字,简要介绍两种方案的基本思路,说明全国仓储货物管理系统应该来用哪种方案,并说明采取该方案的原因。

李工同步方案思路:
更新数据时在同一事务内依此完成删除缓存,更新数据库,再写入缓存。
张工异步准实时方案思路:
更新数据时在同一事务内首先通过消息队列发布待更新数据的消息给缓存更新服务,再更新数据库;缓存更新服务订阅消息队列,待收到更新事件执行缓存更新。
项目数据量极大,且性能要求高,较适合采用张工提出的异步准实时方案较好。

【问题2】(9分)
随着业务的发展,仓储中心以及商品的数量日益增加,需要对集群部署多个缓存节点,提高缓存的处理能力。李工建议采用缓存分片方法,把缓存的数据拆分到多个节点分别存储,减轻单个缓存节点的访问压力,达到分流效果。
缓存分片方法常用的有哈希算法和一致性哈希算法,李工建议采用一致性哈希算法来进行分片。请用200字以内的文字简要说明两种算法的基本原理,并说明李工采用一致性哈希算法的原因。

哈希算法通过某种哈希算法散列得到一个值,按该值将数据分配到集群响应节点进行缓存。
—致性哈希算法将整个哈希值空间映射成一个按顺时针方向组织的虚拟圆环,使用哈希算法算出数据哈希值,然后根据哈希值的位置沿圆环顺时针查找,将数据分配到第一个遇到的集群节点进行缓存。
—致性哈希算法有两大优点,
1)可扩展性。一致性哈希算法保证了增加或减少服务器时,数据存储的改变最少,相比传统哈希算法大大节省了数据移动的开销。
2)更好地适应数据的快速增长。

【问题3】(7分)
全国仓储货物管理系统开发完成,在运营一段时间后,系统维护人员发现大量黑客故意发起非法的商品送达时间查询请求,造成了缓存击穿,张工建议尽快采用布隆过滤器方法解决。请用200字以内的文字解释布隆过滤器的工作原理和优缺点。

布隆过滤器的原理是当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,只要看看这些点是不是都是1就大概知道集合中有没有它了;如果这些点有任何一个0,则被检元素一定不在;如果都是1,则被检元素很可能在。
优点:
1.增加和查询元素的时间复杂度为:O(K),(K为哈希函数的个数,一般比较小),与数据量大小无关
2.哈希函数相互之间没有关系,方便硬件并行运算
3.布隆过滤器不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势
4.在能够承受一定的误判时,布隆过滤器比其他数据结构有这很大的空间优势
5.数据量很大时,布隆过滤器可以表示全集,其他数据结构不能
6.使用同一组散列函数的布隆过滤器可以进行交、并、差运算
缺点:
1.有误判率
2.不能获取元素本身
3.—般情况下不能从布隆过滤器中删除元素
4.如果采用计数方式删除,可能会存在计数回绕问题

试题五 Web应用(MQTT协议、看图填空,云计算、边缘计算)

【问题1】(5分)
MQTT协议在工业物联网中得到广泛的应用,请用300字以内的文字简要说明MQTT协议。

MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。

image
【问题3】(6分)
请用300字以内的文字,从数据通信、数据安全和系统性能等方面简要分析在传统云计算模型中引入边缘计算模型的优势。

数据通信:通信更快捷,数据量更少,因为数据处理对比在边缘设备上完成,
通信更多时候只传输匹配与结果的指令。
数据安全:数据以加密方式存储在需要用到的边缘设备上,本地化处理对比,
减少原始信息在网上的传递带来的安全隐患。
黑客也无法通过攻破一个节点使整个系统瘫痪。
系统性能:性能更高,以人脸为例,在进行识别时,只在本地进行对比不用把
人脸传递到远程服务器对比。