2016年系统架构师考试题详解

考试科目一:综合知识

在嵌入式系统的存储部件中,存取速度最快的是(1)。
(1)A.内存             B.寄存器组          C.Flash         D.Cache

【答案】B
【解析】本题考查嵌入式系统存储结构的基础知识
嵌入式系统的存储结构采用分级的方法来设计,从而使得整个存储系统分为四级,即寄存器组、高速缓冲(Cache)、内存(包括flash)和外存,它们在存取速度上依次递减,而在存储容量上逐级递增。

实时操作系统(RTOS)内核与应用程序之间的接口称为(2)。
(2)A.I/O接口          B
C.API               D.GUI

【答案】C
【解析】 API(Application Programming
Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
所有操作系统(不仅仅只是嵌入式操作系统)给应用程序提供的接口,称之为API。
选项中的GUI,是用户与操作系统之间的接口: 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

嵌入式处理器是嵌入式系统的核心部件,一般可分为嵌入式微处理器(MPU)、微控制器(MCU)、数字信号处理器(DSP)和片上系统(SOC)。以下叙述中,错误的是(3)。
(3)A.MPU在安全性和可靠性等方面进行增强,适用于运算量较大的智能系统
B.MCU典型代表是单片机,体积小从而使功耗和成本下降
C.DSP处理器对系统结构和指令进行了特殊设计,适合数字信号处理
D.SOC是一个有专用目标的集成电路,其中包括完整系统并有嵌入式软件的全部内容

【答案】A
【解析】MPU采用增强型通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的环境中,因而MPU在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。但是,MPU
在功能方面与标准的微处理器基本上是一样的。A是错的。 MCU又称单片微型计算机(Single Chip
Microcomputer)或者单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。B是对的。DSP是一种独特的微处理器,是以数字信号来处理大量信息的器件。其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。C也是对的。SOC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。D也是对的。

2016年系统架构师考试题详解

【答案】C
【解析】 在题目给出的环境下,100条指令的执行时间为:
(Δt+3Δt+Δt+2Δt+Δt)+(100-1)*3Δt=305Δt 吞吐率=指令条数/执行时间=100/305Δt 。

某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间T为10μs,缓冲区送用户区的时间M为6μs,系统对每个磁盘块数据的处理时间C2μs。若用户需要将大小为10个磁盘块的Docl文件逐块从磁盘读入缓冲区,并送用户区进行处理,那么采用双缓冲需要花费的时间为(5)μs,比使用单缓冲节约了(6)μs时间。

(5)A.100            B.108           C.162           D.180
(6)A.0          B.8             C.54                D.62

2016年系统架构师考试题详解

【答案】B C
【解析】 单缓冲区执行时间:(10+6+2)+(10-1)*(10+6)=162μs
双缓冲区执行时间:(10+6+2)+(10-1)*10=108μs 双缓冲比单缓冲节省162-108=54μs。

某文件系统文件存储采用文件索引节点法。假设文件索引节点中有8个地址项iaddr[0]iaddr[7],每个地址项大小为4字节,其中地址项iaddr[0]iaddr[5]为直接地址索引,iaddr[6]是一级间接地址索引,iaddr[7]是二级间接地址索引,磁盘索引块和磁盘数据块大小均为4KB。该文件系统可表示的单个文件最大长度是(7)KB。若要访问iclsClient.dll文件的逻辑块号分别为6、520和1030,则系统应分别采用(8)。
(7)A.1030           B.65796     C.1049606       D.4198424
(8)A.直接地址索引、一级间接地址索引和二级间接地址索引
B.直接地址索引、二级间接地址索引和二级间接地址索引
C.一级间接地址索引、一级间接地址索引和二级间接地址索引
D.一级间接地址索引、二级间接地址索引和二级间接地址索引

【答案】D C
【解析】 直接索引范围:6*4KB=24KB ,对应逻辑块号:0-5;
一级间接索引范围:(4KB/4B)*4KB=4096KB ,对应逻辑块号:6-1029;
二级间接索引范围:(4KB/4B)*(4KB/4B)*4KB=4194304KB ,对应逻辑块号:1030以及上。 24KB +
4096KB + 4194304KB = 4198424KB。

给定关系模式R(A,B,CDE)、S(DE,F,G)和π1,2,4,6(R ?S),经过自然连接和投影运算后的属性列数分别为(9)。
(9)A.94        B.74       C.97       D.77

【答案】B
【解析】 R与S进行自然连接后,结果属性集为:A,B,C,D,E,F,G。 投影操作后,结果为:A,B,D,F。

给定关系R(A1,A2,A3,A4)上的函数依赖集F={A1→A2A5,A2→A3A4,A3→A2},R的候选关键字为(10)。函数依赖(11)∈F+。
(10)A.A1            B.A1A2          C.A1A3          D.A1A2A3
(11)A.A5→A1A2   B.A4→A1A2       C.A3→A2A4       D.A2→A1A5

【答案】A C 【解析】 (10)通过绘制函数依赖图可以了解到,从A1出发,可以遍历全图,所以候选关键字为A1。
(11)F+是代表,F函数依赖集的闭包,通俗一点,就是从F函数依赖集能推导出来的依赖关系。
A3→A2A4是正确的。首先F中有直接的依赖关系:A3→A2,此外,又由A3→A2与A2→A4得出A3→A4。A3→A2与A3→A4合并为A3→A2A4。

假设某证券公司的股票交易系统中有正在运行的事务,此时,若要转储该交易系统数据库中的全部数据,则应采用(12)方式。
(12)A.静态全局转储    B.动态全局转储    C.静态增量转储    D.动态增量转储

【答案】B 【解析】 从题目中“系统中有正在运行的事务”可知应采用动态方式,从题目中“全部数据”可知应是全局转储,所以应采用:动态全局转储。

IETF定义的区分服务(DiffServ)模型要求每个IP分组都要根据IPv4协议头中的(13)字段加上一个DS码点,然后内部路由器根据DS码点的值对分组进行调度和转发。
(13)A.数据报生存期        B.服务类型      C.段偏置值      D.源地址

【答案】B 【解析】 区分服务是为解决服务质量问题在网络上将用户发送的数据流按照它对服务质量的要求划分等级的一种协议。
区分服务将具有相同特性的若干业务流汇聚起来,为整个汇聚流提供服务,而不是面向单个业务流来提供服务。每个IP分组都要根据其QoS需求打上一个标记,这种标记称为DS码点,可以利用IPv4协议头中的服务类型字段,或者IPv6协议头中的通信类别字段来实现,这样就维持了现有的IP分组格式不变。

在IPv6无状态自动配置过程中,主机将其(14)附加在地址前缀1111 1110 10之后,产生一个链路本地地址。
(14)A.IPv4地址        B.MAC地址     C.主机名       D.随机产生的字符串

【答案】B 【解析】
IPv6地址的格式前缀(FP)用于表示地址类型或子网地址,用类似于IPv4的CIDR表示方法表示。链路本地地址:前缀为1111 1110
10,用于同一链路的相邻节点间的通信。相当于IPv4的自动专用IP地址。为实现IP地址的自动配置,IPv6主机将MAC地址附加在地址前缀1111
1110 10之后,产生一个链路本地地址。

如果管理距离为15,则(15)。
(15)A.这是一条静态路由          B.这是一台直连设备  
C.该路由信息比较可靠         D.该路由代价较小

【答案】C 【解析】 管理距离是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离。
为什么要出现管理距离这个技术呢?
在自治系统内部,如RIP协议是根据路径传递的跳数来决定路径长短也就是传输距离,而像EIGRP协议是根据路径传输中的带宽和延迟来决定路径开销从而体现传输距离的。这是两种不同单位的度量值,我们没法进行比较。为了方便比较,我们定义了管理距离。这样我们就可以统一单位从而衡量不同协议的路径开销从而选出最优路径。正常情况下,管理距离越小,它的优先级就越高,也就是可信度越高。
对于两种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪一个协议。
AD值越低,则它的优先级越高。 一个管理距离是一个从0-255的整数值,0是最可信赖的,而255则意味着不会有业务量通过这个路由。
由此可见,管理距离是与信任相关的,只有选项C是相符的。

把应用程序中应用最频繁的那部分核心程序作为评价计算机性能的标准程序,称为(16)程序。(17)不是对Web服务器进行性能评估的主要指标。
(16)A.仿真测试      B.核心测试          C.基准测试      D.标准测试
(17)A.丢包率       B.最大并发连接数   C.响应延迟      D.吞吐量

【答案】C A
【解析】 (16)本题考查基本概念,应用最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序。
(17)丢包率不应作为Web服务器性能评估的主要指标,而应作为网络的相关指标。

电子政务是对现有的*形态的一种改造,利用信息技术和其他相关技术,将其管理和服务职能进行集成,在网络上实现*组织结构和工作流程优化重组。与电子政务相关的行为主体有三个,即*、(18)及居民。国家和地方人口信息的采集、处理和利用,属于(19)的电子政务活动。
(18)A.部门            B.企(事)业单位       C.管理机构      D.行政机关
(19)A.*对* B.*对居民         C.居民对居民 D.居民对*

【答案】B B 【解析】

ERP(Enterprise Resource Planning)是建立在信息技术的基础上,利用现代企业的先进管理思想,对企业的物流、资金流和(20)流进行全面集成管理的管理信息系统,为企业提供决策、计划、控制与经营业绩评估的全方位和系统化的管理平台。在ERP系统中,(21)管理模块主要是对企业物料的进、出、存进行管理。
(20)A.产品            B.人力资源          C.信息            D.加工
(21)A.库存            B.物料                C.采购            D.销售

【答案】C A
【解析】 (20)本题考查到的,是信息化的“三流”:信息流,资金流,物流。 (21)
采购与库存管理是ERP的基本模块,其中采购管理模块是对采购工作——从采购订单产生至货物收到的全过程进行组织、实施与控制,库存管理(Inventory
Management,IM)模块则是对企业物料的进、出、存进行管理。

项目的成本管理中,(22)将总的成本估算分配到各项活动和工作包上,来建立一个成本的基线。
(22)A.成本估算      B.成本预算          C.成本跟踪      D.成本控制

【答案】B
【解析】本题考查成本预算的定义。

23)是关于项目开发管理正确的说法。
(23)A.需求文档、设计文档属于项目管理和机构支撑过程域产生的文档
B.配置管理是指一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合
    C.项目时间管理中的过程包括活动定义、活动排序、活动的资源估算、活动历时估算、制定进度计划以及进度控制
D.操作员指南属于系统文档

【答案】C
【解析】 配置管理是PMBOK、IS09000和CMMI中的重要组成元素,它在产品开发的生命周期中,提供了结构化的、有序化的、产品化的管理方法,是项目管理的基础工作。配置管理是通过技术和行政手段对产品及其开发过程和生命周期进行控制、规范的一系列措施和过程。信息系统开发过程中的变更以及相应的返工会对产品的质量有很大的影响。
产品配置是指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、计算机程序、部件及数据的集合。该集合中的每一个元素称为该产品配置中的一个配置项(Configuration
Item,CI),配置项主要有两大类: 属于产品组成部分的工作成果,如需求文档、设计文档、源代码、测试用例等。
属于项目管理和机构支撑过程域产生的文档,如工作计划、项目质量报告、项目跟踪报告等。这些文档虽然不是产品的组成部分,但是值得保存。
软件系统的文档可以分为用户文档和系统文档两类。用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;系统文档描述系统设计、实现和测试等各方面的内容。
用户文档:用户文档是用户了解系统的第一步,它可以让用户获得对系统的准确的初步印象。用户文档至少应该包括下述5方面的内容:
(1)功能描述:说明系统能做什么; (2)安装文档:说明怎样安装这个系统以及怎样使系统适应特定的硬件配置;
(3)使用手册:简要说明如何着手使用这个系统(通过丰富的例子说明怎样使用常用的系统功能,并说明用户操作错误时怎样恢复和重新启动);
(4)参考手册:详尽描述用户可以使用的所有系统设施以及它们的使用方法,并解释系统可能产生的各种出错信息的含义(对参考手册最主要的要求是完整,因此通常使用形式化的描述技术);
(5)操作员指南(如果需要有系统操作员的话):说明操作员应如何处理使用中出现的各种情况。
系统文档:所谓系统文档指从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是非常重要的。

24)在软件开发机构中被广泛用来指导软件过程改进。
(24)A.能力成熟度模型(Capacity Maturity Model)
    B.关键过程领域(Key Process Areas)
    C.需求跟踪能力链(Traceability Link)
    D.工作分解结构(Work Breakdown Structure)

【答案】A
【解析】 CMM即软件开发能力成熟度模型,是用来指导软件过程改进的。

25)是关于需求管理正确的说法。
(25)A.为达到过程能力成熟度模型第二级,组织机构必须具有3个关键过程域
    B.需求的稳定性不属于需求属性
    C.需求变更的管理过程遵循变更分析和成本计算、问题分析和变更描述、变更实现的顺序
    D.变更控制委员会对项目中任何基线工作产品的变更都可以做出决定

【答案】D
【解析】 过程能力成熟度模型(CMM)在软件开发机构中被广泛用来指导软件过程改进。该模型描述了软件处理能力的
5个成熟级别。为了达到过程能力成熟度模型的第二级,组织机构必须具有 6 个关键过程域 KPA(Key Process
Areas)。故A选项错误。
除了文本,每一个功能需求应该有一些相关的信息与它联系,我们把这些信息称为需求属性。对于一个大型的复杂项目来说,丰富的属性类别显得尤为重要。例如,在文档中考虑和明确如下属性:创建需求的时间、需求的版本号、创建需求的作者、负责认可该软件需求的人员、需求状态、需求的原因和根据、需求涉及的子系统、需求涉及的产品版本号、使用的验证方法或者接受的测试标准、产品的优先级或者重要程度、需求的稳定性。故B选项错误。
需求的变更遵循以下流程:
(1)问题分析和变更描述。这是识别和分析需求问题或者一份明确的变更提议,以检查它的有效性,从而产生一个更明确的需求变更提议。
(2)变更分析和成本计算。使用可追溯性信息和系统需求的一般知识,对需求变更提议进行影响分析和评估。变更成本计算应该包括对需求文档的修改、系统修改的设计和实现的成本。一旦分析完成并且被确认,应该进行是否执行这一变更的决策。
(3)变更实现。这要求需求文档和系统设计以及实现都要同时修改。如果先对系统的程序做变更,然后再修改需求文档,这几乎不可避免地会出现需求文档和程序的不一致。
故C选项错误。

螺旋模型在(26)的基础上扩展而成。
(26)A.瀑布模型      B.原型模型      C.快速模型      D.面向对象模型

【答案】B
【解析】

27)适用于程序开发人员在地域上分布很广的开发团队。(28)中,编程开发人员分成首席程序员和“类”程序员。
(27)A.水晶系列(Crystal)开发方法     B.开放式源码(Open source)开发方法
C.SCRUM开发方法                     D.功用驱动开发方法(FDD)
(28)A.自适应软件开发(ASD)              B.极限编程(XP)开发方法
    C.开放统—过程开发方法(OpenUP)    D.功用驱动开发方法(FDD)

【答案】A D
【解析】 (1) XP (Extreme Programming,极限编程)在所有的敏捷型方法中,XP是最引人瞩目的。它源于Smalltalk圈子,特别是Kent Beck和Ward
Cunningham在20世纪80年代末的密切合作。XP在一些对费用控制严格的公司中的使用,已经被证明是非常有效的。 (2)
Cockburn的水晶系列方法,水晶系列方法是由Alistair
Cockburn提出的。它与XP方法一样,都有以人为中心的理念,但在实践上有所不同。Alistair考虑到人们一般很难严格遵循一个纪律约束很强的过程,因此,与XP的高度纪律性不同,Alistair探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。也就是说,虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。
(3)
开放式源码,这里提到的开放式源码指的是开放源码界所用的一种运作方式。开放式源码项目有一个特别之处,就是程序开发人员在地域上分布很广,这使得它和其他敏捷方法不同,因为一般的敏捷方法都强调项目组成员在同一地点工作。开放源码的一个突出特点就是查错排障(debug)的高度并行性,任何人发现了错误都可将改正源码的“补丁”文件发给维护者。然后由维护者将这些“补丁”或是新增的代码并入源码库。
(4)
SCRUM。SCRUM己经出现很久了,像前面所论及的方法一样,该方法强调这样一个事实,即明确定义了的可重复的方法过程只限于在明确定义了的可重复的环境中,为明确定义了的可重复的人员所用,去解决明确定义了的可重复的问题。
(5) Coad的功用驱动开发方法(FDD-Feature Driven Development),FDD是由Jeff De
Luca和大师Peter Coad提出来的。像其他方法一样,它致力于短时的迭代阶段和可见可用的功能。在FDD中,一个迭代周期一般是两周。
在FDD中,编程开发人员分成两类:首席程序员和“类”程序员(class
owner)。首席程序员是最富有经验的开发人员,他们是项目的协调者、设计者和指导者,而“类”程序员则主要做源码编写。 (6)
ASD方法,ASD (Adaptive Software Development)方法由Jim
Highsmith提出,其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。

在软件系统工具中,版本控制工具属于(29),软件评价工具属于(30)。
(29)A.软件开发工具                    B.软件维护工具    
    C.编码与排错工具               D.软件管理和软件支持工具
(30)A.逆向工程工具                    B.开发信息库工具
    C.编码与排错工具               D.软件管理和软件支持工具

【答案】B D
【解析】 软件系统工具的种类繁多,很难有统一的分类方法。通常可以按软件过程活动将软件工具分为软件开发工具、软件维护工具
、软件管理和软件支持工具。 软件开发工具:需求分析工具、设计工具、编码与排错工具。
软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。
软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。

面向对象的分析模型主要由(31)、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的(32)、完整精确的类图、针对复杂对象的状态图和描述流程化处理过程的(33)等。
(31)A.业务活动图 B.顶层架构图 C.数据流模型 D.实体联系图
(32)A.功能分解图 B.时序关系图 C.用例实现图 D.软件部署图
(33)A.序列图       B.协作图       C.流程图       D.活动图

【答案】B C D
【解析】本题考查的是教程“4.4.2 面向对象的分析设计”的内容。
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成。
设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。

软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括(34)、测试用例和领域知识等。
 (34)A.项目范围定义、需求分析文档、设计文档
     B.需求分析文档、设计文档、程序代码
     C.设计文档、程序代码、界面原型
     D.程序代码、界面原型、数据表结构

【答案】B
【解析】本题考查的是教程“4.5软件的重用”的内容。
软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括需求分析文档、设计过程、设计文档、程序代码、测试用例、领域知识等。对于新的软件开发项目而言,它们或者是构成整个目标软件系统的部件,或者在软件开发过程中发挥某种作用。通常将这些软件元素称为软部件。

面向构件的编程(Component Oriented Programming,COP)关注于如何支持建立面向构件的解决方案。面向构件的编程所需要的基本支持包括(35)。
(35)A.继承性、构件管理和绑定、构件标识、访问控制
    B.封装性、信息隐藏、独立部署、模块安全性
    C.多态性、模块封装性、后期绑定和装载、安全性
    D.构件抽象、可替代性、类型安全性、事务管理

【答案】C
【解析】 面向构件的编程(COP)关注于如何支持建立面向构件的解决方案。一个基于一般 OOP 风格的 COP
定义如下(Szyperski,1995): “面向构件的编程需要下列基本的支持: ——多态性(可替代性);
——模块封装性(高层次信息的隐藏); ——后期的绑定和装载(部署独立性); ——安全性(类型和模块安全性)。”

CORBA构件模型中,(36)的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,(37)是最终完成客户请求的服务对象实现。
(36)A.伺服对象激活器               B.适配器激活器    
C.伺服对象定位器               D.可移植对象适配器POA
(37)A.CORBA对象                       B.分布式对象标识
C.伺服对象Servant               D.活动对象映射表

【答案】D C
【解析】 POA是对象实现与ORB其它组件之间的中介,它将客户请求传送到伺服对象,按需创建子POA,提供管理伺服对象的策略。
CORBA对象可看作是一个具有对象标识、对象接口及对象实现的抽象实体。之所以称为抽象的,是因为并没有硬性规定CORBA对象的实现机制。由于独立于程序设计语言和特定ORB产品,一个CORBA
对象的引用又称可互操作的对象引用(Interoperable Object
Reference)。从客户程序的角度看,IOR中包含了对象的标识、接口类型及其他信息以查找对象实现。
伺服对象(servant)是指具体程序设计语言的对象或实体,通常存在于一个服务程序进程之中。
客户程序通过对象引用发出的请求经过ORB担当中介角色,转换为对特定的伺服对象的调用。在一个CORBA对象的生命期中,它可能与多个伺服对象相关联,因而对该对象的请求可能被发送到不同的伺服对象。
对象标识(Object ID)是一个用于在POA中标识一个CORBA对象的字符串。
它既可由程序员指派,也可由对象适配器自动分配,这两种方式都要求对象标识在创建它的对象适配器中必须具有唯一性。

关于构件的描述,正确的是(38)。
(38)A.构件包含了一组需要同时部署的原子构件
B.构件可以单独部署,原子构件不能被单独部署
C.一个原子构件可以同时在多个构件家族*享
    D.一个模块可以看作带有单独资源的原子构件

【答案】A
【解析】构件是一组通常需要同时部署的原子构件。构件和原子构件之间的区别在于,大多数原子构件永远都不会被单独部署,尽管它们可以被单独部署。相反,大多数原子构件都属于一个构件家族,一次部署往往涉及整个家族。
一个原子构件是一个模块和一组资源。
原子构件是部署、版本控制和替换的基本单位。原子构件通常成组地部署,但是它也能够被单独部署。一个模块是不带单独资源的原子构件(在这个严格定义下,Java
包不是模块——在 Java 中部署的原子单元是类文件。一个单独的包被编译成多个单独的类文件——每个公共类都有一个)。
模块是一组类和可能的非面向对象的结构体,比如过程或者函数。

面向服务系统构建过程中,(39)用于实现Web服务的远程调用,(40)用来将分散的、功能单一的Web服务组织成一个复杂的有机应用。
(39)A.UDDI(Universal Description,Discovery and Integration)
B.WSDL(Web Service Description Language)
C.SOAP(Simple Object Access Protocol)
D.BPEL(Business Process Execution Language)
(40)A.UDDI(Universal Description,Discovery and Integration)
    B.WSDL(Web Service Description Language)
    C.SOAP(Simple Object Access Protocol)
    D.BPEL(Business Process Execution Language)

【答案】C D
【解析】 UDDI(Universal
Description,Discovery&Integration),UDDI用于Web服务注册和服务查找;
WSDL(Web Service Description Language),WSDL用于描述Web服务的接口和操作功能;
SOAP(Simple Object Access Protocol),SOAP为建立Web服务和服务请求之间的通信提供支持。 BPEL(Business Process Execution Language For Web
Services)翻译成中文的意思是面向Web 服务的业务流程执行语言,也有的文献简写成BPEL4WS,它是一种使用 Web
服务定义和执行业务流程的语言。使用BPEL,用户可以通过组合、编排和协调 Web 服务自上而下地实现面向服务的体系结构(SOA)。BPEL
提供了一种相对简单易懂的方法,可将多个 Web 服务组合到一个新的复合服务(称作业务流程)中。

基于JavaEE平台的基础功能服务构建应用系统时,(41)可用来集成遗产系统。
(41)A.JDBC、JCA和 Java IDL            B.JDBC、 JCA和 JMS
    C.JDBC、JMS和 Java IDL            D.JCA、 JMS和 Java IDL

【答案】D
【解析】 JDBC(Java Data Base
Connectivity,java数据库连接)是一种用于执行SQL语句的Java
API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JCA 标准化连接子是由 J2EE 1.3 首先提出的,它位于 J2EE
应用服务器和企业信息系统(EIS)之间,比如数据库管理、企业资源规划(ERP)、企业资产管理(EAM)和客户关系管理(CRM)系统。不是用
Java 开发的企业 应用或者在J2EE框架内的应用都可以通过JCA 连接。JCA 是在javax.resource
包和它的子包(cci,spi 和 spi.security)中定义的。(JCA 的缩写形式也用于 Java cryptography API
的缩写。) JMS 是 Java 对消息系统的访问机制,但它本身并不实现消息。JMS
支持点对点分发的消息队列,也支持多个目标订阅的消息主题。当消息发布给一个主题的适合,消息就会发送给所有那个主题的订阅者。 JMS
支持各种消息类型(二进制、流、名-值表、序列化的对象和文本)。通过声明与 SQL 的WHERE 相近的句段,可以建立消息的过滤器。 Java
IDL即idltojava编译器就是一个ORB,可用来在Java语言中定义、实现和访问CORBA对象。Java
IDL支持的是一个瞬间的CORBA对象,即在对象服务器处理过程中有效。实际上,Java
IDL的ORB是一个类库而已,并不是一个完整的平台软件,但它对Java
IDL应用系统和其他CORBA应用系统之间提供了很好的底层通信支持,实现了OMG定义的ORB基本功能。

软件集成测试将已通过单元测试的模块集成在一起,主要测试模块之间的协作性。从组装策略而言,可以分为(42)。集成测试计划通常是在(43)阶段完成,集成测试一般采用黑盒测试方法。
(42)A.批量式组装和增量式组装       B.自顶向下和自底向上组装
C.一次性组装和增量式组装       D.整体性组装和混合式组装
(43)A.软件方案建议    B.软件概要设计    C.软件详细设计    D.软件模块集成

【答案】C B
【解析】 (42)集成测试可以分为一次性组装和增量式组装,增量式组装测试效果更好。
(43)集成测试计划一般在概要设计阶段完成。

44)架构风格可以概括为通过连接件绑定在一起按照一组规则运作的并行构件。
(44)A.C2            B.黑板系统          C.规则系统          D.虚拟机

【答案】A
【解析】 C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。C2风格中的系统组织规则如下:
(1)系统中的构件和连接件都有一个顶部和一个底部;
(2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;
(3)一个连接件可以和任意数目的其它构件和连接件连接; (4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
2016年系统架构师考试题详解

DSSA是在一个特定应用领域中为一组应用提供组织结构参考的软件体系结构,参与DSSA的人员可以划分为4种角色,包括领域专家、领域设计人员、领域实现人员和(45),其基本活动包括领域分析、领域设计和(46)。
(45)A.领域测试人员    B.领域顾问          C.领域分析师     D.领域经理
(46)A.领域建模      B.架构设计          C.领域实现          D.领域评估

【答案】C C
【解析】 (45)参与DSSA的人员可以划分为四种角色:领城专家、领城分析师、领域设计人员和领域实现人员。
1、领域专家
领域专家可能包括该领域中系统的有经验的用户、从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等。领域专家的主要任务包括提供关于领域中系统的需求规约和实现的知识,帮助组织规范的、一致的领域字典,帮助选择样本系统作为领域工程的依据,复审领域模型、DSSA等领域工程产品等。
领域专家应该熟悉该领域中系统的软件设计和实现、硬件限制、未来的用户需求及技术走向等。
2、领域分析人员
领域分析人员应由具有知识工程背景的有经验的系统分析员来担任。领域分析人员的主要任务包括控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中,根据现有系统、标准规范等验证领域模型的准确性和一致性,维护领域模型。
领域分析人员应熟悉软件重用和领域分析方法;熟悉进行知识获取和知识表示所需的技术、语言和工具;应具有一定的该领域的经验,以便于分析领域中的问题及与领域专家进行交互;应具有较高的进行抽象、关联和类比的能力;应具有较高的与他人交互和合作的能力。
3、领域设计人员
领域设计人员应由有经验的软件设计人员来担任。领域设计人员的主要任务包括控制核个软件设计过程,根据领域模型和现有的系统开发出DSSA,对DSSA的准确性和一致性进行验证,建立领域模型和DSSA之间的联系。
领域设计人员应熟悉软件重用和领域设计方法;熟悉软件设计方法;应有一定的该领域的经验,以便于分析领域中的问题及与领域专家进行交互。
4、领域实现人员
领域实现人员应由有经验的程序设计人员来担任。领域实现人员的主要任务包括根据领域模型和DSSA,或者从头开发可重用构件,或者利用再工程的技术从现有系统中提取可重用构件,对可重用构件进行验证,建立DSSA与可重用构件间的联系。
领域实现人员应熟悉软件重用、领域实现及软件再工程技术;熟悉程序设计;具有一定的该领域的经验。 (46)
DSSA的基本活动包括:领域分析、领域设计、领域实现。 1、领域分析
这个阶段的主要目标是获得领城模型。领域模型描述领域中系统之间的共同的需求,即领域模型所描述的需求为领域需求。在这个阶段中首先要进行一些准备性的活动,包括定义领域的边界。从而明确分析的对象;识别信息源,整个领域工程过程中信息的来源,可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等,在此基础上就可以分析领域中系统的需求,确定哪些需求是领域中的系统广泛共享的,从而建立领域模型。当领域中存在大量系统时,需要选择它们的一个子集作为样本系统。对样本系统需求的考察将显示领城需求的一个变化范围。一些需求对所有被考察的系统是共同的,一些需求是单个系统所独有的。很多需求位于这两个极端之间,即被部分系统共享。
2、领域设计
这个阶段的目标是获得DSSA。DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。建立了领域模型之后,就可以派生出满足这些被建模的领域需求的DSSA,由于领域模型中的领域需求具有一定的变化性,DSSA也要相应地具有变化性。它可以通过表示多选一的(alternative)、可选的(optional)解决方案等来做到这一点。模型和DSSA来组织的,因此在这个阶段通过获得DSSA,也就同时形成了重用基础设施的规约。
3、领域实现
这个阶段的主要目标是依据领域模型和DSSA开发和组织可重用信息。这些可重用信息可能是从现有系统中提取得到,也可能需要通过新的开发得到。它们依据领域模型和DSSA进行组织,也就是领域模型和DSSA定义了这些可重用信息的重用时机,从而支持了系统化的软件重用。这个阶段也可以看作重用基础设施的实现阶段。
值得注意的是,以上过程是一个反复的、逐渐求精的过程。在实施领域工程的每个阶段中,都可能返回到以前的步骤,对以前的步骤得到的结果进行修改和完善,再回到当前步骤,在新的基础上进行本阶段的活动。

47)不属于可修改性考虑的内容。
(47)A.可维护性      B.可扩展性          C.结构重构          D.可变性

【答案】D
【解析】 可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。可修改性包含四个方面。
(1)可维护性(maintainability)。这主要体现在问题的修复上:在错误发生后“修复”软件系统。为可维护性做好准备的软件体系结构往往能做局部性的修改并能使对其他构件的负面影响最小化。
(2)可扩展性(extendibility)。这一点关注的是使用新特性来扩展软件系统,以及使用改进版本来替换构件并删除不需要或不必要的特性和构件。为了实现可扩展性,软件系统需要松散耦合的构件。其目标是实现一种体系结构,它能使开发人员在不影响构件客户的情况下替换构件。支持把新构件集成到现有的体系结构中也是必要的。
(3)结构重组(reassemble)。这一点处理的是重新组织软件系统的构件及构件间的关系,例如通过将构件移动到一个不同的子系统而改变它的位置。为了支持结构重组,软件系统需要精心设计构件之间的关系。理想情况下,它们允许开发人员在不影响实现的主体部分的情况下灵活地配置构件。
(4)可移植性(portability)。可移植性使软件系统适用于多种硬件平台、用户界面、操作系统、编程语言或编译器。为了实现可移植,需要按照硬件无关的方式组织软件系统,其他软件系统和环境被提取出。可移植性是系统能够在不同计算环境下运行的能力。这些环境可能是硬件、软件,也可能是两者的结合。在关于某个特定计算环境的所有假设都集中在一个构件中时,系统是可移植的。如果移植到新的系统需要做些更改,则可移植性就是一种特殊的可修改性。

某公司拟为某种新型可编程机器人开发相应的编译器。该编译过程包括词法分析、语法分析、语义分析和代码生成四个阶段,每个阶段产生的结果作为下一个阶段的输入,且需独立存储。针对上述描述,该集成开发环境应采用(48)架构风格最为合适。
(48)A.管道-过滤器    B.数据仓储          C.主程序-子程序       D.解释器

【答案】A
【解析】 “每个阶段产生的结果作为下一个阶段的输入”是典型的数据流架构风格的特点,选项中仅有管道-过滤器属于这种风格。

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。一个体系结构定义了一个词汇表和一组(49)。架构风格反映领域中众多系统所共有的结构和(50)。
(49)A.约束            B.连接件           C.拓扑结构          D.规则
(50)A.语义特征      B.功能需求          C.质量属性          D.业务规则

【答案】A A
【解析】软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。例如,如果某人把系统描述为“客户/服务器”模式,则不必给出设计细节,立刻就会明白系统是如何组织和工作的。

某公司拟开发一个扫地机器人。机器人的控制者首先定义清洁流程和流程中任务之间的关系,机器人接受任务后,需要响应外界环境中触发的一些突发事件,根据自身状态进行动态调整,最终自动完成任务。针对上述需求,该机器人应该采用(51)架构风格最为合适。
(51)A.面向对象      B.主程序-子程序       C.规则系统          D.管道-过滤器

【答案】C
【解析】在本题所述的应用环境中,强调了自定义流程,然后按自定义流程来执行,这属于虚拟机风格的特征,备选答案中,仅有C选项属于虚拟机风格。

某企业内部现有的主要业务功能已封装成为Web服务。为了拓展业务范围,需要将现有的业务功能进行多种组合,形成新的业务功能。针对业务灵活组合这一要求,采用(52)架构风格最为合适。
(52)A.规则系统      B.面向对象          C.黑板            D.解释器

【答案】D
【解析】 依据题目要求,需要灵活组合业务,形成新的业务功能,这样虚拟机风格较为合适。但备选答案中A与D均属于虚拟机风格。

某公司拟开发一个语音搜索系统,其语音搜索系统的主要工作过程包括分割原始语音信号、识别音素、产生候选词、判定语法片断、提供搜索关键词等,每个过程都需要进行基于先验知识的条件判断并进行相应的识别动作。针对该系统的特点,采用(53)架构风格最为合适。
(53)A.分层系统      B.面向对象          C.黑板            D.隐式调用

【答案】C
【解析】 语音识别是黑板风格的经典应用。

设计模式基于面向对象技术,是人们在长期的开发实践中良好经验的结晶,提供了一个简单、统一的描述方法,使得人们可以复用这些软件设计办法、过程管理经验。按照设计模式的目的进行划分,现有的设计模式可以分为创建型、(54)和行为型三种类型。其中(55)属于创建型模式,(56)属于行为型模式。(57)模式可以将一个复杂的组件分成功能性抽象和内部实现两个独立的但又相关的继承层次结构,从而可以实现接口与实现分离。
(54)A.合成型           B.组合型           C.结构型           D.聚合型
(55)A.Adaptor           B.Facade            C.Command           D.Singleton
(56)A.Decorator         B.Composite         C.Memento           D.Builder
(57)A.Prototype         B.Flyweight         C.Adapter           D.Bridge

【答案】C D C D
【解析】 (54)设计模式包括:创建型、结构型、行为型三大类别。 (55)
Singleton是单例模式,属于创建型设计模式。 (56) Memento是备忘录模式,属于行为型设计模式。 (57)
Bridge是桥接模式,它的特点是实现接口与实现分离。

某公司欲开发一个智能机器人系统,在架构设计阶段,公司的架构师识别出3个核心质量属性场景。其中“机器人系统主电源断电后,能够在10秒内自动启动备用电源并进行切换,恢复正常运行”主要与(58)质量属性相关,通常可采用(59)架构策略实现该属性;“机器人在正常运动过程中如果发现前方2米内有人或者障碍物,应在1秒内停止并在2秒内选择一条新的运行路径”主要与(60)质量属性相关,通常可采用(61)架构策略实现该属性;“对机器人的远程控制命令应该进行加密,从而能够抵挡恶意的入侵破坏行为,并对攻击进行报警和记录”主要与(62)质量属性相关,通常可采用(63)架构策略实现该属性。
(58)A.可用性           B.性能                C.易用性       D.可修改性
(59)A.抽象接口          B.信息隐藏          C.主动冗余      D.记录/回放
(60)A.可测试性          B.易用性           C.互操作性      D.性能
(61)A.资源调度          B.操作串行化     C.心跳            D.内置监控器
(62)A.可用性           B.安全性           C.可测试性      D.可修改性
(63)A.内置监控器     B.追踪审计          C.记录/回放     D.维护现有接口

【答案】A C D A B B
【解析】(58、59、60、61)“机器人系统主电源断电后,能够在10秒内自动启动备用电源并进行切换,恢复正常运行”属于可用性,因为场景描述的是故障恢复问题。主动冗余是可用性的常见策略。
(62、63)“对机器人的远程控制命令应该进行加密,从而能够抵挡恶意的入侵破坏行为,并对攻击进行报警和记录”属于安全性,常见的策略是追踪审计。

DES加密算法的密钥长度为56位,三重DES的密钥长度为(64)位。
(64)A.168               B.128               C.112           D.56

【答案】C
【解析】 DES加密算法的密钥长度为56位,三重DES要用到2个DES的密钥,所以长度为112位。

下列攻击方式中,流量分析属于(65)方式。
 (65)A.被动攻击         B.主动攻击          C.物理攻击      D.分发攻击

【答案】A
【解析】 在被动攻击(passive
attack)中,攻击者的目的只是获取信息,这就意味着攻击者不会篡改信息或危害系统。系统可以不中断其正常运行。常见的被动攻击包括:窃听和流量分析。
主动攻击(active
attack)可能改变信息或危害系统。威胁信息完整性和有效性的攻击就是主动攻击。主动攻击通常易于探测但却难于防范,因为攻击者可以通过多种方法发起攻击。常见的主动攻击包括:篡改、伪装、重放、拒绝服务攻击。

软件著作权保护的对象不包括(66)。
(66)A.源程序           B.目标程序          C.用户手册          D.处理过程

【答案】D
【解析】 软件著作权中规定:开发软件所用的思想、处理过程、操作方法或者数学概念不受保护。

M公司购买了N画家创作的一幅美术作品原件。M公司未经N画家的许可,擅自将这幅美术作品作为商标注册,并大量复制用于该公司的产品上。M公司的行为侵犯了N画家的(67)。
(67)A.著作权           B.发表权           C.商标权           D.展览权

【答案】A
【解析】著作权法规定:美术作品的著作权不随原作品所有权的转变而发生变化。所以M公司购买N画家的美术作品,著作权不归M公司,而归N画家。M公司将美术作品注册为商标,是侵犯了N画家著作权的。

M软件公司的软件产品注册商标为N,为确保公司在市场竞争中占据优势,对员工进行了保密约束。此情形下,(68)的说法是错误的。
(68)A.公司享有商业秘密权             B.公司享有软件著作权
C.公司享有专利权                   D.公司享有商标权

【答案】C
【解析】 在题目的描述中,未体现出有申请专利的行为,所以不享有专利权

某公司有4百万元资金用于甲、乙、丙三厂追加投资。各厂获得不同投资款后的效益见下表。适当分配投资(以百万元为单位)可以获得的最大的总效益为(69)百万元。
2016年系统架构师考试题详解
(69)A.15.1 B.15.6 C.16.4 D.16.9

【答案】C
【解析】
2016年系统架构师考试题详解

以下关于数学建模的叙述中,不正确的是(70)。
(70)A.数学模型是对现实世界的一种简化的抽象描述
B.数学建模时需要在简单性和准确性之间求得平衡
C.数学模型应该用统一的、普适的标准对其进行评价
D.数学建模需要从失败和用户的反馈中学习和改进

【答案】D
【解析】数学建模是利用数学方法解决实际问题的一种实践。即通过抽象、简化、假设、引进变量等处理过程后,将实际问题用数学方式表达,建立起数学模型,然后运用先进的数学方法及计算机技术进行求解。
这是A和B的原因,数学模型是对于现实世界的一个特定对象,一个特定目的,根据特有的内在规律,做出一些必要的假设,运用适当的数学工具,得到一个数学结构。数学建模应该有一个统一的评价机制。至于D,数学建模并没有反馈机制。

The objective of71is to determine what parts of the application software will be assigned to what hardware. The major software components of the system being developed have to be identified and then allocated to the various hardware components on which the system will operate. All software systems can be divided into four basic functions. The first is72).Most information systems require data to be stored and retrieved, whether a small file,such as a memo produced by a word processor, or a large database, such as one that stores an organization’s accounting records.The second function is the73),the processing required to access data, which often means database queries in Structured Query Language. The third function is the74),which is the logic documented in the DFDs, use cases,and functional requirements.The fourth function is the presentation logic,the display of information to the user and the acceptance of the user’s commands.The three primary hardware components of a system are (75).
(71)A.architecture design           B.modular design
C.physical design               D.distribution design
(72)A.data access components        B.database management system
C.data storage                  D.data entities
(73)A.data persistence              B.data access objects
    C.database connection           D.data access logic
(74)A.system requirements           B.system architecture
C.application logic             D.application program
(75)A.computers,cables and network  B.clients,servers,and network
C.CPUs,memories and I/O devices D.CPUs,hard disks and I/O devices

【答案】A C D C B
【解析】架构设计的目标是确定应用软件的哪些部分将分配到何种硬件。识别出正在开发系统的主要软件构件并分配到系统将要运行的硬件构件。所有软件系统可分为四项基本功能。第一项是数据存储。大多数信息系统需要数据进行存储并检索,不论是一个小文件,比如一个字处理器产生的一个备忘录,还是一个大型数据库,比如存储一个企业会计记录的数据库。第二项功能是数据访问逻辑,处理过程需要访问数据,这通常是指用SQL进行数据库查询。第三项功能是应用程序逻辑,这些逻辑通过数据流图,用例和功能需求来记录。第四项功能是表示逻辑,给用户显示信息并接收用户命令。一个系统的三类主要硬件构件是客户机、服务器和网络。

考试科目二:案例分析

试题一

阅读以下关于软件架构设计的叙述,在答题纸上回答问题1至问题3 。
【说明】
某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:
a.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。
b.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致。
c.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。
d.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无需重启环境。
e.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。
f.能够连续运行的时间不小于240小时,意外退出后能够在10秒之内自动重启。
g.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布。
h.支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。
在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。

【问题1】(10分) 识别软件架构质量属性是进行架构设计的重要步骤。请分析题干中的需求描述,填写表1-1中(1)~(5)处的空白。
2016年系统架构师考试题详解
(1)f (2)性能 (3)g (4)h (5)b 【问题2】(7分)
请在阅读题干需求描述的基础上,从交互方式、数据结构、控制结构和扩展方法4个方面对两种架构风格进行比较,填写表1-2中(1)~(4)处的空白。
2016年系统架构师考试题详解
(1)星型 (2)数据流 (3)数据流驱动 (4)模型适配 【问题3】(8分)
在确定采用数据仓库架构风格后,王工给出了集成开发环境的架构图。请填写图1-1中(1)~(4)处的空白,完成该集成开发环境的架构图。
2016年系统架构师考试题详解
(1)语法结构树 (2)编辑器 (3)适配器 (4)应用模拟器工具

试题二

阅读以下关于软件系统建模的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括:
(1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;
(2)管理员(Registrar)使用该系统管理学校(University)、系(Department)、教师(Lecturer)、学生(Student)和课程(Course)等教学基础信息;
(3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;
(4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单;
(5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息;
(6)每个月到了月底系统会通过打印机打印学生的考勤信息。
项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

【问题1】(7分) 用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,说明教学服务系统中有哪些参与者。
【参考答案】 学生、教师、管理员、时间、打印机。

【试题解析】
参与者是指系统以外的,需要使用系统或与系统交互的事物,包括:人或组织、设备、外部系统等。在本题中,较为容易识别的参与者包括:学生、教师、管理员,比较隐晦的参与者包括:时间、打印机。
【问题2】(7分)
用例是对系统行为的动态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,
“登录系统”用例与“注册课程”用例之间、“参加考试”用例与“参加补考”用例之间的关系分别属于哪种类型?
用例之间的关系包括:包含、扩展、泛化。 “登录系统”用例与“注册课程”用例之间的关系为:包含关系。
“参加考试”用例与“参加补考”用例之间的关系为:扩展关系。 【问题3】(11分)
类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,类University与类Student之间、类University和类Department之间、类Student和类Course之间的关系分别属于哪种类型?
【参考答案】 类之间的关系包括:关联、聚合、组合、依赖、泛化、实现(可写可不写,因为实现是接口与类之间的关系,而接口是一种特殊的类)。
类University与类Student之间的关系是:聚合关系。 类University与类Department之间的关系是:组合关系。
类Student与类Course之间的关系是:关联关系。

【试题解析】 依赖关系:一个事物发生变化影响另一个事物。 泛化关系:特殊/一般关系。 关联关系:描述了一组链,链是对象之间的连接。
聚合关系:整体与部分生命周期不同。 组合关系:整体与部分生命周期相同。 实现关系:接口与类之间的关系。

试题三

阅读以下关于嵌入式实时系统设计的描述,回答问题1至问题3。
【说明】
嵌入式系统是当前航空、航天、船舶及工业、医疗等领域的核心技术,嵌入式系统可包括实时系统与非实时系统两种。某宇航公司长期从事航空航天飞行器电子设备的研制工作,随着业务的扩大,需要大量大学毕业生补充到科研生产部门。按照公司规定,大学毕业生必须进行相关基础知识培训,为此,公司经理安排王工对他们进行了长达一个月的培训。

【问题1】(7分)
王工在培训中指出:嵌入式系统主要负责对设备的各种传感器进行管理与控制。而航空航天飞行器的电子设备由于对时间具有很强的敏感性,通常由嵌入式实时系统进行管控,请用300字以内文字说明什么是实时系统,实时系统有哪些主要特性。
【参考答案】 实时系统是指向系统发出一指令后,在一个极短的时间内,系统回复结果。 实时系统的特性: (1)时间约束性(及时性)
(2)可预测性 (3)高可靠性 (4)与外部环境的交互作用性 (5)多任务类型 (6)约束的复杂性 (7)具有短暂超载的特点

【试题解析】 实时系统的特性包括: 一、时间约束性
实时系统的任务具有一定的时间约束(截止时间)。根据截止时间,实时系统的实时性分为“硬实时”和“软实时”。硬实时是指应用的时间需求能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如在航空航天、军事、核工业等一些关键领域中的应用。软实时是指某些应用虽然提出时间需求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如监控系统等和信息采集系统等。
二、可预测性
可预测性是指系统能够对实时任务的执行时间进行判断,确定是否能够满足任务的时限要求。由于实时系统对时间约束要求的严格性,使可预测性称为实时系统的一项重要性能要求。除了要求硬件延迟的可预测性以外,还要求软件系统的可预测性,包括
应用程序的
响应时间是可预测的,即在有限的时间内完成必须的工作;以及操作系统的可预测性,即实时原语、调度函数等运行开销应是有界的,以保证应用程序执行时间的有界性。
三、可靠性 大多数实时系统要求有较高的
可靠性。在一些重要的实时应用中,任何不可靠因素和计算机的一个微小故障,或某些特定强实时任务(又叫关键任务)超过时限,都可能引起难以预测的严重后果。为此,系统需要采用
静态分析和保留资源的方法及冗余配置,使系统在最坏情况下都能正常工作或避免损失。可靠性已成为衡量实时系统性能不可缺少的重要指标。
四、与外部环境的交互作用性 实时系统通常运行在一定的环境下,外部环境是实时系统不可缺少的一个组成部分。计算机子系统一般是
控制系统,它必须在规定的时间内对外部请求做出反应。外部物理环境往往是被控子系统,两者互相作用构成完整的实时系统。大多数控制子系统必须连续运转以保证子系统的正常工作或准备对任何异常行为采取行动。
五、多任务类型 在实时系统中,不但包括 周期任务、偶发任务、非周期任务,还包括非实时任务。实时任务要求要满足时限,而非实时任务要求要使其
响应时间尽可能的短。多种类型任务的混合,使系统的可调度性分析更加困难。 六、约束的复杂性 任务的约束包括时间约束、资源约束、执行顺序约束和
性能约束。时间约束是任何实时系统都固有的约束。资源约束是指多个实时任务共享有限的资源时,必须按照一定的资源访问控制协议进行同步,以避免死锁和高优先级任务被低优先级任务堵塞的时间(即优先级倒置时间)不可预测。执行顺序约束是指各任务的启动和执行必须满足一定的时间和顺序约束。例如,在分布式端到端(end-to-end)实时系统很重,同一任务的各子任务之间存在前驱/后驱约束关系,需要执行同步协议来管理子任务的启动和控制子任务的执行,使它们满足时间约束和系统可调度要求。性能约束是指必须满足如
可靠性、可用性、可预测性、服务质量(Quality of Service,QoS)等性能指标。 七、具有短暂超载的特点
在实时系统中,即使一个功能设计合理、资源充足的系统也可能由于以下原因超载:
1)系统元件出现老化,外围设备错误或系统发生故障。随着系统运行时间的增长,系统元件出现老化,系统部件可能发生故障,导致系统可用资源降低,不能满足实时任务的时间约束要求。
2)环境的动态变化。由于不能对未来的环境、系统状态进行正确有效地预测,因此不能从整体角度上对任务进行调度,可能导致系统超载。
3)应用规模的扩大。原先满足实时任务时限要求的系统,随着应用规模的增大,可能出现不能满足任务时限要求的情况,而重新设计、重建系统在时间和经济上又不允许。
【问题2】(8分)
实时系统根据应用场景、时间特征以及工作方式的不同,存在多种实时特性,大致有三种分类方法,即时间类别、时间需求和工作方式结构。根据自己所掌握的“实时性”知识,将图3-1给出的实时特性按三种分类方式,填写图3-1中(1)~(8)处空白。
备选答案:时限的危害程度;时间角色;弱;时间响应;固定;时限/反应时间;时间明确;输入/输出激励;时间触发;强;周期/零星/非周期;事件触发。
2016年系统架构师考试题详解
(1)强 (2)(3)时间响应、时间明确 (4)(5)(6)时限/反应时间、输入/输出激励、周期/零星/非周期
(7)(8)时间触发、事件触发
【问题3】(10分)
可靠性是实时系统的关键特性之一,区分软件的错误(Error)、缺陷(Defect)、故障(Fault)和失效(Failure)概念是软件可靠性设计工作的基础。请简要说明错误、缺陷、故障和失效的定义;并在图3-2中标出错误、缺陷和失效出现阶段,说明缺陷、故障和失效的表现形式,填写图3-2中(1)~(6)处的空白。

2016年系统架构师考试题详解
【参考答案】 软件错误:软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。
软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。
软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。 软件失效:软件失效是指软件运行时产生
的一种不希望或不可接受的外部行为结果。 (1)一个错误导致一个或多个缺陷 (2)缺陷激活时产生故障 (3)故障未处理好
(4)软件生存期各个阶段 (5)软件生存期各个阶段 (6)在运行时

【试题解析】
软件失效的机理可描述为:软件错误→软件缺陷→软件故障→软件失效。
1、软件错误:在可以预见的时期内,软件仍将由人来开发。在整个软件生存期的各个阶段,都贯穿者人的直接或间接的干预。然而,人难免犯错误,这必然给软件留下不良的痕迹。软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。可见,软件错误是一种人为过程,相对于软件本身,是一种外部行为。
2、软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,如少一个逗号、多一语句等。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。
3、软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。譬如,软件处于执行一个多余循环过程时,我们说软件出现故障。此时若无时当的措施(容错)加以及时处理,便产生软件失效。显然,软件故障是一种动态行为。
4、软件失效:软件失效是指软件运行时产生 的一种不希望或不可接受的外部行为结果。

试题四

阅读以下关于应用服务器的叙述,在答题纸上回答问题1至问题3。
【说明】
某电子产品制造公司,几年前开发建设了企业网站系统,实现了企业宣传、产品介绍、客服以及售后服务等基本功能。该网站技术上采用了Web服务器、动态脚本语言PHP。随着市场销售渠道变化以及企业业务的急剧拓展,该公司急需建立完善的电子商务平台。
公司张工建议对原有网站系统进行扩展,增加新的功能(包括订单系统、支付系统、库存管理等),这样有利于降低成本、快速上线;而王工则认为原有网站系统在技术上存在先天不足,不能满足企业业务的快速发展,尤其是企业业务将服务全球,需要提供24小时不间断服务,系统在大负荷和长时间运行下的稳定性至关重要。建议采用应用服务器的Web开发方法,例如J2EE,为该企业重新开发新的电子商务平台。

【问题1】(7分)
王工认为原有网站在技术上存在先天不足,不能满足企业业务的快速发展,根据你的理解,请用300字以内的文字说明原系统存在哪几个方面的不足。
1、PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。
2、PHP是面向过程的语言,Java是面向对象的,面向过程语言开发的程序只要业务流程发生变化,修改工作量很大,所以可修改性差,同时可复用性也差。
3、PHP语言在可靠性方面比J2EE平台差,J2EE平台有大量增强可靠性的成熟解决方案,而PHP只是一种简单的脚本语言,在可靠性方面缺乏成熟解决方案。
4、PHP对于不同的数据库采用不同的数据库访问接口,而Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库,访问数据库的接口比较统一。所以原架构在数据库连接方面修改起来工作量也是很大的。
5、PHP适合于小型项目,所以本项目中以前采用PHP是合适的,但目前大量功能需要增加,PHP在稳定性方面也达不到要求。
6、PHP比Java的可维护性差。 7、PHP比Java的扩展性差。 8、PHP比Java的安全性差。 【问题2】(8分)
请简要说明应用服务器的概念,并重点说明应用服务器如何来保障系统在大负荷和长时间运行下的稳定性以及可扩展性。 【参考答案】
应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。 1、若系统负荷很大,可以布署多台应用服务,多台应用服务器分担任务,以达到性能要求。
2、应用服务器可以通过灵活的增加服务器完成扩展,所以可扩展性很好。
3、应用服务器可长时间稳定运行。因为当一台应用服务器出现故障时,可以将当前运行的事务转移至正常应用服务器上完成执行,不影响业务正常执行,从而保障高可靠性与稳定性。

【试题解析】
应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。
简单的说能实现动态网页技术的服务器叫做web应用服务器。
【问题3】(10分)
J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署到不同的机器中。请填写图4-1中(1)~(5)处的空白,完成J2EE的N层体系结构。
2016年系统架构师考试题详解
(1)Applet ; (2)Servlet ;(3)EJB容器 ;(4)SessionBean ; (5)EntityBean
2016年系统架构师考试题详解

试题五

阅读以下关于Scrum敏捷开发过程的叙述,在答题纸上回答问题1至问题3。
【说明】
Scrum是一个增量的、迭代的敏捷软件开发过程。某软件公司计划开发一个基于Web的Scrum项目管理系统,用于支持项目团队采用Scrum敏捷开发方法进行软件开发,辅助主管智能决策。此项目管理系统提供的主要服务包括项目团队的管理、敏捷开发过程管理和工件的管理。
Scrum敏捷开发中,项目团队由Scrum主管、产品负责人和开发团队人员三种不同的角色组成,其开发过程由若干个Sprint(短的迭代周期,通常为24周)活动组成。
Product Backlog是在Scrum过程初期产生的一个按照商业价值排序的需求列表,该列表条目的体现形式通常为用户故事。在每一个Sprint活动中,项目团队从Product Backlog中挑选最高优先级的用户故事进行开发。被挑选的用户故事在Sprint计划会议上经过细化分解为任务,同时初步估算每一个任务的预计完成时间,编写Sprint Backlog。
在Sprint活动期间,项目团队每天早晨需举行每日站立会议,重新估算剩余任务的预计完成时间,更新Sprint Backlog、Sprint燃尽图和Release燃尽图。在每个Sprint活动结束时,项目团队召开评审会议和回顾会议,交付产品增量,总结Sprint期间的工作情况和问题。此时,如果Product Backlog中还有未完成的用户故事,则项目团队将开始筹备下一个Sprint活动迭代。
为完成Scrum项目管理系统,考虑到系统的智能决策需求,公司决定使用MVC架构模式开发该项目管理系统。具体来说,系统采用轻量级J2EE架构和SSH框架进行开发,使用MySQL数据库作为底层存储。

【问题1】(10分)
Scrum项目管理软件需真实模拟Scrum敏捷开发流程,请根据你的理解完成图5-1给出的Scrum敏捷开发状态图,填写其中(1)~(5)的内容。
2016年系统架构师考试题详解
(1)Product Backlog (2)Sprint计划会议 (3)每日站立会议 (4)还有未完成的用户故事 (5)交付产品增量
【问题2】(6分)
根据题干描述,本系统采用MVC架构模式,请从各选答案a~n中分别选出属于MVC架构模型中的模型(Model)、视图(View)和控制器(Controler)的相关内容描述填入表5-1的空(1)~(3)处。
2016年系统架构师考试题详解
(1)c、e、n (2)a、f、j (3)g

【问题3】(9分) 根据项目组给出的系统设计方案,将备选答案a~l的内容填写在图5-2中的空(1)~(9),完成系统架构图。
2016年系统架构师考试题详解

(1) (2)d f (3)h (4)g (5)a (6)k (7)h (8)b (9)c

考试科目三:论文

试题一 论软件系统架构评估

对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,在系统被构建之前分析现有系统架构对于系统质量的影响,提出系统架构的改进方案。架构评估是软件开发过程中的重要环节。

请围绕“论软件系统架构评估”论题,依次从以下三个方面进行论述。
1.概要叙述你所参与架构评估的软件系统,以及在评估过程中所担任的主要工作。
2.分析软件系统架构评估中所普遍关注的质量属性有哪些?详细阐述每种质量属性的具体含义。
3.详细说明你所参与的软件系统架构评估中,采用了哪种评估方法,具体实施过程和效果如何。

一、首先用400-600字的篇幅简要叙述作者参与开发的软件系统的概要和所担任的工作。
二、架构所关注的质量属性主要包括:性能、可用性、可修改性、安全性。 1、性能
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
2、可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
3、安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
4、可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
三、架构评估方法主要从SAAM与ATAM中选择。 1、SAAM评估方法
SAAM的分析和评估目的、评估参与者、评估活动或过程以及评估结果说明如下。 (1)评估目的 SAAM (Scenario-based
Architecture Analysis Method)目的是验证基本的体系结构假设和原则,评估体系结构固有的风险。SAAM
指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突。SAAM不仅能够评估体系结构对于特定系统需求的使用能力,也能被用来比较不同的体系结构。
(2)评估参与者 风险承担者、记录人员、软件体系结构设计师 (3)评估活动或过程
SAAM分析评估体系结构的过程包括六个步骤,即形成场景、描述体系结构、场景的分类和优先级确定、间接场景的单个评估、场景相互作用的评估、总体评估。
(4)评估结果 SAAM评估的主要有形输出包括:
1)把代表了未来可能做的更改的场景与构架对应起来,显现出构架中未来可能会表现出较高复杂性的地方,并对每个这样的更改的预期工作量做出评估。
2)理解系统的功能,对多个构架所支持的功能和数量进行比较。
如果所评估的是一个框架,SAAM评估将指明框架中未能满足其修改性需求的地方,有时还会指出一种效果更好的设计。SAAM评估也能对两个或者三个备选构架进行比较,明确其中那一个能够较好地满足质量属性需求,而且做的更改较少、不会在未来导致太多的复杂的问题。
2、ATAM评估方法 ATAM的分析和评估目的、评估参与者、评估活动或过程以及评估结果说明如下。 (1)评估目的
ATAM(Architecture Tradeoff Analysis Method
),即构架权衡分析方法的评估目的是依据系统质量属性和商业需求评估设计决策的结果。ATAM希望揭示出构架满足特定质量目标的情况,使我们更清楚地认识到质量目标之间的联系,即如何权衡多个质量目标。
(2)评估参与者
1)评估小组。该小组是所评估构架项目外部的小组,通常由3~5人组成。该小组的每个成员都要扮演大量的特定角色。他们可能是开发组织内部的,也可能是外部的。
2)项目决策者,对开发项目具有发言权,并有权要求进行某些改变,他们包括项目管理人员,重要的客户代表,构架设计师等。
3)构架涉众(stakeholders)。包括关键模块开发人员、测试人员、用户等。 (3)评估活动或过程
整个ATAM评估过程包括九个步骤,按其编号顺序分别是描述ATAM方法、描述商业动机、描述体系结构、确定体系结构方法、生成质量属性效用树、分析体系结构方法、讨论和分级场景、描述评估结果。

试题二 论软件设计模式及其应用。

软件设计模式(Software Design Pattern)是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式是为了重用代码以提高编码效率、增加代码的可理解性、保证代码的可靠性。软件设计模式是软件开发中的最佳实践之一,它经常被软件开发人员在面向对象软件开发过程中所采用。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在实际应用中都有相应的原型与之相对,每种模式都描述了一个在软件开发中不断重复发生的问题,以及对应该原型问题的核心解决方案。

请围绕“论软件设计模式及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与分析和开发的软件系统,以及你在项目中所担任的主要工作。
2.说明常用的软件设计模式有哪几类?阐述每种类型特点及其所包含的设计模式。
3.详细说明你所参与的软件系统开发项目中,采用了哪些软件设计模式,具体实施效果如何。

一、首先用400-600字的篇幅简要叙述作者参与开发的软件系统的概要和所担任的工作。 二、设计模式的基本分类: ·
创建型模式。创建型模式抽象了实例化过程,它们帮助一个系统独立于创建、组合和表示它的那些对象。创建型模式包括工厂方法、抽象工厂、生成器、原型、单例模式等。
· 结构型模式。结构型模式涉及到如何组合类和对象以获得更大的结构。结构型模式包括适配器、桥接、组成、装饰、外观、享元、代理等。 ·
行为模式。行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述了它们之间的通信模式。常用的行为模式有观察者、策略等。
三、你在项目中运用了何种设计模式以及如何用此模式进行分析与设计。要紧密结合主题项目,选择1-2种设计模式进行讨论就可以了。

试题三 论数据访问层设计技术及其应用。

在信息系统的开发与建设中,分层设计是一种常见的架构设计方法,区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性,使设计结构清晰,便于提高复用能力和产品维护能力。一种常见的层次划分模型是将信息系统分为表现层、业务逻辑层和数据访问层。信息系统一般以数据为中心,数据访问层的设计是系统设计中的重要内容。数据访问层需要针对需求,提供对数据源读写的访问接口;在保障性能的前提下,数据访问层应具有良好的封装性、可移植性,以及数据库无关性。

请围绕“论数据访问层设计技术及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的与数据访问层设计有关的软件项目,以及你在其中所担任的主要工作。
2.详细论述常见的数据访问层设计技术及其所包含的主要内容。
3.结合你参与管理和开发的实际项目,具体说明采用了哪种数据访问层设计技术,并叙述具体实施过程以及应用效果。

一、首先用400-600字的篇幅简要叙述作者参与开发的软件系统的概要和所担任的工作。
二、数据访问层的技术主要在于数据映射的问题如写Hibernate或iBATIS的应用。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton
Begin在2002年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和·NET的持久层框架。
三、详细论述你在项目中运用相关技术进行开发的,此时无非就是如何用好这些技术。 Hibernate的调优方案:
制定合理的缓存策略;
尽量使用延迟加载特性;
采用合理的Session管理机制;
使用批量抓取,设定合理的批处理参数(batch_size);
进行合理的O/R映射设计。 Mybatis调优方案:
MyBatis在Session方面和Hibernate的Session生命周期是一致的,同样需要合理的Session管理机制。MyBatis同样具有二级缓存机制。
MyBatis可以进行详细的SQL优化设计。

试题四 论微服务架构及其应用。

近年来,随着互联网行业的迅猛发展,公司或组织业务的不断扩张,需求的快速变化以及用户量的不断增加,传统的单块(Monolithic)软件架构面临着越来越多的挑战,已逐渐无法适应互联网时代对软件的要求。在这一背景下,微服务架构模式(Microservice Architecture Pattern)逐渐流行,它强调将单一业务功能开发成微服务的形式,每个微服务运行在一个进程中;采用HTTP等通用协议和轻量级API实现微服务之间的协作与通信。这些微服务可以使用不同的开发语言以及不同数据存储技术,能够通过自动化部署工具独立发布,并保持最低限制的集中式管理。

请围绕“论微服务架构及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的、采用微服务架构的软件开发项目及在其中所担任的主要工作。
2.与单块架构相比较,微服务架构有哪些特点?请列举至少4个特点并进行说明。
3.结合你参与管理和开发的软件开发项目,描述该软件的架构,说明该架构是如何采用微服务架构模式的,并说明在采用微服务架构后,在软件开发过程中遇到的实际问题和解决方案。

一、首先用400-600字的篇幅简要叙述作者参与开发的软件系统的概要和所担任的工作。 二、微服务的特点包括:
微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些就应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台使部署、管理和服务功能交付变得更加简单。
微服务是利用组织的服务投资组合,然后基于业务领域功能分解它们,在看到服务投资组合之前,它还是一个业务领域。
微服务这一概念出现于2012年,是因软件作者Martin Fowler而流行,他承认这并没有精确地定义出这一架构形式,虽然围绕业务能力、自动化部署、终端智能以及语言和数据的分散控制有一些常见的特性。
开源工作流平台 “Imixs-Workflow“发布了一款新的微服务架构,作为工作流来管理解决方案。Imixs的微服务( Imixs-Microservice)提供了一个工作流封装成微服务架构。这一服务可以独立于其背后的技术,绑定到任何业务应用中去。这允许业务应用改变业务逻辑的时,不用更改任何代码。这业务目标可以通过工作流模型控制。
Imixs的微服务是基于Imixs的工作流引擎( Imixs-Workflow Engine)的复杂功能构建的,它可以以多种不同的方法来控制业务数据。Imixs的微服务可以发送电子邮件推送消息、日志业务交换,还可以确保所有类型业务数据的安全。
Imixs的工作流模型可以给业务处理模型(Imixs-Workflow Modeller)中的每种状态单独的设计一个ACL。这许可了高度复杂的业务应用程序,并在每个流程实例周围驻起了安全层。
三、详细论述在项目中如何应用微服务架构进行开发的。

上一篇:阿里云文件存储NAS开发测试环境最佳实践


下一篇:案例解析|零售企业如何借助上云完美应对新挑战,把握新机遇