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

考试科目一:综合知识

某计算机系统中有一个CPU、一台输入设备和一台输出设备,假设系统中有四个作业T1、T2、T3和T4,系统采用优先级调度,且T1的优先级>T2的优先级>T3的优先级>T4的优先级。每个作业具有三个程序段:输入Ii、计算Ci和输出Pi(i=1,2,3,4),其执行顺序为Ii→Ci→Pi。这四个作业各程序段并发执行的前驱图如下所示。图中①、②、③分别为(1),④、⑤、⑥分别为(2)。

(1)A.I2、C2、C4       B.I2、I3、C2  C.C2、P3、C4  D.C2、P3、P4
(2)A.C2、C4、P4       B.I2、I3、C4  C.I3、P3、P4  D.C4、P3、P4

这里写图片描述

【答案】B D 【解析】本题考查操作系统前驱图方面的基础知识。
(1)前趋图是一个有向无循环图,由节点和有向边组成,节点代表各程序段的操作,而节点间的有向边表示两个程序段操作之间存在的前趋关系(“→”)。程序段Pi和Pj的前趋关系可表示成Pi→Pj,其中Pi是Pj的前趋,Pj是Pi的后继,其含义是Pi执行结束后Pj才能执行。本题完整的前趋图如下图所示,具体分析如下。
这里写图片描述
根据题意,I1执行结束后C1才能执行,Ci执行结束后Pi才能执行,因此I1是C1、P1的前趋,C1是P1的前驱。可见,图中③应为C1。又因为计算机系统中只有一台输入设备,所以I1执行结束后I2和I3才能执行,故I1是I2和I3的前趋,I2是I3的前趋。可见,图中①、②分别为I2、I3。
(2)试题(2)的正确答案是D。根据题意,I4、C3执行结束后C4才能执行,即I4、C3是C4的前趋,所以④应为C4。又因为计算机系统中只有一个CPU和一台输出设备,所以C3、P2执行结束后P3才能执行,C3、P2是P3的前趋;同理C4、P3执行结束后P4才能执行,C4、P3是P4的前趋。经分析可知图中⑤、⑥分别为P3、P4。计算机系统中只有一个CPU,而且系统采用优先级调度,所以C1是C2的前趋,C2是C3的前趋。可见,图中④应为C2。

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

【答案】A D 【解析】本题考查操作系统文件管理方面的基础知识。
(3)根据题意,磁盘索引块为1KB,每个地址项大小为4B,故每个磁盘索引块可存放1024/4=256个物理块地址。又因为文件索引节点中有8个地址项,其中iaddr[0]、iaddr[1]、iaddr[12]、iaddr[3]、iaddr[4]、iaddr[5]地址项为直接地址索引,分别存放逻辑块号为0〜5的物理块地址;iaddr[6]是一级间接地址索引,这意味着iaddr[6]地址项指出的物理块中存放逻辑块号为6〜261的物理块号;iaddr[7]是二级间接地址索引,该地址项指出的物理块存放了256个间接索引表的地址,这256个间接索引表存放逻辑块号为262〜65795的物理块号。
经上分析不难得出,试题(3)的正确答案是A。因为若要访问文件的逻辑块号分别为0、260和518,分别对应系统管理的直接地址索引、一级间接地址索引和二级间接地址索引范围内。
(4)试题(4)的正确答案是D。因为单个文件的逻辑块号可以从0〜65795,共65796个物理块,而磁盘数据块大小为1KB,所以单个文件最大长度是65796KB。

设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么函数依赖的公理系统(Armstrong公理系统)中的合并规则是指(5)为F所蕴涵。
(5)A.若A→B,B→C,则A→C                  B.若,则X→Y
C.若A→B,A→C,则A→BC                    D.若A→B,CB,则A→C

【答案】C 【解析】本题考査函数依赖推理规则。
函数依赖的公理系统(即Armstrong公理系统)为:设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有如下推理规则:
A1自反律:若,则X→Y为F所蕴涵。 A2增广律:若X→Y为F所蕴涵,且,则XZ→YZ为F所蕴涵。
A3传递律:若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵。 根据上述三条推理规则又可推出下述三条推理规则:
A4合并规则:若X→Y,X→Z,则X→YZ为F所蕴涵。 A5伪传递率:若X→Y,WY→Z,则XW4Z为F所蕴涵。
A6分解规则:若X→Y,,则X→Z为F所蕴涵。
选项A符合规则为A3,即传递规则;选项B符合规则为A1,即为自反规则;选项C符合规则为A4,即为合并规则;选项D符合规则为A6,即为分解规则。

若关系模式R和S分别为:R(A,B,C,D)、S(B,C,E,F),则关系R与S自然联结运算后的属性列有(6)个,与表达方式π1,3,5,6(σ3<6(RS))等价的SQL语句为:
  SELECT (7) FROM R, S WHERE (8)
(6)A.4                  B.6                 C.7                 D.8
(7)A.A,R.C,E,F                              B.A,C,S.B,S.E       
C.A,C,S.B,S.C                           D.R.A,R.C,S.B,S.C
(8)A.R.B=S.B AND R.C=S.C AND RC.B
       B.R.B=S.B AND R.C=S.C AND R.C.F
       C.R.B=S.B OR R.C=S.C OR R.C.B
       D.R.B=S.B OR R.C=S.C OR R.C.F

【答案】B A B 【解析】本题考查关系代数运算与SQL查询方面的基础知识。
试题(6)的正确答案为选项B。自然连接RS是指R与S关系中相同属性列名的等值连接运算后,再去掉右边重复的属性列名S.B、S.C,所以经RS运算后的属性列名为:R.A、R.B、R.C、R.D、S.E和S.F,共有6个属性列。
试题(7)的正确答案为选项A。π1,3,5,6(σ3<6(RS))的含义是从RS结果集中选取R.C

计算机采用分级存储体系的主要目的是为了(9)。
(9)A.解决主存容量不足的问题
B.提高存储器读写可靠性
C.提高外设访问效率
       D.解决存储的容量、价格和速度之间的矛盾

【答案】D 【解析】本题考查计算机系统基础知识。
存储体系结构包括不同层次上的存储器,通过适当的硬件、软件有机地组合在一起形成计算机的存储体系结构。例如,由髙速缓存(Cache)、主存储器(MM)和辅助存储器构成的3层存储器层次结构存如下图所示。 
这里写图片描述
接近CPU的存储器容量更小、速度更快、成本更高,辅存容量大、速度慢,价格低。采用分级存储体系的目的是解决存储的容量、价格和速度之间的矛盾。

以下嵌入式处理器类型中不具备内存管理单元(MMU)的是(10),嵌入式操作系统(11)可以运行在它上面。
(10)A.PowerPC750        B.ARM920T       C.Cortex-M3     D.MIPS32 24K
(11)A.Linux             B.VxWorks653    C.uC/OS-II      D.Windows CE

【答案】C C 【解析】本题考査嵌入式处理器知识。
MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。
MMU的两个主要功能是将虚地址转换成物理地址,控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。
Cortex-M3处理器采用ARMv7-M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构。Cortex-M3支持线程模式和处理模式。在复位时处理器进入“线程模式”,异常返冋时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。μC/OS-II可以运行在Cortex-M3处理器上。

以下关于嵌入式数据库管理系统的描述不正确的是(12)。
(12)A.嵌入式数据库管理系统一般只为前端应用提供基本的数据支持
B.嵌入式数据库管理系统一般支持实时数据的管理
        C.嵌入式数据库管理系统一般不支持多线程并发操作
        D.嵌入式数据库管理系统一般只提供本机服务接口

【答案】C 【解析】本题考査嵌入式系统数据库知识。
嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统。嵌入式系统必须能够在没有人工干预的情况下,长时间不间断地运行,因此要求高的可靠性。同时要求数据库操作具备可预知性,而且系统的大小和性能也都必须是可预知的,以保证系统的性能。嵌入式系统需要与底层硬件打交道,因此在数据管理时,也要有底层控制的能力,如什么时候会发生磁盘操作,磁盘操作的次数,如何控制等。底层控制的能力是决定数据库管理操作的关键。
嵌入式数据库管理系统一般只提供本机服务接口,为前端应用提供基本的数据支持。

IETF定义的集成服务(IntServ)把Internet服务分成了三种服务质量不同的类型,这三种服务不包括(13)。
(13)A.保证质量的服务:对带宽、时延、抖动和丢包率提供定量的保证
        B.尽力而为的服务:这是一般的Internet服务,不保证服务质量
        C.负载受控的服务:提供类似于网络欠载时的服务,定性地提供
        D.突发式服务:如果有富余的带宽,网络保证满足服务质量的需求

【答案】D 【解析】 IETF集成服务(IntServ)工作组根据服务质量的不同,把Internet服务分成了三种类型:
①保证质量的服务(Guranteed Services):对带宽、时延、抖动和丢包率提供定量的保证;
②负载受控的服务(Comrolled-load Services):提供一种类似于网络欠载情况下的服务,这是一种定性的指标;
③尽力而为的服务(Best-Effort):这是Internet提供的一般服务,基本上无任何质量保证。

按照网络分层设计模型,通常把局域网设计为3层,即核心层、汇聚层和接入层,以下关于分层网络功能的描述中,不正确的是(14)。
(14)A.核心层设备负责数据包过滤、策略路由等功能
        B.汇聚层完成路由汇总和协议转换功能
        C.接入层应提供一部分管理功能,例如MAC地址认证、计费管理等
        D.接入层负责收集用户信息,例如用户IP地址、MAC地址、访问日志等

【答案】A 【解析】 三层模型将大型局域网划分为核心层、汇聚层和接入层,每一层都有特定的作用。
①核心层是因特网络的高速骨干网,由于其重要性,因此在设计中应该采用冗余组件设计。在设计核心层设备的功能时,应尽量避免使用数据包过滤和策略路由等降低数据包转发速率的功能。如果需要连接因特网和外部网络,核心层还应包括一条或多条连接到外部网络的连接。
②汇聚层是核心层和接入层之间的分界点,应尽量将资源汸问控制、流量的控制等在汇聚层实现。为保证层次化的特性,汇聚层应该向核心层隐藏接入层的细节,例如不管接入层划分了多少个子网,汇聚层向核心层路由器进行路由宣告时,仅宣告由多个子网地址汇聚而成的网络。为保证核心层能够连接运行不同协议的区域网络,各种协议的转换都应在汇聚层完成。
③接入层为用户提供在本地网段i方问应用系统的能力,也要为相邻用户之间的互访需求提供足够的带宽。接入层还应该负责一些用户管理功能,以及户信息的收集工作。

结构化布线系统分为六个子系统,其中水平子系统(15)。
(15)A.由各种交叉连接设备以及集线器和交换机等设备组成
        B.连接了干线子系统和工作区子系统
        C.由终端设备到信息插座的整个区域组成
        D.实现各楼层设备间子系统之间的互连

【答案】B 【解析】
结构化布线系统分为6个子系统:工作区子系统、水平子系统、管理子系统、干线(或垂直)子系统、设备间子系统和建筑群7系统。其中水平子系统是指各个楼层接线间的配线架到工作区信息插座之间所安装的线缆系统,其作用是将干线子系统与用户工作区连接起来。

在实际应用中,用户通常依靠评价程序来测试系统的性能。以下评价程序中,(16)的评测准确程度最低。事务处理性台昱委员会(Transaction Processing Performance Council, TPC)是制定商务应用基准程序(benchmark)标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是(17)的基准程序。
(16)A.核心程序      B.真实程序      C.合成基准程序        D.小型基准程序
(17)A.决策支持      B.在线事务处理    C.企业信息服务        D.联机分析处理

【答案】C B 【解析】本题主要考查性能评估知识。
在大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。对于真实程序、核心程序、小型基准程序和合成基准程序来说,其评测程度依次递减。把应用程序中用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(Benchmark)。事务处理性能委员会(Transaction
Processing Performance
Council,TPC)是制定商务应用基准程序(Benchmark)标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序。

企业信息化音定要建立在企业战略规划基础之上,以企业战略规划为基础建立的企业管理模式是建立(18)的依据。
(18)A.企业战略数据模型                  B.企业业务运作模型
C.企业信息系统架构                  D.企业决策支持

【答案】A 【解析】本题考查企业信息化基础知识。
企业信息化是指企业以业务流程的优化和重构为基础,在一定的深度和广度上利用计算机技术、网络技术和数据库技术,控制和集成化管理企业生产经营活动中的各种信息,实现企业内外部信息的共享和有效利用,以提卨企业的经济效益和市场竞争力,这将涉及到企业的管理理念的创新,管理流程的优化,管理团队的重组和管理手段的革新。企业信息化一定要建立在企业战略规划的基础之上,以企业战略规划为基础建立的企业管理模式是建立企业战略数据模型的依据。

ERP是对企业物流资源,资金流资源和信息流资源进行全面集成管理的管理信息系统。在ERP五个层次的计划中,(19)根据经营计划的生产目标制定,是对企业经营计划的细化;(20)说明了在一定时期内生产什么,生产多少和什么时候交货,它的编制是ERP的主要工作内容;(21)能够帮助企业尽早发现企业生产能力的瓶颈,为实现企业的生产任务提供能力方面的保障。
(19)A.销售管理计划    B.生产预测计划    C.生产计划大纲    D.主生产计划
(20)A.经营计划      B.车间作业计划    C.物料需求计划    D.主生产计划
(21)A.采购与库存计划               B.能力需求计划
        C.物料需求计划                    D.质量管理计划

【答案】C D B 【解析】本题考查企业资源规划的基础知识。
ERP是对企业物流、资金流和信息流资源进行全面集成管理的管理信息系统。在ERP五个层次的计划中,生产预测计划是对市场需求进行比较准确的预测,是经营计划、生产计划大纲和主生产计划编制的基础;销售管理计划是针对企业的销售部门的相关业务进行管理,属于最高层计划的范畴,是企业最重要的决策层计划之一;生产计划大纲根据经营计划的生产目标制定,是对企业经营计划的细化;主生产计划说明了在一定时期内生产什么,生产多少和什么时候交货,它的编制是ERP的主要工作内容;物料需求计划是对主生产计划的各个项0所需的全部制造件和全部采购件的网络支持计划和时间进度计划;能力需求计划是对物料需求计划所需能力进行核算的一种计划管理方法,能够帮助企业尽早发现企业生产能力的瓶颈,为实现企业的生产任务提供能力帮面的保障。

集成平台是支持企业信息集成的支撑环境,包括硬件、软件、软件工具和系统。集成平台的基本功能中,(22)实现不同数据库系统之间的数据交换、互操作、分布数据管理和共享信息模型定义;(23)能够为应用提供数据交换和访问操作,使各种不同的系统能够相互协作。
(22)A.数据通信服务        B.信息集成服务        C.应用集成服务     D.操作集成服务
(23)A.数据通信服务        B.信息集成服务        C.应用集成服务     D.操作集成服务

【答案】B C 【解析】本题考查企业信息集成的基础知识。
企业集成平台是一个支持复杂信息环境下信息系统开发、集成、协同运行的软件支撑环境,包括硬件、软件、软件工具和系统。基本功能包括:①通信服务:提供分布环境下透明的同步/异步通信服务功能;②信息集成服务:为应用提供透明的信息访问服务,实现异种数据库系统之间数据的交换、互操作、分布数据管理和共享信息模型定义:③应用集成服务:通过高层应用编程接口来实现对相应应用程序的访问,能够为应用提供数据交换和访问操作,使各种不同的系统能够相互协作;④二次开发工具:是集成平台提供的一组帮助用户开发特定应用程序的支持工具;⑤平台运行管理工具:是企业集成平台的运行管理和控制模块。

商业智能是企业对商业数据的搜集、管理和分析的系统过程,主要技术包括(24)。
(24)A.数据仓库、联机分析和数据挖掘        B.数据采集、数据清洗和数据挖掘
        C.联机分析、多维度分析和跨维度分析  D.数据仓库、数据挖掘和业务优化重组

【答案】A 【解析】本题考查商业智能的基础知识。
商业智能通常被理解为将组织中现有的数据转化为知识,帮助组织做出明智的业务经营决策。商业智能的实现涉及到软件、硬件、咨询服务及应用,是对商业信息的搜集、管理和分析过程,目的是使企业的各级决策者获得知识或洞察力,促使他们做出对企业更有利的决策。商业智能一般由数据仓库、联机分析处理、数据挖掘、数据备份和恢复等部分组成。

系统建议方案中不应该包含的内容是(25)。
(25)A.问题陈述                          B.项目范围
        C.候选方案及其可行性分析           D.系统详细设计方案

【答案】D 【解析】 作为一份正式文档,系统建议方案至少应该包含以下内容:
①前羿部分。包括标题、目录和摘要。摘要部分以1〜2页的篇幅总结整个系统建议方案报告,提供系统方案中的重要事件、地点、任务和原因,以及系统方案是如何实现的等信息。
②系统概述。包括系统建议方案报告的目的、对问题的陈述、项目范围和报告内容的叙述性解释。
③系统研究方法。简要地解释系统建议方案报告中包含的信息是如何得到的,研究工作是如何进行的。
④候选系统方案及其可行性分析。系统阐述每个候选系统方案,并对每个方案进行可行性评价。
⑤建议方案。在对各个候选系统方案进行可行性评价之后,通常会推荐一个解决方案,并且要给出推荐该解决方案的理由。
⑥结论。简要地描述摘要的内容,再次指出系统开发的目标和所建议的系统方案。同时,需要再次强调项目的必要性和可行性,以及系统建议方案报告的价值。
⑦附录。系统分析师认为阅读者可能会感兴趣的所有信息,但这些信息对于理解系统建议方案报告的内容来说不是必要的。

下列关于联合需求计划(Joint Requirement Planning, JRP)的叙述中,不正确的是(26)。
(26)A.在JRP实施之前,应制定详细的议程,并严格遵照议程进行
        B.在讨论期间尽量避免使用专业术语
C.JRP是一种相对来说成本较高但十分有效的需求获取方法
D.JRP的主要目的是对需求进行分析和验证

【答案】D 【解析】本题考查联合需求计划(JRP)的相关概念。
JRP是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是联合应用开发(JAD)的-部分。
JRP的主要意图是收集需求,而不是对需求进行分析和验证。实施JRP时应把握以下主要原则:在JRP实施之前,应制定详细的议程,并严格遵照议程进行;按照既定的时间安排进行;尽量完整地记录会议期间的内容;在讨论期间尽量避免使用专业术语;充分运用解决冲突的技能;会议期间应设置充分的间歇时间;鼓励团队取得-致意见;保证参加JRP的所有人员能够遵守实现约定的规则。

在结构化分析方法中,用(27)表示功能模型,用(28)表示行为模型。
(27)A.ER图               B.用例图           C.DFD           D.对象图
(28)A.通信图           B.顺序图           C.活动图       D.状态转换图

【答案】C D 【解析】
结构化分析方法的基本思想是自顶向下,逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的。结构化方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。在实际工作中,一般使用E-R图表示数据模型,用DFD表示功能模型,用状态转换图表示行为模型。这三个模型有着密切的关系,它们的建立不具有严格的时序性,而是一个迭代的过程。

下列关于敏捷方法的叙述中,错误的是(29)。
(29)A.与传统方法相比,敏捷方法比较适合需求变化大或者开发前期对需求不是很清晰的项目
B.敏捷方法尤其适合于开发团队比较庞大的项目
        C.敏捷方法的思想是适应性,而不是预设性
        D.敏捷方法以原型开发思想为基础,采用迭代式增量开发

【答案】B 【解析】本题考査敏捷方法的相关概念。
敏捷方法是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。敏捷方法的核心思想主要有以下三点。
①敏捷方法是“适应性”而非“预设性”的。传统方法试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依计划进行开发。这类方法在计划制定完成后拒绝变化。而敏捷方法则欢迎变化,其实它的目的就是成为适应变化的过程,甚至能允许改变自身来适应变化。
②敏捷方法是以人为本,而不是以过程为本。传统方法以过程为本,强调充分发挥人的特性,不去限制它,并且软件开发在无过程控制和过于严格繁琐的过程控制中取得一种平衡,以保证软件的质量。
③迭代增量式的幵发过程。敏捷方法以原型开发思想为基础,采用迭代增最式开发,发行版本小型化。
与RUP相比,敏捷方法的周期可能更短。敏捷方法在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度写作。相对而言,敏捷方法主要适合于以下场合:
①项目团队的人数不能太多,适合于规模较小的项目。
②项目经常发生变更。敏捷方法适用于需求萌动并且快速改变的情况,如果系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合。
③高风险项目的实施。 ④从组织结构的角度看,组织结构的文化、人员、沟通性决定了敏捷方法是否使用。

下列关于用户界面设计的叙述中,错误的是(30)。
(30)A.界面交互模型应经常进行修改
B.界面的视觉布局应该尽量与真实世界保持一致
C.所有可视信息的组织需要按照统一的设计标准
D.确保用户界面操作和使用的一致性

【答案】A 【解析】 户界面设计的基本原则是从实践中总结出来的一些设计规则。Theo
Maiidel在他的界面设计著作中提出3条“黄金规则”: ①让用户拥有控制权
用户希望控制计算机,而不是被计算机控制,因此在设计人机界面时应遵循以下原则:交互模式的定义不能强迫用户进入不必要的或不希望的动作的方式;提供灵活的交互;允许用户交互可以被中断和撤销;当技能级別增长时可以使交互流水化并允许定制交互;使用户隔离内部技术细节。
②减少用户的记忆负担
要求用户记住的东西越多,与系统交互时出错的可能也越大,因此好的用户界面设计不应加重用户的记忆负担。减少用户记忆负担的设计原则为:减少对短期记忆的要求;建立有意义的默认值;定义直觉性的捷径;界面的视觉布局应该基于真实世界的隐喻;以不断进展的方式祸示信息。
③保持界面一致
用户应该以一致的方式展示和获取信息,这意味着:所有可视信息的组织遵循统一的设计标准,所有屏幕显示都遵守该标准。输入机制被约束到有限的集合内,在整个软件系统中被一致地使用,同时从任务到任务的导航机制也被一致地定义和实现。保持界面一致性的设计原则包括以下内容:允许用户将当前任务放在有意义的语境中;在应用系列内保持一致性;不要改变用户己经熟悉的用户交互模型。

在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件。在这种情况下进行的维护活动称为(31)。
(31)A.改正性维护 B.适应性维护 C.完善性维护 D.预防性维护

【答案】C 【解析】 在系统运行过程中,软件需要维护的原因是多样的。根据维护的原因不同,可以将软件维护分为以下4种:
①改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程称为改正性维护。
②适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方法、数据存储介质)可能发生变化。为使软件适应这种变化而修改软件的过程称为适用性维护。
③完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提髙软件的可维护性。这种情况下进行的维护活动成为完善性维护。
④预防性维护。指预先提髙软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。

一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用(32)模式,用一个特定对象来封装一系列的对象交互,从而使各对象不需要显式地相互引用,使其耦合松散,而且可以独立地改变它们之间的交互。
(32)A.解释器(Interpreter)                  B.策略(Strategy)
        C.中介者(Mediator)                     D.迭代器(Iterator)

【答案】C 【解析】
解释器模式属于类的行为模式,描述了如何为语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子,这里的“语言”是使用规定格式和语法的代码。
策略模式是一种对象的行为型模式,定义一系列算法,并将每个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,其目的是将行为和环境分隔,当出现新的行为时,只需要实现新的策略类。
中介者模式是一种对象的行为行模式,通过一个中介对象来封装一系列的对象交互。中介者使得各对象不需要现实地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者对象的存在保证了对象结构上的稳定,也就说说系统的结构不会因为新对象的引入带来人量的修改工作。
迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式支持以不同的方式遍历一个聚合对象。
由上述可知,与题目所描述场景符合的是中介者模式。

某广告公司的宣传产品有宣传册、文章、传单等多种形式,宣传产品的出版方式包括纸质方式、CD、DVD、在线发布等。现要求为该广告公司设计一个管理这些宣传产品的应用,采用(33)设计模式较为合适,该模式(34)。
(33)A.Decorator         B.Adapter           C.Bridge            D.Façade
(34)A.将一系列复杂的类包装成一个简单的封闭接口
        B.将抽象部分与它的实现部分分离,使它们都可以独立地变化
C.可在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
        D.将一个接口转换为客户希望的另一个接口

【答案】C B 【解析】本题考查设计模式的概念及应用。
题目所给出的应用中,不希望在不同的宣传产品与具体所采用的出版方式之间建立一个固定的绑定关系,以避免这两者之间的紧耦合关系。这种情形适合于采用Bridge(桥接)模式。桥接模式属于结构型设计模式的一种。结构型模式描述如何将类或对象合在一起形成更大的结构。桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。
在以下情况可以使用Bridge模式:
①不希望在抽象以及抽象的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻可以选择或切换实现部分;
②类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充,使用Bridge模式可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。
③对一个抽象的实现部分的修改应该对用户不产生影响,即客户的代码不必重新编译。

在UML提供的系统视图中,(35)是逻辑视图的一次执行实例,描述了并发与同步结构;(36)是最基本的需求分析模型。
(35)A.进程视图          B.实现视图          C.部署视图          D.用例视图
(36)A.进程视图          B.实现视图          C.部署视图          D.用例视图

【答案】A D 【解析】
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。具体来说,就是指以下5个系统视图:
①逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
②进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
③实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
④部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。 ⑤用例视图。用例视图是最基本的需求分析模型。

在静态测试中,主要是对程序代码进行静态分析。“数据初始化、赋值或引用过程中的异常”属于静态分析中的(37)。
(37)A.控制流分析     B.数据流分析     C.接口分析      D.表达式分析

【答案】B 【解析】本题考查静态测试方法的知识点。
静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对代码的静态测试包括
控制流分析、数据流分析、接口分析和表达式分析。
①控制流分析。控制流分析是指使用控制流程图检査被测程序控制结构的过程。例如,可检查被测程序是否存在没有使用的语句或子程序、是否调用并不存在的子程序,以及是否存在无法达到的语句等。
②数据流分析。数据流分析是指使用控制流程图分析数据各种异常情况的过程,包括数据初始化、賦值或引用过程中的异常。例如,引用未定义的变量、对以前未使用的变量再次陚值等程序差错或异常情况。
③接口分析。接口分析主要包括模块之间接口的一致性分析、模块与外部数据库及其他软件配置项之间的一致性分析、子程序和函数之间的接口一致性分析等。例如可以检查函数形参与实现的数量、顺序、类型和使用的一致性。
④表达式分析。表达式分析用于检查程序代码中的表达式错误。例如,括号不配对、数组引用越界、除数为零,以及浮点数变量比较时的误差等错误。

下列关于软件调试与软件测试的叙述中,正确的是(38)。
(38)A.软件测试的目的是找出存在的错误,软件调试的目的是定位并修正错误
B.软件测试的结束过程不可预计,软件调试使用预先定义的过程
        C.软件调试的过程可以实现设计
D.软件测试不能描述过程或持续时间

【答案】A 【解析】本题考查软件测试与调试之间的区别。
软件测试在将软件交付给客户之前所必须完成的重要步骤。软件调试(排错)与成功的测试形影相随。测试成功的标志是发现了错误,根据错误迹象确定错误的原因和准确位置,并加以改正,主要依靠软件调试技术。
软件调试与软件测试区别主要体现在以下几个方面: ①测试的目的是找出存在的错误,而调试的目的是定位错误并修改程序以修正错误;
②调试是测试之后的活动,测试和调试在目标、方法和思路上都有所不同;
③测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计;
④测试过程可以实现设计,进度可以实现确定;而调试不能描述过程或持续时间。

在单元测试中,(39)。
(39)A.驱动模块用来调用被测模块,自顶向下的单元测试中不需要另外编写驱动模块
B.桩模块用来模拟被测模块所调用的子模块,自顶向下的单元测试中不需要另外编写桩模块
C.驱动模块用来模拟被测模块所调用的子模块,自底向上的单元测试中不需要另外编写驱动模块
        D.桩模块用来调用被测模块,自底向上的单元测试中不需要另外编写桩模块

【答案】A 【解析】本题考査单元测试的基本概念。
单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或面向对象软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。单元测试的技术依据是软件详细设计说明书。
测试一个模块时,可能需要为该模块编写一个驱动模块和若干个粧模块。驱动模块用来凋用被测模块,它接收测试者提供的测试数据,并把这些数据传送给被测模块,然后从被测模块接收测试结果,并以某种可见的方式将测试结果返回给测试人员;桩模块用來模拟被测模块所调用的子模块,它接受被测模块的调用,检验调用参数,并以尽町能简单的操作模拟被调用的子程序模块功能,把结果送回被测模块。顶层模块测试时不需要驱动模块,底层模块测试时不要桩模块。
笮元测试策略主要包括自顶向下的单元测试、自底向上的单元测试、孤立测试和综合测试策略。
①自顶向下的单元测试先测试上层模块,再测试下层模块。测试下层模块时由于它的上层模块已测试过,所以不必另外编写驱动模块。
②自底向上的单元测试。自底向上的单元测试先测试下层模块,再测试上层模块。测试上层模块由于它的下层模块己经测试过,所以不必另外编写桩模块。
③孤立测试不需要考虑每个模块与其他模块之间的关系,逐一完成所有模块的测试。由于各模块之间不存在依赖性,单元测试可以并行进行,但因为需要为每个模块单独设计驱动模块和桩模块,增加了额外的测试成本。
④综合测试。上述三种单元测试策略各有利弊,实际测试时可以根据软件特点和进度安排情况,将几种测试方法混合使用。

以下关于软件架构设计重要性的描述,(40)是错误的。
(40)A.软件架构设计能够满足系统的性能、安全性、可维护性等品质
        B.软件架构设计能够帮助项目干系入(Stakeholder)更好地理解软件结构
C.软件架构设计能够帮助架构师更好地捕获和细化系统需求
        D.软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用

【答案】C 【解析】本题主要考査软件架构设计的重要性。
软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。软件架构设计能够满足系统的性能、安全性、可维护性等品质;软件架构设计能够帮助项目干系人(Stakeholder)更好地理解软件结构:软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用;软件架构设计对系统开发具有指导性:软件架构设计为系统复用奠定的基础;软件架构设计能够支持冲突分析。需要注意的是,软件架构设计与系统需求是直交的,两者并无必然联系。

将系统需求模型转换为架构模型是软件系统需求分析阶段的一项重要工作,以下描述中,(41)是在转换过程中需要关注的问题。
(41)A.如何通过多视图模型描述软件系统的架构
B.如何确定架构模型中有哪些元素构成
        C.如何采用表格或用例映射保证转换的可追踪性
        D.如何通过模型转换技术,将高层架构模型逐步细化为细粒度架构模型

【答案】C 【解析】本题主要考查软件架构设计与生命周期的关系。
从本质上看,需求和软件架构设计面临的是不同的对象:一个是问题空间;另一个是解空间。保持两者的可追踪性和转换,一直是软件工程领域追求的目标。从软件需求模型向SA模型的转换主要关注两个问题:①如何根据需求模型构建软件架构模型;②如何保证模型转换的可追踪性。本题答案中A、B是软件架构设计阶段需要考虑的问题,D是软件架构实现阶段中需要考虑的问题。

在构件组装过程中需要检测并解决架构失配问题。其中(42)失配主要包括由于系统对构件基础设施、控制模型和数据模型的假设存在冲突引起的失配。(43)失配包括由手系统对构件交互协议、构件连接时数据格式的假设存在冲突引起的失配。
(42)A.构件                B.模型                C.协议                D.连接子
(43)A.构件                B.模型                C.协议                D.连接子

【答案】A D 【解析】本题主要考查构件组装过程知识。
在架构模型的指导下,可复用构件可以通过组装的方式在较高层次上实现系统,并能够提高系统实现的效率。在构件组装过程中需要检测并解决架构失配问题。其中构件失配主要包括由于系统对构件基础设施、控制模型和数据模型的假设存在冲突引起的失配。连接子失配包括由于系统对构件交互协议、构件连接时数据格式的假设存在冲突引起的失配。

4+1”视图主要用于描述系统逻辑架构,最早由Philippe Kruchten于1995年提出。其中(44)视图用于描述对象模型,并说明系统应该为用户提供哪些服务。当采用面向对象的设计方法描述对象模型时,通常使用(45)表达类的内部属性和行为,以及类集合之间的交互关系;采用(46)定义对象的内部行为。
(44)A.逻辑                B.过程                C.开发                D.物理
(45)A.对象图           B.活动图           C.状态图           D.类图
(46)A.对象图           B.活动图           C.状态图           D.类图

【答案】A D C 【解析】本题主要考查考生对“4+1”视图的即.解与掌握。
“4+1”视图是对逻辑架构进行描述,最早由Philippe Kruchten提出,他在1995年的IEEE
Software上发表了题为The 4+1 View Model of Architecture
的论文,引起了业界的极大关注,并最终被RUP采纳,现在已经成为架构设计的结构标准。“4+1”视图主要包括: ①逻辑视图(Logical
View),设计的对象模型(使用面向对象的设计方法时)。 ②过程视图(Pmcess View),捕捉设计的并发和同步特征。
③物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。 ④开发视图(Development
View),描述了在开发环境中软件的静态组织结构。 ⑤架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(Use
Cases)或场景(Scenarios)来说明,从而形成了第五个视图。
当采用面向对象的设计方法描述对象模型时,通常使用类图表达类的内部属性和行为,以及类集合之间的交互关系;采用状态图定义对象的内部行为。

特定领域软件架构(Domain Specific Software Architecture, DSSA)是在一个特定应用领域中,为一组应用提供组织结构参考的标准软件体系结构。参加DSSA的人员可以划分为多种角色,其中(47)的任务是控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中;(48)的任务是根据领域模型和现有系统开发出DSSA,并对DSSA的准确性和一致性进行验证。
(47)A.领域专家      B.领域分析者     C.领域设计者     D.领域实现者
(48)A.领域专家      B.领域分析者     C.领域设计者     D.领域实现者

【答案】B C 【解析】 特定领域软件架构(Domain Specific Software
Architecture,DSSA)以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,其n标是支持一个特定领域中多个应用的生成。DSSA的基本活动包括领域分析、领域设计和领域实现。其中领域分析的主要目的是获得领域模型,领域模型描述领域中系统之间共同的需求,即领域需求;领域设计的主要目标是获得DSSA,DSSA描述领域模璀中表示需求的解决方案;领域实现的主要目标是依据领域模型和DSSA开发和组织可重用信息,并对基础软件架构进行实现。参加DSSA的人员可以划分为多种角色,其中领域分析者的任务是控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中;领域设计者的任务是根据领域模型和现有系统开发出DSSA,并对DSSA的准确性和一致性进行验证。

某公司欲开发一个用于分布式登录的服务端程序,使用面向连接的TCP协议并发地处理多客户端登录请求。用户要求该服务端程序运行在Linux、Solaris和WindowsNT等多种操作系统平台之上,而不同的操作系统的相关API函数和数据都有所不同。针对这种情况,公司的架构师决定采用“包装器外观(Wrapper Facade)”架构模式解决操作系统的差异问题。具体来说,服务端程序应该在包装器外观的实例上调用需要的方法,然后将请求和请求的参数发送给(49),调用成功后将结果返回。使用该模式(50)。
(49)A.客户端程序                     B.操作系统API函数
C.TCP协议API函数                    D.登录连接程序
(50)A.提高了底层代码访问的一致性,但降低了服务端程序的调用性能
B.降低了服务端程序功能调用的灵活性,但提高了服务端程序的调用性能
C.降低了服务端程序的可移植性,但提高了服务端程序的可维护性
        D.提高了系统的可复用性,但降低了系统的可配置性

【答案】B A 【解析】本题主要考查考生对设计模式的理解与应用。 针对题目给出的情况,公司的架构师决定采用“包装器外观(Wrapper
Facade)”架构模式解决操作系统的差异问题。具体来说,服务端程序应该在包装器外观的实例上调用需要的方法,然后将请求和请求的参数发送给操作系统API函数,调用成功后将结果返冋。使用该模式提高了底层代码访问的一致性,但降低了服务端程序的调用性能。

软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的(51)特征。对于语音识别、知识推理等问题复杂、解空间很大、求解过程不确定的这一类软件系统。通常会采用(52)架构风格。
(51)A.语法和语义     B.结构和语义     C.静态和动态  D.行为和约束
(52)A.管道-过滤器        B.解释器           C.黑板             D.过程控制

【答案】B C 【解析】
软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的结构和语义两个方面的特征。对于语音识别、知识推理等问题复杂、解空间很大、求解过程不确定的这一类软件系统,通常会采用黑板架构风格,以知识为中心进行分析与推理。

在对一个软件系统的架构进行设计与确认之后,需要进行架构复审。架构复审的目的是为了标识潜在的风险,及早发现架构设计中的缺陷和错误。在架构复审过程电,主要由(53)决定架构是否满足需求、质量需求是否在设计中得到体现。
(53)A.系统分析师与架构师             B.用户代表与领域专家
        C.系统拥有者与项目经理                D.系统开发与测试人员

【答案】B 【解析】
在对一个软件系统的架构进行设计与确认之后,需要进行架构复审。架构复审的目的是为了标识潜在的风险,及早发现架构设计中的缺陷和错误。在架构复审过程中,主要由用户代表与领域专家决定架构是否满足需求、质量需求是否在设计中得到体现。

某公司欲开发一个在线交易系统,在架构设计阶段,公司的架构师识别出3个核心质量属性场景。其中“当系统面临断电故障后,需要在1小时内切换至备份站点并恢复正常运行”主要与(54)质量属性相关,通常可采用(55)架构策略实现该属性;“在并发用户数量为1000人时,用户的交易请求需要在0.5秒内得到响应”主要与(56)质量属性相关,通常可采用(57)架构策略实现该属性;“对系统的消息中间件进行替换时,替换工作需要在5人/月内完成”主要与(58)质量属性相关,通常可采用(59)架构策略实现该属性。
(54)A.性能            B.安全性           C.可用性           D.可修改性
(55)A.操作隔离      B.资源调度          C.心跳                D.内置监控器
(56)A.性能            B.易用性           C.可用性           D.互操作性
(57)A.主动冗余      B.资源调度          C.抽象接口          D.记录/回放
(58)A.可用性       B.安全性           C.可测试性          D.可修改性
(59)A.接口-实现分离   B.记录/回放         C.内置监控器     D.追踪审计

【答案】C C A B D A 【解析】本题主要考查考生对质量属性的理解和质量属性实现策略的掌握。
对于题干描述:“当系统面临断电故障后,需要在1小时内切换至备份站点并恢复正常运行”主要与可用性质量属性相关,通常可采用心跳、Ping/Echo、主动冗余、被动冗余、选举等架构策略实现该属性;“在并发用户数量为1000人时,用户的交易请求需要在0.5秒内得到响应”,主要与性能这一质量属性相关,实现该属性的常见架构策略包括:增加计算资源、减少计算开销、引入并发机制、采用资源调度等。“对系统的消息中间件进行替换时,替换工作需要在5人/月内完成”主要与可修改性质量属性相关,通常可采用接口-实现分类、抽象、信息隐藏等架构策略实现该属性。

识别风险、非风险、敏感点和权衡点是进行软件架构评估的重要过程。“改变业务数据编码方式会对系统的性能和安全性产生影响”是对(60)的描述,“假设用户请求的频率为每秒1个,业务处理时间小于30毫秒,则将请求响应时间设定为1秒钟是可以接受的”是对(61)的描述。
(60)A.风险点       B.非风险           C.敏感点           D.权衡点
(61)A.风险点       B.非风险           C.敏感点           D.权衡点

【答案】D B 【解析】本题主要考查考生对风险、非风险、敏感点和权衡点等重要评估概念的掌握和理解。
风险是某个存在问题的架构设计决策,可能会导致问题:非风险与风险相对,是良好的架构设计决策;
敏感点是一个或多个构件的特性;权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。根据上述定义,可以看出“改变业务数据编码方式会对系统的性能和安全性产生影响”是对权衡点的描述,“假设用户请求的频率为每秒1个,业务处理时间小于30毫秒,则将请求响应时间设定为1秒钟是可以接受的”是对非风险的描述。

体系结构权衡分析方法(Architecture Tradeoff Analysis Method, ATAM)是一种常见的系统架构评估框架,该框架主要关注系统的(62),针对性能(63)安全性和可修改性,在系统开发之前进行分析、评价与折中。
(62)A.架构视图          B.架构描述          C.需求说明          D.需求建模
(63)A.架构视图          B.架构描述          C.架构设计          D.架构实现

【答案】C B 【解析】
架构权衡分析方法是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。题目中提到“某软件公司采用ATAM进行软件架构评估,在评估过程中识别出了多个关于质量属性的描述。其中,系统在进行文件保存操作时,应该与Windows系统的操作方式保持一致。”与用户所熟悉的操作方式,操作界面保持一致,这是一种减轻用户记忆负担,降低学习成本的做法,这有利于提高系统的易用性。“系统应该提供一个开放的API接口,支持远程对系统的行为进行控制与调试”,在此处,我们注意到描述的核心落在“支持远程对系统的行为进行控制与调试”上了,而调试是在测试之后精确定位系统错误的一种机制,所以这种做法有利于提高系统的可测试性。最后的两空也是考概念:在识别出上述描述后,通常采用效用树对质量属性的描述进行刻画与排序。在评估过程中,权衡点是一个会影响多个质量属性的架构设计决策。

以下关于软件著作权产生时间的表述中,正确的是(64)。
    (64)A.自软件首次公开发表时                    B.自开发者有开发意图时
C.自软件开发完成之日时                    D.自获得软件著作权登记证书时

【答案】C 【解析】
在我国,著作权采用“自动保护”原则,即软件著作权是自动获得的。《计算机软件保护条例》第十四条规定:“软件著作权自软件开发完成之日起产生。”,即软件著作权自软件开发完成之日起自动产生,不论整体还是局部,只要具备了软件的属性即产生软件著作权,既不要求娌行任何形式的登记或注册手续,也无须加注著作权标记,且不论其是否已经发表都依法享有软件著作权。幵发完成是指以计算机能够识别并进行处理以实现一定功能的语句或指令的形式,并存储在一定的有形介质中,如内存、硬盘、光盘等。
我国实施了计算机软件登记制度,于1992年颁布了《计算机软件著作权登记办法》。实施计算机软件登记制度的目的是为促进我国软件产业发展,增强我国软件产业的创新能力和竞争能力。国家鼓励计算机软件著作权登记并对登记的软件予以重点保护的办法,而不是强制软件登记。计算机软件著作权登记可以分为软件著作权登记、软件著作权专有许可合同和转让合同的登记。计算机软件著作权登记只是证明登记主体享有软件著作权以及订立许可合同、转让合同的重要的书面证据,并不是软件著作权产生的依据。因为软件著作权是自软件开发完成之日起产生的,未经登记的软件著作权或软件著作权专有许可合同和转让合同仍受法律保护。

甲公司接受乙公司委托开发了一项应用软件,双方没有订立任何书面合同。在此情况下,(65)享有该软件的著作权。
(65)A.甲公司           B.甲、乙共用         C.乙公司       D.甲、乙均不

【答案】A 【解析】
委托开发软件著作权关系的建立,通常由委托方与受委托方订立合同而成立。委托开发软件关系中,委托方的责任主要是提供资金、设备等物质条件,并不直接参与开发软件的创作开发活动。受托方的主要责任是根据委托合同规定的目标开发出符合条件的软件。关于委托开发软件著作权的归属,《计算机软件保护条例》第十二条规定:“受他人委托开发的软件,其著作权的归属由委托者与受委托者签定书面协议约定,如无书面协议或者在协议中未作明确约定,其著作权属于受委托者。”根据该条的规定,确定委托幵发的软件著作权的归厲应当掌握两条标准:
①委托开发软件系根据委托方的要求,由委托方与受托方以合同确定的权利和义务的关系而进行开发的软件,因此软件著作权归属应当作为合同的重要条款予以明确约定。对于当事人已经在合同中约定软件著作权归属关系的,如事后发生纠纷,软件著作权的归属仍应当根据委托开发软件的合同来确定。
②对于在委托幵发软件活动中,委托者与受委托者没有签定书面协议,或者在协议中未对软件著作权归属作出明确的约定,其软件著作权属于受委托者,即属于实际完成软件的开发者。

软件商标权的保护对象是指(66)。
(66)A.商业软件      B.软件商标      C.软件注册商标        D.已使用的软件商标

【答案】C 【解析】
软件商标权是软件商标所有人依法对其商标(软件产品专用标识)所享有的专有使用权。在我国,商标权的取得实行的是注册原则,即商标所有人只有依法将自己的商标注册后,商标注册人才能取得商标权,其商标才能得到法律的保护。对其软件产品已经冠以商品专用标识,但未进行商标注册,没有取得商标专用权,此时该软件产品专用标识就不能得到商标法的保护,即不属于软件商标权的保护对象。未注册商标可以自行在商业经营活动中使用,但不受法律保护。未注册商标不受法律保护,不等于对使用未注册商标行为放任自流。为了更好地保护注册商标的专用权和维护商标使用的秩序,需要对未注册商标的使用加以规范。所以《商标法》第四十八条专门对使用未注册商标行为做/规定。未注册商标使用人不能违反此条规定,否则商标行政主管机关将依法予以查处。

下列攻击方式中,(67)不是利用TCP/IP漏洞发起的攻击。
(67)A.SQL注入攻击   B.Land攻击        C.Ping of Death     D.Teardrop攻击

【答案】A 【解析】本题考查网络安全攻击的基础知识。
SQL注入攻击是指用户通过提交一段数据库查询代码,根据程序返回的结果,获得攻击者想要的数据,这就是所谓的SQL
Injection,即SQL注入攻击。这种攻击方式是通过对数据库查询代码和返回结果的分析而实现的。
Land攻击是指攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
Ping of
Death攻击是攻击者向被攻击者发送一个超过65536字节的数据包ping包,由于接收者无法处理这么大的ping包而造成被攻击者系统崩溃、挂机或重启。
Teardrop攻击就是利用IP包的分段/重组技术在系统实现中的一个错误,即在组装IP包时只检查了每段数据是否过长,而没有检查包中有效数据的长度是否过小,当数据包中有效数据长度为负值时,系统会分配一个巨大的存储空间,这样的分配会导致系统资源大量消耗,直至重新启动。
通过以上分析,可知Land攻击、Ping of Death攻击和Teardrop攻击均是利用TCP/IP的漏洞所发起的攻击。

下列安全协议中(68)是应用层安全协议。
(68)A.IPSec         B.L2TP          C.PAP               D.HTTPS

【答案】D 【解析】本题考査网络安全协议的基础知识。
IPSec是IETF制定的IP层加密协议,PKI技术为其提供了加密和认证过程的密钥管理功能。IPSec主要用于开发新一代的VPN。
L2TP是一种二层协议主要是对传统拨号协议PPP的扩展,通过定义多协议跨越第二层点对点链接的一个封装机制,来整合多协议拨号服务至现有的因特网服务提供商点,保证分散的远程客户端通过隧道方式经由Internet等网络访问企业内部网络。
PAP协议是二层协议PPP协议的一种握手协议,以保证PPP链接安全性。
HTTPS是一个安全通信通道,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,所有的数据在传输过程中都是加密的。

某服装店有甲、乙、丙、丁四个缝制小组。甲组每天能缝制5件上衣或6条裤子;乙组每天能缝制6件上衣或7条裤子;丙组每天能缝制7件上衣或8条裤子;丁组每天能缝制8件上衣或9条裤子。每组每天要么缝制上衣,要么缝制裤子,不能弄混。订单要求上衣和裤子必须配套(每套衣服包括一件上衣和一条裤子)。只要做好合理安排,该服装店15天最多能缝制(69)套衣服。
(69)A.208           B.209               C.210               D.211

【答案】D 【解析】本题考查数学应用能力
根据题意,甲、乙、丙、丁四组做上衣和裤子的效率之比分别为5/6、6/7、7/8、8/9,并且依次增加。因此,丁组做上衣效率更高,甲组做裤子效率更高。为此,安排甲组15天全做裤子,丁组15天全做上衣。
设乙组用x天做上衣,15-x天做裤子;丙组用y天做上衣,15-y天做裤子,为使上衣和裤子配套,则有
0+6x+7y+8*15=6*15+7(15-x)+8(15-y)+0 所以,13x+15y=13*15,y=13-13x/15
15天共做套数6x+7y+8*15=6x+7(13-13x/15)+120=211-x/15 只有在x=0时,最多可做211套。
此时,y=13,即甲乙丙丁四组分别用0、0、13、15天做上衣,用15、15、2、0天做裤子。

生产某种产品有两个建厂方案:(1)建大厂,需要初期投资500万元。如果产品销路好,每年可以获利200万元;如果销路不好,每年会亏损20万元。(2)建小厂,需要初期投资200万元。如果产品销路好,每年可以获利100万元;如果销路不好,每年只能获利20万元。
市扬调研表明,未来2年这种产品销路好的概率为70%。如果这2年销路好,则后续5年销路好的概率上升为80%;如果这2年销路不好,则后续5年销路好的概率仅为10%。为取得7年最大总收益,决策者应(70)。
(70)A.建大厂,总收益超500万元         B.建大厂,总收益略多于300万元
C.建小厂,总收益超500万元         D.建小厂,总收益略多于300万元

【答案】B 【解析】本题考查数学应用能力。 采用决策树分析方法解答如下:
先画决策树,从左至右逐步画出各个决策分支,并在各分支上标出概率值,再在最右端分别标出年获利值。然后,从右至左,计算并填写各节点处的期望收益。
这里写图片描述
在右面四个节点处依次按下列算式计算5年的期望值,并将结果分别写在节点处。 节点④:{200*0.8+(-20)*0.2}*5=780
节点⑤:{200*0.1+(-20}*0.9)*5=10 节点⑥:{100*0.8+20*0.2}*5=420
接点⑦:{100*0.1+20*0.9}*5=140
再在②、③节点处按如下算式计算2年的期望值(扣除投资额),并将结果(7年总收益)写在节点处。
节点②:{200*0.7+(-20)*0.3}*2+{780*0.7+10*0.3}-500=317
节点③:{100*0.7+20*0.3}*2+{420*0.7+140*0.3}-200=288
由于节点②处的总收益值大于节点③处的总收益值。因此决定建大厂。

Software architecture reconstruction is an interpretive, jnteractive, and iterative process including many activities. (71) involves analyzing a system's existing design and implementation artifacts to construct a model of it. The result is used in the following activities to construct a view of the system. The database construction activity converts the72) contained in the view into a standard format for storage in a database. The (73) activity involves defining and manipulating the information stored in database to reconcile, augment, and establish connections between the elements. Reconstruction consists of two primary activities: (74and75). The former provides a mechanism for the user to manipulate architectural elements, and the latter provides facilities for architecture reconstruction.
(71)A.Reverse engineering               B.Information extraction
C.Requirements analysis             D.Source code analysis
(72)A.actors and use cases              B.processes and data
C.elements and relations            D.schemas and tables
(73)A.database normalization            B.schema definition
        C.database optimization             D.view fusion
(74)A.architecture analysis and design  B.domain analysis and static modeling
        C.visualization and interaction     D.user requirements modeling
(75)A.pattern definition and recognition    
B.architecture design and implementation
        C.system architecture modeling
        D.dynamic modeling and reconstruction

【答案】B C D C A 【解析】
软件架构重构是一个解释性、交互式和反复迭代的过程,包括了多项活动。信息提取通过分析系统现有设计和实现工件来构造它的模型。其结果用于在后续活动中构造系统的视图。数据库构建活动把模型中包含的元素和关系转换为数据库中的标准存储格式。视图融合活动包括定义和操作数据库中存储的信息,理顺、加强并建立起元素之间的连接。重构由两个主要活动组成:可视化和交互记及模式定义和识别。前者提供了一种让用户操作架构元素的机制,后者则提供了用于架构重构的设施。

考试科目二:案例分析

试题一
【说明】
某软件公司欲开发一个网络设备管理系统,对管理区域内的网络设备(如路由器和交换机等)进行远程监视和控制。公司的系统分析师首先对系统进行了需求分析,识别出如下3项核心需求:
(a)目前需要管理的网络设备确定为1020种,未来还将有新类别的网络设备纳入到该设备管理系统中;
(b)不同类别的网络设备,监视和控制的内容差异较大;同一类网络设备,监视和控制的内容相似,但不同厂商的实现方式(包括控制接口格式、编程语言等)差异较大;
(c)网络管理员能够在一个统一的终端之上实现对这些网络设备的可视化呈现和管理操作。
针对上述需求,公司研发部门的架构师对网络设备管理系统的架构进行了分析与设计,架构师王工认为该系统可以采用MVC架构风格实现,即对每种网络设备设计一个监控组件,组件通过调用网络设备厂商内置的编程接口对监控指令进行接收和处理;系统管理员通过管理模块向监控组件发送监控指令,对网络设备进行远程管理;网络状态、监控结果等信息会在控制终端上进行展示。针对不同网络设备的差异,王工认为可以对当前的20种网络设备接口进行调研与梳理,然后通过定义统一操作接口屏蔽设备差异。李工同意王工提出的MVC架构风格和定义统一操作接口的思路,但考虑到未来还会有新类别的网络设备接入,认为还需要采用扩展接口的方式支持系统开发人员扩展或修改现有操作接口。公司组织专家进行架构评审,最终同意了王工的方案和李工的改进意见。

【问题1】 请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述,指出该系统中的M、V、C分别对应什么。
MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,控制器负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映自身的变化。
在本系统中,模型(M)代表监控组件、视图(V)代表控制终端、控制器(C)代表管理模块。

本题主要考査MVC架构风格的定义以及扩展接口模式结构的分析与理解。
MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,控制器负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映自身的变化。
在本系统中,模型(M)代表监控组件、视图(V)代表控制终端、控制器(C)代表管理模块。 【问题2】
扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端,它们之间的关系如图 1-1
所示。其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识;每个具体的组件需要实现扩展接口完成实际操作;客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接口根据请求查找并选择合适的实现组件响应客户端请求。请根据上图所示和题干描述,指出扩展接口模式结构中的四个角色分别对应网络设备管理系统的哪些部分;并以客户端发起调用操作这一场景为例,填写表
1-1 中的(1)~(5)。
这里写图片描述
备选答案:基础接口、扩展接口、操作接口、接口ID、客户端、组件。

各个角色与网络设备管理系统的对应关系为: 基础接口对应统一操作接口; 组件对应监控组件: 扩展接口对应新网络设备的操作接口;
客户端对应控制终端。 客户端发起调用操作场景下的描述如下:
这里写图片描述
扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端。其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识。每个具体的组件需要实现扩展接口完成实际操作,客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接U根据请求查找并选择合适的实现组件响应客户端请求。根据题干描述,可以看出基础接口这-角色应该对应统一操作接口,组件这一角色应该对应监控组件,扩展接口这一角色应该对应新网络设备的操作接口,客户端这一角色应该对应控制终端。

试题二
【说明】
某公司正在研发一套新的库存管理系统。系统中一个关键事件是接收供应商供货。项目组系统分析员小王花了大量时间在仓库观察了整个事件的处理过程,并开发出该过程所执行活动的列表:供应商发送货物和商品清单,公司收到商品后执行收货处理,包括卸载商品、确定收到了订单上的商品、处理与供应商的分歧等。对于已有商品,调整其库存信息,对于新采购的商品,在库存中添加新的商品记录。收货完成后,系统执行入库处理,将商品放到仓库对应的货架上。在付款处理活动中,自动生成应付账款信息,如果查询到该供应商有待付款记录,则进行合并付款,付款完成后消除应付账款记录。最后,仓库管理员根据最新的库存商品,调整出货信息。
小王根据自己观察的过程创建了该事件的1层数据流图,如图 2-1 所示。

这里写图片描述

【问题1】 请用300以内文字说明数据流图(Data Flow Diagram)的基本元素及其作用。 四种元素: (1) External
Agent(实体/外部代理):定义位于项目范围之外,但与正在被研发的系统有交互关系的人、部门、外部系统或组织。 (2)
Process(加工/处理):在输入数据流或条件上执行,或者对输入数据流或条件做出响应的工作。 (3) Data
Store(数据存储):静止的数据,表示系统中需要保存的数据。 (4) Data
Flow(数据流):运动中的数据,表示到一个过程的数据输入,或者来自一个过程的数据输出。

本题考查系统过程建模的相关知识。 数据流图(Data Flow
Diagram)从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。为了表达数据处理过程的数据加工情况,用一个数据流图往往是不够的。层次结构的数据流图按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。
本问题考查数据流图中包含的元素及其作用。
数据流图通过外部代理(实体)描述系统与外界之间的数据交互关系,内部的活动通过处理(加工)表示,用数据流描述系统中不同活动之间的数据传输内容和方向,需要持久化存储的数据用数据存储表示,一般用文件系统或者数据库表存储数据-数据流图中所包含的四种元素:
(1) 外部实体(External Agent)定义位于项目范围之外,但与正在被研发的系统有交互关系的人、部门、外部系统或组织; (2)
加工(Process)在输入数据流或条件上执行,或者对输入数据流或条件做出响应的工作; (3) 数据存储(Data
Store)描述静止的数据,表示系统中需要保存的数据; (4) 数据流(Data
Flow)描述运动中的数据,表示到一个过程的数据输入,或者来自一个过程的数据输出。 【问题2】
数据流图在绘制过程中可能出现多种语法错误,请分析上图所示数据流图中哪些地方有错误,并分别说明错误的类型。 四种错误: (1)
D1到A2:缺少移动数据流的加工。 (2) P5.3:没有输出数据流,输入输出不平衡。 (3) P5.4:没有输入数据流,输入输出不平衡。
(4) D2:数据存储没有输出的数据流。

本问题考查数据流图绘制过程中常见的错误。
数据流图中的错误包括两类:第一类是逻辑错误,加工节点输入输出不平衡,包括黑洞、灰洞和无输入三种类型;第二类是语法错误,比如数据存储不完整、在数据存储与外部代理之间或者各自之间没有经过加工之间发生数据流等。根据图2-1所示,P5.3和P5.4属于逻辑错误,数据流图不平衡,D2没有输出数据流,D1到A2缺少加工等属于第二类错误。

【问题3】 系统建模过程中为了保证数据模型和过程模型的一致性,需要通过数据-过程-CRUD矩阵来实现数据模型和过程模型的同步,请在表 2-1
所示CRUD矩阵(1)~(5)中填入相关操作。

这里写图片描述
(1) R (2) R (3) CRU (4) RU (5) CRUD

CRUD(Create\Read\Update\Delete)矩阵用于检查系统建模过程中数据模型和过程模型的一致性,分别表示了加工对于数据的新增、读取、修改和删除四种操作。根据需求陈述和表2-1所示内容,P5.1收货处理和P5.4付款处理两个加工分别需要获得供应商的货运信息和付款记录,(1)和(2)处为读取操作(R);P5.2入库处理中需要添加新的商品记录或者查询并修改现有商品的库存信息,(3)处为创建、读取和更新操作;P5.3凋整出货会读取并修改库存商品信息,(4)处为读取和修改操作(RU);P5.4付款处理中除了生成付款记录、读取或修改付款记录外,对于己经付款的信息要消除应付款信息,所以(5)处为新増、读取、修改和删除四种操作(CRUD)。

试题三
【说明】
构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。某公司长期从事飞行器电子设备研制工作,已积累了大量成熟软件。但是,由于当初管理和设计等原因,公司的大量软件不能被复用,严重影响了公司后续发展。公司领导层高度重视软件复用问题,明确提出了要将本公司的成熟软件进行改造,建立公司可复用的软件构件库,以提升开发效率、降低成本。公司领导层决定将此项任务交给技术部门的王工程师负责组织实施。两个月后,王工程师经过调研、梳理和实验,提交了一份实施方案。此方案得到了公司领导层的肯定,但在实施过程中遇到了许多困难,主要表现在公司软件架构的变更和构件抽取的界面等方面。

【问题1】 请用200字以内文字说明获取构件的方法有哪几种?开发构件通常采用哪几种策略?并列举出两种主流构件标准。
基于构件的软件开发中,可以通过不同的途径来获取构件,主要包括以下4种方法: (1)
从现有构件中获得符合要求的构件,直接使用或做适应性修改,得到可复用的构件; (2) 通过遗留工程(Legacy
Engineering),将具有潜在复用价值的软件提取出来,得到可复用的构件; (3)
从市场上购买现成的商业构件,BPCOTS(Commercial Off-The-Shell)构件; (4) 开发新的符合要求的构件。
开发构件通常采取3种策略: (1) 分区(partitioning):指的是将问题情景的空间分割成几乎可以独立研究的部分; (2)
抽象(abstraction):是对在给定实践内执行指定计算的软/硬件申.元的一种抽象; (3)
分割(segmentation):是将结构引入构件的行为,支持对行为性质进行时序推理。 当前主流构件标准有: (1)
CORBA:由OMG(对象管理集团)制定; (2) COM/DCOM:由Microsoft制定; (3)
EJB:由SUN的Java企业Bean制定。

本题考查软件构件(component)基本概念、提取构件需要采取的一般方法,通过一种简单的实例,重点考查考生对构件知识使用的掌握程度。
此类题B要求考生认真阅读题目对问题的描述,通过自己对构件知识的掌握的程度,采用总结、抽象和概括等的方式,从问题描述中发现问题的相关性,正确回答问题。
构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。从传统意义上来讲,构件就是一种可独立开发、具备独立功能的一类软件。它具备有独立性、可重用性、可组装性、可配置性等特点,构件没有大小之分,可通过将几个构件组装成一个新构件。
通常情况下,软件人员在从事开发时,在分析和论证的基础上,提炼出适合本项目需要的构件,这样可降低软件开发成本、缩短开发周期。软构件可通过多种途径获取,目前可主要归纳为以下四种方法:
(1) 修改已有构件:从现有构件中获得符合要求的构件,直接使用或做适应性修改,得到可复用的构件: (2)
封装新构件:通过遗留工程(Legacy Engineering),将具有潜在复用价值的软件提取出来,得到可复用的构件; (3)
COTS构件:从市场上购买现成的商业软件(构件),通过处理形成满足自己需要的构件,BIJCOTS(Commercial
Off-The-Shell)构件; (4)新开发构件:针对项目需要,在分许、评估的基础上,开发新的符合要求的构件。
软件构件的幵发方法通常包括了分区(partitioning)、抽象(abstraction)和分割(segmentation)等三种。分区指的是将问题情景的空间分割成几乎可以独立研究的部分;抽象是对在给定实践内执行指定计算的软/硬件单元的一种抽象;分割是将结构引入构件的行为,支持对行为性质进行时序推理。通俗地说,分区就是在空间上对软件进行划分,保证构件在空间上具备独立特性,分割就是按软件程序的执行行为特征,按时间关系进行分解,保证构件在时间上具备独立特性,抽象就是按软件功能独立性进行分解和抽象。目前,基于构件的软件体系标准是由OMG(对象管理集团)制定的CORBA标准、由Microsoft公司制定COM/DCOM标准和由SUN的Java企业Bean制定EJB标准。

【问题2】 由于该公司已具备大量的成熟软件,王工程师此次的主要工作就是采用遗留工程 (Legacy
Engineering)方法,将具有潜在复用价值的软件提取出来,得到可复用的构件。因此,在设计软件时与原开发技术人员产生了重大意见分歧,主要分歧焦点在于大家对构件概念理解上的差异。请根据你对构件的理解,判断表
3-1 给出的有关构件的说法是否正确,将答案写在答题纸上。
这里写图片描述

(1)√(2)×(3)×(4)√(5)×(6)×

本问题主要考查考生对构件基本知识的掌握程度,通过判断正确、错误的形式,考察考生对构件概念正确性理解。每个判断题正确的描述如下: (1)
“构件是系统中的一个封装了设计与实现,而只披露接口的可更换的部分”。此种描述是正确的。 (2)
“构件是解决软件复用的基础,复用的形式可分为垂直式复用和水平式复用。而垂直式复用的主要关键点在于领域分析,具有领域特征和相似性,受到广泛关注”。垂直式复用是与领域特性相关的,而水平式复用是一种公用的服务,不予某个特殊领域相关。
(3)
“构件构建在平台之上,平台提供核心平台服务,是构件实现与构件组装的基础。构件组装通常采用基于功能的组装技术、基于数据的组装技术和面向对象的组装技术等三种技术”。配置只是一种构件功能组合动态方法,而不是构件组装的技术。
(4)
“软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成”。该描述是正确的。
(5)
“构件可分为硬件构件、软件构件、系统构件和应用构件。RTL(运行时库)属于软件构件,由于RTL可适应多种应用领域,所以RTL与属于水平式复用构件”。RTL是C/C++语言为用户提供的一种运行时库,如数学库、stdio库等,它可服务于多种应用,而与领域需求无关,所以说RTL不属于垂直式复用构件。
(6)
“硬件构件的功能被给定的硬件结构如ASIC预先确定,他是不能修改的。同样,软件构件的功能由在FPGA或者CPU上的软件确定的,我们将加载在软件构件上的软件称为作业。将作业分配给适当的可以执行该作业的硬件单元就创建了新的构件。软件构件的功能所以在构件的寿命期中可以修改”。

【问题3】
王工程师的实施方案指出:本公司的大部分产品是为用户提供标准计算平台的,而此平台中的主要开发工作是为嵌入式操作系统研制板级支持软件(BSP)。为了提高BSP软件的复用,应首先开展BSP构件的开发,且构件架构应符合国外GENESYS规范定义的嵌入式系统架构风格。图
3-1 给出了架构风格定义的构件通用接口,其中:链接接口
(LIF)是构件对外提供的功能服务接口;局部接口建立了构件和它的局部环境的连接,如传感器、作动器或人机接口;技术相关接口(TDI)提供了查看构件内部、观察构件的内部变量的手段,如诊断等;技术无关接口(TII)用来在运行时配置、复使、重启构件的接口。现需要针对BSP中常用的RS-232串行驱动程序设计一个可复用的软构件,请说明该软构件四类接口的具体功能。
这里写图片描述
RS-232驱动程序主要完成对RS-232芯片的初始化,实现RS-232数据发送、接收和控制等功能。依据GENESYS规范定义的构件接口含义,RS-232驱动程序构件的接口定义如下:
(1)链接接口
RS-232驱动构件的使用者是上层的操作系统或应用软件,本构件应该给他们提供串行接口的数据发送、数据接收服务(1分)。因此,链接接口至少包括以下功能服务:
• Send():处理机中的程序向RS-232芯片输出数据; • Receive():处理机中的程序通过RS-232芯片从外部接收数据; •
Init232():初始化RS-232芯片。 (2) 局部接口
RS-232驱动构件的局部接口应该是RS-232芯片为编程提供的各类寄存器和CPU对外围芯片的支持,此接口与硬件紧密相关。就RS-232芯片而言,局部接口至少包括以下功能服务:
• Intconnect():将RS-232芯片的外部中断向量连接到CPU; •
Rcad():从RS-232芯片中读取寄存器的内容(包括控制、状态类寄存器和数据输入寄存器); •
Write():将控制信息或输出的数据写入RS-232芯片的相应寄存器。 (3) 技术相关接口
RS-232驱动构件的技术相关接口应该是RS-232驱动构件为维护人员提供的芯片诊断接口,此接口与硬件和应用紧密相关。就RS-232芯片使用而言,技术相关接口至少包括以下诊断功能服务: • Datacheck():诊断数据传输校验的错误。 (4) 技术无关接口
RS-232驱动构件的技术无关接口应该是RS-232驱动构件为编程人员提供的芯片初始化或运行时的配置接口。技术无关接口至少包括以下功能服务:
• Reset():RS-232芯片或驱动构件复位; • Restart():RS-232芯片或驱动构件重启动; •
Rateconfigure():配置、重新配置RS-232传输速率。

本问题要求考生根据自己掌握的构件基本知识,结合图3-1给出的一种构件接口要求,在分析题干的基础上,针对一个驱动实例,完成串行接口的驱动软构件的设计。
RS-232驱动程序是每个从事嵌入式软件开发人员都知道的一种软件,它主要完成对RS-232芯片的初始化,实现RS-232数据发送、接收和控制等功能。本题要求考生将这些功能(服务)有效地分解到图3-1定义的构件四类接口。如果考生具有一定实际经验,就可完成次设计。下面简要说明答题思路:
(1) 链接接口
RS-232驱动构件的使用者是上层的操作系统或应用软件,本构件应该给他们提供串行接口的数据发送、数据接收服务。因此,链接接口至少包括以下功能服务:
• Send():处理机中的程序向RS-232芯片输出数据; • Receive():处理机中的程序通过RS-232芯片从外部接收数据; •
Init232():初始化RS-232芯片。 (2) 局部接口
RS-232驱动构件的局部接口应该是RS-232芯片为编程提供的各类寄存器和CPU对外围芯片的支持,此接口与硬件紧密相关。就RS-232芯片而言,局部接口至少包括以下功能服务:
• Intconnect():将RS-232芯片的外部中断向量连接到CPU; •
Read():从RS-232芯片中读取寄存器的内容(包括控制、状态类寄存器和数据输入寄存器); •
Write():将控制信息或输出的数据写入RS-232芯片的相应寄存器。 (3) 技术相关接口
RS-232驱动构件的技术相关接口应该是RS-232驱动构件为维护人员提供的芯片诊断接口,此接口与硬件和应用紧密相关。就RS-232芯片使用而言,技术相关接口至少包括以下诊断功能服务: • DatacheckO:诊断数据传输校验的错误。 (4) 技术无关接口
RS-232驱动构件的技术无关接口应该是RS-232驱动构件为编程人员提供的芯片初始化或运行时的配置接口。技术无关接口至少包括以下功能服务:
• Reset():RS-232芯片或驱动构件复位; • Restart():RS-232芯片或驱动构件重启动; •
Rateconfigure():配置、重新配置RS-232传输速率。
问题3的解答内容仅供参考,每一类接口提供的服务格式、分类等可以有差异,但对于RS-232驱动构件每种功能分类一致即可。

试题四
【说明】
某电子商务公司拟升级目前正在使用的在线交易系统,以提高客户网上购物时在线支付环节的效率和安全性。公司研发部门在需求分析的基础上,给出了在线交易系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求、架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:
(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;
(b)用户的信用卡支付必须保证99.999%的安全性;
(c)系统升级后用户名要求至少包含8个字符; 
(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;
(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能;
(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;
(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;
(h)需要在30人月内为系统添加公司新购买的事务处理中间件;
(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性;
(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点;
(k)用户信息数据库授权必须保证99.999%可用;
(l)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成;
(m)系统需要为后端工程师提供远程调试接口,并支持远程调试。

【问题1】 在架构评估过程中,质量属性效用树(utility
tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图 4-1
中(1)、(2)空白处;并选择题干描述的(a)~(m),填入(3)~(6)空白处,完成该系统的效用树。
这里写图片描述

这里写图片描述

本题主要考查考生对软件架构评估、软件质量属性以及架构评估中相关概念的理解与掌握。考生应该在熟记基础概念的基础上结合实际问题灵活掌握并应用这些概念。
在解答本题时,首先需要对题干中的所有软件需求描述进行分析与梳理,区分并找出其中的需求分析、软件质量属性描述,或者可能的风险、权衡点或敏感点描述。具体列举如下:
(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求,对应性能属性。
(b)用户的信用卡支付必须保证99.999%的安全性,对应安全性属性。 (c)系统升级后用户名要求至少包含8个字符,对应软件业务需求。
(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统,对应可用性属性。
(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能,对应性能属性。
(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能,系统权衡点。
(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计,对应系统敏感点。
(h)需要在30人月内为系统添加公司新购买的事务处理中间件,对应可修改性属性。
(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性,对应系统风险。
(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点,对应可用性属性。
(k)用户信息数据库授权必须保证99.999%可用,对应安全性属性。
(l)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成,对应可修改性属性。
(m)系统需要为后端工程师提供远程调试接口,并支持远程调试,对应可测试性属性。 在架构评估过程中,质量属性效用树(utility
tree)是对系统质量属性进行识别和优先级排序的重要工具。效用树主要关注性能、可修改性、可用性和安全4个方面,考生首先必须填入对应的质量属性名称,并根据上述分析依次填入合适的标号。
【问题2】
在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)〜(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。

系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。 敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。
权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。
题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点;(f)描述的是权衡点。

系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。权衡点是影响多个质量属性,并对多个质景属性来说都是敏感点的系统属性。根据上述分析可知题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点:(f)描述的是权衡点。

试题五
【说明】
某软件公司开发运维了一个社交网站系统,该系统基于开源软件平台LAMP(Linux+Apache+MySQL+PHP)构建,运行一段时间以来,随着用户数量及访问量的增加,系统在Web服务器负载、磁盘I/O等方面出现了明显瓶颈,已不能满足大量客户端并发访问的要求,因此公司成立了专门的项目组,拟对系统架构进行调整以提高系统并发处理能力。目前系统采用了传统的三层结构,系统架构如图 5-1 所示。

这里写图片描述

【问题1】
针对目前出现的Web服务器负载过大问题,项目组决定在客户端与中间层Web服务器之间引入负载均衡器,通过中间层Web服务器集群来提高Web请求的并发处理能力。在讨论拟采用的负载均衡机制时,王工提出采用基于DNS的负载均衡机制,而李工则认为应采用基于反向代理的负载均衡机制,项目组经过讨论,最终确定采用李工提出的方案。请用200字以内的文字,分别简要说明两个机制的基本原理;并从系统执行效率、安全性及简易性等方面将两种机制进行对比,将对比结果填入表
5-1 中。
这里写图片描述
两种机制的基本原理: 基于DNS的负载均衡机制通过DNS服务器实现,通常通过循环复用具有同一域名的多个主机地址的服务器实现负载均衡。
反向代理负载均衡则是将来自Internet的连接请求以反向代理的方式动态转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。
这里写图片描述
本题考查大型Web应用访问效率优化相关技术手段。 本问题考查典型负载机制相关知识。
负载均衡机制是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,典型的负载均衡机制包括基于DNS的负载均衡、基于反向代理的负载均衡等。
基于DNS的负载均衡机制通过DNS服务器实现,通常通过循环复用具有同一域名的多个主机地址的服务器实现负载均衡,可以看出,该机制具有实现简单、容易实施及低成本的特性。反向代理负载均衡则是将来自Internet的连接请求以反向代理的方式动态转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。
从系统执行效率方面讲,基于DNS的负载均衡机制实现简单,但其通常不能区分服务器的差异,也不能反映服务器的当前运行状态。基于反向代理的则可以根据内部服务器的性能差异及实时负载情况进行动态负载均衡,当系统多个Web服务器性能存在明显差异或内部Web服务器出现故障时,负载均衡器可以更快做出响应,从而保证客户端的访问效率。采用基于反向代理的负载均衡机制,可在代理服务器中引入调速缓存机制,对Web服务器返回的静态页面或图片等静态资源进行缓存,由代理服务器承担对原始服务器的静态资源访问请求,从而进一步降低原始Web服务器的负载。
从安全性方面讲,采用基于反向代理的负载均衡机制,代理服务器屏蔽了客户端对真实Web服务器的直接访问,恶意用户无法对真实Web服务器进行攻击,且可以通过代理服务器为原本不安全的客户端与Web服务器之间的连接建立安全通道。因此采用基于反向代理的负载均衡机制可为系统提供更好的安全性保障。
【问题2】
针对并发数据库访问所带来的磁盘I/O瓶颈问题,项目组决定在数据层引入数据库扩展机制。经过调研得知系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,且系统运行时发生的大部分数据库操作为查询操作。经过讨论,项目组决定引入数据库分区和MySQL主从复制两种扩展机制。数据库分区可采用水平分区和垂直分区两种方式,请用350字以内的文字说明在本系统中应采用哪种方式及其原因,并分析引入主从复制机制给系统带来的好处。
(1)
本系统中应主要使用水平分区机制。根据已知信息,系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,采用水平分区机制可根据用户标识将用户数据进行水平分割,用户操作时先将请求分发到不同数据库分区,再进行具体数据库操作,以提高数据库访问效率。
(2) 引入主从复制机制所带来的好处:
①避免数据库单点故障:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。
②提高査询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据査询操作,从而将査询操作分担到不同的从服务器以提高数据库访问效率。

本问题考查数据库集群相关知识。
根据已知信息,系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,采用水平分区机制可根据用户标识将用户数据进行水平分割,用户操作时先将请求分发到不同数据库分区,再进行具体数据库操作,以提高数据库访问效率。因此本系统中应主要使用水平分区机制。
在系统中引入主从复制机制,首先可以利用主从复制机制的备份功能避免系统数据库单点故障;其次已知“系统运行时发生的大部分数据库操作为查询操作”。因此可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。
【问题3】 为进一步提高数据库访问效率,项目组决定在中间层与数据层之间引入缓存机制。赵工开始提出可直接使用MySQL的查询缓存(query
cache)机制,但项目组经过分析好友动态显示等典型业务的操作需求,同时考虑已引入的数据库扩展机制,认为查询缓存尚不能很好地提升系统的查询操作效率,项目组最终决定在中间层与数据层之间引入Memcached分布式缓存机制。
(a)请补充下述关于引入Memcached后系统访问数据库的基本过程:系统需要读取后台数据时,先检查数据是否存在于(1)中,若存在则直接从其中读取,若不存在则从(2)中读取并保存在(3)中;当(4)中数据发生更新时,需要将更新后的内容同步到(5)实例中。(备选答案:数据库、Memcacbed
缓存) (b)请结合已知信息从缓存架构、缓存有效性及缓存数据类型等方面分析使用Memcached代替数据库查询缓存的原因。

(a) (1) Memcached缓存 (2) 数据库 (3) Memcached缓存 (4) 数据库 (5) Memcached缓存
(b) 使用Memcached代替数据库查询缓存的原因: (1)
缓存架构:数据库查询缓存通常每个数据库只有一个实例,因此存储内容受数据库服务器可用内存限制,可缓存数据有限。而Memcached可采用高速分布式缓存服务器结构,不受数据库服务器约束,可扩展性更好。
(2)
缓存有效性:数据库查询缓存只要在发生写操作时就会失效,即使更新的是数据库中的其他行。而Memcached可通过键值将数据进行散列缓存,有效降低缓存的更新频率,从而提髙缓存的有效性。
(3)
缓存数据类型:数据库查询缓存只能缓存数据库行,对社交网站好友动态显示等典型业务所需要的组合数据缓存缺乏有效支持,而Memcached理论上可缓存任何内容。因此可以将分散在数据库中的关系或者列表组合后进行缓存,以提高缓存数据的针对性和效率。

本问题考查数据缓存机制相关知识。
引入Memcached后系统访问数据库的基本过程为:系统需要读取后台数据时,先检査数据是否存在于Memcached中,若存在则直接从Memcached中读取,或不存在则从数据库中读取并保存在Memcached中;当系统数据库中数据发生更新时,需要将更新后的内容同步到Memcached缓存实例中。
与MySQL查询缓存相比,使用Memcached机制存在以下优势: (1)
缓存架构:数据库查询缓存通常每个数据库只有一个实例,因此存储内容受数据库服务器可用内存限制,可缓存数据有限;而Memcached可采用高速分布式缓存服务器结构,不受数据库服务器约束,可扩展性更好。
(2)
缓存有效性:数据库查询缓存只要在发生写操作时就会失效,即使更新的是数据库中的其他行;而Memcached可通过键值将数据进行散列缓存,有效降低缓存的更新频率,从而提高缓存的有效性。
(3)
缓存数据类型:数据库杏询缓存只能缓存数据库行,对社交网站好友动态显示等典型业务所需要的组合数据缓存缺乏有效支持,而Memcached理论上可缓存任何内容,因此可以将分散在数据库中的关系或者列表组合后进行缓存,以提高缓存数据的针对性和效率。

考试科目三:论文

试题一 论软件需求管理
软件需求管理是一个对系统需求变更了解和控制的过程。需求管理过程与需求开发过程相互关联,初始需求导出的同时就要形成需求管理规划,一旦启动了软件开发过程,需求管理活动就紧密相伴。
需求管理过程中主要包含变更控制、版本控制、需求跟踪和需求状态跟踪等4项活动,其目标是为项目管理人员建立一个软件需求基线,并保持软件计划、产品和活动与软件需求的一致性。

请围绕“软件需求管理”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.详细描述需求管理过程中各个活动中的主要工作。
3.详细说明你所参与的软件开发项目中,是如何进行软件需求管理的,实施的具体效果如何。

写作要点 一、简要描述所参与分析和开发的企业应用系统开发项目,并明确指出在其中承担的主要任务和开展的主要工作。
二、需求管理过程中主要包含变更控制、版本控制、需求跟踪和需求状态跟踪四项活动。
1.变更控制活动的主要工作包括以下三项: (1)问题分析和变更描述。需要识别和分析需求问题,产生一个明确的需求变更提议。 (2)变更分析和成本计算。使用可追溯性信息和系统需求的一般知识,对需求变更提议进行影响分析和评估。
(3)变更实现。这个过程要求需求文档和系统设计以及实现都要同时修改。
2.版本控制活动主要包括定义需求文档的版本格式、制订需求文档的修改模式和确定需求文档版本等三项工作。
3.需求跟踪活动主要包括定义对其他需求的跟踪能力(联系)链和定义和编制每个需求同系统元素之间的联系文档等两项工作。
4.需求状态跟踪活动主要包括定义需求状态和跟踪需求每一个状态等两项工作。 三、以考生实际参与的软件系统开发项目为基础,描述该项目是如何进行软件需求管理的。考生回答时必须以项目实际的需求管理工作为基础,详细描述如何进行变更控制、版本控制、需求跟踪和需求状态跟踪等四项活动。

试题二 论非功能性需求对企业应用架构设计的影响
企业应用架构(Enterprise Application Architecture)描述了企业IT系统的功能和技术实现内容,它在企业信息化建设中起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各IT系统的定位和功能。企业应用架构包括了企业的应用架构蓝图、架构标准、系统的边界和定义、系统间的关联关系等。其中非功能性需求是进行企业应用架构设计时需要重点考虑的因素,不同类型的非功能性需求从不同侧面影响应用系统的架构设计。

请围绕“非功能性需求对企业应用架构设计的影响”论题,依次从以下三个方面进行论述。
1.概要叙述你参与分析和开发的企业应用系统项目以及你所担任的主要工作。
2.分析在企业应用架构设计中应该考虑哪些非功能性需求,详细阐述这些非功能性需求是如何影响架构设计的。
3.详细说明你所参与的企业应用系统项目中,在进行系统架构设计时,考虑了哪些非功能性需求,如何通过架构设计满足了系统的这些非功能性需求。

写作要点 —、简要描述所参与分析和开发的企业应用系统开发项目,并明确指出在其中承担的主要任务和开展的主要工作。
二、分析在企业应用架构设计中应该考虑哪些非功能性需求,详细阐述这些非功能性需求是如何影响架构设计的。
在企业应用架构设计中应考虑的非功能需求主要包括四类:
(1)操作性需求。操作性需求指定了系统完成任务所需的操作环境及其可能的改变。它通常指操作系统、系统软件及需要交互的系统中所使用的信息系统,有时也包括比较重要的物理环境因素。操作性需求包括技术环境需求、系统集成需求、可移植性需求、可维护性需求。
(2)性能需求。性能需求的核心是性能问题,如响应时间、容量和可靠性。每一个需求必须是可测量的,才能进行基准比较,进而检验性能需求的成果。性能需求包括速度需求、容量需求、可用性与可靠性需求。
(3)安全需求。安全性是防止信息系统崩溃和数据丢失的能力。新系统的开发人员必须保证系统的安全需求,提供合理的预防措施以防止问题发生。安全性需求包括访问控制需求、加密与验证需求、病毒控制需求。
(4)文化与政治需求。文化与政治需求是指针对使用系统的不同国家所特有的需求。商业全球化背景下,企业扩展它们的系统以便供全世界的用户使用,从而创造巨大的商业价值。系统设计的一个重要方面是理解系统的世界文化和政治需求。文化与政治需求包括多语种需求、用户定制需求、未申明的术语、法律需求。
三、针对作者实际参与的企业应用系统开发项目,分别按照操作性需求、性能需求、安全需求和文化与政治需求中的一个或多个需求,说明如何选择和设计企业应用架构,并描述该架构设计所产生的实际应用效果是如何满足对应需求的。

试题三 论软件的可靠性设计
现代军事和商用系统中,随着系统中软件成分的不断增加,系统对软件的依赖性越来越强。软件可靠性已成为软件设计过程中不可或缺的重要组成部分。实践证明,保障软件可靠性域有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制,由此提出了可靠性设计的概念。可靠性设计就是在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户的功能和性能需求的同时,全面满足软件的可靠性要求。

请围绕“软件的可靠性设计”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.简要说明目前比较主流的软件可靠性设计技术,结合项目实际情况,阐述所选择的可靠性设计技术及其原因。
3.结合你具体参与管理和开发的实际项目,举例说明所选取的软件可靠性技术的具体实施过程,并详细分析实施效果。

写作要点 一、简要叙述你参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。
二、一般来说,被认可的且具有应用前景的软件可靠性设计技术主要有容错设计、检错设计和降低复杂度设计等技术。
1.容错设计技术 对于软件失效后果特别严重的场合,如尤机的飞行控制系统、空中交通管制系统及核反应堆安全控制系统等,可采用容错设计方法。常用的软件容错技术主要有恢复块设计、N版本程序设计和冗余设计三种方法。
(1)恢复块设计
恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变成恢复块。一个恢复块包含若干个功能相同、设计差异的程序块文本,每一时刻有一个文本处于运行状态。一旦该文本出现故障,则用备份文本加以替换,从而构成“动态冗余”。
(2)N版本程序设计
N版本程序的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一模块/版本的故障提供错误的服务,以实现软件容错。
(3)冗余设计
软件冗余设计技术实现的原理是在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时可以使用冗余的部分进行替换,从而维持软件系统的正常运行。
2.检错设计 在软件系统中,对无需在线容错的地方或不能采用冗余设计技术的部分,如果对可靠性要求较高,故障有可能导致严重的后果。这时一般采用检错技术,在软件出现故陣后能及时发现并报箐,提醒维护人员进行处理。
采用检错设计技术需要着重考虑儿个要素:检测对象、检测延时、实现方式和处理方式。
(1)检测对象,即检测点和检测内容。在设计时应考虑把检测点放在容易出错的地方和出错对软件系统影响较大的地方,检测内容选取那些有代表性的、易于判断的指标。
(2)检测延时,在软件检错设计时要充分考虑到检测延时,如果延时长到影响故障的及时报膂,则需要更换检测对象或检测方式。
(3)实现方式,最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理。计算运行时间也是一种常用的技术,如果某个模块或函数运行超过预期的时间,可以判断出现故障。另外,还有置状态标志位等多种方法,自检的实现方式要根据实际情况来选用^
(4)处理方式。大多数检测采用“查出故障一停止软件系统运行一报警”的处理方式,但也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。
3.降低复杂度设计 降低复杂度设计的思想就是在保证实现软件功能的苺础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。
除了容错设计、检错设计和降低复杂度设计技术外,人们尝试着把硬件可靠性设计中比较成熟的技术,如故障树分析(FTA)、失效模式与效应分析(FMEA)等运用到软件可靠性设计领域,这些技术大多数运用一些分析、预测技术,在软件设计时就充分考虑影响软件可靠性的因素,并采取一些措施进行优化。
三、考生需结合自身参与项目的实际状况,指出其参与管理和幵发的项H中是如何应用所选择的软件可靠性设计技术的,说明具体的实施过程、使用的方法和工具,并对实际实施效果进行分析。

试题四 论网络安全体系设计
随着社会信息化的普及,计算机网络已经在各行各业得到了广泛的应用。目前,绝大多数业务处理儿乎完全依赖计算机和网络执行,各种重要数据如政府文件、工资档案、财务账目和人事档案等均依赖计算机和网络进行存储与传输。另一方面,针对计算机和网络的攻击活动曰益猖獗,网络安全已经成为当前社会的主要安全问题之一。
在上述背景下,国家标准《信息处理系统工程开放系统互联基本参考模型——第二部分:安全体系结构》(GB/T9387.2—1995)定义了基于OSI参考模型7层协议之上的信息安全体系,其核心内容是:为了保证异构汁算机进程与进程之间远距离交换信息的安全,定义了认证服务、访问控制服务、数据机密性服务、数据完整性服务和抗抵赖性服务等5大类安全服务,以及提供这些服务的8类安全机制及相应的OSI安全管理,并根据具体系统适当配置于OSI模型的7层协议之中。

请围绕“网络安全体系设计”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中承担的主要工作,并详细阐述该软件系统在网络安全方面的要求。
2.请对GBAT9387.2—1995中定义的5大类安全服务进行描述,阐述每类安全服务的定义和主要实现手段。
3.请结合项目实际,具体阐述你在项目中实现了上述5大类安全服务中的哪些服务,具体运用了哪些实现手段。

写作要点 一、简要叙述所参与管理和开发的软件项目,明确指出在其中承担的主要任务和开展的主要工作,详细说明该软件系统在网络安全方面的要求。
二、GB/T9387.2-1995中定义了5大类安全服务,分别是认证服务、访问控制服务、数据机密性服务、数据完整性服务和抗抵赖性服务。
1.认证服务。认证服务的基本目的,是为了防止其他实体占用和独立操作被认证实体的身份。认证服务提供了实体声称其身份的保证,只有在主题和验证者的关系背景下,认证才有意义。认证服务的主要实现方式包括以下5种:
(1)己有的信息,如认证口令。 (2)拥有的信息,如1C卡、令牌等。 (3)不可改变的特性,如指纹、虹膜等生物特征。
(4)相信可靠的第三方建立的认证。 (5)环境,如主机地址等^
2.访问控制服务。访问控制服务决定开放环境中允许使用哪些资源、在什么地方适合组织为授权访问的过程。在访问控制实例中,访问可以是对一个系统或对系统内部进行。常见的访问控制服务的实现方式包括以下三种方式:
(1)自主访问控制(DAC)。自主访问控制是一种接入控制服务,通过执行基于系统实体身份及其到系统资源的接入授权。包括在文件、文件夹和共享资源中设背许可。用户有权对自身所创建的文件、数据表等访问对象进行访问,并可将其访问权授予其他用户或收回其访问权限。允许访问对象制定针对该对象访问的控制策略,通常可通过访问控制列表来限定针对客体可执行的操作。
(2)强制访问控制(MAC)。强制访问控制是系统强制主体服从访问控制策略,是由系统对用户所创建的对象,按照规定的规则控制用户权限及操作对象的访问。其主要特征是对所有主体及其所控制的进程、文件、段、设备等客体实施强制访问控制。
(3)基于角色访问控制(RBAC)。基于角色访问控制主要通过对角色的访问进行控制,使权限与角色相关联,用户通过成为适当角色的成员而得到其角色的权限。用户可依其责任和资格分派相应的角色,角色可依新需求和系统合并赋予新权限,而权限也可根据需要从某角色中收回。
3.数据机密性服务。数据机密性服务的目的是确保信息仅仅是对被授权者可用,信息的保护可以通过确保数据被限制于授权者获得,或通过特定方式表示数据来获得。信息的机密性主要通过以下两种方式实现:
(1)通过禁止访问提供机密性,即可以通过访问控制,以及通过物理媒体保护和路由选择控制保证机密性。
(2)通过加密提供机密性,即防止数据泄漏在传输或存储中。加密机制包括基于对称的加密机制和基于非对称的加密机制。
除此以外,还可以通过数据填充、通过虚假事件(例如隐藏在不可信链路上交换的信息流总1;)、通过保护PDU头和通过时间可变域提供机密性。
4.数据完整性服务。数据完整性服务的目的是通过阻止威胁或探测威胁,保护可能遭到不同方式危害的数据完整性和数据相关属性完整性,即保证数据不以未经授权方式进行改变或损毁。数据完整性的常见实现方式包括:
(1)阻止对数据传输媒介访问的机制。包括物理隔离、不受干扰的信道,路由控制,访问控制等。
(2)探测对数据非授权修改的机制。包括密封、数字签名、数据重复、与密码变换相结合的数字指纹和消息序列号等。
5.抗抵赖服务。抗抵赖服务是提供有关特定事件或行为的证据,包括证据的生成、验证和记录,以及在解决纠纷时随即进行的证据恢复和再次验证。抗抵赖性服务的实现方式主要包括数字签名、用户认证、操作R志等技术。
三、考生必须以问题1回答中给出的实际网络安全需求为基础和依据,针对实际需求具体阐述在项目中实现了上述5大类安全服务中的哪些服务,并针对每种安全服务,具体描述在项目中采用了何种实现手段。

你可能感兴趣的:(数据库,系统架构,嵌入式)