系统分析师-22年-下午题目
-
更多软考知识请访问 https://ruankao.blog.csdn.net/
-
试题一必答,二、三、四、五题中任选其中两题作答
试题一 (25分)
说明
某软件公司拟开发一套博客系统,要求能够向用户提供一个便捷发布自已心得,及时有效的与他人进行交流的平台。新用户发布个人博客之前,需要创建一个新的博客账户,以下为新用户注册的操作行为:
(a) 向系统请求创建一个新的博客账户;
(b) 输入个人详细信息;
(c) 使用证件数据库验证个人详细信息;
(d) 选择账户类型;
(e) 身份验证成功,创建新的博客账户;
(f) 用户身份信息验证不成功;
(g) 以电子邮件的方式将账户详细信息发送给用户;
(h) 博客账户申请被拒绝。
问题1 (6分)
在结构化和面向对象的软件分析过程中,通常会使用到数据流图、活动图和流程图,请分别描述这三种模型的特点和适用场景。
问题2 (9分)
采用用例图和用例描述建模系统需求,请使用题干给出的(a)~(h),完善“博客账户创建用例描述”中的(1)~(6),如表1-1所示。将正确答案填在答题纸上。
用例名称 | 创建一个新的博客账户 | |
相关需求 | 新用户的个人资料通过证件数据库验证成功后,CMS系统将允许用户创建一个新的博客账户 | |
上下文目标 | 新用户请求创建一个新的博客账户 | |
前置条件 | 新用户具有真实有效的身份证明 | |
成功的结束条件 | 为新用户创建博客账户 | |
失初败的结束条件 | 创建博客账户的申请被拒绝 | |
主要参与者 | 新用户 | |
次要参与者 | 作者证件数据库 | |
触发器 | 新用户向CMS请求建立一个新的博客账户 | |
基本流程 | 步骤 | |
1 | (1) | |
2 | (2) | |
3 | (3) | |
4 | (4) | |
5 | 身份验证成功,创建新的博客账户 | |
6 | (5) | |
扩展流程 | 步骤 | 分支动作 |
1 | 用户身份信息验证不成功 | |
2 | (6) |
问题3 (10分)
需求评审是通过将需求规格说明书递交给相关人员检查,以发现其中存在缺陷的过程。在需求工程中,需求评审是一个非常重要的过程。结合题干案例,请用300字以内的文字简要说明需求评审的内容及作用。
试题二 (25分)
说明
某软件公司为某企业开发一套在线办公自动化系统,以提升企业管理服务的质量和效率。公司决定采用面向对象方法开发该系统,张工负责对员工请假审批业务进行了分析,具体描述如下:企业员工通过请假申请页面提出请假申请后,首先由部门经理进行审核,若请假理由不合理,部门经理拒绝请假申请,将申请退回给员工,员工对请假申请表进行修改再次提交,或放弃请假申请。若请假理由合理,且请假天数小于等于3天,则部门经理直接批准请假申请,生成请假批准单,申请结束。若请假天数大于3天,则在部门经理批准请假申请后,需要提交给副总经理审核批准。副总经理若认为该申请合理,则审核通过,生成请假批准单,流程结束;若副总经理认为申请不合理,则拒绝请假申请,将请假申请退回给员工。
问题1 (11分)
识别设计类是面向对象设计过程中的重要环节之一,设计类表达了类的职责,即该类所承担的任务。请用300字以内的文字说明设计类通常包含哪3种类型,以及每种类型的主要职责,并从题干描述案例涉及的具体类为每种类型的设计类举出两个实例。
问题2 (6分)
识别类之间的关系是面向对象分析过程中的重要环节之一,常见的类之间关系包括泛化关系、关联关系、聚合关系、组合关系等。请用300字以内的文字对泛化关系和关联关系的内涵进行描述,并根据题干具体类的描述为这两种关系各举出一种实例。
问题3 (8分)
在面向对象的设计过程中,状态图描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图2-1中的(a)~(d)空白,完成请假审批的状态图。
试题三 (25分)
说明
某公司长期从事宇航系统的研制任务。随着宇航系统能力的不断提升,软件的规模急剧增加,对应的缺陷密度呈现出几何增长,失效问题越来越严重。为了保证产品的质量,公司领导要求在重点项目中实施基于模型的系统工程(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。
(参考公式:
1
T
t
F
s
=
∑
i
=
1
n
1
T
t
F
s
=
1
280
+
1
5.01
∗
1
0
4
+
1
1
0
4
+
1
600
+
1
387
=
0.007942
(
1
/
h
)
\frac 1{T_{tF_s}} = \sum_{i=1}^n \frac 1{T_{tF_s}} = \frac 1{280} + \frac 1{5.01*10^4} + \frac 1{10^4} + \frac 1{600} + \frac 1{387} = 0.007942(1/h)
TtFs1=∑i=1nTtFs1=2801+5.01∗1041+1041+6001+3871=0.007942(1/h) )。
请对照图3-3给出的考虑软件失效情况下的系统可靠性分布图(这里,假设SYS1软件非常可靠,系统仅仅将圈中的软件可靠性加入系统可靠性的评估过程),说明此时的系统可靠性(MTTF)应大于还是小于不考虑软件失效的MTTF?并计算出此时的系统可靠性(MTTF)是多少?
试题四 (25分)
说明
某大型电商平台构建了一个在线B2B商店系统。该系统采用微服务架构,将系统功能分解为多个松散耦合且可独立部署的较小组件或服务。最终设计的系统包括了电商系统中常见的服务:客户服务、订单服务、支付服务等,其中:
- 客户服务负责对客户相关的信息进行管理和维护;
- 订单服务负责对订单信息的管理和维护;
- 支付服务负责对在线支付功能和信息的管理和维护等。
为了确保微服务之间的松耦合,每个服务都有自己的数据,其中,订单服务使用了 NoSQL 数据库,客户服务和支付服务使用了关系数据库。
李工认为由于不同服务使用了各自的不同数据库,使得跨服务操作可能存在数据不一致。比如订单与支付的数据一致性问题,系统通过订单服务在本地 NoSQL 数据库中创建订单记录,同时在支付服务的关系数据库中创建支付记录,且必须保证订单记录和支付记录的一致性,该问题在系统构建时需要考虑。
问题1 (7分)
李工建议采用两阶段提交协议(2PC)来解决服务数据的一致性问题。请用200字以内的文字简要说明2PC;说明2PC是否能解决该问题,并简要解释原因。
问题2 (8分)
王工建议采用分布式数据管理方案,用事件驱动架构来解决服务数据的一致性问题,在订单服务和支付服务之间通过可靠的消息队列实现事件的传递,其基本操作步骤如下,请填写其中的空白处。
- 订单服务接收订购请求,创建一个订单,该记录状态为(a),发布一个“创建订单”事件;
- (b)接收“创建订单”事件,记录(c),发布一个“支付完成”事件;
- 订单服务接收“支付完成”事件,修改订单记录状态为(d)。
问题3 (10分)
李工提出王工的方案会有数据库更新和发布事件的原子性问题,例如订单服务创建订单记录和发布“创建订单”事件需要原子性保障,否则会出现数据不一致状态。
王工认为可以使用本地事务发布事件的方法来解决该问题。请给出使用本地事务发布事件的基本方法,并说明该方法的缺点。
试题五 (25分)
说明
某公司拟开发一个食品供应链溯源系统,该系统需要提供从原材料供应商、加工商、物流、分销商、零售商、消费者的食品供应链全流程溯源。该公同组建了项目组,并召开了项目开发讨论会。会上,张工提出适过二维码扫描获取食品信息,采用中心化数数据库作为数据存储媒介;李工提出使用中心化数据库容易产生数据信任、溯源追责困难等问题,建议建立区块链和数据库的映射存储,提供存储和查询操作功能,并提出采用数据接入层、数据核心层、应用表示层三层体系架构实现该食品溯源系统。
问题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) 传感器网络