2022年职业考证-软考-系统架构设计师考试全真模拟易错、难点剖析AB卷...
2022年职业考证-软考-系统架构设计师考试全真模拟易错、难点剖析AB卷(带答案)
一.综合题(共15题)
1.
单选题
(  )是由中间件技术实现并支持SOA的一组基础架构,它提供了一种基础设施,其优势在于(  ) 。
问题1选项
A.ESB
B.微服务
C.云计算
D.Multi-Agent System
问题2选项
A.支持了服务请求者与服务提供者之间的直接链接
B.支持了服务请求者与服务提供者之间的紧密耦合
C.消除了服务请求者与服务提供者之间的直接链接
D.消除了服务请求者与服务提供者之间的关系
【答案】第1题:A
第2题:C
【解析】第1题:本题考查的是SOA相关知识。
SOA常用的设计模式是服务注册表模式和企业服务总线ESB模式。
微服务是SOA技术的一种变体,云计算是网络云服务的一种技术,Multi-Agent System多智能系统是人工智能技术的一种应用。本题第一空选择A选项。
企业服务总线(Enterprise Service Bus, EBS)技术,其思想是提供一种标准的软件底层架构,各种程序组件能够以服务单元的方式“插入”到该平台上运行,并且组件之间能够以标准的消息通信方式来进行交互。
ESB的定义通常如下:企业服务总线是由中间件技术实现的支持面向服务架构的基础软件平台,支持异构环境中的服务以基于消息和事件驱动模式的交互,并且具有适当的服务质量和可管理性。
这种交互过程不再是点对点的直接交互模式,而是由事件驱动的消息交互模式。通过这种方式,ESB最大限度上解耦了组件之间的依赖关系,降低了软件系统互连的复杂性。ESB不支持服务请求者与服务提供者直接的直接链接,二者之间仍然存在关系,只是这种关系是松耦合的。本题第二空选择C选项,其他选项的说法都是错误的。
第2题:
2.
单选题
产品配置是指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的(  )的集合。
问题1选项
A.需求规格说明、设计说明、测试报告
B.需求规格说明、设计说明、计算机程序
C.设计说明、用户手册、计算机程序
D.文档、计算机程序、部件及数据
【答案】D
【解析】本题考查产品配置的概念。
产品配置是指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、计算机程序、部件及数据的集合。该集合中的每一个元素称为该产品配置的一个配置项。
注意选项中的需求规格说明、设计说明等均可归属于文档。
3.
单选题
软件设计包括四个既独立又相互联系的活动:() 、 软件结构设计、人机界面设计和()。
问题1选项
A.用例设计
B.数据设计
C.程序设计
D.模块设计
问题2选项
A.接口设计
B.操作设计
C.输入输出设计
D.过程设计
【答案】第1题:B
第2题:D
【解析】第1题:本题考查的是软件设计阶段的任务。
软件设计包括体系结构设计、接口设计、数据设计和过程设计。
结构设计:定义软件系统各主要部件之间的关系。
数据设计:将模型转换成数据结构的定义。好的数据设计将改善程序结构和模块划分,降低过程复杂性。
接口设计(人机界面设计):软件内部,软件和操作系统之间以及软件和人之间如何通信。
过程设计:系统结构部件转换成软件的过程描述。确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。
第2题:
4.
单选题
软件需求开发的最终文档,通过评审后定义了开发工作的(  ),它在客户和开发者之间构筑了产品功能需求和非功能需求的一个(  ),是需求开发和需求管理之间的桥梁。
问题1选项
A.需求基线
B.需求标准
C.需求用例
D.需求分析
问题2选项
A.需求用例
B.需求管理标准
C.需求约定
D.需求变更
【答案】第1题:A
第2题:C
【解析】本题考查的是需求管理方面的概念知识内容。
软件需求开发的最终文档经过评审批准后,则定义了开发工作的需求基线(baseline)。
这个基线在用户和开发人员之间就构筑了计划产品功能需求和非功能需求的一个约定(agreement),它是需求开发和需求管理之间的桥梁。
5.
单选题比特币如何挖矿
以下关于区块链应用系统中“挖矿”行为的描述中,错误的是()。
问题1选项
A.矿工“挖矿”取得区块链的记账权,同时获得奖励
B.“挖矿”本质上是在尝试计算一个Hash碰撞
C.“挖矿”是一种工作量证明机制
D.可以防止比特币的双花攻击
【答案】D
【解析】本题考查了区块链技术的相关应用。
比特币网络通过“挖矿”来生成新的比特币。所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为区块奖励,奖励获得答案的人。A选项正确。
本质上,挖矿的过程就是计算哈希函数,并以此来确认交易的过程。哈希函数值具有不可篡改、不可逆性。但哈希函数输入的原始数据长度是不定长的,可以随意长度,而得出的摘要值是固定长度的。因此,存在一个可能,同样一个哈希值对应的不止一个数据串。这个现象就是哈希碰撞。B选项正确。
工作量证明机制(PoW)是我们最熟知的一种共识机制。工作量证明机制PoW就是工作越多,收益越大。这里的工作就是计算出一个满足规则的随机数,谁能最快地计算出唯一的数字,谁就能做信息公示人。C选项正确。
“双花”问题是指一笔数字现金在交易中被反复使用的现象。传统的加密和其他数字
资产,都具有无限可复制性,人们在交易过程中,难以确认这笔数字现金是否已经产生过一次交易。在区块链技术中,中本聪通过对产生的每一个区块盖上时间戳(时间戳相当于区块链公证人)的方式保证了交易记录的真实性,保证每笔货币被支付后,不能再用于其他支付。在这个过程中,当且仅当包含在区块中的所有交易都是有效的且之前从未存在过的,其他节点才认同该区块的有效性。所以双花攻击解决的方法就是通过时间戳。用户发起的每一笔交易都有时间记录,“挖矿”行为不能防止双花攻击,D选项错误。
6.
单选题
某企业开发信息管理系统平台进行E-R图设计,人力部门定义的是员工实体具有属性:员工号、姓名、性别、出生日期、和部门,培训部门定义的培训师实体具有属性:培训师号,姓名和职称,其中职称={初级培训师,中级培训师,高级培训师},这种情况属于(  )。
在合并E-R图时,解决这一冲突的方法是(  )。
问题1选项
A.属性冲突
B.结构冲突
C.命名冲突
D.实体冲突
问题2选项
A.员工实体和培训师实体均保持不变
B.保留员工实体、删除培训师实体
C.员工实体中加入职称属性,剔除培训师实体
D.将培训师实体所有属性并入员工实体,删除培训师实体
【答案】第1题:B
第2题:C
【解析】ER图集成时产生的冲突及解决办法:
属性冲突:包括属性域冲突和属性取值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
本题中,培训师属于员工的一种,所以不应该抽象为两个不同实体,这个冲突属于结构冲突,解决方案是员工实体中加入职称属性,剔除培训师实体。
7.
案例题
阅读以下关于分布式数据库缓存设计的叙述,在答题纸上回答问题1至问题3。
【 说明 】
某初创企业的主营业务是为用户提供高度个性化的商品订购业务,其业务系统支持PC端、手机App等多种访问方式。系统上线后受到用户普遍欢迎,在线用户数和订单数量迅速增长,原有的关系数据库服务器不能满足高速并发的业务要求。
为了减轻数据库服务器的压力,该企业采用了分布式缓存系统,将应用系统经常使用的数据放置在内存,降低对数据库服务器的查询请求,提高了系统性能。在使用缓存系统的过程中,企业碰到了一系列技术问题。
【问题 1】(11 分)
该系统使用过程中,由于同样的数据分别存在于数据库和缓存系统中,必然会造成数据同步或数据不一致性的问题。该企业团队为解决这个问题,提出了如下解决思路:
应用程序读数据时,首先读缓存,当该数据不在缓存时,再读取数据库;应用程序写数据时,先写缓存,成功后再写数据库;或者先写数据库,再写缓存。
王工认为该解决思路并未解决数据同步或数据不一致性的问题,请用100字以内的文字解释其原因 。
王工给出了一种可以解决该问题的数据读写步骤如下 :
读数据操作的基本步骤 :
1.根据key读缓存:
2.读取成功则直接返回;
3.若key不在缓存中时,根据key( );
4.读取成功后,( );
5.成功返回 。
写数据操作的基本步骤 :
1.根据key值写( );
2.成功后( );
3.成功返回。
请填写完善上述步骤中(a)~(d)处的空白内容。
【问题 2 】(8 分)
缓存系统一般以key/value形式存储数据,在系统运维中发现,部分针对缓存的查询,未在缓存系统中到对应的key,从而引发了大量对数据库服务器的查询请求,最严重时甚至导致了数据库服务器的宕机。
经过运维人员的深入分析,发现存在两种情况:
(1)用户请求的key值在系统中不存在时,会查询数据库系统,加大了数据库服务器的压力:
(2)系统运行期间,发生了黑客攻击,以大量系统不存在的随机key发起了查询请求,从而导致了数据库服务器的宕机 。经过研究,研发团队决定,当在数据库中也未查到该key时,
在缓存系统中为key设置空值,防止对数据库服务器发起重复查询 。
请用100字以内文字说明该设置空值方案存在的问题,并给出解决思路。
【问题 3】(6 分)
缓存系统中的key一般会存在有效期,超过有效期则key失效;有时也会根据LRU算法将某些key移出内存。当应用软件查询key时,如key失效或不在内存,会重新读取数据库,并更新缓存中的key。
运维团队发现在某些情况下,若大量的key设置了相同的失效时间,导致缓存在同一时刻众多key同时失效,或者瞬间产生对缓存系统不存在key的大量访问,或者缓存系统重启等原因,都会造成数据库服务器请求瞬时爆量,引起大量缓存更新操作,导致整个系统性能急剧下降,进而造成整个系统崩溃。
请用100字以内文字,给出解决该问题的两种不同思路。
【答案】【问题 1】
存在双写不一致问题,在写数据时,可能存在缓存写成功,数据库写失败,或者反之,从而造成数据不一致。当多个请求发生时,也可能产生读写冲突的并发问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。