1、2017年上半年软件水平考试(高级)系统分析师下午(案例分析)真题试卷及答案与解析 0 阅读以下关于基于微服务的系统开发的叙述,在答题纸上回答以下问题。 【说明】 某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司的系统分析师王工首先进行了需求分析,得到的系统需求列举如下: 系统的参与者包括乘客、出租车司机和平台管理员三类; 系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息进行管理,对出租车司机的违章情况进行审核; 系统需要与后端的银行支付系统对接, 完成支付信息审核、支付信息更新与在线支付等功能: 针对乘客发起的每一笔订单,系统需要实现订
2、单发起、提交、跟踪、撤销、支付、完成等业务过程的处理; 系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。 在系统分析与设计阶段,公司经过内部讨论,一致认为该系统的需求定义明确,建议尝试采用新的微服务架构进行开发,并任命王工为项目技术负责人,负责项目开发过程中的技术指导工作。 1 请用 100字以内的文字说明一个微服务中应该包含的内容,并用 300字以内的文字解释基于微服务的系统与传统的单体式系统相 比的 2个优势和带来的 2个挑战。 2 识别并设计微服务是系统开发过程中的一个重要步骤,请对题干需求进行分析,对微服务的种类和包含的业务功能进行归类,完成表 11中的 (1)
3、(4)。3 为了提高系统开发效率,公司的系统分析师王工设计了一个基于微服务的软件交付流程,其核心思想是将业务功能定义为任务,将完成某个业务功能时涉及到的步骤和过程定义为子任务,只有当所有的子任务都测试通过后该业务功能才能上线交付。请基于王工设计的在线支付微服务交付流程,从 (a) (f)中分别选出合适的内容填入图 11中的 (1) (5)处。 选项: (a)提交测试 (b)全量上线 (c)对接借记卡 (d)获取个人优惠券 (e)试部署 (f)对账 3 阅读以下关于系统数据分析与建模的叙述,在答题纸上回答以下问题。【说明】某软件公司受快递公司委托,拟开发一套快递业务综合管理系统,实现快递单和物流
4、信息的综合管理。项目组在系统逻辑数据模型设计中,需要描述的快递单样式如图 21所示,图 22是项目组针对该快递单所设计的候选实体及其属性。4 数据库设计主要包括概念设计、逻辑设计和物理设计三个阶段,请用 200字以内文字说明这三个阶段的主要 任务。 5 根据快递单样式图,请说明: (1)图 22中三个候选实体对应的主属性 PK1、 PK2和。 PK3分别是什么 ? (2)图 22中应设计哪些实体之间的联系,并说明联系的类型。 6 在图 22中添加实体之间的联系后,该实体联系图是否满足第一范式、第二范式和第三范式中的要求 (对于每种范式判定时,假定已满足低级别范式要求 )。如果不满足,请用 20
5、0字以内文字分别说明其原因。 6 阅读以下关于嵌入式多核程序设计技术的描述,回答以下问题。 【说明】 近年来,多核技术已被广泛应用于众多安全关键领域 (如:航 空航天等 )的电子设备中,面向多核技术的并行程序设计方法已成为软件人员急需掌握的主要技能之一。某宇航公司长期从事宇航电子设备的研制工作,随着宇航装备能力需求的提升,急需采用多核技术以增强设备的运算能力、降低功耗与体积,快速实现设备的升级与换代。针对面向多核开发,王工认为多核技术是对用户程序透明的,开发应把重点放在多核硬件架构和硬件模块设计上面,而软件方面,仅仅需要选择一款支持多核处理器的操作系统即可。而李工认为,多核架构能够使现有的软件
6、更高效地运行,构建一个完善的软件架构是非常必要的。提高多核的利用率不能仅靠 操作系统,还要求软件开发人员在程序设计中考虑多进程或者多线程并行处理的编程问题。 7 请用 300字以内文字说明什么是多核技术和多线程技术,并回答李工的意见是否正确,为什么 ? 8 在多核环境下,线程的活动有并行和并发两种方式,请用 300字以内的文字说明这两种方式的含义及差别。 9 请根据自己所掌握的多核、多线程知识,判别表 31给出的说法是否正确,并将答案写在答题纸上对应空白处 (填写正确或错误 )。9 阅读以下关于数据库分析与建模的叙述,在答题纸上回答以下问题。 【说明】 某电子商务企业随着业 务不断发展,销售订
7、单不断增加,每月订单超过了 50万笔,急需开发一套新的互联网电子订单系统。同时该电商希望建立相应的数据中心,能够对订单数据进行分析挖掘,以便更好地服务用户。王工负责订单系统的数据库设计与开发,初步设计的核心订单关系模式为: orders(order no, customer no, order date, product no, price, ) 。 考虑订单数据过多,单一表的设计会对系统性能产生较大影响,仅仅采用索引不足以解决性能问题。因此,需要将订单表拆分,按月存储。 王工采用反规范化设计方法来解 决,给出了相应的解决方案。李工负责数据中心的设计与开发。李工认为王工的解决方案存在问题,建议
8、采用数据物理分区技术。在解决性能问题的同时,也为后续的数据迁移、数据挖掘和分析等工作提供支持。 10 常见的反规范化设计包括增加冗余列、增加派生列、重新组表和表分割。为解决题干所述需求,王工采用的是哪种方法 ?请用 300字以内的文字解释说明该方法,并指出其优缺点。 11 物理数据分区技术一般分为水平分区和垂直分区,数据库中常见的是水平分区。水平分区分为范围分区、哈希分区、列表分区等。请阅读下表,在 (1) (8)中填写不同分区方法在数据值、数据管理能力、实施难度与可维护性、数据分布等方面的特点。12 根据需求,李工宜选择物理水平分区中的哪种分区方法 ?请用 300字以内的文字分别解释说明该方
9、法的优缺点。 12 阅读以下关于 Web系统架构设计的叙述,在答题纸上回答以下问题。 【说明】 某公司开发的: B2C商务平台因业务扩展,导致系统访问量不断增大,现有系统访问速度缓慢,有时甚至出现系统故障瘫痪等现象。面对这一情况,公司召开项目组讨论会议,寻求该商务平台的改进方案。讨论会上,王工提出可以利用镜像站点、 CDN内容分 发等方式解决并发访问量带来的问题。而李工认为,仅仅依靠上述外网加速技术不能完全解决系统现有问题,如果访问量持续增加,系统仍存在崩溃的可能。李工提出应同时结合 Web内网加速技术优化系统改进方案,如综合应用负载均衡、缓存服务器、 eb应用服务器、分布式文件系统、分布式数
10、据库等。经过讨论,公司最终决定采用李工的思路,完成改进系统的设计方案。 13 针对李工提出的改进方案,从 a j中分别选出各技术的相关描述和对应常见支持软件填入表 51中的 (1) (10)处。a)保存静态文件,减少网络交换量,加速响应请求 b)可 采用软件级和硬件级负载均衡实现分流和后台减压 c)文件存储系统,快速查找文件d)FastDFSe)HAProxyf)JBossg)Hadoop Distributed File System(HDFS)h)Apache Tomacti)Squidj)MongoDB 14 请用 100字以内的文字解释分布式数据库的概念,并给出提高分布式数据库系统性能
11、的 3种常见实现技术。 15 针对: B2C商务购物平台的数据浏览操作远远高于数据更新操作的特点,指出该系统应采用的分布式数据库实现方式,并分析原因。 2017年上半年软件水平考试(高级)系统分析师下午(案例分析)真题试卷答案与解析 1 【正确答案】 微服务中应该包含的内容有:资源、对资源的操作的一组 API集合。 微服务有以下优势。 (1)通过分解巨大单体式应用为多个服务方法解决了复杂性问题。它把庞大的单一模块应用分解为一系列的服务,同时保持总体功能不变。 (2)让每个服务能够独立开发,开发者能够自由选择可行的技术,提供 API服务。 (3)微服务架构模式是每个微服务独立的部署。开发者不再需
12、要协调其他服务部署对本服务的影响。这种改变可以加快部署速度。 (4)微服务使得每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规模。甚至可以使用更适合于服务资源需求的硬件。 微服务架构带来的挑战如下。 (1)并非所有的系统都能转成微服务。例如,一些数据库层的底层操作是不推荐服务化的。 (2)部署较以往架构更加复杂:系统由众多微服务搭建,每个微服务需要单独部署,从而增加部署的复杂度,容器技术能够解决这一问题。 (3)性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或调用出错。例如,一个服务需要访问另一个服务的数据,只能通过服务间接口来进行数 据传输,如果是频繁访
13、问,则可能带来较大的延迟。 (4)数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。 2 【正确答案】 (1)乘客信息注册、乘客身份认证、乘客信用信息管理。 (2)出租车司机信息注册、出租车司机身份认证、司机违章情况审核。 (3)支付管理。 (4)订单发起、订单提交、订单跟踪、订单撤销。 3 【正确答案】 (1)f(2)c(3)d(4)a(5)b4 【正确答案】 概念设计也称为概念结构设计,其任务是在需求分析阶段产生的需求说明书的基础上,按 照特定的方法将它们抽象为一个不依赖于任何 DBMS的数据模型,即概念模型。概念模型的表现形式即 ER模型。 逻辑设计也称
14、为逻辑结构设计,其主要任务是将概念模型转换为某个特定的DBMS上的逻辑模型。设计逻辑结构时,首先为概念模型选定一个合适的逻辑模型 (如:关系模式或层次模型 ),然后将其转化为由特定 DBMS支持的逻辑模型,最后对逻辑模型进行优化。物理设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构。所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。 5 【正确 答案】 (1)PK1:证件号; PK2:编号; PK3:证件号。 (2)联系 1:寄件人与快递单之间应有联系,联系类型: 1: N。 联系 2:收件人与快递单之间应有联系,联系类型: 1: N。 6
15、【正确答案】 寄件人和收件人满足第 3范式,因为这两个关系消除了部分函数依赖与传递函数依赖。快递单满足第 2范式,但不满足第 3范式,因为总计可由前边的保价金额、代收货款、运费、加急费、包装费、保价费等计算得出,存在传递函数依赖,不满足 3NF。 7 【正确答案】 多内核是指在一枚处理器中集成两个或多个完整的计算引擎 (内核 )。 多核处理器是单枚芯片 (也称为硅核 ),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在多个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。 多线程是指从软件或者硬件上实现多个线程并发执
16、行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。 李工的意见正确。多核处理器虽然带来了强大的计算能力,但如果无法实现程序的并行,那么,大量计算资源将被闲置,造成巨大的浪费。所以在开发中,要注重多核编 程技术,从并行计算、共享资源分布式计算、任务分解与调度、 Lock-Free编程等方面充分考虑相关问题,以便将多核处理器的性能充分发挥出来。 8 【正确答案】 并行是指两个或多个事件在同一时刻发生。并行源于系统存在多个 (套 )硬件资源,如多核 CPU。 并发是指两个或多个事件在同一事件间隔内发生。从微观的角度看,还是串行的。如单 CPU系统。
17、如果某个系统支持两个或者多个动作同时存在,那么这个系统就是一个并发系统。如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统。 9 【正确答案】 (1) (2) (3) (4) (5) (6) (7) 10 【正确答案】 王工采用的是表分割方式中的水平分割 (分割参数是: “月 ”)。 表分割包括水平分割与垂直分割两种形式: 水平分割:按记录进行分割,不同的记录可以分开保存,每个子表的列数相同。分割的条件可能是某列或多列数据的值,如时间参数。 垂直分割:按进行分割,即把一条记录分开多个地方保存,每个子表的行数相同。把主键和一些行放到一个表,然后把主键和另外的列放到另一个表中,
18、通过主键进行关联。 优点:水平分割后可以降低在查询时需要读取的数据 和索引页数,同时也降低了索引的层数,提高查询速度。 缺点:水平分割会给应用增加复杂度,在查询时需要多个表名,查询所有数据需要union操作。 11 【正确答案】 (1)连续 (2)离散 (3)弱 (4)强 (5)好 (6)好 (7)不均匀 (8)均匀 12 【正确答案】 李工宜选择范围分区方式。范围分区优点如下: (1)分区表可以将表存储到多个表空间内,各个分区维护各自的本地索引,查询语句可以根据索引进行分区范围查找,提高了查询速度。 (2)可以对单个分区进行备份 、归档或者清除过期的数据,利于维护。 (3)实现容易,而且可以
19、方便地对表的分区进行添加、删除、拆分和合并操作。 范围分区缺点:数据分布不均匀,所以可以与哈希分区组合应用。 13 【正确答案】 (1)b (2)e (3)a (4)i (5)c (6)d (7)g (8)f (9)h (10)j 14 【正确答案】 分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力 (称为场地自治 ),它可以执行局部应用 ,同时,每个节点也能通过网络通信子系统执行全局应用。 (1)采用数据分片技术,提高访问的局部性,提升系统性能。 (2)采用查询优化技术 (包括:全局查询树的变换、副本的选择与多副本的更新策略、查询树的分解、半连接与直接连接 )提高查询速度。 (3)读写分离技术。 15 【正确答案】 在本题所涉及到的环境中,由于读取数据的需求非常强烈,涉及到的数据量极大,而更新较少,可以在分布式数据库中采用一主多从的机制来分散读取数据的压力。更新数据时,操作主库,从主库再同步到从库,从库只负责读取数据。