1、2016年上半年软件水平考试(高级)系统分析师下午(案例分析)真题试卷及答案与解析 0 阅读以下关于软件系统可行性分析的叙述,在答题纸上回答问题 l至问题 3。 某软件开发企业受对外贸易公司委托开发一套跨境电子商务系统,项目组从多个方面对该电子商务系统进行了可行性分析,在项目组给出的可行性分析报告中,对项目的成本、收益情况进行了说明:建设投资总额为 300万,建设期为 1年,运营期为4年,该方案现金流量表如表 1 1所示。1 软件系统可行性分析包括哪几个方面 ?用 200以内文字说明其含义。 2 成本和收益是 经济可行性评价的核心要素,成本一般分为开发成本和运营成本,收益包括有形收益和无形收益
2、,请对照下列 7项内容,将其序号分别填入成本和收益对应的类别。 a)系统分析师工资; b)采购数据库服务器; c)系统管理员工资; d)客户满意度增加; e)销售额同比提高; f)软件许可证费用; g)应用服务器数量减少。 3 根据表 1 1所示现金流量表,分别给出该解决方案的静态投资回收期、动态投资回收期和投资收益率的算术表达式或数值 (结果保留 2位小数 )。 3 阅读以下关于系统设计的叙述,在答题纸上回答问题 1至问题 3。 某软件公司为电子商务企业开发一套网上交易订单管理系统,以提升服务的质量和效率。在项目之初,项目组决定采用面向对象的开发方法进行系统开发,并对系统的核心业务功能进行了
3、分析,具体描述如下: 注册用户通过商品信息页面在线浏览商品,将需要购买的商品添加进购物车内,点击 “结算 ”按钮后开始录入订单信息。 用户在订单信息录入页面上选择支付方式,填写并确认收货人、收货地址和联系方式等信息。点击 “提交订单 ”按钮后产生订单,并开始进行订单结算。 订单需要在 30分钟内进行支付,否则会自动取消, 用户也可以手工取消订单。 用户支付完成,经确认后,系统开始备货,扣除该商品可接单数量,并移除用户购物车中的所有商品资料。 生成订单表单,出货完毕,订单生效。为用户快递商品,等待用户接收。 用户签收商品,交易完成。 4 识别设计类是面向对象设计过程中的重要工作,设计类表达了类的
4、职责,即该类所担任的任务。请用 300字以内的文字说明设计类通常分为哪三种类型,每种类型的主要职责,并针对题干描述案例涉及的具体类为每种类型的设计类举出 2个实例。 5 在面向对象的设计过程中,活动图 (activity diagram)阐明了业务用例实现的工作流程。请用 300字以内的文字给出活动图与流程图 (flow chart)的三个主要区别。 6 在面向对象的设计过程中,状态图 (statechart diagram)描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图 2-1中的 (a) (e)空白,完成订单处理的状态图。 6 阅读以下关于嵌入式系统能耗管理设计的描述,在答题
5、纸上回答问题 1至问题3。 随着嵌入式系统智能化技术的持续发展,系统的能耗问题已成为亟待解决的难题。某宇航公司研发的一 款手持式野外辅助装备,需要较长的巡航时间,由于设计时对功耗问题考虑不周,使得产品出现了批次责任事故。公司领导决定抽调王工等5人组建专门的攻关小组,要求在三个月内完成故障归零。王工接到任务后,经反复论证与实验,给公司提交了一份基于软件动态节能的改进方案,得到了领导及专家的好评。 7 在嵌入式系统中节能技术一般分为静态节能和动态节能两种,请用 300字以内文字分别说明什么是静态节能技术和动态节能技术,并列举三种动态节能技术。 8 王工的方案得到认可后,他带领团队研究了调度方式和系
6、统能耗之间的关系,请用 150字以内的文字说明为了节约系统能耗而采用的设备调度策略的核心思路,并说明设备调度策略与任务实时性的关系。 9 根据上述设备有效调度时刻的策略,分析以下实例,并将答案写在答题纸上。 手持式野外辅助装备由三个实时任务和三个独立设备组成 (分别表示为: t1、 t2和t3; s1、 s2和 s3),表 3-1给出了手持式设备实时任务的时间参数表,这些任务使用独立的设备并且所有设备的特征一致,各设备待机超时可直接进入睡眠状态,处于睡眠状态的设备要经过转换状态后才能进入运行状态。假设初始状态 (t=0)设备处于工作状态,且所有设备 的工作状态功率为 60mW ms,转换功率为
7、 30mWms,睡眠功率为 10 mW ms。同时假设设备被唤醒的转换时间为 10 ms。设备待机后被关闭的超时值为 10ms。 图 3-1给出了未考虑节能需求时任务调度算法,在采用了设备有效时刻调度策略之后,三个设备 100ms周期内将按一定顺序被依次关闭和唤醒。图 3 2给出了采用设备有效时刻调度策略后 s1的功率随时间的变化规律。请计算此时三个设备在 100ms周期内的功耗,并计算 100ms周期内,每个设备的节能比。 节能比 =(未节能情况下的系统能耗一节能后系统能耗 )未节能 情况下的系统能耗9 阅读以下关于数据库设计的叙述,在答题纸上回答问题 1至问题 3。 某航空公司要开发一个订
8、票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下: 航班 (航班编号 ,航空公司,起飞地,起飞时间,目的地,到达时间,剩余票数,票价 ) 代理商 (代理商编号 ,代理商名称,客服电话,地址,负责人 ) 机票代理 (代理商编号 , 航班编号 ,票价 ) 旅客 (身份证号 ,姓名 ,性别,出生日期,电话 ) 购票 (购票单号 , 身份证号 , 航班编号 ,搭乘日期,购票金额 ) 在提供给用户的界面上,其核心功能是当用户查询某航班时,将该航班所有的代理商信息及其优惠票价信息,返回给用户,方便用户购买价格优惠的机票。在实现过程中发现,要实现此功能,需要在代理商和
9、机票代理两个关系模式上进行连接操作,性能很差。为此开发小组将机票代理关系模式进行了扩充,结果为: 机票代理 (代理商编号,航班编号,代理商名称,客服电话,票价 ) 这样,用户在 查找信息时只需对机票代理关系模式进行查询即可,提高了查询效率。 10 机票代理关系模式的修改,满足了用户对代理商机票价格查询的需求,提高了查询效率。但这种修改导致机票代理关系模式不满足 3NF,会带来存储异常的问题。 1)请具体说明其问题,并举例说明。 2)这种存储异常会造成数据不一致,请给出解决该存储异常的方案。 11 在机票销售信息处理系统中,两个代理商的售票并发执行,可能产生的操作序列如表 4 1所示。假设两个代
10、理商执行之前,该航班仅剩 1张机票。 1)请说明上述两个代理商操作的结 果。 2)并发操作会带来数据不一致的问题,请具体说明 3种问题。 12 为了避免问题 2中的问题,开发组使用了数据库的读写锁机制,操作序列变为表 4 2所示。请填写表中的空白项,并用 150字以内的文字说明读写锁机制的缺点。 12 阅读以下关于 Web应用的叙述,在答题纸上回答问题 1至问题 3。 某软件企业拟开发一套基于 Web的云平台配置管理与监控系统,该系统按租户视图、系统管理视图以及业务视图划分为多个相应的 Web应用,系统需求中还包含邮件服务、大文件上传下载、安全攻击防护等典型 Web系统基础服务需 求。 13
11、在选择系统所采用的 Web开发框架时,项目组对 Alibaba开发的 WebX框架与轻量级 Spring MVC框架进行了对比分析,最终决定采用 WebX框架进行开发。请用 300字以内文字,从多应用支持、基础服务支持以及可扩展性这三个方面对WebX与 SpringMVC框架进行对比。 14 在确定系统采用的持久层技术方案时,项目组梳理了系统的典型持久化需求,对照需求对比分析了 Hibernate和 MyBatis两种持久化方案,请分析两种持久化方案对表 5 1中所列项目需求的支持情况,将候选答案序号 A或 B填 入表 51相应位置。15 系统实现相应的配置管理与监控功能时,需要集成云平台侧提
12、供的大量服务以实现配置数据的读取写入与不同视图监测数据的获取。项目组在确定服务集成方案时,对比了 REST风格 RPC与 SOAP RPC两种方案,经过分析讨论,项目组最终决定采用 REST风格 RPC机制实现服务集成,请判断表 5-2中给出的选择 REST方案的理由是否合理。2016年上半年软件水平考试(高级)系统分析师下午(案例分析)真题试卷答案与解析 1 【正确答案】 (1)经济可行性:主要评估项目的建设成本、运行成本和 项目建成后可能的经济效益。 (2)技术可行性:研究的对象是信息系统需要实现的功能和性能,以及技术能力约束。 (3)法律可行性:需要从政策、法律、道德、制度等社会因素来论
13、证信息系统建设的现实性。 (4)用户使用可行性:从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等。 【试题解析】 本题考查考生对于软件系统可行性分析方法的掌握情况。 可行性是指企业当前的条件下,是否有必要建设新系统,以及建设新系统的工作是否具备必要的条件。在 信息系统建设项目中,可行性评价通常从经济可行性、技术可行性、法律可行性和用户使用可行性四个方面进行分析,经济可行性通常被认为是项目的底线。经济可行性也称为投资收益分析或成本效益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益。技术可行性也称为技术风险分析,研究的对象是信息系统
14、需要实现的功能和性能,以及技术能力约束。法律可行性也称为社会可行性,具有比较广泛的内容,它需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。用户使用可行性也称为执行可行性,是从信息系统用户的角度来评估系统 的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等,可以分为管理可行性和运行可行性。 掌握系统可行性分析方法是系统分析师的重要技能,特别是成本效益分析方法,能够根据现金流量表计算静态投资回收期、动态投资回收期和投资收益率等可行性指标。 软件系统可行性分析的内容和基本概念是进行软件系统可行性分析的前提。软件系统的可行性分析包括经济可行性、技术可行性、法律可行性和
15、用户使用可行性,分别从项目建设的经济效益、技术方案、制度因素和用户使用等四个方面对系统建设的必要性和可能性进行评估。 2 【正确答案】 (1)(a)(b) (2)(c)(f) (3)(e)(g) (4)(d) 【试题解析】 成本和收益的识别是经济可行性中成本效益分析的基础,成本主要描述系统的投入,收益主要描述系统建成后的产出。软件生存期中的成本按照系统投入的阶段可分为开发阶段的成本和建成后的运营成本两类,软件生存期中的收益按照量化方式不同可分为有形收益和无形收益。系统分析师工资和采购数据库服务器属于系统开发阶段的投入,所以属于开发成本;系统管理员工资和软件许可证费用属于系统建成后运营阶段的 投
16、入,所以属于运营成本;销售额同比提高和应用服务器数量减少都意味着系统收益的增加,可以直接量化,所以属于有形收益;而客户满意度增加同样能够增加系统收益,但是无法直接量化,所以属于无形收益。 3 【正确答案】 (1)静态投资回收期: (31)+ -50 140或 2 36年。 (2)动态投资回收期: (3一 1)+ -82 9 105或 2 79年。 (3)投资收益率: 594 6 470 5100或 126 38。 【试题解析】 投资回收期就是投资收回的期限,也是用系统方案所产生的净 现金收入回收初始全部投资所需要的时间。对于投资者来讲,投资回收期越短越好,从而减少投资的风险。计算投资回收期时,
17、根据是否考虑资金的货币时间价值,可分为静态投资回收期和动态投资回收期。投资收益率又成为投资利润率,是指投资收益占投资成本的比率,用来反映投资的收益能力。各指标计算方法: (1)静态投资回收期 =累计净现金流量开始出现正值的年份数一 1+上年累计净现金流量当年净现金流量; (2)动态投资回收期:累计折现值开始出现正值的年份数一 1+上年累计折现值当年折现值; (3)投资 收益率 =投资收益投资成本 100。 4 【正确答案】 在系统设计过程中,类可以分为三种类型:实体类、边界类 (或接口类 )和控制类。 实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。题干描述中商品、订单、注
18、册用户、送货信息、购物车等都是实体类。 边界类用于封装在用例内、外流动的信息或数据流。题干描述中商品信息页面、订单信息录入页面和订单表单都属于边界类。 控制类是用于控制用例工作的类,一般是由动宾结构的短语 (“动词 +名词 ”或 “名词 +动词 ”)转化来的名词。题干描 述中订单结算、订单支付、备货、出货等都属于控制类。 【试题解析】 识别设计类是面向对象设计过程中的重要工作,设计类表达了类的职责,即该类所担任的任务。在系统设计过程中,类可以分为三种类型:实体类、边界类 (或接口类 )和控制类。实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。题干描述中商品、订单、注册用户、
19、送货信息、购物车等都是实体类。 边界类用于封装在用例内、外流动的信息或数据流。题干描述中商品信息页面、订单信息录入页面和订单表单都属于边界类。 控制类是用于控制用例工作的类,一般是由 动宾结构的短语 (“动词 +名词 ”或 “名词 +动词 ”)转化来的名词。题干描述中订单结算、订单支付、备货、出货等都属于控制类。 5 【正确答案】 活动图和流程图的主要区别有以下三点: (1)活动图是面向对象的,而流程图是面向过程的。 (2)活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严
20、格的顺序和时间关系。 (3)活动图能够表示并发活动的情形,而流程图不能。 【试题解析】 本问题主要考查考生对活动图和流程图基础概念的理解。 活动图和流程图的主要区别是: (1)活动图是面向对象的,而流程图是面向过程的。 (2)活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系。 (3)活动图能够表示并发活动的情形,而流程图不能。 6 【正确答案】 (a)取消 (b)待结算 (c)大于 30分钟 (d)订单生效 (e)用户签收 【试题解析】 本问题主要考查状
21、态图建模的理解和应用。在面向对象的设计过程中,状态图 (statechan diagram)描述了一个实体基于事件反应的动态行为。考生需要对需求进行分析,特别是业务处理过程进行深入理解的前提下完成状态图模型。具体结果如下图所示。7 【正确答案】 静态节能技术主要是利用硬件的能耗特性,将节能方法纳入产品的设计中。此技术能够显著地减少系统局部组件所消耗的能力。 动态节能技术主要在系统运行过程中根据负载的变化 来降低能耗,利用底层硬件提供的特征,从系统运行范围内降低系统总体功耗,从而能够节省大量的能量。 动态节能包括 3种技术: (1)动态调频调压技术; (2)动态电源管理技术; (3)任务调度技术
22、。 【试题解析】 本问题提到的手持式野外辅助装备类似于我们日常的手机产品,其电池的待机时间是手持设备的关键考核指标,节能技术是在设备设计时重点要解决的问题。通常节能技术包含了静态节能和动态节能。 静态节能技术主要是利用硬件的能耗特性,将节能方法纳入产品的设计中。此技术能够显著地减少系统局部组件所消耗的能力 。静态节能一般采用两种方法,其一是可以通过设计低功耗硬件来节省能量,然而,硬件电路设计方面可优化的部分已越来越少,且成本大;其二是可以通过使用编译优化技术来生成能量感知的机器代码,这种技术虽然成本小,但是对于降低功耗的潜力不大。 动态节能技术主要在系统运行过程中根据负载的变化来降低能耗,利用
23、底层硬件提供的特征,从系统运行范围内降低系统总体功耗,从而能够节省大量的能量。动态节能通常采用三种技术,其一是动态调频调压技术;其二是动态电源管理技术;其三是任务调度技术。 (1)动态调频调压技术 (Dynamic Voltage and Frequency Scaling DVFS)依据处理器的功耗与电路的运行电压之间存在的平方关系,在获取处理器的实时使用情况后,调整电路的运行电压、动态升高或降低运行频率,从而减少能量消耗。 (2)动态电源管理技术 (Dynamic Power Management)是在系统运行过程,根据系统的运行情况切换系统各个组件的状态,在满足系统正常服务请求的前提下,
24、使得系统组件处于工作状态的时间最短,从而节省能量。 (3)任务调度技术在保证系统中所用任务满足截止期的情 况下,充分利用系统的空间和时间,安排系统中各个任务的运行次序和调度关系,减少任务运行时的抢占次数,减少任务上下文切换次数,从而通过调度来降低系统的运行能耗。 8 【正确答案】 为了使系统能够节约更多的能量,应该尽可能晚的唤醒一个设备;在有效调度时刻唤醒设备常常能够节省更多的能量,同时能够及时响应任务的访问请求,保证满足系统的实时性要求。 【试题解析】 考生首先可从题干 “由于设计时对功耗问题考虑不周,使得产品出现了批次责任事故 ”进行分析,该宇航公司研发的手持式野外辅助装备如果采用静态节能
25、技术,势必带 来严重的经济损失 (所有设备硬件要重新替换 ),而采用动态节能技术,可在满足应用需求的基础上,缩短时间周期,降低成本。因此,王工程师提出了采用设备调度节能策略来降低系统能耗。设备调度节能策略的核心思想是:由于系统中能量消耗的主要来源是系统中的各种硬件设备,设备工作与关闭两种状态功耗消费差距很大,为了使系统能够节约更多的能量,应该尽可能晚的唤醒一个设备,既在应用任务使用设备时才打开设备。也就是说,在有效调度时刻唤醒设备常常能够节省更多的能量,同时能够及时响应任务的访问请求,保证满足系统的实时性要求,这种算法称为 “设备有效时刻调度策略 ”。 9 【正确答案】 三个设备在第一个 10
26、0ms周期内的功耗如下: s1: 60*20+10*30+30*10+60*20+10*20=4400 s2: 60*40+10*40+30*10+60*10=3700 s3: 60*10+10*20+30*10+60*50+10*10=4200 三个设备的节能比: s1的节能比 =(60*100-4400) (60*100)=0 267 s2的节能比 =(60*100-3700) (60*100)=0 383 s3的节能比 =(609100一 4200) (60*100)=0 3 【试题解析】 本问题给出了王工编制的节能方案中采用的 “有效时刻调度策略 ”的事例分析,通过事例分析,考生可计算
27、出采用有效调度时刻的策略,在保证周期任务按时完成的前提下,设备能耗消费最少。应仔细分析题干,重点关注 “假设初始状态 (t=0)设备处于工作状态,且所有设备的工作状态功率为 60mW ms,转换功率为 30mW ms,睡眠功率为 10 mW ms。同时假设设备被唤醒的转换时间为10 ms。设备待机后被关闭的超时值为 10ms”的条件限制,既分析案例仅仅关注周期任务的第一个主周期 (t=0开始的 100ms)对设备管理;设备的功率在不同的状态(工作、装换和睡眠 )其功耗不一样,而节能策略恰恰利用了这一特点,达到节能的作用。考生还应注意到设备从工作到睡眠,不存在装换时间,而从睡眠到工作,存在 10
28、ms的装换,并存在不一样的功耗,图 32已给了 t1任务对设备 s1的控制过程,如果考生理解了算法的核心思想,在图 32的提示下,就不难算出三个设备在第一个 100ms周期内的各自的功耗,及各自的设备的节能比。 10 【正确答案】 具体问题有数据 冗余和更新异常。 数据冗余:代理商名称和客服电话存在于两个关系模式,而且机票代理关系模式中,该代理商代理了多少个航班,则代理商名称和客服电话被重复存储多少次。 更新异常:当代理商名称或客服电话变更时,不仅需要修改代理商关系模式,还需要修改机票代理关系模式,否则会造成数据不一致。 可采用两种方案实现。 (1)通过程序实现,当修改代理商关系模式数据时,程
29、序同步修改机票代理关系模式; (2)通过触发器实现,在代理商关系模式上加修改触发器,当修改代理商关系模式数据时,程序同步 修改机票代理关系模式。 【试题解析】 本问题考查数据库设计中关系范式规范化和反规范化的相关知识。众所周知,关系范式规范化的结果是关系越来越小,关系范式的概念越单一。但是要解答用户的问题,往往会涉及到多表关联操作,影响查询效率。因此应用中经常采用反规范化的方法来提高查询效率。因此开发小组对机票代理关系模式的修改属于反规范化。 但是反规划带来的直接结果是数据冗余存放,如题干描述的机票代理中,代理商名称和客服电话数据就存在于机票代理和代理商两个模式中。这种情况会引起更新异常,比如
30、当代理商名称或客服电 话变更时,不仅需要修改代理商关系模式,还需要修改机票代理关系模式,否则会造成数据不一致。 要解决范式规范化带来的问题,主要是保持两个地方存储数据的一致性。常见的方法有两种:一种是通过程序实现,在业务程序中,当修改代理商关系模式数据时,程序同步修改机票代理关系模式;另一种是通过触发器实现,在代理商关系模式上加修改触发器,当修改代理商关系模式数据时,程序同步修改机票代理关系模式。 11 【正确答案】 1)第一个代理商能够正确售票。第二个代理商查询剩余票数时正确,为 1张机票,但剩余票数减一操作时出错, 因为该机票已经被第一个代理商售出,此时第二个代理商无票可售。 2)并发操作
31、会带来数据不一致问题,具体为:丢失修改、读脏数据、不可重复读。 【试题解析】 本问题考查数据库设计中的并发问题和数据库事务隔离级别的基本概念。数据库为众多用户同时提供服务,如果多个用户产生了对同一个数据的并发读取操作,就会产生并发问题。 表 4-1描述的是并发的一种可能情况,在允许脏读的条件下,第一个代理商能够正确售票。第二个代理商查询剩余票数时正确,为 1张机票,但剩余票数减一操作时出错,因为该机票已经被第一个代理 商售出,此时第二个代理商无票可售。 并发问题会造成数据的不一致。在数据库事务隔离级别定义中,定义了并发问题会造成的三种现象,分别是丢失修改、读脏数据和不可重复读,而根据这三种现象
32、,划分了 4种不同的事务隔离级别。 12 【正确答案】 (1)加写锁 (2)加读锁 (3)加写锁 (4)被阻塞 (5)得到通知 (6)加写锁 读写锁的缺点:读写锁会造成读写操作的互相阻塞,实际使得用户的操作被串行化,降低了系统的并发性能。设计不好的情况下,可能会出现资源的交叉锁定,形成死锁。 【试题解析】 本问题考 查数据库中基本的读写锁机制,通过提供读锁和写锁的相互阻塞,来解决并发问题。锁机制的基本概念是读取操作之前先加锁,成功后方能读写数据。读操作加读锁,写操作加写锁。读锁会阻塞写锁,即加了读锁的数据,在未释放读锁之前不能加写锁,可以加读锁;同样,写锁会阻塞读锁,在写锁未释放前,不能再加读
33、锁和写锁。其实质是使得相互冲突的并发读写操作,变为串行化读写操作,来解决并发问题。 因此,根据读写锁的基本机制,表 4 2中的空应该填写的内容是 (1)加写锁、 (2)加读锁、 (3)加写锁、 (4)被阻塞、 (5)得到通知、 (6)加 写锁。 13 【正确答案】 多应用支持: WebX通过多应用路径生成机制,可自动避免一个工程中多个应用 URL路径出现冲突,而在 Spring框架中,需要开发者自己处理多个应用之间的 URL冲突。 基础服务支持: WebX框架属于重量级 Web开发框架,提供了创建一个 Web应用所需要的大量基础功能,系统中集成了前端模板、持久化以及常用的后端服务,包括邮件服务
34、、 URL路径映射、后端表单验证、安全攻击防护机制、资源加载、文件上传等服务等,而 Spring MVC框架中并不提供相应的基础服务支持。 可扩展性 : WebX中的 SpringExt子框架是对 Spring框架的扩展,能简化 Spring的配置,加强了 Spring组件的扩展性;开发者可以定制、甚至重写 Webx框架逻辑,实现新的框架或功能。 【试题解析】 本问题考查大型互联网应用的开发架构选择,主要关注 Alibaba的WebX框架与轻量级 Spring MVC框架的对比。 WebX框架是 Alibaba公司开发的开源开发框架, WebX框架本身划分为 SpringExt、 WebX F
35、ramework、 WebX Turbine三个主要层次。其中 SpringExt层基 于 Spring,提供扩展组件的能力,是整个框架的基础; WebX: Framework层基于 Servlet API,提供各种基础服务;WebX Turbine层基于 WebX Framework对网页开发提供进一步支持。从多应用支持角度看, WebX通过多应用路径生成机制,可自动避免一个工程中多个应用URL路径出现冲突;从基础服务支持角度看, WebX框架属于重量级 Web开发框架,提供了创建一个 Web应用所需要的大量基础功能,系统中集成了前端模板、持久化以及常用的后端服务,包括邮件服务、 URL路径
36、映射、后端表单验证、 安全攻击防护机制、资源加载、文件上传等大量服务;从可扩展性角度看, WebX中的 SpringExt子框架是对 Spring框架的扩展,能简化 Spring的配置,加强了Spring组件的扩展性;开发者可以定制、甚至重写 WebX框架逻辑,实现新的框架或功能。综上不难看出, WebX框架比传统 Spring MVC框架具有更明显的优势,可以更好支持大型复杂 Web应用的开发。 14 【正确答案】 (1)A (2)B (3)B (4)A (5)A (6)B 【试题解析】 本问题考查 Hibernate与 MyBatis两种持久化方案对不同持久化需求的支持情况。 Hibern
37、ate与 MyBatis均是开源对象关系映射 (ORM)框架,都可以实现 JDBC的对象封装,将 POJO与数据库表建立映射关系,从而支持在 Java程序中使用对象编程思维来操作数据库。二者均可自动生成简单基本的 DAO层方法。相对而言, Hibemate开发简洁,因此 SQL语句通常是自动生成的,而MyBatis中的 SQL语句通常是手工编写的,因此当系统中需要对复杂查询操作的SQL语句进行人工调优时, MyBatis更为方便; Hibernate支持自动 化的多表关联操作,但使用时一般要求数据库中的关系设置与实际关联操作有直接的对应关系;由于 Hibernate使用时通常自动生成相应的 S
38、QL语句,因此具备良好的数据库移植性,而 MyBatis中手动编写的 SQL语句则通常需要针对不同厂商的数据库进行修改,可移植性不好。 15 【正确答案】 (1) (2) (3) (4) 【试题解析】 本问题考查 Web服务集成方案的选择。 REST风格 RPC与 SOAP RPC是两种常用的 Web服务集成方案。相对而言, SOAP将 Web服务封装为 经典程序设计模型中的对象 RPC模式,从而支持 Web服务的调用,而 REST风格RPC则将 Web服务映射为标准的 HTTP操作,属于更轻量级的服务集成方案。在 REST方案中, HTTP标准的 GET、 POST、 PUT、 DELETE操作可直接映射为对题目中配置管理数据和监测数据的 CRUD等无状态操作,而 SOAP方案则支持上下文及会话状态管理,更适合于需多步执行的有状态操作;且由于 REST风格 RPC基于标准 HTTP协议且无状态,因此客户端请求的处理可以在任何服务器上执行,很容易在服务端实现基于 HTTP的负载均衡,从而使服 务端具备良好的横向可扩展性;而 SOAP作为 W3C所定义的 SOA架构核心规范之一,基于同架构下的 WS-Security规范可提供良好的安全性支持,但 REST方案中则缺少对服务安全性的直接支持。