2022年上半年系统分析师上午真题及答案解析
Posted 任铄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022年上半年系统分析师上午真题及答案解析相关的知识,希望对你有一定的参考价值。
试题一(共25分)
阅读以下关于软件系统分析与建模的叙述,在答题纸上回答问题1至问题3。
某软件公司拟开发一套博客系统,要求能够向用户提供一个便捷发布自已心得,及时有效的与他人进行交流的平台。新用户发布个人博客之前,需要创建一个新的博客账户,以下为新用户注册的操作行为:
(a) 向系统请求创建一个新的博客账户;
(b) 输入个人详细信息;
(c) 使用证件数据库验证个人详细信息;
(d) 选择账户类型;
(e) 身份验证成功,创建新的博客账户;
(f)用户身份信息验证不成功;
(g) 以电子邮件的方式将账户详细信息发送给用户;
(h)博客账户申请被拒绝。
问题1(6分)
在结构化和面向对象的软件分析过程中,通常会使用到数据流图、活动图和流程图,请分别描述这三种模型的特点和适用场景。
问题2(9分)
采用用例图和用例描述建模系统需求,请使用题干给出的(a)~(h),完善“博客账户创建用例描述”中的(1)~(6),如表1-1所示。将正确答案填在答题纸上。
表1-1 博客账户创建用例描述
问题3(10分)
需求评审是通过将需求规格说明书递交给相关人员检查,以发现其中存在缺陷的过程。在需求工程中,需求评审是一个非常重要的过程。结合题干案例,请用300字以内的文字简要说明需求评审的内容及作用。
(试题二至试题五选答二个)
试题二(共25分)
阅读以下关于系统设计的叙述,在答题纸上回答问题1至问题3。
某软件公司为某企业开发一套在线办公自动化系统,以提升企业管理服务的质量和效率。公司决定采用面向对象方法开发该系统,张工负责对员工请假审批业务进行了分析,具体描述如下:
企业员工通过请假申请页面提出请假申请后,首先由部门经理进行审核,若请假理由不合理,部门经理拒绝请假申请,将申请退回给员工,员工对请假申请表进行修改再次提交,或放弃请假申请。
若请假理由合理,且请假天数小于等于3天,则部门经理直接批准请假申请,生成请假批准单,申请结束。
若请假天数大于3天,则在部门经理批准请假申请后,需要提交给副总经理审核批准。副总经理若认为该申请合理,则审核通过,生成请假批准单,流程结束;若副总经理认为申请不合理,则拒绝请假申请,将请假申请退回给员工。
问题1(11分)
识别设计类是面向对象设计过程中的重要环节之一,设计类表达了类的职责,即该类所承担的任务。请用300字以内的文字说明设计类通常包含哪3种类型,以及每种类型的主要职责,并从题干描述案例涉及的具体类为每种类型的设计类举出两个实例。
问题2(6分)
识别类之间的关系是面向对象分析过程中的重要环节之一,常见的类之间关系包括泛化关系、关联关系、聚合关系、组合关系等。请用300字以内的文字对泛化关系和关联关系的内涵进行描述,并根据题干具体类的描述为这两种关系各举出一种实例。
问题3(8分)
在面向对象的设计过程中,状态图描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图2-1中的(a)~(d)空白,完成请假审批的状态图。
试题三(共25分)
阅读以下关于基于模型的系统工程方法的描述,在答题纸上回答问题1至问题3。
某公司长期从事宇航系统的研制任务。随着宇航系统能力的不断提升,软件的规模急剧增加,对应的缺陷密度呈现出几何增长,失效问题越来越严重。为了保证产品的质量,公司领导要求在重点项目中实施基于模型的系统工程(MBSE)。由于辅助动力控制系统关系着飞行器的飞行安全,有必要作为试点工程首先实施MBSE方法。王工作为安该系统的主要负责人,承担起了此项工作。
问题1(10分)
王工以前一直负责用传统开发方法进行系统设计,深知基于文本的系统设计方式存在天然的局限性。王工接到指示后,研究了MBSE的相关理论基础和工程实现方法,提出了用MBSE方法设计辅助动力控制系统的实施方案。请用300字以内的文字说明什么是MBSE方法,并列举出三个基于文本设计方式的局限性。
问题2(9分)
MBSE的核心技术是模型方法论,王工对目前主流建模方法Harmony-SE(harmony for System Engineering)方法、RUP-SE(Rational Unified Process for System)方法和Vitech MBSE 方法进行了分析、对比,鉴于该系统具备安全攸关系统的特殊性,强调验证的有效性,王工认为Harmony-SE 方法比较适合宇航环境开发。图3-1给出了Harmony-SE 方法的产品生命周期结构。请根据以下三种有关建模方式的描述,判定哪种描述是 Harmony-SE 方法的正确说明?并简要说明王工在本项目中选择 Harmony-SE 方法的理由。
描述1:一种面向对象的设计方法,可以将设计工作按照角色、工件和任务类型进行分解,生成新的分解结构,实现并行设计与迭代开发。
描述2:系统模型贯穿系统研发的整个生命周期,能够较好处理复杂与整体问题。
描述3:一种并行系统工程活动,由四个基本系统工程活动组而成,这四种活动通过公共系统设计库相关联。
问题3(6分)
MBSE方法可以通过软硬件建模来预先评估系统的可靠性。王工带领项目成员针对其负责的辅助动力控制系统中的进排气门控制器组件开展了基于MBSE系统分析工作。
图3-2给出了进排气门控制器的可靠性分布图。
王工指出:系统是由软硬件组成,以往考虑可靠性指标仅仅关注硬件失效问题,而不考虑软件失效对系统可靠性的影响。如果不考虑软件失效对系统可靠性的影响,本系统可靠性的MTTF(Mean Time To Failure,平均失效前时间)应该为125.9h(参考公式):
请对照图3-3给出的考虑软件失效情况下的系统可靠性分布图(这里,假设SYS1软件非常可靠,系统仅仅将圈中的软件可靠性加入系统可靠性的评估过程),说明此时的系统可靠性应大于还是小于不考虑软件失效的MTTF?并计算出此时的系统可靠性(MTTF)是多少?
试题四(共25分)
阅读以下关于微服务架构中的数据管理的叙述,在答题纸上回答问题1至问题3。
某大型电商平台构建了一个在线B2B商店系统。该系统采用微服务架构,将系统功能分解为多个松散耦合且可独立部署的较小组件或服务。最终设计的系统包括了电商系统中常见的服务:客户服务、订单服务、支付服务等,其中:
1.客户服务负责对客户相关的信息进行管理和维护;
2.订单服务负责对订单信息的管理和维护;
3.支付服务负责对在线支付功能和信息的管理和维护等。
为了确保微服务之间的松耦合,每个服务都有自己的数据库,其中订单服务使用了NoSQL 数据库,客户服务和支付服务使用了关系数据库。
李工认为由于不同服务使用了各自的不同数据库,使得跨服务操作可能存在数据不一致。比如订单与支付的数据一致性问题,系统通过订单服务在本地 NoSQL 数据库中创建订单记录,同时在支付服务的关系数据库中创建支付记录,且必须保证订单记录和支付记录的一致性,该问题在系统构建时需要考虑。
问题1(7分)
李工建议采用两阶段提交协议(2PC)来解决服务数据的一致性问题。请用200字以内的文字简要说明2PC;说明2PC是否能解决该问题,并简要解释原因。
问题2(8分)
王工建议采用分布式数据管理方案,用事件驱动架构来解决服务数据的一致性问题,在订单服务和支付服务之间通过可靠的消息队列实现事件的传递,其基本操作步骤如下,请填写其中的空白处。
(1)订单服务接收订购请求,创建一个订单,该记录状态为( a ),发布一个“创建订单”事件;
(2)( b )接收“创建订单”事件,记录( c ),发布一个“支付完成事件;
(3)订单服务接收“支付完成”事件,修改订单记录状态为( d )。
问题3(10分)
李工提出王工的方案会有数据库更新和发布事件的原子性问题,例如订单服务创建订单记录和发布“创建订单”事件需要原子性保障,否则会出现数据不一致状态。
王工认为可以使用本地事务发布事件的方法来解决该问题。请给出使用本地事务发布事件的基本方法,并说明该方法的缺点。
试题五(共25分)
阅读以下关于 web 系统设计的叙述,在答题纸上回答问题1至问题3。
某公司拟开发一个食品供应链溯源系统,该系统需要提供从原材料供应商、加工商、物流、分销商、零售商、消费者的食品供应链全流程溯源。该公司组建了项目组,并召开了项目开发讨论会。会上,张工提出通过二维码扫描获取食品信息,采用中心化数据库作为数据存储媒介;李工提出使用中心化数据库容易产生数据信任、溯源追责困难等问题,建议建立区块链和数据库的映射存储,提供存储和查询操作功能,并提出采用数据接入层、数据核心层、应用表示层三层体系架构实现该食品溯源系统。
问题1(6分)
去中心化和开放性是区块链的重要特征,请用200字以内的文字简要说明什么是区块链的去中心化和开放性。
问题2(7分)
分布式交易账本、哈希散列函数、公私钥签名、时间戳就是区块链的核心技术,请从上述技术中选择两种最适合解决数据信任问题的技术,并用300字以内的文字说明原因。
问题3(12分)
根据李工的建议,该系统将采用三层架构。请从下面给出的(a)~(m)候选项中进行选择,补充完善图5-1中(1)~(6)处空白的内容,完成该系统的架构设计方案。
(a)数据接入层 (b)智能合约 (c)Socket (d)4G/Wifi
(e)应用表示层 (f)数据库 (g)MVC (h)数据核心层
(i)传感器网络 (j)区块链网络 (k)4G/Wifi (l)JDBC
(m)业务逻辑层
2022年上半年系统分析师上午真题及答案解析
问题1(6分)单击此链接查看真题解析视频https://ke.qq.com/course/297096?tuin=7d818187#term_id=100352125
1.数据流图:
特点:是表达系统内数据的流动并通过数据流描述系统功能数据的一种方法。强调系统中的数据流动。由数据流、外部实体、加工、数据存储组成。
适用场景:SA方法中的重要工具,为系统做功能建模。
2.活动图:
特点:将进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
适用场景:面向对象分析与设计建模。
3.流程图:
特点:反映现有系统各部门的业务处理过程和它们之间的业务分工与联系,以及连接各部门的物流、信息流的传递和流动关系。是描述业务处理过程的方法。
适用场景:结构化需求分析与结构化设计,为系统梳理业务流程。
问题2(9分)
(1)(a) (2)(d) (3)(b) (4)(c) (5)(g) (6)(h)
问题3(10分)
1.需求评审的内容:
(1)需求规格说明书正确地描述了预期的、满足项目干系人需求的系统行为和特征。
(2)需求规格说明书中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。
(3)需求是完整的和高质量的。
(4)需求的表示在所有地方都是一致的。
(5)需求为继续进行系统设计、实现和测试提供了足够的基础。
2.需求评审的作用
1.发现遗漏的需求;
2.发现用户没有达成共识的需求;
3.发现二义性需求;
4.降低因需求不一致带来的风险,提高软件质量。
试题二(共25分)
问题1(11分)
- 实体类:实体对象的抽象,通常来自域模型(现实世界),用来描述具体的实体,通常映射到数据库表格与文件中。案例中的员工、请假单是实体类。
- 边界类:边界对象的抽象,通常是用来完成参与者(用户、外部系统)与系统之间交互的对象,例如:From、对话框、菜单、接口等。案例中的请假申请页面,请假批准单是边界类。
- 控制类:控制对象的抽象,主要用来体现应用程序的执行逻辑,将其抽象出来,可以使变化不影响用户界面和数据库中的表。案例中的提交请假、审核批准是控制类。
问题2(6分)
泛化描述了一般元素和特殊元素之间的关系,是父类和子类之间的关系。员工,部门经理的关系就是泛化关系。
关联关系描述了给定类的单独对象之间语义上的连接。关联提供了不同类之间的对象可以相互作用的连接。员工与请假记录之间的关系就是关联关系。
问题3(8分)
(a)部门经理拒绝请假申请 (b)请假天数大于3天
(c)副总经理拒绝请假申请 (d)请假天数小于等于3天
试题三(共25分)
问题1(10分)
基于模型的系统工程(MBSE)是一种形式化的方法,用于支持与复杂系统的开发相关的需求,设计,分析,验证和确认。与以文档为中心的工程,MBSE将模型放在系统设计的中心。MBSE是向以模型为中⼼的⼀系列⽅法转变这⼀长期趋势的⼀部分,这些⽅法被应⽤于机械、电⼦和软件等⼯程领域,以期望取代原来系统⼯程师们所擅长的以⽂档为中⼼的⽅法,并通过完全融⼊系统⼯程过程来影响未来系统⼯程的实践。
基于文档的设计方法的局限性主要有:
(1)在基于文档的方法中,许多文档是由不同的作者生成的,以从各种利益相关者的观点(例如系统行为,软件,硬件,安全,安全性或其他学科)中捕获系统的设计。不利于利益相关者之间的沟通,容易产生歧义。
(2)开发复杂系统的能力有限,基于⽂本的设计⽅案⽆法进⾏前期仿真验证。
(3)自然语言容易引入形容词等模糊描述,很难保证准确性。
问题2(9分)
正确的描述是“描述2”。
描述1是对RUP-SE方法的描述。
描述3是对vitech MBSE方法的描述。
根据王工对MBSE的研究,RUP-SE是一种面向对象的设计方法,vitech MBSE方法是一种并行系统,并不满足宇航系统所要求的高安全性和强调验证性的要求。而Harmony-SE建模方法是贯穿系统研发的整个生命周期,用于支持与复杂系统的开发相关的需求、设计、分析、验证和确认。符合宇航系统所描述的安全性和验证性的要求。
问题3(6分)
(1)小于不考虑软件失效的MTTF。
(2)系统可靠性的计算如下:
1/280+1/(5.01*10^4) +1/10^4+1/600+1/387+(1/0.3968+1/0.3968)
=0.007942+(1/0.3968+1/0.3968)
=0.007942+2/0.3968
=0.007942+5.040322
=5.048264(1/h)
所以系统的可靠性为:1/5.048264==0.1980879H。
试题四(共25分)
问题1(7分)
1.两阶段提交协议(2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。同时也是解决一致性问题的一致性算法。两阶段提交协议由两个阶段组成。
(1)阶段1:请求阶段(prepare 阶段,或称表决阶段)在请求阶段,协调者将通知事务参与者准备提交或取消事务,然后进入表决过程。在表决过程中,参与者将告知协调者自己的决策:同意(事务参与者本地作业执行成功)或取消(本地作业执行故障)。
(2)阶段2:提交阶段(commit 阶段)在该阶段,协调者将基于第一个阶段的投票结果进行决策:提交或取消。当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者将通知所有的参与者取消事务。参与者在接收到协调者发来的消息后将执行响应的操作。
2.两阶段提交协议2PC不能解决当前问题。
(1)分布式数据库遵循的是CAP 原则,会在一定程度上牺牲一致性。
(2)大多数 NoSQL 数据库并不支持 2PC。
(3)分布式两阶段提交协议2PC一般针对的对象在逻辑上是一个整体,对某一个整体事务需要在多个物理节点上执行时,进行表决和执行,对多个数据库的不同服务并不是很合适。
问题2(8分)
(a) 未支付 (b) 支付服务 (c) 支付信息 (d) 已支付
问题3(10分)
在数据库中有一张 EVENT 表(模拟消息队列),存储业务数据的状态。首先启动一个本地数据库事务,更新业务数据记录并往 EVENT 表中插入一条数据,最后提交事务。一个单独的线程会轮询 EVENT 表,将查询结果往 MQ 中发送事件消息,然后使用本地事务标注事件状态为已发布。
不足:
易出错,因为要求开发者必须记得更新后去发布事件;
当使用 NoSQL 时,因为 NoSQL 的事务和查询能力有限,实现起来较麻烦。
试题五(共25分)
问题1(6分)
去中心化:其使用分布式储存与算力,整个网络节点的权利与义务相同,系统中数据本质为全网节点共同维护,从而区块链不再依靠于中央处理节点,实现数据的分布式存储、记录与更新。
开放性:区块链技术基础是开源的。除开交易双方的私有信息内容被加密外,区块链的数据信息对所有人开放,任何一个人都能够利用公开的接口查看区块链数据信息和开发设计相关的应用,为此区块链整个系统信息可以认为高度透明的。
问题2(7分)
分布式交易账本、公私钥签名
分布式交易账本是一种在网络成员之间共享、复制和同步的数据库,记录网络参与者之间的交易。网络中的参与者根据共识原则,来制约和协商账本中的记录的更新。分布式账本中的每条记录都有一个时间戳和唯一的密码签名,这样的账本成为了网络中所有交易的可审计的历史记录。所以能解决数据可信度问题。
公私钥签名是使用非对称加密机制,做签名,以验证持有人以及防止伪造。所以能解决数据可信度的问题。
问题3(12分)
(1)(a)或数据接入层
(2)(k)或4G/Wifi
(3)(b)或智能合约
(4)(f)或数据库
(5)(h)或数据核心层
(6)(e)或应用表示层
以上是关于2022年上半年系统分析师上午真题及答案解析的主要内容,如果未能解决你的问题,请参考以下文章