上半年系分案例分析部分.docx

上传人:b****5 文档编号:4320445 上传时间:2022-11-29 格式:DOCX 页数:15 大小:24.45KB
下载 相关 举报
上半年系分案例分析部分.docx_第1页
第1页 / 共15页
上半年系分案例分析部分.docx_第2页
第2页 / 共15页
上半年系分案例分析部分.docx_第3页
第3页 / 共15页
上半年系分案例分析部分.docx_第4页
第4页 / 共15页
上半年系分案例分析部分.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

上半年系分案例分析部分.docx

《上半年系分案例分析部分.docx》由会员分享,可在线阅读,更多相关《上半年系分案例分析部分.docx(15页珍藏版)》请在冰豆网上搜索。

上半年系分案例分析部分.docx

上半年系分案例分析部分

2012上半年系分案例分析部分

第1题

阅读以下关于软件项目管理的叙述,在答题纸上回答问题1至问题4。

【说明】

某软件企业为电信公司开发一套网上营业厅系统,以提升服务的质量和效率。

项目组经过分析,列出了项目开发过程中的主要任务、持续时间和所依赖的前置任务,如表1-1所示。

在此基础上,可分别绘制出管理该系统开发过程的PERT图和Gantt图。

表1-1

【问题1】(6分)

请用300字以内的文字分别解释说明PERT图和Gantt图的具体含义,并说明两种方法所描述开发过程的差异。

【问题2】(9分)

根据表1-1所示活动及其各项活动之间的依赖关系,分别计算对应PERT图中活动C~H的松弛时间(SlackTime)填入(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

所需工期:

26xx

【问题4】

最可能的开发工期=(最优工期+期望工期×4+最差工期)/6=(24+26×4+34)/6=27周试题分析:

本题主要考查考生对于软件项目管理工具的掌握情况。

软件项目管理的主要工作包括确定任务、估计任务工期、指定任务之间的依赖关系、资源调配等。

PERT图和Gantt图是系统分析师进行项目进度控制的工具,利用PERT图能够更清楚地描述和定义关键路径及任务之间的依赖关系,项目管理软件能够根据任务之间的依赖关系和任务工期自动地计算并加亮显示关键路径。

【问题1】

PERT(项目评估与评审技术)发展于20世纪50年代后期,用于为美国海军计划和控制大型的武器开发项目。

PERT图是一种图形化的网络模型,描述一个项目中任务和任务之间的关系,每个节点表示一个任务,通常包括任务编号、名称、开始和结束时间、持续时间和松弛时间。

PERT图用于在任务被调度之前弄清楚任务之间的依赖关系。

Gantt图最早由HenryL.Gantt在1917年提出,是最常用的项目调度和进展评估工具。

Gantt图是一种简单的水平条形图,它以一个日历为基准描述项目任务,横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。

Gantt图的优点是可以清楚地显示出重叠任务,也就是说可以同时执行的任务。

PERT图和Gantt图并不是互斥的,在交流项目进度时Gantt图更有效,需要研究任务之间的关系时PERT图更有效。

【问题2】

在制定项目进度表时,需要为任务分配资源,所分配资源如果超过了可以提供的资源,就需要进行资源调配。

松弛时间(SlackTime)是指任务在项目实际进展中可以延迟的时间,这个延迟量不会引起整个项目完成时间上的延迟。

松弛时间可以提供延迟任务开始时间的机会,可以调配资源而不影响项目的完成时间。

下图给出了表1-1中任务之间的关系,关键路径上任务的松弛时间为0,非关键路径上的任务

E、F、H所对应的松弛时间分别为

1、6、2。

【问题3】

关键路径是一个相关任务序列,该序列上任务工期之和最大。

图1-1所示PERT图中,包括了6条路径:

(1)路径序列:

ABCEGHJ工期之和:

24xx

(2)路径序列:

ABCEGIJ工期之和:

26xx

(3)路径序列:

ABCFHJ工期之和:

16xx

(4)路径序列:

ABDFHJ工期之和:

20xx

(5)路径序列:

ABDGHJ工期之和:

23xx

(6)路径序列:

ABDGIJ工期之和:

25xx

经过比较分析,任务工期之和最大值为26周,对应关键路径序列为ABCEGIJ。

【问题4】

最优工期(OD)是估计完成任务所需的最小时间量;最差工期(PD)是估计完成任务所需的最大时间量;期望工期(ED)是估计完成任务所需的时间量。

最可能工期(D)是计算公式为:

其中,

1、4和1是用来计算三个估计值的加权平均值的默认权值。

问题中最优工期OD为24,最差工期PD为34,期望工期ED为26,计算后得到最可能工期D为(1×24+4×26+1×34)/6=27周。

第2题

阅读以下关于企业应用系统开发的叙述,在答题纸上回答问题1至问题3。

一个月后,王工和李工分别向公司提交了自己的方案。

王工主张以公司现有的、采用面向对象技术和Java语言实现的业务系统为基础,针对新的业务需求对系统进行重构、改造与升级。

李工则认为现有系统的业务逻辑过于复杂,对系统进行重构的成本太高,可以采用面向服务的思想,提炼可复用的业务功能形成服务,实现系统的灵活性。

经过公司相关人员共同开会讨论,最终采用了李工的改造方案。

【问题1】(10分)

请用500字以内的文字,从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比,并结合项目需求说明公司为何会选择李工的方案。

【问题2】(9分)

采用服务思想设计系统时,需要考虑服务的耦合性。

服务的耦合性可以分为两类,分别是服务契约耦合(ServiceContractCoupling)和服务消费者耦合(ServiceConsumerCoupling)。

请对各种耦合关系进行分析,填写(a)~(g),完成表2-1。

表2-1服务耦合关系分析

耦合关系耦合类型是否有害耦合关系解释

业务逻辑-xx耦合(a)(d)(f)

xx-技术耦合(b)(e)(g)

消费者-实现耦合(c)是服务消费者需要通过服务契约使用服务功能,而不能直接与服务实现相关。

消费者-契约耦合服务消费者耦合否在使用服务功能时,服务消费者需要与服务契约进行绑定。

这样能够提高服务消费者和服务之间的独立性。

【问题3】(6分)

在对系统的业务服务进行初步分析后,李工首先提取了客户注册、业务受理和发票开具三个典型的业务服务。

但进一步分析后,李工发现这三个服务需要使用数据库中的客户实体、业务实体和发票实体,而发票实体包含客户实体和业务实体的信息,这样会导致发票开具服务内部包含并重复实现客户注册和业务受理的处理过程,降低服务的复用性。

请说明这种情况产生的主要原因,并针对这种情况,说明该如何对这三个服务进行重构,使它们具有更好的重用性。

答案:

(高级模式)参考答案及分析>>

参考

答案:

【问题1】

从系统业务功能实现来看,采用面向对象技术开发的系统以对象为核心概念,通过对象之间的消息交互完成业务功能;采用面向服务技术开发的系统以服务为核心概念,业务功能需要封装为服务。

从系统功能集成方式来看,采用面向对象技术开发的系统以对象为单元进行功能集成,通常采用工作流技术定制业务流程;采用面向服务技术开发的系统以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组。

根据项目需求,需要对现有业务系统进行升级改造,因此保证升级改造的低成本是一个重要的因素,王工的方案需要现有系统进行功能梳理与重新开发,升级改造成本较高;李工的方案则侧重将现有功能包装为服务,升级改造成本较低。

项目还要求提高系统的灵活性,王工的方案以对象技术为基础,当业务发生变化时,需要在代码层次上进行修改并重新部署,因此系统的灵活性相对较差;李工的方案以大粒度的业务服务复用为基础,当业务发生变化时,可以采用服务组合技术实现系统的运行时功能组合,因此灵活性相对较好。

【问题2】

(a)服务xx耦合

(b)服务xx耦合

(c)服务消费者耦合

(d)否

(e)是

(f)按照SOA的思想,业务逻辑应当与契约耦合,而不应与实现或技术耦合

(g)服务契约不应该与具体厂商的实现技术相关,而应该基于标准的XML技术与Web服务标准

【问题3】

题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。

针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。

在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。

试题分析:

本题考查的是企业应用系统开发方面的知识与应用,属于比较传统的题目,考查点也与往年类似。

【问题1】

本问题从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比。

回答本题时必须紧扣业务功能实现和功能集成这两个方面。

从系统业务功能实现来看,采用面向对象技术开发的系统以对象为核心概念,通过对象之间的消息交互完成业务功能;采用面向服务技术开发的系统以服务为核心概念,业务功能需要封装为服务。

从系统功能集成方式来看,采用面向对象技术开发的系统以对象为单元进行功能集成,通常采用工作流技术定制业务流程;采用面向服务技术开发的系统以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组。

【问题2】

本问题主要考查考生对服务耦合关系的理解,考生需要理解在服务设计时需要注意的一些问题。

例如业务逻辑-契约耦合、契约-技术耦合、消费者-实现耦合以及消费者-契约耦合等服务。

考生需要对这几种服务耦合进行分析,并结合题目要求描述各种耦合关系的优点或缺点。

【问题3】

本问题主要考查考生对系统需求分析的理解以及对服务设计知识的掌握。

题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。

针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。

在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。

第3题

阅读以下关于嵌入式软件虚拟化方面的叙述,在答题纸上回答问题1至问题2。

计算机虚拟化是一种新型的计算模式,能够动态组织多种计算资源,隔离硬件体系结构和软件系统之间的依赖关系,实现透明化、可伸缩的计算系统构架,提高计算资源的使用效率和遗产软件的重用。

某公司是一家长期从事嵌入式软件研制的单位。

随着虚拟化技术发展,公司决策层决定在公司原有嵌入式实时操作系统基础上,研制具备虚拟化能力的新一代嵌入式操作系统产品。

公司将该项目的总体设计任务交给了王工,要求他充分调研用户需求,尽快拿出项目的计划书,并给出项目的技术实施途径。

一个月后,王工向公司决策层提交了项目计划书和技术实施途径报告,在公司讨论会上引起技术争议,其焦点主要集中在两个方面:

虚拟化体系架构问题和虚拟化中的安全因素问题。

【问题1】(14分)

当前虚拟化的实现技术主要有全虚拟化和半虚拟化两种,请用200字以内的文字说明两种虚拟化技术的主要差别,并用箭线指出图3-1所示的虚拟化特性分属哪种虚拟化技术。

【问题2】(11分)

具有虚拟化能力的嵌入式实时操作系统目前仅支持单核处理器,而不支持多核,请用100字以内的文字说明其主要原因。

表3-1给出如果采用虚拟化技术支持多核时存在的四种共享资源和四种潜在安全隐患,请用箭线指出这些潜在安全隐患分别会发生在哪种共享资源的环境下。

表3-1四种共享资源和四种潜在的安全隐患

图3-1虚拟化技术特性归属关系

答案:

(高级模式)参考答案及分析>>

参考

答案:

【问题1】

全虚拟化技术能够在硬件辅助虚拟化的支持下,运行任何不需要修改的客户操作系统;半虚拟化技术不需要硬件辅助虚拟化的支持,通过精心修改客户操作系统内核,在只改动有限量内核代码、替换为相应Hypercall的基础上实现虚拟化的。

图3-1虚拟化技术特性归属关系

【问题2】

虚拟化操作系统目前仅仅支持单核处理器,不支持多核的主要原因是:

由于多核存在共享资源访问,虚拟化后会影响分区化的安全性。

表3-1四种共享资源和四种潜在的安全隐患

试题分析:

本题主要考查嵌入式软件系统虚拟化的知识,考查内容较新,需要考生对虚拟化知识的基本概念及其在嵌入式软件系统中的应用具有一定的理解和认识。

【问题1】

本题第一问主要考查半虚拟化技术和全虚拟化技术的差异,考生需要明确全虚拟化技术能够

答案:

(高级模式)参考答案及分析>>

参考

答案:

【问题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方法(FaultTreeAnalysis),是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规范中提供的两种事务控制的基本方法。

答案:

(高级模式)参考答案及分析>>

参考

答案:

【问题1】

(a)~(c):

(2)、

(3)、(7),以上三个答案顺序可调换;

(d)~(f):

(1)、

(5)、(8),以上三个答案顺序可调换;

(g)~(i):

(4)、

(6)、(9),以上三个答案顺序可调换;

【问题2】

在基于EJB的重量级框架中,实现的构件分别为:

l模型(Model):

由EJB构件实现

l视图(View):

由JSP构件实现

l控制器(Controller):

由Servlet构件实现

在基于Struts等的轻量级框架中,实现的构件分别为:

l模型(Model):

由JavaBean构件实现

l视图(View):

由JSP构件实现

l控制器(Controller):

由Servlet构件实现

MVP模式与MVC模式的主要区别为:

(1)在组件耦合度方面:

在MVP模式中,视图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离,而在MVC模式中,视图直接与模型交互。

(2)在组件分工方面:

在MVP模式中,视图需要处理鼠标及键盘等触发的界面事件,而在MVC模式中这通常是由控制器完成的工作;在MVP模式中,系统核心业务逻辑组织集中在Presenter中,而在MVC模式中,相应的控制器通常只完成事件的分发。

(3)在开发工程化支持方面:

MVP模式可更好地支持单元测试,而在MVC模式中,由于模型与视图绑定,因此难以实施相应的单元测试;在MVP模式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。

【问题3】

事务的基本特征包括:

原子性:

一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。

事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性:

在事务开始之前和事务结束以后,数据的完整性限制没有被破坏。

隔离性:

两个事务的执行是互不干扰的,两个事务时间不会互相影响。

持久性:

在事务完成以后,该事务对数据所作的更改便持久地保存在数据库之中,并且是完全的。

EJB规范支持的两种事务控制方法为:

容器维护的事务(ContainerManagedTransaction,CMT):

由EJB容器根据部署描述符或EJB构件注释中指定的事务属性自动控制事务的边界,容器维护的事务是方法级的,即默认将一个方法当作一个事务执行,当方法执行的过程中发生系统级异常,容器会自动将事务回滚,从而将方法前面执行的结果恢复。

Bean维护的事务(BeanManagedTransaction,BMT):

由程序员在EJB的源代码中控制事务执行的边界,事务的边界通过Java事务接口(JavaTransactionAPI,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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1