软考系统分析师历年真题解析-案例2022(上半年)

前言

        2022年上半年真题共5题,其中试题一考察了系统分析和需求工程中数据流图活动图流程图对比,需求评审内容和作用等。试题二考察了三种设计类,类之间的关系等,试题四考察了分布式数据库的2PC协议、数据一致性、本地事务发布等。试题三和试题五分别为嵌入式和web技术相关考题,本章不作讲解。


目录

  • 1 试题一
  • 2 试题二
  • 3 试题四

1 试题一

试题一(25分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某软件公司拟开发一套博客系统,要求能够向用户提供一个便捷发布自已心得,及时有效的与他人进行交流的平台。新用户发布个人博客之前,需要创建一个新的博客账户,以下为新用户注册的操作行为:
(a) 向系统请求创建一个新的博客账户;
(b) 输入个人详细信息;
(c) 使用证件数据库验证个人详细信息;
(d) 选择账户类型;
(e) 身份验证成功,创建新的博客账户;
(f) 用户身份信息验证不成功;
(g) 以电子邮件的方式将账户详细信息发送给用户;
(h) 博客账户申请被拒绝。

【问题1】(6分)
在结构化和面向对象的软件分析过程中,通常会使用到数据流图、活动图和流程图,请分别描述这三种模型的特点和适用场景。
        数据流图:特点为通过系统内数据的流动来描述系统功能的一种方法,强调系统中的数据流动,主要由外部实体、数据流、加工、数据存储组成;适用场景为:结构化需求分析,为系统做功能建模。

        活动图:描述多角色协作或并行活动,面向对象分析与设计建模。

        流程图:能清晰展现业务执行的流程顺序。强调控制流。适用于结构化需求分析与结构化设计。
【问题2】(9分)
采用用例图和用例描述建模系统需求,请使用题干给出的(a)~(h),完善“博客账户创建用例描述”中的(1)~(6),如表1-1所示。将正确答案填在答题纸上。

(1)(a)

  (2)(d)

(3)(b)

(4)(c)

(5)(g)

(g)(h)

【问题3】(10分)
需求评审是通过将需求规格说明书递交给相关人员检查,以发现其中存在缺陷的过程。在需求工程中,需求评审是一个非常重要的过程。结合题干案例,请用300字以内的文字简要说明需求评审的内容及作用。

(1)需求验证:确保需求正确地描述了预期的、满足项目干系人需求地系统行为和特征。

(2)需求完整性:需求是完整地,满足一定地需求。

(3)需求一致性:需求地表述再各处是一致的,不矛盾的。

(4)需求现实性:需求在现有预算和技术条件下能够实现。

(5)需求的可测试性:需求实现后,可通过一定的方式测试实现的结果是否满足。

2 试题二

试题二(25分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某软件公司为某企业开发一套在线办公自动化系统,以提升企业管理服务的质量和效率。公司决定采用面向对象方法开发该系统,张工负责对员工请假审批业务进行了分析,具体描述如下:
企业员工通过请假申请页面提出请假申请后,首先由部门经理进行审核,若请假理由不合理,部门经理拒绝请假申请,将申请退回给员工,员工对请假申请表进行修改再次提交,或放弃请假申请。
若请假理由合理,且请假天数小于等于3天,则部门经理直接批准请假申请,生成请假批准单,申请结束。
若请假天数大于3天,则在部门经理批准请假申请后,需要提交给副总经理审核批准。副总经理若认为该申请合理,则审核通过,生成请假批准单,流程结束;若副总经理认为申请不合理,则拒绝请假申请,将请假申请退回给员工。

【问题1】(11分)
识别设计类是面向对象设计过程中的重要环节之一,设计类表达了类的职责,即该类所承担的任务。请用300字以内的文字说明设计类通常包含哪3种类型,以及每种类型的主要职责,并从题干描述案例涉及的具体类为每种类型的设计类举出两个实例。
(1)实体类。实体类映射需求中的每个实体,保存需要存储在永久存储体中的信息,例如,员工信息、请假申请表。

(2)控制类。控制类用于控制用例工作的类,用于对一个或几个用例所持有的控制行为进行建模。例如提交请假,审批请假。

(3)边界类。边界类用于封装在用例内、外流动的信息或数据流。例如,请假申请页面、请假批准单。
【问题2】(6分)
识别类之间的关系是面向对象分析过程中的重要环节之一,常见的类之间关系包括泛化关系、关联关系、聚合关系、组合关系等。请用300字以内的文字对泛化关系和关联关系的内涵进行描述,并根据题干具体类的描述为这两种关系各举出一种实例。
(1)泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类继承了父类,而父类则是子类的泛化。

(2)关联关系。关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联体现的是对象实例之间的关系,而不是表示类之间的关系。

泛化关系:员工与部门经理。

关联关系:员工与请假记录之间有关联关系。
【问题3】(8分)
在面向对象的设计过程中,状态图描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图2-1中的(a)~(d)空白,完成请假审批的状态图。

(a) 部门经理不批准申请;(b) 请假天数大于3天 ;(c)副总经理不批准申请;(d) 请假天数小于等于3天。

3 试题四

试题四(25分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某大型电商平台构建了一个在线B2B商店系统。该系统采用微服务架构,将系统功能分解为多个松散耦合且可独立部署的较小组件或服务。最终设计的系统包括了电商系统中常见的服务:客户服务、订单服务、支付服务等,其中:
1、客户服务负责对客户相关的信息进行管理和维护;
2、订单服务负责对订单信息的管理和维护;
3、支付服务负责对在线支付功能和信息的管理和维护等。
为了确保微服务之间的松耦合,每个服务都有自己的数据,其中,订单服务使用了 NoSQL 数据库,客户服务和支付服务使用了关系数据库。
李工认为由于不同服务使用了各自的不同数据库,使得跨服务操作可能存在数据不一致。比如订单与支付的数据一致性问题,系统通过订单服务在本地 NoSQL 数据库中创建订单记录,同时在支付服务的关系数据库中创建支付记录,且必须保证订单记录和支付记录的一致性,该问题在系统构建时需要考虑。

【问题1】(7分)
李工建议采用两阶段提交协议(2PC)来解决服务数据的一致性问题。请用200字以内的文字简要说明2PC;说明2PC是否能解决该问题,并简要解释原因。
1、两阶段提交协议2PC经常用来管理分布式事物。

(1)2PC包含协调者和参与者两类站点,只有协调者才拥有提交或撤销事务的决定权,而其它参与者各自负责在本地数据库中执行写操作,并向协调者提出册小或提交事务的意向。

(2)2PC分为两个阶段:表决阶段和执行阶段。

          表决阶段:目的是形成一个共同的决定。协调者给所有参与者发送“准备提交”的消息,并进入等待状态,所有参与者给与恢复“建议提交”或“建议撤销“。只要有一个节点选择撤销,则整体事务撤销,否则,执行该事务。

          执行阶段,目的是实现这个协调者的决定。根据协调者的指令,参与者或者提交事务,或者册小事务,并给协调者发送确定消息。

2、两阶段提交协议2PC不能解决当前问题。

(1) 分布式数据库遵循的是CAP原则,会在一定程度上牺牲一致性。

(2) 大多数NoSQL数据库不支持2PC。

(3)分布式两阶段提交协议2PC一般针对的对象在逻辑上是一个整体,对某一整体事务需要在多个物理节点上执行时,进行表决和执行,对斗个数据库的不同服务并不是很合适。
【问题2】(8分)
王工建议采用分布式数据管理方案,用事件驱动架构来解决服务数据的一致性问题,在订单服务和支付服务之间通过可靠的消息队列实现事件的传递,其基本操作步骤如下,请填写其中的空白处。
(1)订单服务接收订购请求,创建一个订单,该记录状态为(a),发布一个“创建订单”事件;
(2)(b)接收“创建订单”事件,记录(c),发布一个“支付完成”事件;
(3)订单服务接收“支付完成”事件,修改订单记录状态为(d)。
(a) 未支付;(b) 支付服务;(c)支付信息;(d) 已支付。
【问题3】(10分)
李工提出王工的方案会有数据库更新和发布事件的原子性问题,例如订单服务创建订单记录和发布“创建订单”事件需要原子性保障,否则会出现数据不一致状态。
王工认为可以使用本地事务发布事件的方法来解决该问题。请给出使用本地事务发布事件的基本方法,并说明该方法的缺点。

使用本地事务发布事件:

由一个独立进程来发布事件。具体来说,就是在存储业务实体状态的数据库中,使用一个事件表来充当消息队列。应用启动一个(本地)数据库事务,更新业务实体的状态,在事务表中插入一个事件,并提交该事务。一个独立的消息发布线程或进程查询该事件表,将事件发布到消息代理,并标注该事件为已发布。

缺点:

由于开发者必须牢记发布事件,因此有很大可能出错。此外这一方法对于某些使用NoSQL数据库的应用是个挑战,因为NoSQL本身交易和查询能力有限。

文末:本章解答了软考系统分析师案例2022年上半年真题,其中题目三和题目五涉及嵌入式系统和web系统,本章未做分析。其余的题目考点为数据流图活动图流程图对比,需求评审内容和作用、三种设计类,类之间的关系等,试题四考察了分布式数据库的2PC协议、数据一致性、本地事务发布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值