2017 上半年系统分析师考试真题及答案-下午卷
试题一(25 分)必答题
阅读以下关于基于微服务的系统开发的叙述,在答题纸上回答问题 1 至问题 3。
【说明】
某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司
的系统分析师王工首先进行了需求分析,得到的系统需求列举如下:
系统的参与者包括乘客、出租车司机和平台管理员三类;
系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息
进行管理,对出租车司机的违章情况进行审核;
系统需要与后端的银行支付系统对接,完成支付信息审核、支付信息更新与在线支付等
功能;
针对乘客发起的每一笔订单,系统需要实现订单发起、提交、跟踪、撤销、支付、 完
成等业务过程的处理:
系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。
在系统分析与设计阶段,公司经过内部讨论,一致认为该系统的需求定义明确,建议尝
试采用新的微服务架构进行开发,并任命王工为项目技术负责人,负责项目开发过程中的技
术指导工作。
【问题 1】(12 分)
请用 100 字以内的文字说明一个微服务中应该包含的内容,并用 300 字以内的文字解
释基于微服务的系统与传统的单体式系统相比的 2 个优势和带来的 2 个挑战。
微服务中应该包含的内容有:资源、对资源的操作的一组 API 集合
微服务的优势:
(1)通过分解巨大单体式应用为多个服务方法解决了复杂性问题。它把庞大的单一模
块应用分解为一系列的服务,同时保持总体功能不变。
(2)让每个服务能够独立开发,开发者能够自由选择可行的技术,提供 API 服务。
(3)微服务架构模式是每个微服务独立的部署。开发者不再需要协调其它服务部署对
本服务的影响。这种改变可以加快部署速度。
(4)微服务使得每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规
模。甚至你可以使用更适合于服务资源需求的硬件。微服务架构带来的挑战:
(1)并非所有的系统都能转成微服务。例如一些数据库层的底层操作是不推荐服务化
的。
(2)部署较以往架构更加复杂:系统由众多微服务搭建,每个微服务需要单独部署,
从而增加部署的复杂度,容器技术能够解决这一问题。
(3)性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延
迟或调用出错。例如一个服务需要访问另一个服务的数据,只能通过服务间接口来进行数据
传输,如果是频繁访问,则可能带来较大的延迟。
(4)数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统
架构更加困难。
【问题 2】 (8 分)
识别并设计微服务是系统开发过程中的一个重要步骤,请对题干需求进行分析,对微服
务的种类和包含的业务功能进行归类,完成表 1-1 中的(1)~(4)。
(1)乘客信息注册、乘客身份认证、乘客信用信息管理
(2)出租车司机信息注册、出租车司机身份认证、司机违章情况审核
(3)支付管理
(4)订单发起、订单提交、订单跟踪、订单撤销
【问题 3】(5 分)
为了提高系统开发效率,公司的系统分析师王工设计了一个基于微服务的软件交付流
程,其核心思想是将业务功能定义为任务,将完成某个业务功能时涉及到的步骤和过程定义
为子任务,只有当所有的子任务都测试通过后改业务功能才能上线交付。请基于王工设计的
在线支付微服务交付流程,从(a)~(f)中分别选出合适的内容填入图 1-1 中的(1)~
(5)处。
选项:(a)提交测试 (b)全量上线 (c) 对接借记卡
(d) 获取个人优惠券 (e)试部署 (f)对账
(1)f (2)c (3)d (4)a (5)b
试题二(共 25 分)
阅读以下关于系统数据分析与建模的叙述,在答题纸上回答问题 1 至问题 3。
【说明】
某软件公司受快递公司委托,拟开发一套快递业务综合管理系统,实现快递单和物流信
息的综合管理。项目组在系统逻辑数据模型设计中,需要描述的快递单样式如图 2-1 所示,
图 2-2 是项目组针对该快递单所设计的候选实体及其属性。
【问题 1】(6 分)
数据库设计主要包括概念设计、逻辑设计和物理设计三个阶段,请用 200 字以内文字
说明这三个阶段的主要任务。
问题 1(6 分)系统分析师教程 P179
概念设计也称为概念结构设计,其任务是在需求分析阶段产生的需求说明书的基础上,
按照特定的方法将它们抽象为一个不依赖于任何 DBMS 的数据模型,即概念模型。概念模型
的表现形式即 ER 模型。
逻辑设计也称为逻辑结构设计,其主要任务是将概念模型转换为某个特定的 DBMS 上的
逻辑模型。设计逻辑结构时,首先为概念模型选定一个合适的逻辑模型(如:关系模式或层
次模型),然后将其转化为由特定 DBMS 支持的逻辑模型,最后对逻辑模型进行优化。物理
设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结
构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。
【问题 2】](11 分)
根据快递单样式图,请说明:
1) 图 2-2 中三个候选实体对应的主属性 PK1、PK2 和 PK3 分别是什么?
2) 图 2-2 中应设计哪些实体之间的联系,并说明联系的类型。
PK1:证件号
PK2:编号
PK3:证件号
联系 1:寄件人与快递单之间应有联系,联系类型:1:N。
联系 2:收件人与快递单之间应有联系,联系类型:1:N。
【问题 3】(8 分)
在图 2-2 中添加实体之间的联系后,该实体联系图是否满足第一范式、第二范式和第
三范式中的要求(对于每种范式判定时,假定己满足低级别范式要求)。如果不满足,请用 200
字以内文字分别说明其原因。
寄件人,收件人均满足第 3 范式,因为这两个关系均消除了部分函数依赖与传递函数依
赖。快递单满足第 2 范式,但不满足第 3 范式,总计是个派生属性,可由前边的保价金额、
代收货款、运费、加急费、包装费、保价费等计算得出,所以存在传递函数依赖,不满足
3NF。
试题三(共 25 分)
阅读以下关于嵌入式多核程序设计技术的描述,回答问题 1 至问题 3。
【说明】
近年来,多核技术己被广泛应用于众多安全关键领域(如:航空航天等)的电子设备中,
面向多核技术的并行程序设计方法已成为软件人员急需掌握的主要技能之一。某宇航公司长
期从事宇航电子设备的研制工作,随着宇航装备能力需求的提升,急需采用多核技术以增强
设备的运算能力、降低功耗与体积,快速实现设备的升级与换代。针对面向多核开发,王工
认为多核技术是对用户程序透明的,开发应把重点放在多核硬件架构和硬件模块设计上面,
而软件方面,仅仅需要选择一款支持多核处理器的操作系统即可。而李工认为,多核架构能
够使现有的软件更高效地运行,构建一个完善的软件架构是非常必要的。提高多核的利用率
不能仅靠操作系统,还要求软件开发人员在程序设计 中考虑多进程或者多线程并行处理的
编程问题。
【问题 1】(12 分)
请用 300 字以内文字说明什么是多核技术和多线程技术,并回答李工的意见是否正确,
为什么?
多核是多微处理器核的简称,是将两个或更多的独立处理器封装在一起,集成在一个电
路中。多核处理器是单枚芯片(也称为硅核),能够直接插入单一的处理器插槽中,但操作
系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在多个执行
内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。
多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机
因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。
李工的意见是正确的。多核处理器虽然带来了强大的计算能力,但如果无法实现程序的
并行,那么,大量计算资源将被闲置,造成巨大的浪费。所以在开发中,要注重多核编程技
术,从并行计算、共享资源分布式计算、任务分解与调度、Lock-Free 编程等方面充分考虑
相关问题,以便将多核处理器的性能充分发挥出来。
【问题 2】(6 分)
在多核环境下,线程的活动有并行和并发两种方式,请用 300 字以内的文字说明这两
种方式的含义及差别。
行。
如果某个系统支持两个或者多个动作(Action)同时存在,那么这个系统就是一个并发
系统,即系统中同时有多个线程,可以认为是并发的情况。
如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统。当系
统中有多个线程,并在同一时刻有两个,或两个以上的线程在运行状态,可认为是并行系统。
【问题 3】(7 分)
请根据自己所掌握的多核、多线程的知识,判别表 3-1 给出的说法是否正确,并将答
案写在答题纸上对应空白处(填写正确或错误)。
(1)√ (2)√ (3)× (4)√ (5)× (6)× (7)√