1、2015年下半年软件水平考试(高级)系统架构师下午(案列分析)真题试卷及答案与解析 一、试题一 0 阅读以下关于软件架构评估的说明,在答题纸上回答问题 1和问题 2。 【说明】 某软件公司拟为某市级公安机关开发一套特种车辆管理与监控系统,以提高特种车辆管理的效率和准确性。在系统需求分析与架构设计阶段,用户提出的部分需求和关键质量属性场景如下: (a)系统用户分为管理员、分管领导和普通民警等三类; (b)正常负载情况下,系统必须在 0 5秒内对用户的车辆查询请求进行响应; (c)系统能够抵御 99 999的黑客攻击; (d)系统的用户名必须以字母开头,长度不少于 5个字符; (e)对查询请求处理
2、时间的要求将影响系统的数据传输协议和处理过程的设计; (f)网络失效后,系统需要在 2分钟内发现并启用备用网络系统; (g)在系统升级时,需要保证在 1个月内添加一个新的消息处理中间件; (h)查询过程中涉及到的车辆实时视频传输必须保证 20帧秒的速率,且画面具有 600480的分辨率; (i)更改系统加密的级别将对安全性和性能产生影响; (j)系统主站点断电后,需要在 3秒内将请求重定向到备用站点; (k)假设每秒中用户查询请求的数量是 10个,处理请求的时间为 30毫秒,则 “在1秒内完成用户的查询请求 ”这一要求是可以实现的; (l)对用户信息数据的授权访问必须保证 99 999的安全性
3、; (m)目前对 “车辆信息实时监控 ”业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性; (n)更改系统的 Web界面接口必须在 1周内完成; (o)系统需要提供远程调试接口,并支持系统的 远程调试。 在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。 1 【问题 1】 在架构评估过程中,质量属性效用树 (utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图 11中 (1)、 (2)空白处;并选择题干描述中的 (a) (o
4、),将恰当的序号填入 (3) (6)空白处,完成该系统的效用树。 2 【问题 2】 在架构评估过程中,需要正确识别系统的架构风 险、敏感点和权衡点,并进行合理的架构决策。请用 300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干描述中的 (a) (o)各选出 1个属于系统架构风险、敏感点和权衡点的描述。 二、试题二 2 阅读以下关于系统设计建模的说明,在答题纸上回答问题 1至问题 3。 【说明】 某公司拟研制一款高空监视无人直升机,该无人机采用遥控一自主复合型控制实现垂直升降。该直升机飞行控制系统由机上部分和地面部分组成,机上部分主要包括无线电传输设备、飞控计算机、导航设备等,地
5、面部分包括遥控操纵设备、无线电传输设 备以及地面综合控制计算机等。其主要工作原理是地面综合控制计算机负责发送相应指令,飞控计算机按照预定程序实现相应功能。经过需求分析,对该无人直升机控制系统纵向控制基本功能整理如下: (a)飞控计算机加电后,应完成系统初始化,飞机进入准备起飞状态; (b)在准备起飞状态中等待地面综合控制计算机发送起飞指令,飞控计算机接收到起飞指令后,进入垂直起飞状态; (c)垂直起飞过程中如果飞控计算机发现飞机飞行异常,飞行控制系统应转入无线电遥控飞行状态,地面综合控制计算机发送遥控指令; (d)垂直起飞达到预定起飞高度后,飞机应进入高度保持状态; (e)飞控计算机在收到地面
6、综合控制计算机发送的目标高度后,飞机应进入垂直升降状态,接近目标高度;垂直升降过程中出现飞机飞行异常,控制系统应转入无线电遥控飞行; (f)飞机到达目标高度后,应进入高度保持状态,完成相应的任务; (g)飞机在接到地面综合控制计算机发送的任务执行结束指令后,进入飞机降落状态; (h)飞机降落过程中如果出现飞机飞行异常,控制系统应转入无线电遥控飞行; (i)飞机降落到指定着陆高度后,进入飞 机着陆状态,应按照预定着陆算法,进行着陆; (j)无线电遥控飞行中,地面综合控制计算机发送着陆指令,飞机进入着陆状态,应按照预定着陆算法,进行着陆。 3 【问题 1】 状态图和活动图是软件系统设计建模中常用的
7、两种手段,请用 200字以内文字简要说明状态图和活动图的含义及其区别。 4 【问题 2】 根据题干中描述的基本功能需求,架构师王工通过对需求的分析和总结给出了无人直升机控制系统纵向控制状态图 (图 21)。请根据题干描述,提炼出相应状态及条件,并完善图 21所示状态图中的 (1) (5),将答案填写 在答题纸中。5 【问题 3】 根据题目中描述的基本功能需求,架构师王工给出了无人直升机控制系统纵向控制的顶层活动图 (图 2-2)。请根据题干描述,完善图 2-2活动图中的 (1) (9),将答案填写在答题纸中。 三、试题三 5 阅读以下关于嵌入式系统可靠性设计方面的描述,回答问题 1至问题 3。
8、 【说明】 某宇航公司长期从事宇航装备的研制工作,嵌入式系统的可靠性分析与设计已成为该公司产品研制中的核心工作,随着宇航装备的综合化技术发展,嵌入式软件规模发生了巨大变化,代码规模已从原来的 几十万扩展到上百万,从而带来了由于软件失效而引起系统可靠性降低的隐患。公司领导非常重视软件可靠性工作,决定抽调王工程师等 5人组建可靠性研究团队,专门研究提高本公司宇航装备的系统可靠性和软件可靠性问题,并要求在三个月内,给出本公司在系统和软件设计方面如何考虑可靠性设计的方法和规范。可靠性研究团队很快拿出了系统及硬件的可靠性提高方案,但对于软件可靠性问题始终没有研究出一种普遍认同的方法。 6 【问题 1】
9、请用 200字以内文字说明系统可靠性的定义及包含的 4个子特性,并简要指出提高系统可靠性一般采用哪些技术 ? 7 【问题 2】王工带领的可靠性研究团队之所以没能快速取得软件可靠性问题的技术突破,其核心原因是他们没有搞懂高可靠性软件应具备的特点。软件可靠性一般致力于系统性地减少和消除对软件程序性能有不利影响的系统故障。除非被修改,否则软件系统不会随着时间的推移而发生退化。请根据你对软件可靠性的理解,给出表 31所列出的硬件可靠性特征与其对应的软件可靠性特征之间的差异或相似之处,将答案写在答题纸上。8 【问题 3】王工带领的可靠性研究团队在分析了大量相关资料基础上,提出软件的质量和可靠性必须在开发
10、过程构建到软件中, 也就是说,为了提高软件的可靠性,必须在需求分析、设计阶段开展软件可靠性筹划和设计。研究团队针对本公司承担的飞行控制系统制定出了一套飞控软件的可靠性设计要求。飞行控制系统是一种双余度同构型系统,输入采用了独立的两路数据通道,在系统内完成输入数据的交叉对比、表决、制导率计算,输出数据的交叉对比、表决、输出等功能,系统的监控模块实现对系统失效或失步的检测与定位。其软件的可靠性设计包括恢复块方法和 N版本程序设计方法。请根据恢复块方法工作原理完成图 3-1,在 (1) (4)中填入恰当的内容。并比较恢复块方法与 N版本程序 设计方法,将比较结果 (5) (8)填入表 3-2中。四、
11、试题四 8 阅读以下关于应用系统数据架构的说明,在答题纸上回答问题 1至问题 3。 【说明】 某软件公司拟开发一套贸易综合管理系统,包括客户关系管理子系统和商品信息管理子系统两部分。客户关系管理子系统主要管理客户信息,并根据贸易业务需要频繁向客户发送相关的电子邮件、短信等提醒信息。商品信息管理子系统主要为客户提供商品信息在线查询功能,包括商品基本信息、实时库存与价格等。 在对系统进行数据架构设计时,公司项目组的架构师王工主 张采用文件系统进行数据管理,原因是目前公司客户和商品数量不大,且系统功能较为简单,采用文件系统进行数据管理简单直观,开发周期短。架构师李工则建议采用关系数据库进行数据管理,
12、原因在于公司目前正处在高速扩张期,虽然目前的客户和商品数量不大,但随着公司快速发展,需要管理的数据必然飞速膨胀,采用关系数据库作为数据存储层,系统的扩展性更强,并能够对未来可能增加的复杂业务提供有效支持。经过讨论,项目组初步采纳了李工的意见,决定采用关系数据库存储客户数据,并针对业务特征对系统性能进行优化。 9 【问题 1】 请从设计难度 、数据冗余程度、数据架构、应用扩展性等 4个方面对关系型数据库管理系统和文件系统两种数据存储方式进行比较,填写表 41中(1) (4)。10 【问题 2】 对系统的核心业务需求进行认真分析后,公司的资深架构师张工提出一种内存数据库和关系数据库的混合存储架构,
13、其核心思想是将需要频繁读写的数据存入内存数据库,而将相对固定不变的数据存入关系数据库。请首先分析比较内存数据库和关系数据库在数据模型、读写性能、存储容量、可靠性等方面的差异,填写表 42中 (1) (4)的空白,并根据张工的思路指定各种业务数据的存储方式 ,填写表 43中 (5) (9)中的空白。11 【问题 3】 系统开发完成进行压力测试时,发现在较大数据量的情况下,部分业务查询响应时间过长,经过分析发现其主要原因是部分 SQL查询语句效率低下。请判断表 4-4中的 SQL语句设计策略哪些可能会提升查询效率,哪些可能会降低查询效率,在 (1) (4)中填入 “提升 ”或 “降低 ”。五、试题
14、五 11 阅读以下关于 Web应用系统架构设计的叙述,在答题纸上回答问题 1至问题3。 【说明】 某信息技术公司计划开发一套在线投票系统,用于为市场调研、信息调查和销售反馈等业务提供服务。该系统计划通过大量宣传和奖品鼓励的方式快速积累用户,当用户规模扩大到一定程度时,开始联系相关企业提供信息服务,并按照信息服务种类和用户投票数量收取费用。 为了降低开发成本和提高开发效率,项目组经过讨论后决定采用轻量级 Java EE开发框架设计系统应用架构。在应用架构设计中,除了满足系统主要功能需求,还需要考虑的因素包括: (1)项目开发采用 MySQL数据库存储数据,但将来可能移植到其他数据库平台; (2)
15、系统开发过程中尽可能降低或者消除 SQL,语句开发的工作量; (3)投票系统中数据之间的关系复杂,需要支持数据对象的聚合和继承等关系。 项目组基于 MVC模式设计出了投票系统的架构,包括表示层、业务逻辑层、数据持久层和数据层。在具体讨论数据持久层采用哪种技术方案时,老王建议采用成熟的 Hibemate框架,小李则认为 iBatis更加灵活,更适合作为投票系统数据持久层开发技术。 12 【问题 1】 请用 300以内文字说明什么是数据持久层,使用数据持久层能够为项目开发带来哪些好处 ? 13 【问题 2】 针对在线投票系统的实际应用需求和要求,项目组应选用哪种 技术实现数据持久层 ?请用 200
16、字以内文字说明其采用该技术的原因。 14 【问题 3】 数据持久层是 Web应用系统框架中重要的组成部分,主流的数据持久层技术分别基于不同的技术方案,请在表 5-1中 (1) (4)处分别根据 (a) (d)所列技术的方案类别填入其序号。(a)BMP, CMP(b)iBatis MyBatis(c)Spring JdbcTemplate(d)TopLink, JDO,Hibernate 2015年下半年软件水平考试(高级)系统架构师下午(案列分析)真题试卷答案与解析 一、试题一 1 【正确答案】 【试题解析】 本题主要考查考生对于软件质量属性的理解、掌握和应用。在解答该问题时,应认真阅读题干中
17、给出的场景与需求描述,分析该需求描述了何种质量属性,根据质量属性描述对其归类,并需要理解架构风险、敏感点和权衡点这些概念。 质量属性效用树是对质量属性进行分类、权衡、分析的架构分析工具,主要关注系统的性能、可用性、可修改性和安全性四个方面。根据对相关质量属性的定义和含义,其中 “正常负载情况下,系统必须在 0 5秒内对用户的车辆查询请求进行响应 ”和 “查询过程中涉及到的车辆实时视频 传输必须保证画面具有 600480的分辨率, 20帧秒的速率 ”,这描述的是系统的性能属性; “网络失效后,系统需要在 2分钟内发现错误并启用备用系统 ”和 “系统主站点断电后,需要在 3秒内将请求重定向到备用站
18、点 ”描述的则是系统的可用性; “在系统升级时,需要保证在 20人月内添加一个新的消息处理中间件 ”和 “更改系统的 Web界面接口必须在 4人周内完成 ”描述的是系统的可修改性; “车辆信息查询功能必须保证 99 999的安全性 ”和 “用户信息数据库授权必须保证 99 999可用 “描述的是系统的安全性。 2 【正确答案】 统 架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是指为了实现某种特定的质量属性,一个或多个系统组件所具有的特性。权衡点是指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。 题干描述中, (m)描述的是系统架构风险; (e)描述的是敏感
19、点; (i)描述的是权衡点。 【试题解析】 系统的架构风险、敏感点和权衡点是对质量属性效用树进行分析的主要依据,根据相关概念,题干中 “对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计 ”描述的是敏感点; “目前对 车辆信息实时监控 业 务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性 ”描述的是系统的架构风险; “更改系统加密的级别将对安全性和性能产生影响 ”描述的是权衡点。 二、试题二 3 【正确答案】 状态图:用来描述一个特定对象的所有可能状态以及其引起状态转移的事件。 活动图:用来描述操作的行为,也用于描述用例和对象内部的工作过程。 两者有
20、本质区别: 状态图和活动图用于不同的目的,状态图着重描述一系列的状态及状态间的转移,状态间的变迁需要外部事件的触发。 活动图用于捕获动作及动作的结 果,活动图中一个活动结束将立即进入下一个活动,是内部处理驱动的流程。 【试题解析】 本题主要考查系统设计建模的相关知识及工程实践经验。 此类题目要求考生认真阅读题目,根据所学的状态图和活动图的概念,从题目中提取相应的要素,按照题目给出的提示,完成状态图和活动图。本问题考查系统建模中常用的活动图与状态图的概念知识。 状态图用来描述一个特定对象的所有可能状态以及其引起状态转移的事件,一个状态图包括一系列的状态以及状态之间的转移,状态图通常用于表示单个对
21、象在其生命周期中的行为。活动图用来描述操作的行为,也用 于描述用例和对象内部的工作过程。状态图和活动图都是用来描述系统的动态行为特征的,主要用于描述事物的状态变化和处理过程。 但是两者还是有本质区别: 状态图和活动图用于不同的目的,状态图着重描述一系列的状态及状态间的转移,状态间的变迁需要外部事件的触发。活动图用于捕获动作 (将要执行的工作或活动 )及动作的结果,活动图中一个活动结束将立即进入下一个活动,是内部处理驱动的流程。 4 【正确答案】 (1)垂直起飞状态 (2)飞机飞行异常 (3)高度保持状态 (4)垂直升降状态 (5)无线电遥控飞行状态 【试题解析 】 本问题考查系统建模中状态图的
22、设计与应用。考生应该在熟记基本概念的基础上结合实际问题灵活掌握并应用这些概念。 在解答本题时,首先需要对题目中描述的基本功能需求 (a) (j)进行分析与梳理,确定系统控制中的所有状态以及状态间的转换条件,再结合问题 2中已经给出的状态,完成其余状态及条件的设计。5 【正确答案】 (1)地面综合控制计算机 (2)下传起飞就绪信息 (3)垂直起飞 (4)高度保持 (5)发送目标高度 (6)垂直升降 (7)发送任务结束指令 (8)飞机降落 (9)无线电遥控飞行 【试题解析】 本问题考查系统建模中活动图的设计与应用。考生应该掌握泳道活动图的概念并且学会应用。泳道活动图,是将一个活动图中的活动状态进行
23、分组,每一组表示一个特定的类或者对象,它们负责完成组内的活动。每个活动都明确属于一个泳道,不可以跨越泳道,而转移则可以跨越泳道。 在解答本题时,首先需要对题目中描述的基本功能需求进行分析与梳理,确定题目中存在哪些硬件设备与飞控计算机进行交互,以及设备间的交互关系,再结合问题 3中已经给出的活动,完成其余活动及设备的设计。三、试题三 6 【正确答案】 系统可靠性定义:系统在规定 的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率。 根据国家标准软件工程产品质量第 1部分:质量模型 (GB T 16260 12006)的规定,系统可靠性包括:成熟性、容错性、易恢复性和可靠性的
24、依从性 4个子特性。 提高系统可靠性一般采用以下 4类技术: (1)冗余技术; (2)软件容错技术; (3)双机容错技术; (4)集群技术。 【试题解析】 可靠性的定义在不同书籍中给出解释各不相同,但是,比较公认的定义是:系统可靠性是指系统在规定的时间内及规定的环境条件下,完成规定功能的 能力,就是系统无故障运行的概率。通常系统可靠性可分为硬件可靠性和软件可靠性,软件可靠性是近年来国内外研究的重点。 国家标准软件工程产品质量第 1部分:质量模型 (GB T 16260 1-2006)中给出了系统可靠性的 4个主要子特性: 成熟性:成熟性是指系统避免因错误的发生而导致失效的能力; 容错性:容错性
25、是指在系统发生故障或违反指定接口的情况下,系统维持规定的性能级别的能力; 易恢复性:易恢复性是指系统发生失效的情况下,重建规定的性能级别并恢复受直接影响的数据的能力; 依从性:可靠性的依从性是指系统依附 于与可靠性相关的标准、约定或规定的能力。 通常,提高系统可靠性采用冗余技术、软件容错技术、双机容错技术和集群技术等 4类技术。 7 【正确答案】 (1)不考虑软件演化的情况下,失效率在统计上是非增的 (2)如果不使用该软件,永远不会发生失效 (3)软件维护会创建新的软件代码 (4)软件失效之前很少会有警告 【试题解析】 本问题主要要求考生在理解软件的特殊性基础上,深刻认识软件可靠性一般是致力于
26、系统性地减少和消除对软件程序性能有不利影响的系统故障。除非被修改,否则软件系统不会随着时间的推移而发生退化。 在掌握这一特征的基础上,可以回答硬件可靠性特征与其对应的软件可靠性特征之间的差异或相似之处。 (1)从硬件角度分析,由于硬件一旦生产完成,其可靠性指标将会随着使用时间延长而逐步老化,从而带来可靠性降低,即呈现失效率服从浴缸曲线;而软件不存在随时间延长而老化的现象,因此,在不考虑软件演化的情况下,失效率在统计上是非增的。 (2)由于硬件是由多种电子器件组成,即使不使用,材料劣化也会导致失效;而软件就不同了,软件一旦调试完成,固化到设备中,在不考虑存储介质的老化因素的前提下,即使不使用该软
27、件,软 件也永远不会发生失效。 (3)由于硬件存在可更换性,其硬件通过维修,可恢复原始状态;而对于软件而言,一旦需要维护,必然是存在需求更改、程序存在 bug等现象,其维护必然会创建新的软件代码。 (4)一般而言,硬件失效存在一个发展过程,在发生故障之前必然会有报警现象出现,而软件失效之前很少会有警告。 8 【正确答案】 1恢复块方法: (1)主块 (2)验证测试 (3)输出正确结果 (4)异常处理 2恢复块方法与 N版本程序设计的比较 (5)表决 (6)反向恢复 (7)差 (8)好 【试 题解析】 软件的可靠性设计主要包括了恢复块和 N版本程序设计两种方法,如果考生对这两种方法有所了解,则可
28、很容易地进行判断。 恢复块方法是一种反向恢复的方法,其核心原理是:对于可靠性要求高的软件,在程序运行的某时刻,将数据或程序进行备份,一旦发现主程序块有异常发生时,可将已备份的数据或程序进行恢复,保证程序的正确性。基于这样的原理,显然 (1)空处是主块,而 (2)空处将是对正确性进行检验测试判断,一旦判断正确, (3)空处将是 “输出正确结果 ”,以此类推,显然 (4)空处是进入 “异常处理 ”了。 如果考生 能够答对第一问,说明考生已掌握恢复块与 N版本两种方法,那么,填写第二问的空应该没问题的。在表 3-2已经给出了两种方法适应的硬件环境,也就是说:恢复块方法的使用必然是单机环境,而 N版本
29、方法必然要使用多机环境。理解了环境需求,那么多机余度工作方式,必然采用 “表决 ”(5)空 )方式进行容错;同时不难分析出 N版本的工作原理是向前恢复,恢复快则是反向恢复 (6)空 );由于恢复快方法是反复寻找正确的备份块,而 N版本方法则是多个机器同时计算同样内容,表决完后即可给出正确结果,这样,恢复快方法相比 N版本方法显然实时性差 (7)空 ),而 N版本方法显然好 (8)空 )于恢复快方法。 四、试题四 9 【正确答案】 (1)数据结构需要符合关系模式,设计难度较大 (2)可能在多个文件中复制相同的数据属性,数据冗余较大 (3)以应用系统为中心组织、管理数据 (4)数据独立于应用系统,
30、很容易在不同的应用系统之间共享数据 【试题解析】 本题考查文件系统、关系型数据库、内存型数据库的主要特点。 此类题目要求考生认真阅读题目对现实问题的描述,依据系统的核心业务需求的特点 (数据模型、读写性能、存储容量、可靠性 ),正确选取不同的数 据存储架构。并能够根据业务的具体情况分析影响数据库查询的主要原因。 影响数据存储方式的主要考虑因素包括:设计难度、数据冗余程度、数据架构、应用扩展性; 文件系统具有以下特点: 针对特定应用系统设计,难度较小; 数据冗余较大,可能在多个文件中复制相同的数据属性; 以应用系统为中心组织、管理数据; 符合特定应用系统要求的文件数据很难在不同的应用系统之间共享
31、。 关系型数据库具有以下特点。 数据结构需要符合关系模式,设计难度较大; 遵守数据库范式,数据冗余较少; 以数据库为中心组织、管理数据; 数据独立于应用系统,很容易在不同的应用系统之间共享数据。 10 【正确答案】 (1)Key-Value模式 (键值对模式 ) (2)外存读写,性能相对较低 (3)基于内存存储,存储容量受限 (4)恢复机制复杂,可靠性较低 (5)内存数据库 (6)内存数据库 (7)关系数据库 (8)内存数据库 (9)内存数据库 【试题解析】 内存数据库型数据库是将数据放在内存中直接操作的数据库,使用内存型数据库将极大地提高应用的性能,同时 通过数据缓存、快速算法、并行操作等的
32、改进,使内存型数据库相对于传统的关系型数据库数据处理性能提高 10倍以上,同时内存型数据库的应用受到内存大小,数据恢复要求的限制。 关系型数据库和内存数据的主要特点如下:根据贸易综合管理系统的需求描述,需要频繁向客户发送相关的电子邮件、短信等提醒信息,并实时更新商品库存信息和商品价格信息,因此混合存储架构中,将客户电子邮件、客户联系电话、商品库存信息、商品价格信息等数据存入内存数据库;客户基本信息,商品基本信息相对稳定、访问频率较低,存入关系型数据库。 11 【正确 答案】 (1)提升 (2)降低 (3)降低 (4)提升 【试题解析】 SQL语句设计时,影响查询效率的设计原则是: 查询时尽量不
33、要返回不需要的行、列; 需要进行多表连接查询时,尽量使用连接查询,避免使用子查询结构; 尽量避免采用 NOTIN、 IN、 NOT EXIST、 LIKE等使用全表查询的操作; 尽量避免使用 DISTINCT。关键字。 五、试题五 12 【正确答案】 数据持久层是根据分层思想,通过建立逻辑数据操作接口,采取一定的对象关系映射策略,隐藏数据 库访问代码细节,向业务开发人员提供透明的对象持久化操作机制。 能够为项目开发带来的好处: (1)分离业务逻辑层和数据层,降低两者之间的耦合; (2)通过对象关系映射向业务逻辑提供面向对象的数据访问; (3)简化数据层访问,隐藏数据库链接、数据读写命令和事务管
34、理细节。 【试题解析】 本题考查 Web应用系统数据持久层设计相关知识。 此类题目要求考生了解轻量级 Java EE开发框架和常用的数据持久层技术,通过认真阅读题目对实际问题的描述,能够根据在线投票系统架构设计中所考虑的因素,选择合适的数据持久层技术 。主流的数据持久层技术按照其实现思路可以分为 4类技术方案,包括基于数据库连接 (JDBC封装 )、命令转换 (SQL Mapping)、对象关系映射 (O RMapping)和数据持久化对象 (Entity Bean),考生在实际应用中,不仅要掌握技术使用方法,更重要的是能够了解其基本原理,便于在实际应用架构设计中选择合适的技术。 本问题考查数
35、据持久层的基本概念以及在实际应用中能够为项目开发带来的好处。数据持久层主要是根据分层思想,通过建立逻辑数据操作接口,采取一定的对象关系映射策略,隐藏数据库访问代码细节 ,向业务开发人员提供透明的对象持久化操作机制。具体来说,数据持久层能够带来的好处能够在三层或者多层结构设计中分离业务逻辑层和数据层,解耦两者之间的直接关联;通过对象关系映射,将面向业务逻辑的数据处理全部以对象形式暴露,将对对象的操作自动转换为基于关系模式的数据库访问操作;在复杂的数据访问操作中,能够利用数据持久层简化数据层的访问,隐藏数据库链接、数据读写命令和事务管理细节,有效提升系统开发效率。 13 【正确答案】 项目组应该采
36、用 Hibemate框架。 原因: (1)Hibernate支持多种不同类型 数据库,满足项目组数据库移植需求; (2)Hibemate相对于 iBatis减少了 SQL语句开发的工作量; (3)iBatis生成的 PO是扁平化的,无法像 Hibemate一样支持对象的继承和聚合等立体化关系。 【试题解析】 本问题考查考生对 Hibernate和 iBatis这两种持久层技术的掌握情况。 Hibernate和 iBatis是轻量级 Java EE框架中两种数据持久层技术,两者都是优秀的开源项目。 iBatis相对简单易学而且更灵活,但开发工作量较大,数据之间是关联关系: Hibernate框架
37、相对复 杂,所生成的持久化对象能够表达面向对象中的继承和聚合等关系,开发工作量较小, Hibemate使用更广泛更成熟,能够适应目前所有主流的关系型数据库。根据题目中所描述的考虑因素,系统需要满足数据库的可移植性、开发过程简单、支持对象间的复杂关系等需求,所以选择Hibernate作为数据持久层技术更为合适。 14 【正确答案】 (1)(c) (2)(b) (3)(d) (4)(a) 【试题解析】 本问题考查考生对数据持久层基本原理和技术方案的掌握情况。Spring JdbcTemplate通过封装 JDBC操作接口实现数据库访问操作, iBatisMyBatis是通过 SQL映射将数据操作请求转换为数据库的 SQL操作,Hibemate、 JDO和 TopLink等技术都采用了对象关系映射的思想, J2EE中的BMP和 CMP及 FJB3 0都是利用实体 Bean对象完成数据访问操作。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1