201205系分下午真题
第 1 题
阅读以下关于软件项目管理的叙述,在答题纸上回答问题1至问题4。
【说明】
某软件企业为电信公司开发一套网上营业厅系统,以提升服务的质量和效率。项目组经过分析,列出了项目开发过程中的主要任务、持续时间和所依赖的前置任务,如表1-1所示。在此基础上,可分别绘制出管理该系统开发过程的PERT图和Gantt图。
表1-1
【问题1】(6分)
请用300字以内的文字分别解释说明PERT图和Gantt图的具体含义,并说明两种方法所描述开发过程的差异。
【问题2】(9分)
根据表1-1所示活动及其各项活动之间的依赖关系,分别计算对应PERT图中活动C~H的松弛时间(Slack Time)填入(a)~(f)中。
【问题3】(7分)
根据表1-1所示活动及其各项活动之间的依赖关系,计算对应PERT图中的关键路径及所需工期。
【问题4】(3分)
如果将关键路径对应的工期作为期望工期;通过资源调配和任务调度,可以使得最优工期比期望工期少2周时间;根据项目组开发经验,解决项目开发过程中所有可能会遇到的问题最多需要8周时间,即最差工期比期望工期多8周时间。请计算项目最可能的开发工期。
答案与解析
- 试题难度:容易
- 知识点:案例分析>项目管理
- 试题答案:
【问题1】
PERT(项目评估与评审技术)图是一种图形化的网络模型,描述一个项目中任务和任务之间的关系,每个节点表示一个任务,通常包括任务编号、名称、开始和结束时间、持续时间和松弛时间。
Gantt图是一种简单的水平条形图,它以一个日历为基准描述项目任务,横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。
PERT图主要描述不同任务之间的依赖关系;Gantt图主要描述不同任务之间的重叠关系。
【问题2】
(a)0 (b)1 (c)0 (d)6 (e)0 (f)2
【问题3】
关键路径:A—B—C—E—G—I—J
所需工期:26周
【问题4】
最可能的开发工期=(最优工期+期望工期×4+最差工期)/6=(24+26×4+34)/6=27周 - 试题解析:
本题主要考查考生对于软件项目管理工具的掌握情况。
软件项目管理的主要工作包括确定任务、估计任务工期、指定任务之间的依赖关系、资源调配等。PERT图和Gantt图是系统分析师进行项目进度控制的工具,利用PERT图能够更清楚地描述和定义关键路径及任务之间的依赖关系,项目管理软件能够根据任务之间的依赖关系和任务工期自动地计算并加亮显示关键路径。
【问题1】
PERT(项目评估与评审技术)发展于20世纪50年代后期,用于为美国海军计划和控制大型的武器开发项目。PERT图是一种图形化的网络模型,描述一个项目中任务和任务之间的关系,每个节点表示一个任务,通常包括任务编号、名称、开始和结束时间、持续时间和松弛时间。PERT图用于在任务被调度之前弄清楚任务之间的依赖关系。
Gantt图最早由Henry L.Gantt 在1917年提出,是最常用的项目调度和进展评估工具。Gantt图是一种简单的水平条形图,它以一个日历为基准描述项目任务,横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。Gantt图的优点是可以清楚地显示出重叠任务,也就是说可以同时执行的任务。
PERT图和Gantt图并不是互斥的,在交流项目进度时Gantt图更有效,需要研究任务之间的关系时PERT图更有效。
【问题2】
在制定项目进度表时,需要为任务分配资源,所分配资源如果超过了可以提供的资源,就需要进行资源调配。松弛时间(Slack Time)是指任务在项目实际进展中可以延迟的时间,这个延迟量不会引起整个项目完成时间上的延迟。松弛时间可以提供延迟任务开始时间的机会,可以调配资源而不影响项目的完成时间。
下图给出了表1-1中任务之间的关系,关键路径上任务的松弛时间为0,非关键路径上的任务E、F、H所对应的松弛时间分别为1、6、2。【问题3】
关键路径是一个相关任务序列,该序列上任务工期之和最大。图1-1所示PERT图中,包括了6条路径:
(1)路径序列:ABCEGHJ 工期之和:24周
(2)路径序列:ABCEGIJ 工期之和:26周
(3)路径序列:ABCFHJ 工期之和:16周
(4)路径序列:ABDFHJ 工期之和:20周
(5)路径序列:ABDGHJ 工期之和:23周
(6)路径序列:ABDGIJ 工期之和:25周
经过比较分析,任务工期之和最大值为26周,对应关键路径序列为ABCEGIJ。
【问题4】
最优工期(OD)是估计完成任务所需的最小时间量;最差工期(PD)是估计完成任务所需的最大时间量;期望工期(ED)是估计完成任务所需的时间量。最可能工期(D)是计算公式为:问题中最优工期OD为24,最差工期PD为34,期望工期ED为26,计算后得到最可能工期D为(1×24+4×26+1×34)/6=27周。
第 2 题
阅读以下关于企业应用系统开发的叙述,在答题纸上回答问题1至问题3。
某大型咨询服务公司欲对现有的核心咨询业务系统进行升级改造,以适应大量用户的个性化咨询服务要求,提高系统的灵活性。公司主管将核心业务系统的升级改造工作交给了公司的系统分析师王工和李工。
一个月后,王工和李工分别向公司提交了自己的方案。王工主张以公司现有的、采用面向对象技术和Java语言实现的业务系统为基础,针对新的业务需求对系统进行重构、改造与升级。李工则认为现有系统的业务逻辑过于复杂,对系统进行重构的成本太高,可以采用面向服务的思想,提炼可复用的业务功能形成服务,实现系统的灵活性。经过公司相关人员共同开会讨论,最终采用了李工的改造方案。
【问题1】(10分)
请用500字以内的文字,从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比,并结合项目需求说明公司为何会选择李工的方案。
【问题2】(9分)
采用服务思想设计系统时,需要考虑服务的耦合性。服务的耦合性可以分为两类,分别是服务契约耦合(Service Contract Coupling)和服务消费者耦合(Service Consumer Coupling)。请对各种耦合关系进行分析,填写(a)~(g),完成表2-1。
表2-1 服务耦合关系分析
【问题3】(6分)
在对系统的业务服务进行初步分析后,李工首先提取了客户注册、业务受理和发票开具三个典型的业务服务。但进一步分析后,李工发现这三个服务需要使用数据库中的客户实体、业务实体和发票实体,而发票实体包含客户实体和业务实体的信息,这样会导致发票开具服务内部包含并重复实现客户注册和业务受理的处理过程,降低服务的复用性。请说明这种情况产生的主要原因,并针对这种情况,说明该如何对这三个服务进行重构,使它们具有更好的重用性。
答案与解析
- 试题难度:较难
- 知识点:案例分析>企业信息化战略与实施
- 试题答案:
【问题1】
从系统业务功能实现来看,采用面向对象技术开发的系统以对象为核心概念,通过对象之间的消息交互完成业务功能;采用面向服务技术开发的系统以服务为核心概念,业务功能需要封装为服务。
从系统功能集成方式来看,采用面向对象技术开发的系统以对象为单元进行功能集成,通常采用工作流技术定制业务流程;采用面向服务技术开发的系统以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组。
根据项目需求,需要对现有业务系统进行升级改造,因此保证升级改造的低成本是一个重要的因素,王工的方案需要现有系统进行功能梳理与重新开发,升级改造成本较高;李工的方案则侧重将现有功能包装为服务,升级改造成本较低。项目还要求提高系统的灵活性,王工的方案以对象技术为基础,当业务发生变化时,需要在代码层次上进行修改并重新部署,因此系统的灵活性相对较差;李工的方案以大粒度的业务服务复用为基础,当业务发生变化时,可以采用服务组合技术实现系统的运行时功能组合,因此灵活性相对较好。
【问题2】
(a)服务契约耦合
(b)服务契约耦合
(c)服务消费者耦合
(d)否
(e)是
(f)按照SOA的思想,业务逻辑应当与契约耦合,而不应与实现或技术耦合
(g)服务契约不应该与具体厂商的实现技术相关,而应该基于标准的XML技术与Web服务标准
【问题3】
题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。
针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。 - 试题解析:
本题考查的是企业应用系统开发方面的知识与应用,属于比较传统的题目,考查点也与往年类似。
【问题1】
本问题从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比。回答本题时必须紧扣业务功能实现和功能集成这两个方面。
从系统业务功能实现来看,采用面向对象技术开发的系统以对象为核心概念,通过对象之间的消息交互完成业务功能;采用面向服务技术开发的系统以服务为核心概念,业务功能需要封装为服务。
从系统功能集成方式来看,采用面向对象技术开发的系统以对象为单元进行功能集成,通常采用工作流技术定制业务流程;采用面向服务技术开发的系统以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组。
【问题2】
本问题主要考查考生对服务耦合关系的理解,考生需要理解在服务设计时需要注意的一些问题。例如业务逻辑-契约耦合、契约-技术耦合、消费者-实现耦合以及消费者-契约耦合等服务。考生需要对这几种服务耦合进行分析,并结合题目要求描述各种耦合关系的优点或缺点。
【问题3】
本问题主要考查考生对系统需求分析的理解以及对服务设计知识的掌握。题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。
第 3 题
阅读以下关于嵌入式软件虚拟化方面的叙述,在答题纸上回答问题1至问题2。
计算机虚拟化是一种型的计算模式,能够动态组织多种计算资源,隔离硬件体系结构和软件系统之间的依赖关系,实现透明化、可伸缩的计算系统构架,提高计算资源的使用效率和遗产软件的重用。
某公司是一家长期从事嵌入式软件研制的单位。随着虚拟化技术发展,公司决策层决定在公司原有嵌入式实时操作系统基础上,研制具备虚拟化能力的新一代嵌入式操作系统产品。公司将该项目的总体设计任务交给了王工,要求他充分调研用户需求,尽快拿出项目的计划书,并给出项目的技术实施途径。一个月后,王工向公司决策层提交了项目计划书和技术实施途径报告,在公司讨论会上引起技术争议,其焦点主要集中在两个方面:虚拟化体系架构问题和虚拟化中的安全因素问题。
【问题1】(14分)
当前虚拟化的实现技术主要有全虚拟化和半虚拟化两种,请用200字以内的文字说明两种虚拟化技术的主要差别,并用箭线指出图3-1所示的虚拟化特性分属哪种虚拟化技术。
图3-1 虚拟化技术特性归属关系
【问题2】(11分)
具有虚拟化能力的嵌入式实时操作系统目前仅支持单核处理器,而不支持多核,请用100字以内的文字说明其主要原因。表3-1给出如果采用虚拟化技术支持多核时存在的四种共享资源和四种潜在安全隐患,请用箭线指出这些潜在安全隐患分别会发生在哪种共享资源的环境下。
表3-1 四种共享资源和四种潜在的安全隐患
答案与解析
- 试题难度:较难
- 知识点:案例分析>嵌入式方向
- 试题答案:
【问题1】
全虚拟化技术能够在硬件辅助虚拟化的支持下,运行任何不需要修改的客户操作系统;半虚拟化技术不需要硬件辅助虚拟化的支持,通过精心修改客户操作系统内核,在只改动有限量内核代码、替换为相应Hypercall的基础上实现虚拟化的。
图3-2 虚拟化技术特性归属关系
【问题2】
虚拟化操作系统目前仅仅支持单核处理器,不支持多核的主要原因是:由于多核存在共享资源访问,虚拟化后会影响分区化的安全性。表3-2 四种共享资源和四种潜在的安全隐患
- 试题解析:
本题主要考查嵌入式软件系统虚拟化的知识,考查内容较新,需要考生对虚拟化知识的基本概念及其在嵌入式软件系统中的应用具有一定的理解和认识。
【问题1】
本题第一问主要考查半虚拟化技术和全虚拟化技术的差异,考生需要明确全虚拟化技术能够在硬件辅助虚拟化的支持下,运行任何不需要修改的客户操作系统;半虚拟化技术不需要硬件辅助虚拟化的支持,通过精心修改客户操作系统内核,在只改动有限量内核代码、替换为相应Hypercall的基础上实现虚拟化的。
本题第二问主要考查全虚拟化和半虚拟化的特点。全虚拟化需要硬件结构支持,通用性高、过程简洁,虚拟化性能低,不需要修改客户操作系统。半虚拟化技术虚拟化性能高,需要修改客户操作系统,使用范围受到一定制约,但不受CPU硬件限制。
【问题2】
本题第一问主要考查嵌入式实时操作系统不支持多核处理器的原因,其主要原因是由于多核存在共享资源访问,虚拟化后会影响分区化的安全性。
本题第二问主要考查采用虚拟化技术支持多核时,在共享引导逻辑、共享CACHE、共享I/O逻辑、结构的复杂性四个方面可能出现的问题。其中共享引导逻辑的情况下,执行影像的安全性受到潜在威胁;共享CACHE的情况下,潜在的旁路通道遭数据泄漏攻击;共享I/O逻辑的情况下,潜在的隐蔽通道攻击和服务拒绝攻击;结构的复杂性情况下,会存在潜在的故障注入攻击。
第 4 题
阅读以下关于软件可靠性的叙述,在答题纸上回答问题1至问题3。
某企业欲研制某宇航控制系统。该系统对软件的可靠性要求很高,分配给软件的可靠性指标为R≥0.99。根据软件结构设计方案,该软件由7个模块X1,X2,…,X7组成,分别完成不同的控制功能。
为了保证该控制系统能够满足环境可靠性指标,李工认为应该首先采用故障树方法分析,预测出可靠性指标。该企业主管采用了李工的建议,建立了该软件的故障树模型(如图4-1所示),评估出了每个模块的可靠性指标,同时在每个模块的设计与实现过程中,采用了流程优化、结构优化、降低设计复杂度等方法来提高模块的可靠性指标。
软件开发完成后,项目组对该软件进行了相应的可靠性测试,得到了各模块的失效概率为:FX1=FX2=0.05,FX3=0.008,FX4=0.07,FX5=FX6=0.05,FX7=0.08,通过计算割集的失效概率来近似计算整个软件的可靠性指标,计算结果表明该软件的可靠性未达到分配的指标要求。
图4-1 某控制系统故障树
【问题1】(8分)
请给出该故障树的所有最小割集。
【问题2】(10分)
根据题中给出的、经过可靠性测试后得到的每个模块的失效概率,计算每个割集失效概率,并近似计算出整个软件的失效概率,说明该软件的可靠性测试指标确未达要求。
【问题3】(7分)
请进一步分析导致该软件可靠性测试未能满足分配指标要求的原因,并给出后续的改进策略。
答案与解析
- 试题难度:较难
- 知识点:案例分析>系统设计
- 试题答案:
【问题1】
通过对故障树进行分析,可以得出其所有的最小割集为:K1={X3},K2={X1,X2},K3={X4,X5,X6},K4={X5,X6,X7}。
【问题2】
通过对故障树进行分析,可以得出其所有的最小割集为:K1={X3},K2={X1,X2},K3={X4,X5,X6},K4={X5,X6,X7}。则对应割集的失效概率分别为:
F(K1)=0.008
F(K2)=0.05×0.05=0.0025
F(K3)=0.07×0.05×0.05=0.000175
F(K4)=0.05×0.05×0.08=0.0002
则整个软件的失效概率近似为:
P(T)=0.008+0.0025+0.000175+0.0002=0.010875
R=1-0.010875=0.989125<0.99因此,软件的可靠性没有达到分配的指标要求。
【问题3】
根据最小割集的定义,最小割集中所含模块数越少,此最小割集中模块的可靠性要求就越高。所以X3模块的可靠性要求最高,为关键功能模块。由于X3模块对应的割集失效概率过高,导致了软件未能达到分配的指标要求。
改进方法(答出一种即可):
1)采用多轮重复测试的方法,使得模块X3的失效概率收敛,满足可靠性指标要求;
2)重新设计模块X3,提高其可靠性,降低其失效概率。
3)割集K1为一阶割集,容易出现单点故障。可以在X3模块所在层次或其上级增加“与门”,降低K1割集的失效概率。 - 试题解析:
本题考查应用故障树分析方法来设计和评估软件可靠性。
故障树分析方法简称为TA方法(Fault Tree Analysis),是1961年由贝尔电话实验室的H.A.Watson提出的。该方式是一种系统化、形式化的分析方法,可用于系统可靠性分析和安全性分析。其目的是采用演绎方法找出导致系统故障的各种可能的基本原因,从而找到系统的薄弱环节,来改进系统的设计。本题考查的是通过故障树分析方法,对软件系统的可靠性进行定性和定量分析。
定性分析的主要目的是找出所有可能的系统故障模式,即求取最小割集,并按照模块的重要性和最小割集的阶数来排列轻重次序。故障树分析方法的定性分析的核心目标是最小割集,可以通过最小割集找出系统的关键功能模块,从而找出导致关键功能模块失效的原因。
定量分析是在求出最小割集的基础上,通过其他方法获取每一个基本事件的发生概率,从而计算最小割集和顶事件的发生概率。从而可以对系统可靠性和安全性进行进一步分分析。
割集和最小割集的定义为:
割集定义:如果C是一个基本事件的集合,如果C中每个基本事件的发生,将引起顶事件的发生,则C称为该故障树的割集。
最小割集定义:如果C是故障树的一个割集,如果去掉C的任何一个基本事件,使得C不成为割集,则C为该故障树的最小割集。
根据题中的故障树和最小割集的定义,即可求出该故障树的最小割集为:K1={X3},K2={X1,X2},K3={X4,X5,X6},K4={X5,X6,X7}。
第二问是对该故障树的定量分析,在最小割集的基础上,已知每个基本事件的失效概率,即可计算出每个割集的失效概率,从而计算出整个软件系统的失效概率。即:F(K1)=0.008
F(K2)=0.05×0.05=0.0025
F(K3)=0.07×0.05×0.05=0.000175
F(K4)=0.05×0.05×0.08=0.0002
则整个软件的失效概率近似为:
P(T)=0.008+0.0025+0.000175+0.0002=0.010875
根据题干中要求可以看出,此设计方案未能满足要求。
最小割集所包含基本事件的数目称为最小割集的阶数。阶数越低的最小割集重要性越大,显然,阶数为1的最小割集最重要,其可靠性要求就越高。所以X3模块的可靠性要求最高,为关键功能模块。由于X3模块对应的割集失效概率过高,导致了软件未能达到分配的指标要求。
工程中实际的改进方法一般包括:
1)采用多轮重复测试的方法,使得模块X3的失效概率收敛,满足可靠性指标要求;
2)重新设计模块X3,提高其可靠性,降低其失效概率;
割集K1为一阶割集,容易出现单点故障。可以在X3模块所在层次或其上级增加“与门”,降低K1割集的失效概率。
第 5 题
阅读以下关于Web应用系统开发的问题,在答题纸上回答问题1至问题3。
A公司承担了某企业应用系统的开发任务,用户要求系统最终应发布到Web上供企业员工及企业客户使用。项目组在进行方案论证时,首先肯定了该系统需使用B/S结构,但在系统应采用的底层平台上产生了分歧,一方认为应采用微软.NET平台,一方认为应采用Java企业版平台。经过认真讨论,结合两种平台的特点及项目的实际需求,项目组最终决定采用Java企业版平台作为系统开发运行的基础平台。
【问题1】(9分)
请在以下平台特点(1)~(9)中,选择出.NET平台与Java企业版平台各自具备的优势填入表5-1的(a)~(f)项中,选择出两个平台共有的特点填入表5-1的(g)~(i)项中。
(1)良好跨平台可移植性支持
(2)易于部署与配置
(3)多程序设计语言支持
(4)良好的Web多层应用开发支持
(5)丰富的多厂商外部支持
(6)良好的O/R(对象/关系)映射支持
(7)针对特定平台的优化支持
(8)良好的源代码以外的可定制性支持
(9)良好的Web服务支持
表5-1 .NET平台与Java平台的优势对比
【问题2】(8分)
MVC(Model-View-Controller)模式是Web应用系统开发中常用的一种软件架构模式。请分别针对基于EJB的重量级框架和基于Struts等的轻量级框架,说明MVC模式中的各组件应采用何种构件实现。
项目组在进行需求调研时,发现用户界面部分的变动可能会比较频繁,因此需要降低系统界面与业务逻辑之间的耦合度。MVP(Model–View–Presenter)模式是由MVC模式派生出的一种设计模式,其主要目的是降低MVC模式中模型(Model)与视图(View)的耦合度,请用300字以内文字,从组件耦合度、组件分工及对开发工程化支持等三方面说明MVP模式与MVC模式的主要区别。
【问题3】(8分)
因为系统中大量业务逻辑涉及企业的核心商业数据,为保证系统数据一致性,完善的事务(Transaction)控制是系统实现时必需考虑重要因素之一。请用200字以内文字说明事务的基本特征,并简单描述EJB规范中提供的两种事务控制的基本方法。
答案与解析
- 试题难度:较难
- 知识点:案例分析>Web技术
- 试题答案:
【问题1】
(a)~(c):(2)、(3)、(7),以上三个答案顺序可调换;
(d)~(f):(1)、(5)、(8),以上三个答案顺序可调换;
(g)~(i):(4)、(6)、(9),以上三个答案顺序可调换;
【问题2】
在基于EJB的重量级框架中,实现的构件分别为:
模型(Model):由EJB构件实现
视图(View):由JSP构件实现
控制器(Controller):由Servlet构件实现
在基于Struts等的轻量级框架中,实现的构件分别为:
模型(Model):由Java Bean构件实现
视图(View):由JSP构件实现
控制器(Controller):由Servlet构件实现
MVP模式与MVC模式的主要区别为:
(1)在组件耦合度方面:在MVP模式中,视图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离,而在MVC模式中,视图直接与模型交互。
(2)在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发的界面事件,而在MVC模式中这通常是由控制器完成的工作;在MVP模式中,系统核心业务逻辑组织集中在Presenter中,而在MVC模式中,相应的控制器通常只完成事件的分发。
(3)在开发工程化支持方面:MVP模式可更好地支持单元测试,而在MVC模式中,由于模型与视图绑定,因此难以实施相应的单元测试;在MVP模式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。
【问题3】
事务的基本特征包括:
原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据的完整性限制没有被破坏。
隔离性:两个事务的执行是互不干扰的,两个事务时间不会互相影响。
持久性:在事务完成以后,该事务对数据所作的更改便持久地保存在数据库之中,并且是完全的。
EJB规范支持的两种事务控制方法为:
容器维护的事务(Container Managed Transaction, CMT):由EJB容器根据部署描述符或EJB构件注释中指定的事务属性自动控制事务的边界,容器维护的事务是方法级的,即默认将一个方法当作一个事务执行,当方法执行的过程中发生系统级异常,容器会自动将事务回滚,从而将方法前面执行的结果恢复。
Bean维护的事务(Bean Managed Transaction, BMT):由程序员在EJB的源代码中控制事务执行的边界,事务的边界通过Java事务接口(Java Transaction API, JTA)进行控制,Bean维护的事务可以跨越方法的边界。 - 试题解析:
本题主要考查Web应用系统开发的知识,考生需要区分.NET平台和J2EE平台的区别,并理解掌握MVC的基本概念,并进一步掌握MVP设计模式。
【问题1】
本问题主要考查.NET和J2EE平台的区别,考生需要从跨平台可移植性、部署与配置、多程序设计语言支持、Web多层应用开发支持、多厂商外部支持、O/R(对象/关系)映射支持、针对特定平台的优化支持、源代码以外的可定制性支持以及Web服务支持等方面作答。
【问题2】
本问题主要考查MVC和MVP模式的区别。MVC(Model-View-Controller)模式是Web应用系统开发中常用的一种软件架构模式,包括基于EJB的重量级框架和基于Struts等的轻量级框架等。MVP模式与MVC模式的主要区别为:(1)在组件耦合度方面:在MVP模式中,视图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离,而在MVC模式中,视图直接与模型交互。(2)在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发的界面事件,而在MVC模式中这通常是由控制器完成的工作;在MVP模式中,系统核心业务逻辑组织集中在Presenter中,而在MVC模式中,相应的控制器通常只完成事件的分发。(3)在开发工程化支持方面:MVP模式可更好地支持单元测试,而在MVC模式中,由于模型与视图绑定,因此难以实施相应的单元测试;在MVP模式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。
【问题3】
本问题主要考查事务的基本特征和EJB规范中提供的事务控制的基本方法。事务的基本特征包括:原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务结束以后,数据的完整性限制没有被破坏。 隔离性:两个事务的执行是互不干扰的,两个事务时间不会互相影响。 持久性:在事务完成以后,该事务对数据所作的更改便持久地保存在数据库之中,并且是完全的。
EJB规范支持的两种事务控制方法为:
容器维护的事务(Container Managed Transaction, CMT):由EJB容器根据部署描述符或EJB构件注释中指定的事务属性自动控制事务的边界,容器维护的事务是方法级的,即默认将一个方法当作一个事务执行,当方法执行的过程中发生系统级异常,容器会自动将事务回滚,从而将方法前面执行的结果恢复。
Bean维护的事务(Bean Managed Transaction, BMT):由程序员在EJB的源代码中控制事务执行的边界,事务的边界通过Java事务接口(Java Transaction API, JTA)进行控制,Bean维护的事务可以跨越方法的边界。