image

编辑人: 未来可期

calendar2025-06-10

message9

visits699

2017年5月系统分析师案例分析答案及解析

一、问答题

1、

试题一(25 分)


阅读以下关于基于微服务的系统开发的叙述,在答题纸上回答问题1至问题3

【说明】

某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司的系统分析师王工首先进行了需求分析,得到的系统需求列举如下:

系统的参与者包括乘客、出租车司机和平台管理员三类;

系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息进行管理,对出租车司机的违章情况进行审核;

系统需要与后端的银行支付系统对接,完成支付信息审核、支付信息更新与在线支付等功能;

针对乘客发起的每一笔订单,系统需要实现订单发起、提交、跟踪、撤销、支付、 完成等业务过程的处理:

系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。

在系统分析与设计阶段,公司经过内部讨论,一致认为该系统的需求定义明确,建议尝试采用新的微服务架构进行开发,并任命王工为项目技术负责人,负责项目开发过程中的技术指导工作。

【问题 1(12 )

请用 100 字以内的文字说明一个微服务中应该包含的内容,并用 300 字以内的文字解释基于微服务的系统与传统的单体式系统相比的 2 个优势和带来的 2 个挑战。

【问题 2(8 )

识别并设计微服务是系统开发过程中的一个重要步骤,请对题干需求进行分析,对微服务的种类和包含的业务功能进行归类,完成表1-1 中的(1)~(4)

【问题 3】(5 分)

为了提高系统开发效率,公司的系统分析师王工设计了一个基于微服务的软件交付流程,其核心思想是将业务功能定义为任务,将完成某个业务功能时涉及到的步骤和过程定义为子任务,只有当所有的子任务都测试通过后改业务功能才能上线交付。请基于王工设计的在线支付微服务交付流程,从(a~f)中分别选出合适的内容填入图 1-1 中的(1~5)处。

1-1 在线支付微服务交付流程

 

选项:(a)提交测试 (b)全量上线 (c) 对接借记卡

d) 获取个人优惠券 (e)试部署 (f)对账

参考答案:见解析

解析:

问题1:

微服务是一种将应用程序分解为一系列小型的、独立的服务的方法。每个微服务通常处理单一业务功能,并且有自己的数据库和API。微服务的核心思想是将应用程序分解为可独立部署、可独立扩展和可独立管理的服务。

微服务架构的优势在于解决了复杂性问题,使得每个服务都能够独立开发和部署,从而提高了开发效率和可维护性。同时,微服务架构允许开发者自由选择适合的技术栈,提供API服务,从而促进了技术的多样性和创新。

然而,微服务架构也带来了一些挑战。首先,并非所有的系统都能轻松地转换为微服务架构。其次,由于微服务需要单独部署和管理,增加了部署的复杂度。此外,微服务之间的通信和协调也带来了性能和数据一致性的挑战。

问题2:

在需求分析阶段,根据题干的需求,我们可以将微服务划分为以下几个种类和包含的业务功能:

  • 乘客相关的微服务:处理乘客的信息注册、身份认证、信用信息管理等。
  • 司机相关的微服务:处理出租车司机的信息注册、身份认证、违章情况审核等。
  • 支付相关的微服务:处理支付信息的审核、更新和在线支付等功能。
  • 订单相关的微服务:处理订单的发起、提交、跟踪、撤销和完成等业务流程。

问题3:

根据王工设计的在线支付微服务交付流程,我们可以将任务分为以下几个子任务,并选择合适的选项填入图1-1中的相应位置:

  • (1) 提交测试:在微服务开发完成后,需要进行测试以确保其功能的正确性。
  • (2) 对接借记卡:在线支付微服务需要与银行支付系统对接,完成支付信息的更新。
  • (3) 获取个人优惠券:在支付过程中,可能涉及到优惠券的获取和使用。
  • (4) 试部署:在正式部署之前,通常会有一个试部署阶段,用于验证部署流程和配置。
  • (5) 全量上线:当所有子任务都测试通过后,该业务功能可以正式全量上线交付。

2、

试题二(25分)

阅读以下关于系统数据分析与建模的叙述,在答题纸上回答问题1 至问题 3

【说明】

某软件公司受快递公司委托,拟开发一套快递业务综合管理系统,实现快递单和物流信息的综合管理。项目组在系统逻辑数据模型设计中,需要描述的快递单样式如图 2-1 所示,图 2-2 是项目组针对该快递单所设计的候选实体及其属性。

【问题 1】(6 分)

数据库设计主要包括概念设计、逻辑设计和物理设计三个阶段,请用 200 字以内文字说明这三个阶段的主要任务。

【问题 2]11 分)

根据快递单样式图,请说明:

1) 2-2 中三个候选实体对应的主属性 PK1PK2 PK3 分别是什么?

2) 2-2 中应设计哪些实体之间的联系,并说明联系的类型。

【问题 3】(8 分)

在图 2-2 中添加实体之间的联系后,该实体联系图是否满足第一范式、第二范式和第三范式中的要求(对于每种范式判定时,假定己满足低级别范式要求)。如果不满足,请用 200 字以内文字分别说明其原因。

参考答案:见解析

解析:

问题 1 的解析:

数据库设计主要分为三个阶段:概念设计、逻辑设计和物理设计。概念设计主要是根据需求说明书抽象出概念模型,逻辑设计是将概念模型转化为逻辑模型,并进行优化,物理设计则是为逻辑模型选择最合适的物理存储结构和存取方法。

问题 2 的解析:

在给出的实体中,寄件人、收件人和快递单都有唯一的标识属性,因此可以作为主键。寄件人和收件人与快递单之间存在一对多的关系,即每个快递单都有唯一的寄件人和收件人,但寄件人和收件人可以有多个快递单。

问题 3 的解析:

第三范式要求非主属性必须完全函数依赖于候选键,不能存在部分函数依赖和传递函数依赖。在给出的实体联系图中,寄件人和收件人的属性都是完全函数依赖于各自的候选键(证件号或编号),因此满足第三范式。而快递单中的总计属性依赖于其他属性(如保价金额、代收货款等),存在传递函数依赖,不满足第三范式。

3、

试题三(25 )

阅读以下关于嵌入式多核程序设计技术的描述,回答问题 1 至问题 3

【说明】

近年来,多核技术己被广泛应用于众多安全关键领域(:航空航天等)的电子设备中,面向多核技术的并行程序设计方法已成为软件人员急需掌握的主要技能之一。某宇航公司长期从事宇航电子设备的研制工作,随着宇航装备能力需求的提升,急需采用多核技术以增强设备的运算能力、降低功耗与体积,快速实现设备的升级与换代。针对面向多核开发,王工认为多核技术是对用户程序透明的,开发应把重点放在多核硬件架构和硬件模块设计上面,而软件方面,仅仅需要选择一款支持多核处理器的操作系统即可。而李工认为,多核架构能够使现有的软件更高效地运行,构建一个完善的软件架构是非常必要的。提高多核的利用率不能仅靠操作系统,还要求软件开发人员在程序设计 中考虑多进程或者多线程并行处理的编程问题。

【问题 1(12 分)

请用 300 字以内文字说明什么是多核技术和多线程技术,并回答李工的意见是否正确,为什么?

【问题 2(6 分)

在多核环境下,线程的活动有并行和并发两种方式,请用 300 字以内的文字说明这两种方式的含义及差别。

【问题 3(7 分)

请根据自己所掌握的多核、多线程的知识,判别表 3-1 给出的说法是否正确,并将答案写在答题纸上对应空白处(填写正确或错误)

参考答案:见解析

解析:


问题 1:多核技术集成多个计算引擎在单一处理器中,提高处理能力。多线程技术则通过软件或硬件实现多个线程并发执行,进一步提升性能。李工的意见正确,因为如果不能有效利用多核的并行处理能力,将导致资源闲置。

问题 2:并行与并发是不同但相关的概念。并行是多个事件在同一时刻发生,而并发是多个事件在一段时间内交替发生,但从微观角度看仍是串行的。系统如果支持同时存在的动作则是并行或并发系统。

问题 3:根据提供的表格内容,判断各叙述的正确性。(1)、(2)、(4)和(7)为正确,(3)、(5)和(6)为错误。
“}根据上述内容,请按照要求的格式给出答案。”, “答案”: "

4、

试题四( 25 分)


阅读以下关于数据库分析与建模的叙述,在答题纸上回答问题 1至问题 3

【说明】

某电子商务企业随着业务不断发展,销售订单不断增加,每月订单超过了 50 万笔,急需开发一套新的互联网电子订单系统。同时该电商希望建立相应的数据中心,能够对订单数据进行分析挖掘,以便更好地服务用户。王工负责订单系统的数据库设计与开发,初步设计的核心订单关系模式为:orders(order_nocustomer_no order_dateproduct_noprice. ....);

考虑订单数据过多,单一表的设计会对系统性能产生较大影响,仅仅采用索引不足以解决性能问题。因此,需要将订单表拆分,按月存储。

王工采用反规范化设计方法来解决,给出了相应的解决方案。李工负责数据中心的设计与开发。李工认为王工的解决方案存在问题,建议采用数据物理分区技术。在解决性能问题的同时,也为后续的数据迁移、数据挖掘和分析等工作提供支持。

【问题 1(8 )

常见的反规范化设计包括增加冗余列、增加派生列、重新组表和表分割。为解决题干所述需求,王工采用的是哪种方法?请用 300 字以内的文字解释说明该方法,并指出其优缺点。

【问题 2(8 分)

物理数据分区技术一般分为水平分区和垂直分区,数据库中常见的是水平分区。水平分区分为范围分区、哈希分区、列表分区等。请阅读下表,在(1)~(8) 中填写不同分区方法在数据值、数据管理能力、实施难度与可维护性、数据分布等方面的特点。

【问题 3(9 分)

根据需求,李工宜选择物理水平分区中的哪种分区方法?请用 300字以内的文字分别解释说明该方法的优缺点。


参考答案:见解析

解析:

问题1:
王工将订单表按月拆分,属于表分割中的水平分割。水平分割是根据某个或某些列的值将表分割成多个子表,每个子表包含不同的数据,但列数相同。在这个例子中,王工根据“月”参数进行分割,即每个月的数据存储在单独的表中。

问题2:
水平分区:
- (1)连续:分区之间按照某种规则(如时间)连续排列。
- (2)离散:每个分区存储的数据不连续。
- (3)弱:分区键的选择对查询性能影响较小。
- (4)强:分区键的选择对查询性能影响较大。

垂直分区:
- (5)不好:垂直分区对于水平查询的性能影响通常较大。
- (6)不好:垂直分区可能导致某些查询需要跨多个分区,增加查询的复杂性。
- (7)不均匀:数据在垂直分区中可能分布不均匀。
- (8)均匀:数据在水平分区中通常分布均匀。

问题3:
李工宜选择范围分区方式。范围分区是根据分区键的值范围将表分成多个子表,每个子表包含分区键值在某个范围内的数据。范围分区的优点包括:
- 可以将表存储到多个表空间内,各个分区维护各自的本地索引,查询语句可以根据索引进行分区范围查找,提高了查询速度。
- 可以对单个分区进行备份、归档或者清除过期的数据,利于维护。
- 实现容易,而且可以方便的对表的分区进行添加、删除、拆分和合并操作。
范围分区的缺点:数据分布不均匀,所以可以与哈希分区组合应用。

5、

试题五( 25 分)

阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答问题1 至问题 3

【说明】

某公司开发的 B2C 商务平台因业务扩展,导致系统访问量不断增大,现有系统访问速度缓慢,有时甚至出现系统故障瘫痪等现象。面对这一情况,公司召开项目组讨论会议,寻求该商务平台的改进方案。讨论会上,王工提出可以利用镜像站点、CDN 内容分发等方式解决并发访问量带来的问题。而李工认为,仅仅依靠上述外网加速技术不能完全解决系统现有问题,如果访问量持续增加,系统仍存在崩渍的可能。李工提出应同时结合 Web 内网加速技术优化系统改进方案,如综合应用负载均衡、缓存服务器、Web 应用服务器、分布式文件系统、分布式数据库等。经过讨论,公司最终决定采用李工的思路,完成改进系统的设计方案。

【问题 1(10 分)

针对李工提出的改进方案,从 a ~j 中分别选出各技术的相关描

述和对应常见支持软件填入表 5-1 中的(1) ~(10) 处。

【问题 2(9 分)

请用 100 字以内的文字解释分布式数据库的概念,并给出提高分布式数据库系统性能的 3 种常见实现技术。

【问题 3(6 分)

针对 B2C 商务购物平台的数据浏览操作远远高于数据更新操作的特点,指出该系统应采用的分布式数据库实现方式,并分析原因。


参考答案:见解析

解析:

:问题一的答案按照表格的要求进行了排序和整理;问题二的答案详细解释了分布式数据库的概念以及常用的实现技术如数据分片、查询优化和读写分离等并针对具体场景进行了分析;问题三的答案针对B2C商务购物平台的数据浏览和更新特点提出了采用一主多从的分布式数据库实现方式以提高系统的并发处理能力和响应速度并保证数据的实时性和一致性。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2017年5月系统分析师案例分析答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share