某软件企业为电信公司开发一套网上营业厅系统,以提升服务的质量和效率。项目组经过分析,列出了项目开发过程中的主要任务、持续时间和所依赖的前置任务,如表1-1所示。在此基础上,绘制了项目PERT图。
【问题1】(10分)
PERT图采用网络图来描述一个项目的任务网络,不仅可以表达子任务的计划安排,还可以在任务计划执行过程中估计任务完成的情况。针对表1-2中关于PERT图中关键路径的描述(1)(5),判断対PERT图的特点描述是否正确,并说明原因。
表1-2 PERT图特点描述
【问题2】(5分)
根据表1-1所示任务及其各项任务之间的依赖关系,计算对应PERT图中的关键路径及项目所需工期。
【问题3】(10分)
根据表1-1所示任务及其各项任务之间的依赖关系,分别计算对应PERT图中任务C~G的松弛时间(SlackTime),将答案填入(a)(e)中的空白处。
【问题1】
(1)正确。项目中最长路径上的工作,是不能延误的,所以这条路径是一个项目成败关键,故命名关键路径。
(2)不正确。一个PERT图可以有多条关键路径。
(3)不正确。关键路径在项目执行过程中可能发生变化,只要非关键活动延误超过其总时差,关键路径就会发生变化。
(4)正确。关键路径越多,说明项目活动并行度高,而且大量任务不容延误,所以项目管理的复杂度高,风险也大。
(5)正确。关键路径上的任务不能延迟,一旦延迟会导致项目工期延长。
【问题2】
关键路径为:ABCEGHI,最短工期为25周。
【问题3】
(a)0 (b)3(c)0 (d)3(e)0
某公司是一家以运动健身器材销售为主营业务的企业,为了扩展销售渠道,解决原销售系统存在的许多问题,公司委托某软件企业开发一套运动健身器材在线销售系统。目前,新系统开发处于问题分析阶段,所分析各项内容如下所述:
(a)用户需要用键盘输入复杂且存在重复的商品信息;
(b)订单信息页面自动获取商品信息并填充;
(c)商品订单需要远程访问库存数据并打印提货单;
(d)自动生成电子提货单并发送给仓库系统;
(e)商品编码应与原系统商品编码保持一致;
(f)商品订单处理速度太慢;
(g)订单处理的平均时间减少30%;
(h)数据编辑服务器CPU性能较低;
(i)系统运维人员数量不能增加。
【问题1】(8分)
问题分析阶段主要完成对项目开发的问题、机会和/或指示的更全面的理解。请说明系统分析师在问题分析阶段通常需要完成哪四项主要任务。
【问题2】(9分)
因果分析是问题分析阶段一项重要技术,可以得出对系统问题的真正理解,并且有助于得到更具有创造性和价值的方案。请将题目中所列(a) ~(i)各项内容填入表中(1) ~ (4)对应位置。
表1-1问题、机会、目标和约束条件
【问题3】(8分)
系统约束条件可以分为四类,请将类别名称填入表中(1) ~ (4)对应的位置。
表1-2 约束条件分类
【问题1】
问题分析阶段的主要任务包括:
1)研究问题领域
利用信息系统框架来列出和定义系统领域
数据 – 列出所有与系统当前存储的数据(在文件、数据库、表格中)有关的内容,并按照业务词汇定义每项内容。
过程 – 定义当前为其实现了业务响应(过程)的每个业务事件
接口 – 定义运行当前系统的所有地点和每个地点的所有用户
2)分析问题和机会
3)分析业务过程(可选)
4)制定系统改进目标
5)修改项目计划
6)汇报分析结果和建议
7)阶段确认
其中核心任务主要有四项:研究问题领域;分析问题和机会;分析业务过程;制定系统改进目标。
【问题2】
本题对于表格,第一栏填写系统真正的问题,第二栏填写问题产生的原因,第三栏填写系统改进的目标,第四栏填写设计约束。
根据题干描述,“(f)商品订单处理速度太慢;”是系统真正的问题,产生这个问题的原因在于“(a)用户需要用键盘输入复杂且存在重复的商品信息;”、“(c)商品订单需要远程访问库存数据并打印提货单;”、“(h)数据编辑服务器CPU性能较低;”,最终想要改进的目标有“(b)订单信息页面自动获取商品信息并填充;”、“(d)自动生成电子提货单并发送给仓库系统;”、“(g)订单处理的平均时间减少30%;”,系统的设计约束包括“(e)商品编码应与原系统商品编码保持一致;”、“(i)系统运维人员数量不能增加。 ”
【问题3】
系统约束是系统在改进过程中必须满足、基本上无法被改变的条件。系统约束通常分为四类:进度约束、成本约束、技术约束、政策/标准约束。
某软件公司启动了一个中等规模的软件开发项目,其功能需求由5个用例描述。项目采用增量开发模型,每一次迭代完成1个用例;共产生5个连续的软件版本,每个版本都比上一个版本实现的功能多。
每轮迭代都包含实现、测试、修正与集成4个活动,且前一个活动完成之后才能开始下一个活动。不同迭代之间的活动可以并行。例如,1个已经实现的用例在测试时,软件开发人员可以开始下一个用例的实现。实现和修正活动不能并行。
每个活动所需的工作量估算如下:
(1)实现1个用例所需的时间为10人天;
(2)测试1个用例所需的时间为2人天;
(3)修正1个用例所需的时间为1人天(平均估算);
(4)集成1个用例所需的时间为0.5人天。
项目开发过程中能够使用的资源包括:5名开发人员共同完成实现和修正工作、2名测试人员完成测试工作和1名集成人员完成集成工作。
该项目的Gannt图(部分)如图1-1所示。
图1-1 某软件公司软件开发项目的Gannt图(部分)
【问题1】(8分)
根据题目描述中给出的工作量计算方法,计算1个用例的实现,测试、修正、集成4个活动分别所需的日历时间(单位:天)
【问题2】(9分)
(1)根据图1-1给出的项目Gannt图,估算出项目开发时间。
(2)计算测试人员和集成人员在该项目中的平均工作时间(占项目总开发时间的百分比)。
【问题3】(8分)
在项目实施过程中,需不断将实际进度与计划进度进行比较分析,进行项目进度计划的修正与调整,以保证项目工期。用300字以内文字,从活动和资源的角度,说明项目进度计划调整所涉及的内容。
【问题1】(8分)
实现:2天,测试:1天,修正:0.5天,集成:0.5天。
【问题2】(9分)
(1)14天
(2)测试人员:35.7%,集成人员:17.9%
【问题3】(8分)
1、关键活动的调整,若关键活动延误,一般调整的方法主要是缩短后续关键活动的持续时间。
2、非关键活动的调整,当非关键路径上某些工作的持续时间延长,但不超过其时差范围时,则不会影响项目工期,进度计划不必调整。
3、增减工作项目,由于编制计划时考虑不周,或因某些原因需要增加或取消某些工作,则需重新调整网络计划,计算网络参数。
4、资源调整,若资源供应发生异常时,应进行资源调整,资源供应发生异常是指因供应满足不了需要。资源调整的方法是进行资源优化,提高资源利用率。
某软件开发企业受对外贸易公司委托开发一套跨境电子商务系统,项目组从多个 方面对该电子商务系统进行了可行性分析,在项目组给出的可行性分析报告中,对项目的成本、收益情况进行了说明:建设投资总额为300万元,建设期为1年,运营期为4年,该方案现金流量表如表1-1所示。
表1-1 系统解决方案现金流量表(单位:万元)
【问题1】(12分)
软件系统可行性分析包括哪几个方面?用200以内文字说明其含义。
【问题2】(7分)
成本和收益是经济可行性评价的核心要素,成本一般分为开发成本和运营成本, 收益包括有形收益和无形收益,请对照下列7项内容,将其序号分别填入成本和收益 对应的类别。
a)系统分析师工资;
b)采购数据库服务器;
c)系统管理员工资;
d)客户满意度增加;
e)销售额同比提高;
f)软件许可证费用;
g)应用服务器数量减少。
【问题3】(6分)
根据表1-1所示现金流量表,分别给出该解决方案的静态投资回收期、动态投资回收期和投资收益率的算术表达式或数值(结果保留2位小数)。
【问题1】
(1)经济可行性。主要评估项目的建设成本、运行成本和项目建成后可能的经济收益。
(2)技术可行性。研究的对象是信息系统需要实现的功能和性能,以及技术能力约束。
(3)法律可行性。具有比较广泛的内容,它需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。
(4)用户使用可行性。从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等。
【问题2】
(1)开发成本:(a)系统分析师工资、(b)采购数据库服务器
(2)运营成本:(c)系统管理员工资、(f)软件许可证费用
(3)有形收益:(e)销售额同比提高、(g)应用服务器数量减少
(4)无形收益:(d)客户满意度增加
【问题3】
静态投资回收期= 累计净现金流量开始出现正值的年份数-1+∣上年累计净现金流量∣/当年净现金流量 = (3-1)+(390-340)/(200-60) = 2.36年
动态投资回收期 = 累计折现值开始出现正值的年份数-1+∣上年累计折现值∣/当年折现值 = (3-1)+(377.9-295)/((200-60)×0.75) = 2.79年
投资收益率 = 投资收益/投资成本×100% = 594.6/470.5 = 126.38%
某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司的系统分析师王工首先进行了需求分析,得到的系统需求列举如下:
系统的参与者包括乘客、出租车司机和平台管理员三类;
系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息进行管理,对出租车司机的违章情况进行审核;
系统需要与后端的银行支付系统对接,完成支付信息审核、支付信息更新与在线支付等功能;
针对乘客发起的每一笔订单,系统需要实现订单发起、提交、跟踪、撤销、支付、完成等业务过程的处理:
系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。
在系统分析与设计阶段,公司经过内部讨论,一致认为该系统的需求定义明确,建议尝试采用新的微服务架构进行开发,并任命王工为项目技术负责人,负责项目开发过程中的技术指导工作。
【问题1】 (12 分)
请用 100字以内的文字说明一个微服务中应该包含的内容,并用 300 字以内的文字解释基于微服务的系统与传统的单体式系统相比的 2 个优势和带来的 2 个挑战。
【问题2】 (8 分)
识别并设计微服务是系统开发过程中的一个重要步骤,请对题干需求进行分析,对微服务的种类和包含的业务功能进行归类,完成表 1-1 中的(1)~(4)。
表1-1 微服务名称及所包含业务功能
【问题3】(5分)
为了提高系统开发效率,公司的系统分析师王工设计了一个基于微服务的软件交付流程,其核心思想是将业务功能定义为任务,将完成某个业务功能时涉及到的步骤和过程定义为子任务,只有当所有的子任务都测试通过后改业务功能才能上线交付。请基于王工设计的在线支付微服务交付流程,从(a)~(f)中分别选出合适的内容填入图1-1中的(1)~(5)处。
图3-1 在线支付微服务交付流程
选项:(a)提交测试 (b)全量上线 (c) 对接借记卡
(d) 获取个人优惠券 (e)试部署 (f)对账
【问题1】
一个微服务中应该包含的内容有:资源、对资源的操作、API集合。
微服务的优势:
(1)解决了复杂性问题。它把庞大的单一模块应用分解为一系列的服务,同时保持总体功能不变。
(2)让每个服务能够独立开发,开发者能够自由选择可行的技术,让服务来决定API 约定。
(3)每个微服务都能独立配置,开发者不必协调对于本地服务配置上的变化,这种变化一旦测试完成就被配置了。
(4)让每个服务都可以独立调整,你可以给每个服务配置正好满足容量和可用性限制的实例数。
微服务架构带来的挑战:
(1)并非所有的系统都能转成微服务。例如一些数据库层的底层操作是不推荐服务化的。
(2)部署较以往架构更加复杂:系统由众多微服务搭建,每个微服务需要单独部署,从而增加部署的复杂度,容器技术能够解决这一问题。
(3)性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或调用出错。例如一个服务需要访问另一个服务的数据,只能通过服务间接口来进行数据传输,如果是频繁访问,则可能带来较大的延迟。
(4)数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。
【问题2】
(1)乘客信息注册、乘客身份认证、乘客信用信息管理
(2)出租车司机信息注册、出租车司机身份认证、司机违章情况审核
(3)支付管理
(4)订单发起、订单提交、订单跟踪、订单撤销
【问题3】
(1)(f) (2)(c) (3)(d) (4)(e) (5)(b)
随着宽带应用快速发展,用户要求系统服务提供商提供基于互联网的多种服务。数字视频监控作为一种区域级的安全监控方式,越来越为更多的用户所使用。数字视频监控告警系统采用与数字视频监控相结合的多媒体技术和基于互联网的信息传递方案,为企业用户以及个人用户提供多种媒体的、不同时间、地点的信息通知服务。数字视频监控告警系统可以将用户需要查看的监控视频或告警信息,通过互联网门户系统以多种媒体方式传送给用户,方便用户随时随地了解与自身相关的视频信息。
【问题1】(10分)
在设计数字视频监控告警系统时,张工将该系统划分为五个层次:服务代理层、门户服务层、流程服务总线层、业务流程应用管理层和企业服务层,其中流程服务总线层是整个数字视频监控告警系统的核心,实现了服务消息、服务指令与数据的集中传递。系统五个层次在实现时可以采用图1-1左侧所示的技术或工具,请将系统的5个层次填入空(1)~(5),使其与左侧技术或工具相对应。
图1-1 数字视频监控告警系统架构图
【问题2】(8分)
请用300字以内文字说明服务代理层、门户服务层、业务流程应用管理层和企业服务层的主要功能。
【问题3】(7分)
张工认为,系统设计实现时需要重点关注系统的私密性、实时性、稳定性和扩展性,为什么?请用300字以内文字说明。
【问题1】
空(1)应填“门户服务层”,因为,Web Portal即门户网站。采用Web Portal架构技术形成多种媒体互通的数字视频监控多媒体集成系统,为用户提供多视角、多媒体的综合视频监控方案。
空(2)应填“业务流程应用管理层”、空(3)应填“流程服务总线层”、空(4)应填“服务代理层”,因为,当新的服务加入到现有系统时,管理人员通过业务流程应用管理层定义业务流程→流程服务总线层→配置服务代理,当配置服务代理(Service Agent)连接成功后,管理人员可以方便快速的将其加入到现有的业务运行环境中。显然,空(5)应填“企业服务层”。
【问题2】
门户服务层:提供信息展现的功能,向各类用户提供个性化的服务。用户可以根据各自的习惯和兴趣,定制门户的页面结构和服务内容。各个展现模块通过下层组件和具体的服务相关联。
业务流程应用管理层:提供了系统管理人员定义业务流程、重组优化现有业务流程、模拟测试业务流程等功能,同时提供了各类服务的运行环境。在新的服务加入到现有系统中时,管理人员在配置服务代理(Service Agent)连接成功后,可以方便快速的将其加入到现有的业务运行环境中。
服务代理层:提供了在流程服务总线上接收或发送各类具体业务服务的消息与指令的功能。各个服务代理将其对应的业务服务发出的指令发布到流程服务总线上,同时接收由流程服务总线上的与自身相关的指令消息,并传递给各类服务执行。
企业服务层:企业服务层包含了数字视频监控多媒体集成系统中的各类具体的企业应用,如数字视频监控系统服务、网站门户服务、电子邮件警告服务等。各类企业服务为整个系统提供了多种的服务支持,并且在对于符合该层次结构的服务也可以方便快速的加入到现有的系统体系中。
【问题3】
作为数字视频监控告警系统在设计时必须注意以下几方面:
(1)私密性:具备权限和访问级别控制的功能,以保障公司或个人的专有的视频监控信息私密性;
(2)实时性:当突发事件发生时,必须反应迅速,接警时间极短,报警控制器检测到报警信号后,必须及时告警和处理;
(3)扩展性:由于现代技术的快速发展,系统应该具备可扩展性,以适应新技术、新设备;
(4)稳定性:是数字视频告警系统的基本要求,因为告警系统必须具备长时间不间断运行的能力,特别是在用户峰值时,也能保证信息的通畅、快速以实现对公司或个人情况的有效监控。
某企业委托软件公司开发一套运动器材综合销售平台,以改进已有的销售管理系统,拓展现有的实体店销售模式,综合管理线上线下的器材销售业务。该软件公司组建项目组开发该系统,现正处于需求获取阶段。经过项目组讨论,由于目标系统业务功能比较复杂,所以在需求获取中针对不同类型的业务需求,采用不同的需求获取方法。项目组列出可选的需求获取方法包括:用户访谈、联合需求计划(JRP)、问卷调查、文档分析和实地观察等。
需求获取的要求如下:
(1)获取已有销售管理系统中所实现的实体店销售模式和过程;
(2)获取系统的改进需求和期望增加的业务功能;
(3)获取当前业务过程中的详细数据并深入了解这些数据产生的原因;
(4)从企业管理人员、销售人员、各种文档资源等尽可能多的来源获取需求;
(5)消除需求中出现的冲突,尽可能获取全面、一致的需求;
(6)尽可能多地让用户参与需求获取过程。
【问题1】(10分)
联合需求计划(JRP)是一种流行的需求获取方法。请说明什么是JRP,JRP与其他需求获取方法相比有什么优势?
【问题2】(12分)
针对题目中所描述的需求获取要求(1)~(6),选择最适合的需求获取方法填入表1-1中的(a)~(f)处。
表1-1 需求获取方法选择
【问题3】(3分)
由于该企业销售规模较大,所积累的企业业务文档数量庞大,所以只能通过抽样实现不同类型的文档分析。如果对于每种类型的文档要求90%的可信度(可信度因子为1.645),那么不同类型的文档分别需要抽样多少份就能达到该要求?
【问题1】
联合需求计划是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是联合应用开发的一部分。JRP是一种相对来说成本较高的需求获取方法,但也是十分有效的一种。它通过联合各个关键用户代表、系统分析师、开发团队代表一起,通过有组织的会议来讨论需求。JRP将会起到群策群力的效果,对于一些问题最有歧义的时候、对需求最不清晰的领域都是十分有用的一种方法。
优势:1、发挥用户和管理人员参与系统开发过程的积极性,提高系统开发效率;2、降低系统需求获取的时间成本,加速系统开发周期;3、采用原型确认系统需求并获取设计审批,具有原型化开发方法的优点。
【问题2】
(a)实地考察或文档分析
(b)用户访谈或联合需求计划
(c)用户访谈或联合需求计划
(d)问卷调查或文档分析
(e)联合需求计划
(f)联合需求计划
【问题3】
样本大小 = 0.25×(1.645/(1-0.90))^2 = 67.65063
因此,需要抽取68份文档。
某软件公司拟为物流企业开发一套库存管理系统,该系统的部分需求陈述如下:
(1)库存管理系统主要包括货物入库管理、货物出库管理、仓库管理、统计报表和系统管理等功能;
(2)库存管理系统的用户包括仓库管理员、仓库经理和系统管理员,用户必须在注册后才能使用系统功能;用户可以选择使用邮件注册或电话注册。
(3)仓库管理员在进行出入库操作前必须先登录;仓库经理可以通过系统查看统计报表,如果前一个月的报表未生成,则系统自动生成统计报表,否则直接显示。
(4)系统管理员可以在系统中设置仓库温度范围,当仓库内温度超过最高值或者低于最低值时,系统自动调用温控管理操作,连接温度调节系统进行制冷或加热。
(5)仓库管理功能要求每个月1日零点对前一个月货物入库和出库记录进行数据汇总操作。项目组决定构造用例模型以描述系统需求。
【问题1】(6分)
用例建模的首要任务是识别系统中的参与者。请根据题目中所描述的需求,识别出系统中有哪些参与者?
【问题2】(7分)
用例建模的主要工作是书写用例规约。用例规约通常包括哪几部分内容?
【问题3】(12分)
建立了用例模型后,可以利用用例之间的关系调整用例模型,用例之间的关系包括哪几种?对于每种关系,请根据题目中所描述的需求分别给出一组用例。
用例模型的参与者:仓库管理员、仓库经理、系统管理员、时间、温度、温度调节系统。
用例建模的主要工作是书写用例规约(use case specification),而不是画图。用例模板为一个给定项目的所有人员定义了用例规约的结果,其内容至少包括用例名、参与者、目标、前置条件、事件流(基本事件流和扩展事件流)和后置条件等,其他的还可以包括非功能需求和用例优先级等。
在建立了初步的用例模型后,还可以利用用例之间的关系来调整用例模型。用例之间的关系主要有包含、扩展和泛化,利用这些关系,把一些公共的信息抽取出来,以便于复用,使得用例模型更易于维护。
(1)包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。例如,图11-10中的“学习课程”和“课程测试”两个用例都需要检查学员的权限,为此,可以定义一个抽象用例“检查权限”。用例“学习课程”和“课程测试”与用例“检查权限”之间的关系就是包含关系,如图11-11所示。其中“<<include>>”是包含关系的构造型,箭头指向抽象用例。
图11-11 包含关系的例子
当多个用例需要使用同一段事件流时,抽象成为公共用例,可以避免在多个用例中重复地描述这段事件流,也可以防止这段事件流在不同用例中的描述出现不一致。当需要修改这段公共的需求时,也只要修改一个用例,避免同时修改多个用例而产生的不一致性和重复性工作。另外,当某个用例的事件流过于复杂时,为了简化用例的描述,也可以将某一段事件流抽象成为一个被包含的用例。
(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。例如,图11-10中的学员进行“课程测试”时,其测试的次数可能已超出系统规定的限额,这时就需要学员“充入学习币”。用例“课程测试”和“充入学习币”之间的关系就是扩展关系,如图11-12所示。其中“<<extend>>”是扩展关系的构造型,箭头指向基本用例。
图11-12 扩展关系的例子
(3)泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。例如,图11-10中学员进行课程注册时,假设既可以通过电话注册,也可以通过网上注册,则“注册课程”用例就是“电话注册”用例和“网上注册”用例的泛化,如图11-13所示。其中三角箭头指向父用例。
图11-13 泛化关系的例子
在本题中,“出入库操作”与“登录”属于包含关系;“查看统计报表”与“生成统计报表”属于扩展关系;“用户注册”与“邮件注册”和“电话注册”属于典型的泛化关系。
某软件企业为电信公司开发一套网上营业厅系统,以提升服务的质量和效率。项目组经过分析,列出了项目开发过程中的主要任务、持续时间和所依赖的前置任务,如表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周时间。请计算项目最可能的开发工期。
本题主要考查考生对于软件项目管理工具的掌握情况。
软件项目管理的主要工作包括确定任务、估计任务工期、指定任务之间的依赖关系、资源调配等。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)是计算公式为:
其中,1、4和1是用来计算三个估计值的加权平均值的默认权值。
问题中最优工期OD为24,最差工期PD为34,期望工期ED为26,计算后得到最可能工期D为(1×24+4×26+1×34)/6=27周。
某信息技术公司拟开发一套新的信息系统,以提高公司业务运作的效率。按照公司总裁的要求,公司软件开发部系统分析人员张工和李工对新系统方案的各项可行性指标进行分析,重点分析了新系统方案的经济可行性。张工根据财务部门提供的各项数据给出了项目的投资回收表如表1-1所示。
通过对上面数据进行分析,计算出项目的投资回收期是2.75年。李工对此提出了自己的观点,认为应该基于货币时间价值来计算各项数据,并给出了在贴现率是12%时的投资回收表如表1-2所示,其中“***”表示此处的数据未给出。
大家经过讨论,认为李工给出的投资回收表中的数据更为合理,并将其作为系统方案建议书的部分内容上报公司管理层。
【问题1】(8分)
请简要说明系统分析中可行性分析包括哪几个方面,并简要说明其具体含义。
【问题2】(6分)
在系统生命周期内,运行系统的成本可按照固定成本和可变成本分类。请判断下列费用的成本类型及理由。
(1)系统设计工具软件的许可证费用;
(2)计算机使用时的开销;
(3)信息系统操作人员的工资;
(4)购买的光盘和闪存等存储设备花费。
【问题3】(7分)
请利用现值计算公式计算相应的数值并填入表1-2中的(1)~(8)内,并根据李工的数据计算项目的投资回报期。
【问题4】(4分)
请结合张工和李工给出的投资回收表,用200以内文字简要解释货币时间价值及其意义。
某软件企业为网络音像制品销售公司 W 重新开发一套影音产品在线管理及销售系统,以改进原有系统 AVMSS 中存在的问题。在系统需求分析阶段,完成的工作包括:
1.系统分析员老王利用 PIECES 框架组织了系统需要获取的非功能性需求,如表1-1所示。
2.项目组小赵从 W 公司客户代表处了解到现有系统中经常有会员拒绝履行订单,并将其作为问题记录了下来。老王指出了小赵并未发现系统真正的问题,并以会员拒绝履行订单为例,利用如图1-1所示的鱼骨图分析了系统中真正存在的问题。
图1-1
3.获取到相应的需求之后,将需求记录下来形成需求定义文档,同其他项目信息合并形成需求陈述,作为需求分析阶段最终的交付成果。
【问题 1】(10 分)
PIECES框架的主要作用是什么?请将以下需要获取的需求(1)~(8)根据PIECES框架进行分类并将序号填入表1-1对应的单元格内。
(1) 系统能否采用新方法以降低使用资源的成本?
(2) 系统可接受的吞吐率是多少?
(3) 系统可接受的响应时间是多少?
(4) 应该减少多少开支或增加多少收益?
(5) 对用户隐私有什么要求?
(6) 对系统的可靠性和可用性有什么要求?
(7) 系统中需要包括哪些文档和培训材料?
(8) 对外部系统的接口是什么?
【问题 2】(8 分)
请将下列问题按照不同的类型序号填入图1-1所示的鱼骨图(g)~(n)中。
(1) 缺少强制履行合同的规定;
(2) 合同相关信息没有通知到会员;
(3) 没有催单提示客户;
(4) 没有跟踪执行情况;
(5) 设备成本太高造成价格不合理;
(6) 合同的履行缺乏灵活性;
(7) 账务问题或者隐瞒相关内容;
(8) 价格太高并且无法修改。
【问题 3】(7 分)
一份需求定义文档应该包括哪些内容?对于与系统开发相关的人员:系统所有者、用户、系统分析人员、设计人员和构造人员、项目经理,需求定义文档各有什么作用?
【问题1】 PIECES框架是系统非功能性需求分类的技术,对各种类型的需求进行分类使得类 似的需求可以组织起来达到汇报、跟踪和验证的目的,还可能帮助确定可能忽略的需求。
(a)(2)(3)
(b)(8)
(c)(4)
(d)(5)
(e)(1)
(f)(6)(7)
【问题2】
(g)和(h) (2)和(7)
(i)和(j) (3)和(4)
(k)和(l) (6)和(8)
(m) (5)
(n) (1)
【问题3】
一份需求定义文档可能是项目文档中被阅读和引用得最多的文档。应该包括以下内容:系统应该提供的功能和服务;非功能需求,包括系统的特征、特点和属性;限制系统开发或者系统运行必须遵守的约束条件;系统必须连接的其他系统的信息。
系统所有者和用户使用需求定义文档来确认需求以及任何可能产生的变化,并作为验收依据;系统分析人员、设计人员和构造人员使用它来理解需要什么以及处理需求变更,开发用于验证系统的测试用例;项目经理使用它作为制定项目计划、处理变更及验收的依据。
某软件企业拟开发一套基于移动互联网的在线运动器材销售系统,项目组决定采用FAST开发方法进行系统分析与设计,在完成了初步的调查研究之后进入了问题分析阶段,分析系统中存在的问题以及改进项,其分析的主要内容包括:
(1)器材销售订单处理的时间应该减少20%;
(2)移动端支持IOS和Android两类操作系统;
(3)器材销售订单处理速度太慢导致根多用户取消订单;
(4)后台服务器硬件配置比较低;
(5)用户下单过程中应该减少用户输入的数据量;
(6)订单处理过程中用户需要输入大量信息;
(7)利用云计算服务可以降低50%的服务器处理时间;
(8)公司能投入的技术维护人员数量有限;
(9)大量的并发访问会导致App页面无法正常显示。
【问题1】(12分)
FAST开发方法在系统分析中包括了初始研究、问题分析、需求分析和决策分析等四个阶段,请简要说明每个阶段的主要任务。
【问题2】(8分)
在问题分析阶段,因果分析方法常用于分析系统中的问题和改进项,请结合题目中所描述各项内容,将题干编号(1)-(9)填入表1-1的(a)~(d)中。
表1-1问题、机会
【问题3】(5分)
在决策分析阶段,需要对候选方案所述内容按照操作可行性、技术可行性、经济可行性和进度可行性进行分类。请将下列(1)~(5)内容填入表1-2的 (a)-(d)中。
(1)新开发的器材销售系统能够满足用户所需的所有功能;
(2)系统开发的成本大约需要40万元人民币;
(3)需要对移动端App开发工程师进行技术培训;
(4)系统开发周期需要6个月;
(5)系统每年维护的费用大约5万元人民币。
表1-2候选方案指标分类
【问题1】
初步研究阶段:
1、列出问题和机会
2、协商项目的初步范围
3、评估项目价值
4、计划项目进度表和预算
5、汇报项目计划
问题分析阶段:
1、研究问题领域
2、分析问题和机会
3、分析业务过程
4、制定系统改进目标
5、修改项目计划
6、汇报调查结果和建议
需求分析阶段:
1、定义需求
2、排列需求的优先次序
3、修改项目计划
4、交流需求陈述
决策分析阶段:
1、确定候选方案
2、分析候选方案
3、比较候选方案
4、修改项目计划
5、推荐一种系统
【问题2】
(a)(3)
(b)(4)(6)(9)
(c)(1)(5)(7)
(d)(2)(8)
【问题3】
(a)
(b)(1)(3)
(c)(2)(5)
(d)(4)
某公司拟开发一套手机通讯录管理软件,实现对手机中联系人的组织与管理。公司系统分析师王工首先进行了需求分析,得到的系统需求列举如下:
用户可通过查询接口查找联系人,软件以列表的方式将查找到的联系人显示在屏幕上。显示信息包括姓名、照片和电话号码。用户点击手机的“后退”按钮则退出此软件。
点击联系人列表进入联系人详细信息界面,包括姓名、照片、电话号码、电子邮箱、地址和公司等信息。为每个电话号码提供发送短信和拨打电话两个按键实现对应的操作。用户点击手机的“后退”按钮则回到联系人列表界面。
在联系人详细信息界面点击电话号码对应的发送短信按键则进入发送短信界面。界面包括发送对象信息显示、短信内容输入和发送按键三个功能。用户点击发送按键则发送短信并返回联系人详细信息界面;点击“后退”按钮则回到联系人详细信息界面。
在联系人详细信息界面内点击电话号码对应的拨打电话按键则进入手机的拨打电话界面。在通话结束或挂断电话后返回联系人详细信息界面。
在系统分析与设计阶段,公司经过内部讨论,一致认为该系统的需求定义明确,建议基于公司现有的软件开发框架,采用新的基于模型驱动架构的软件开发方法,将开发人员从大量的重复工作和技术细节中解放出来,使之将主要精力集中在具体的功能或者可用性的设计上。公司任命王工为项目技术负责人,负责项目的开发工作。
【问题1】(7分)
请用300字以内的文字,从可移植性、平台互操作性、文档和代码的一致性等三个方面说明基于MDA的软件开发方法的优势。
【问题2】(8分)
王工经过分析,设计出了一个基于MDA的软件开发流程,如图2-1所示。请填写图2-1中(1)~(4)处的空白,完成开发流程。
【问题3】(10分)
王工经过需求分析,首先建立了该手机通信录管理软件的状态机模型,如图2-2所示。请对题干需求进行仔细分析,填写图2-2中的(1)~(5)处空白。
【问题1】
可移植性:在MDA中,先会建立平台无关模型(PIM),然后转换为平台相关模型(PSM),1个PIM可转换成多个PSM,所以要把一个软件移植到另一个平台时,只需要将平台无关模型转换成另一个平台的相关模型即可。所以可移植性很强。
平台互操作性:在MDA中,整个开发过程都是模型驱动的,所以标准化程度很高,这样为平台的互操作带来了非常大的帮助。
文档和代码的一致性:在MDA中,代码是由模型生成的,所以具有天然的一致性。这一点其他方法无法比拟。
【问题2】
(1)平台无关模型(PIM)
(2)UML建模
(3)模型变换(映射)
(4)模型生成源代码
【问题3】
(1)点击后退按钮
(2)联系人详细信息界面
(3)点击发送按键或点击后退按钮
(4)点击拨打电话按键
(5)拨打电话界面
某软件公司受快递公司委托,拟开发一套快递业务综合管理系统,实现快递单和物流信息的综合管理。项目组在系统逻辑数据模型设计中,需要描述的快递单样式如图2-1所示,图 2-2 是项目组针对该快递单所设计的候选实体及其属性。
图2-2 候选实体及属性
【问题1】(6分)
数据库设计主要包括概念设计、逻辑设计和物理设计三个阶段,请用 200字以内文字说明这三个阶段的主要任务。
【问题 2】(11分)
根据快递单样式图,请说明:
1)图 2-2中三个候选实体对应的主属性PK1、PK2和PK3分别是什么?
2)图 2-2 中应设计哪些实体之间的联系,并说明联系的类型。
【问题3】(8分)
在图2-2中添加实体之间的联系后,该实体联系图是否满足第一范式、第二范式和第三范式中的要求(对于每种范式判定时,假定已满足低级别范式要求)。如果不满足,请用 200 字以内文字分别说明其原因。
【问题1】
概念设计也称为概念结构设计,其任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法将它们抽象为一个不依赖于任何DBMS的数据模型,即概念模型。概念模型的表现形式即ER模型。
逻辑设计也称为逻辑结构设计,其主要任务是将概念设计阶段设计好的E-R图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(如:关系模式)。
物理设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。
【问题2】
PK1:证件号
PK2:编号
PK3:证件号
联系1:寄件人与快递单之间应有联系,联系类型:1:N。
联系2:收件人与快递单之间应有联系,联系类型:1:N。
【问题3】
寄件人,收件人均满足第3范式,因为这两个关系均消除了部分函数依赖与传递函数依赖。(自然也就同时满足第1范式与第2范式)。
快递单满足第2范式,但不满足第3范式,快递单的主键为编号,编号确定:保价金额、代收货款、运费、加急费、包装费、保价费,而这一系列费用的组合确定总计。所以存在传递函数依赖。注:增加了寄件人证件号与收件人证件号到快递单中,并不会影响快递单满足第2范式。
某软件公司为共享单车租赁公司开发一套单车租赁服务系统,公司项目组对此待开发项目进行了分析,具体描述如下:
1)用户(非注册用户)通过手机向租赁服务系统进行注册,成为可租赁共享单车的合法用户,其中包括提供身份、手机号等信息,并支付约定押金;
2)将采购的共享单车注册到租赁服务系统后方可投入使用。即将单车的标识信息(车辆编号、二维码等)录入到系统;
3)用户(注册或非注册用户)通过手机查询可获得单车的地理位置信息以便就近取用;
4)用户(注册用户)通过手机登录到租赁服务系统中,通过扫描二维码或输入车辆编号以进行系统确认,系统后台对指定车辆状态(可用或不可用),以及用户资格进行确认,通过确认后对车辆下达解锁指令;
5)用户在用完车辆后关闭车锁,车辆自身将闭锁状态上报到租赁服务系统中,完成车辆状态的更新和用户租赁费用结算;
6)系统应具备一定的扩容能力,以满足未来市场规模扩张的需要。
项目组李工认为该系统功能相对独立,系统可分解为不同的独立功能模块,适合采用结构化分析与设计方法对系统进行分析与设计。但王工认为,系统可管理的对象明确,而且项目团队具有较强的面向对象系统开发经验,建议采用面向对象分析与设计方法。经项目组讨论,决定采用王工的建议,采用面向对象分析与设计方法开发系统。
【问题1】 (7分)
在系统分析阶段,结构化分析和面向对象分析方法主要分析过程和分析模型均有所区别,请将(a)~(g)各项内容填入表2-1(1)~(4)处对应位置。
表2-1系统分析方法比较
(a)确定目标系统概念类;
(b)实体关系图(ERD);
(c)用例图;
(d)通过功能分解方式把系统功能分解到各个模块中;
(e)交互图;
(f)数据流图(DFD);
(g)建立类间交互关系。
【问题2】 (12分)
请分析下面A~Q所列出的共享单车租赁服务系统中的概念类及其方法,在图2-1所示用例图(1)~ (12)处补充所缺失信息。
A.用户,B.共享单车,C.用户管理,D.注册,E.注销,F.用户查询,G.单车管理,H.租赁,I.归还,J.单车查询,K.费用管理,L.保证金管理,M.租赁费管理,N.数据存储管理,O.用户数据存储管理,P.单车数据存储管理,Q.费用结算,R.身份认证
图2-1单车租赁服务系统用例图
【问题3】(6分)
随着共享单车投放量以及用户量的增加会存在系统性能或容量下降问题,请用200字以内的文字说明,在系统设计之初,如何考虑此类问题?
【问题1】
结构化分析(SA)主要分析内容是对系统进行模块划分,并把识别出来的功能分配到各模块中,通过细分的模块功能来达到系统整体功能的目的。结构化分析中以数据流图DFD表示模块间数据的交互关系,以实体关系图ERD表示数据模型,以及状态转换图STD表示行为模型。
面向对象分析(OOA)主要分析内容是对系统进行概念类定义,确定类与类之间的关系,以及确定类的职责,建立交互图等,从而对系统功能进行完整描述。在面向对象分析中,以用例图来表示概念类之间的关系,以交互图来表示相关对象之间的行为。
【问题2】
根据题干描述进行推导填空。
【问题3】
可以从多个方面考虑性能或容量的扩展。
1、数据存储容量
采用独立存储系统如阵列,对于数据存储可灵活扩展。
2、服务器处理性能
1)考虑可扩展性问题,利用集群,扩展时采用水平扩展方式。
2)利用分布式存储方式,将各个城市的数据分散存储,减少压力,提升处理性能。
3)利用负载均衡技术,解决高并发问题。
3、通信性能
服务器网口提速,对服务器接口进行灵活扩展如采用端口聚合等。
某软件公司为电子商务企业开发一套网上交易订单管理系统,以提升服务的质量和效率。在项目之初,项目组决定采用面向对象的开发方法进行系统开发,并对系统的核心业务功能进行了分析,具体描述如下:
注册用户通过商品信息页面在线浏览商品,将需要购买的商品添加进购物车内, 点击“结算”按钮后开始录入订单信息。
用户在订单信息录入页面上选择支付方式,填写并确认收货人、收货地址和联系方式等信息。点击“提交订单”按钮后产生订单,并开始进行订单结算。
订单需要在30分钟内进行支付,否则会自动取消,用户也可以手工取消订单。
用户支付完成,经确认后,系统开始备货,扣除该商品可接单数量,并移除用户购物车中的所有商品资料。
生成订单表单,出货完毕,订单生效。为用户快递商品,等待用户接收。
用户签收商品,交易完成。
【问题1】(12分)
识别设计类是面向对象设计过程中的重要工作,设计类表达了类的职责,即该类所担任的任务。请用300字以内的文字说明设计类通常分为哪三种类型,每种类型的主要职责,并针对题干描述案例涉及的具体类为每种类型的设计类举出2个实例。
【问题2】(3分)
在面向对象的设计过程中,活动图(activity diagram)阐明了业务用例实现的工作流程。请用300字以内的文字给出活动图与流程图(flow chart)的三个主要区别。
【问题3】(10分)
在面向对象的设计过程中,状态图(statechart diagram)描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图2-1中的(a)-(e)空白,完成订单处理的状态图。
图2-1 订单处理状态图
【问题1】
(1)实体类。实体类映射需求中的每个实体,保存需要存储在永久存储体中的信息,例如,用户、商品等。
(2)控制类。控制类是用于控制用例工作的类,用于对一个或几个用例所特有的控制行为进行建模。例如,结算、备货等。
(3)边界类。边界类用于封装在用例内、外流动的信息或数据流。例如,浏览器、购物车等。
【问题2】
(1)活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现系统的行为,而非处理过程;而流程图着重描述处理过程。
(2)流程图一般都限于顺序进程,而活动图则可以支持并发进程。
(3)活动图是面向对象的,而流程图是面向过程的。
【问题3】
(a)取消
(b)待结算
(c)大于30分钟
(d)订单生效
(e)用户签收
某集团下属煤矿企业委托软件公司开发一套煤炭运销管理系统,该系统属于整个集团企业信息化架构中的业务层,系统针对煤矿企业开发,包括合同管理、磅房管理、质检化验、运费结算等功能。部分业务详细描述如下:
(1)合同管理:合同签订、合同查询、合同跟踪等。
(2)磅房管理:系统可以从所有类型的电子磅自动读数;可以自动从电子磅上读取车辆皮重、毛重,计算出净重;可根据合同内容自动减少相应提货单剩余数量,如果实际发货量超过合同额则拒绝发货。
(3)质检化验:根据过磅单、车号,生成化验分析委托单,生成化验分析报告。
(4)运费结算:依据过磅单上的净重、化验单、合同规定,自动计算出原料结算单、运费结算单。
煤矿企业根据集团的工作计划制订本企业的业务计划,煤矿企业根据集团划拨指标和提供的原料生产煤炭,所生产的煤炭交由集团统一管理和销售给客户。软件公司采用Zachman框架对企业业务架构和业务过程进行分析,结果如表2-1所示。
表2-1 煤炭运销管理系统Zachman框架分析
【问题1】(13分)
Zachman框架是什么?请在表2-1中(a)-(e)位置补充企业业务架构中的信息类别。
【问题2】(8分)
项目组在该煤炭企业业务架构分析中完成了四项主要工作:数据流图、实体联系图、网络拓扑结构和计划时间表,这四项工作在表2-1中处于什么位置,请用表2-1中的位置编号表示。
【问题3】(4分)
根据题目所述业务描述,请分别给出表2-1中A11和A23位置应该填入的内容。(物流关系用“→”表示)
【问题1】(13分)
Zachman框架是由约翰 扎科曼(John Zachman )在1987年创立的全球第一个企业架构理论。Zachman框架是一种组织构架工具(用来设计文档、需求说明和模型的工具)的一种分类学。包括工具的目标(例如,商业拥有者、创建者)是谁,哪些特殊的问题(例如,数据、功能)需要阐明。
(a)数据 (b)功能 (c)网络 (d)角色 (e)动机
【问题2】(8分)
数据流图:A32
实体联系图:A31
网络拓扑结构:A53
计划时间表:A25
【问题3】(4分)
A11:列出对业务至关重要的元素:合同、提货单、委托单、原料结算单、运费结算单
A23:物流网络(节点和链接)
A公司承接了开发机载信息处理系统数据管理软件的任务。该机载信息处理系统数据管理软件在机载设备中的地位十分重要,因此对该软件的安全性和可靠性有很高的要求。尽管对设备供电的稳定性有较充分的考虑及措施,但鉴于该机载信息处理系统中存储的数据至关重要,用户仍提出在任何时候设备断电都不应对数据造成破坏。该机载信息处理系统采用非易失的NandFlash(按串行方式访问的Flash)作为存储介质,该NandFlash的特点是以页为最小存储管理单位,每一页只有在擦除后才可写入,擦写是有寿命的,假设每页可擦写十万次。NandFlash在使用过程中可能受到其它机载电子设备的干扰而发生一位的跳变,即读出的数据块中可能存在一位是错误的。为了机载软件的安全,在这样的条件下也要保证系统正确运行。
【问题1】(7分)
A公司指派李工组织进行需求分析,并完成机载信息处理系统数据管理软件需求规格说明。以下4条需求描述摘录自该需求规格说明,请判断这4条描述是否满足软件需求的一般要求,如果不满足,请指出存在的问题,并将答案填写在答题纸中。
(1)软件应能够纠正一位读错误;
(2)软件一般应提供存储介质的均匀擦写功能,以解决因频繁擦写NandFlash的某一固定块而导致该NandFlash过早损害的问题;
(3)NandFlash擦写是有寿命的;
(4)软件对安全性和可靠性有很高的要求。
【问题2】(9分)
在开发上述信息处理系统数据管理软件过程中,按照总体设计单位要求,采用开发库、受控库和产品库三库进行软件配置管理,并规定软件产品装机后,该数据管理软件项目在受控库中保存3年。但到发布后第2年时,用户报告了一个bug,经分析,是数据管理软件的一个缺陷。此时,A公司重新调配人员对该数据管理软件进行变更。图3-1是A公司软件变更管理的流程,请从配置管理的角度分析此次变更应开展哪些活动,在图中的(1)到(6)处填写恰当的活动,答案填写在答题纸对应处。
(注:CCB,Change Control Board,变更控制委员会。)
【问题3】(9分)
针对用户提出在任何时候设备断电都不应对数据造成破坏并保证数据系统的完整性的要求, A公司指派王工进行机载信息处理系统数据管理软件设计。王工设计了一种数据完整性保护机制,图3-2是该机制处理流程的示意图。请将表3-1列出的数据完整性保护机制活动索引按照正确的顺序填入图3-2的数据完整性保护机制处理流程中,并将答案写在答题纸的对应栏中。
本题主要考查开发机载信息处理系统数据管理软件的分析与设计,考查重点是如何结合硬件系统和平台的特点,设计对应的软件系统,另外还需要考生了解软件变更管理和系统数据完整性保护机制等知识。
【问题1】
本题主要考查软件需求规格说明书的书写方式及判断,软件需求说明必须明确、清晰,并以量化的形式指明对应的指标。对于问题中描述:
(1)软件应能够纠正一位读错误;该需求描述清晰明确,符合需求规格说明的书写要求。
(2)软件一般应提供存储介质的均匀擦写功能,以解决因频繁擦写NandFlash的某一固定块而导致该NandFlash过早损害的问题;该说明中出现了“一般”这样的说法,而在需求描述中不能出现这样的模糊术语。
(3)NandFlash擦写是有寿命的;该描述中所提的需求不具体,未量化,不可测试。
(4)软件对安全性和可靠性有很高的要求。该描述中“很高”术语模糊,不可验证。
【问题2】
本题主要考查软件变更管理的知识,考生需要根据问题中的管理流程补充其中的空白处,根据题目描述,在题目中的流程中,空白(1)出现在提出解决方案之后,因此应该进行“变更影响分析”;空白(2)出现在通过评审之后,因此应该“确定基线”;空白(3)、(4)的活动应该是“将受控库中的代码导入代码库,准备修改代码”;空白(5)发生在修改代码后,因此应该进行验证和测试;空白(6)出现在建立基线并导入产品库之后,因此应该进行升级装机软件的工作。
【问题3】
本题主要考查数据完整性保护机制和对应的数据处理流程,根据流程描述,比较合理的过程是:(1)初始化;(2)如果没有掉电,则进行数据块数请求;(3)如果没有掉电,则开始寻找并分配空闲的数据块;(4)如果没有掉电,则开始写入新的数据;(5)如果没有掉电,则更新事物点;(6)如果在(5)后发生掉电,则需要扫描维护数据一致性;(7)上述过程完成后,删除被替换的数据块。因此根据这个处理流程,只需要将合适的动作填入空白处即可。
某大型咨询服务公司欲对现有的核心咨询业务系统进行升级改造,以适应大量用户的个性化咨询服务要求,提高系统的灵活性。公司主管将核心业务系统的升级改造工作交给了公司的系统分析师王工和李工。
一个月后,王工和李工分别向公司提交了自己的方案。王工主张以公司现有的、采用面向对象技术和Java语言实现的业务系统为基础,针对新的业务需求对系统进行重构、改造与升级。李工则认为现有系统的业务逻辑过于复杂,对系统进行重构的成本太高,可以采用面向服务的思想,提炼可复用的业务功能形成服务,实现系统的灵活性。经过公司相关人员共同开会讨论,最终采用了李工的改造方案。
【问题1】(10分)
请用500字以内的文字,从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比,并结合项目需求说明公司为何会选择李工的方案。
【问题2】(9分)
采用服务思想设计系统时,需要考虑服务的耦合性。服务的耦合性可以分为两类,分别是服务契约耦合(Service Contract Coupling)和服务消费者耦合(Service Consumer Coupling)。请对各种耦合关系进行分析,填写(a)~(g),完成表2-1。
表2-1 服务耦合关系分析
【问题3】(6分)
在对系统的业务服务进行初步分析后,李工首先提取了客户注册、业务受理和发票开具三个典型的业务服务。但进一步分析后,李工发现这三个服务需要使用数据库中的客户实体、业务实体和发票实体,而发票实体包含客户实体和业务实体的信息,这样会导致发票开具服务内部包含并重复实现客户注册和业务受理的处理过程,降低服务的复用性。请说明这种情况产生的主要原因,并针对这种情况,说明该如何对这三个服务进行重构,使它们具有更好的重用性。
本题考查的是企业应用系统开发方面的知识与应用,属于比较传统的题目,考查点也与往年类似。
【问题1】
本问题从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比。回答本题时必须紧扣业务功能实现和功能集成这两个方面。
从系统业务功能实现来看,采用面向对象技术开发的系统以对象为核心概念,通过对象之间的消息交互完成业务功能;采用面向服务技术开发的系统以服务为核心概念,业务功能需要封装为服务。
从系统功能集成方式来看,采用面向对象技术开发的系统以对象为单元进行功能集成,通常采用工作流技术定制业务流程;采用面向服务技术开发的系统以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组。
【问题2】
本问题主要考查考生对服务耦合关系的理解,考生需要理解在服务设计时需要注意的一些问题。例如业务逻辑-契约耦合、契约-技术耦合、消费者-实现耦合以及消费者-契约耦合等服务。考生需要对这几种服务耦合进行分析,并结合题目要求描述各种耦合关系的优点或缺点。
【问题3】
本问题主要考查考生对系统需求分析的理解以及对服务设计知识的掌握。题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。
某电子商务公司为了扩大业务规模,提高企业的信息化程度与工作效率,决定由公司的IT部门开发一套ERP系统。在系统建设之初,该公司召开了项目论证会,对于项目的可行性进行了分析。
在论证会上,公司主管领导王总首先介绍了公司目前的运营情况,分析了竞争对手的优势和劣势,认为该项目的成功实施将大大提高公司的竞争力,因此对该项目大力支持,并要求项目必须按期、高质量地完成。公司的中高层管理人员一致认为现有业务大量依靠人工记录,效率低下,急切希望能够依靠该系统的部署提高工作效率,也表示将大力支持项目的开发工作。
公司IT部门的负责人李总对项目开发中的技术问题进行了分析,他认为IT部门多年来一直从事J2EE平台上的应用开发,开发经验丰富。由于近两年来基于B/S结构的Web应用逐渐流行,加之该项目是公司的内部项目,系统功能清楚明确,因此建议可以首先基于B/S架构,采用Web技术进行项目开发,让员工边学边练,即使项目进展不顺利,也可以迅速切换到J2EE平台之上。李总还透露,IT部门最近通过内部关系得到了某竞争对手公司的部分核心业务组件,只要稍加修改就可以立即加入到新系统中,这样就会大大加快项目的进度。
公司业务部门的代表小张表示,ERP系统上线后需要大量的数据采集工作,现有业务人员没有足够的IT技能,短期内难以保证数据录入质量。另外,新系统可能会导致一些现有业务流程的改变,业务人员一开始将难以适应新的业务处理方式,可能会抵制使用该系统。
最后,公司销售部门和财务部门的代表在会上对ERP系统的建设成本和收益进行了详细的分析和比较,给出了相应的结论。
【问题1】(8分)
在信息系统建设项目中,通常从经济可行性、技术可行性、法律可行性和用户使用可行性四个方面来进行可行性分析。请用300字以内的文字简要说明项目可行性分析这四个方面各自的主要内容。
【问题2】(10分)
请根据题干描述的项目开发总体思路,用600字以内的文字对技术可行性、法律可行性和用户使用可行性进行初步分析,并给出分析结论。
【问题3】(7分)
假设本项目有甲、乙、丙三个解决方案,投资总额均为1000万元,建设期均为2年,运营期均为4年,运营期各年末净现金流入量总和为2000万,年利率为10%,三种方案的现金流量表如表2-1所示。
表2-1 三种方案的现金流量(单位:万元)
请根据表2-1中的数据,计算甲、乙、丙三种方案的净现值,给出具体计算过程,并说明哪种方案最优。
【问题1】
经济可行性也称为投资收益分析或成本效益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益。
技术可行性也称为技术风险分析,研究的对象是信息系统需要实现的功能和性能,以及技术能力约束。
法律可行性也称为社会可行性,具有比较广泛的内容,它需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。
用户使用可行性也称为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等,可以细分为管理可行性和运行可行性。
【问题2】
(1)技术可行性:公司IT部门具有丰富的J2EE平台开发经验,但缺乏Web技术应用经验,如果项目基于B/S架构,则技术上不可行。
(2)法律可行性:直接修改竞争对手的核心业务组件,属于侵权对方知识产权行为,法律上不可行。
(3)用户使用可行性:用户可能会抵制使用新系统,在用户使用可行性上存在问题。但由于公司中高层领导大力支持该项目,这个问题可以通过相关工作来得到解决。
【问题3】
方案甲:
(1)NPV = 300×0.83+400×0.75+500×0.68+800×0.62-(700+300×0.91) = 412
(2)NPVR = 412/(700+300×0.91) = 0.423
方案乙:
(1)NPV = 200×0.83+400×0.75+600×0.68+800×0.62-(600+400×0.91) = 406
(2)NPVR = 406/(600+400×0.91) = 0.421
方案丙:
(1)NPV = 400×0.83+500×0.75+500×0.68+600×0.62-(800+200×0.91) = 437
(2)NPVR = 437/(800+200×0.91) = 0.445
因为方案丙的净现值和净现值率均最大,因此,方案丙最优。
某高校计算机学院实验中心有5个机房,200个机位,主要承担学生计算机软件相关课程的上机实践任务。实验中心每年工作时间约为200天,每天平均工作时间为8小时。2013年初,实验中心决定对机房进行升级改造,其中UPS电源等设备不需要重新购置,改造后每个机位机器的基本配置要求如表2-1。实验中心现公开征集硬件改造方案。
表2-1 实验中心机器配置要求
一个月后,实验中心的主管从众多的改造方案中选择了A公司和B公司提出的方案进行最终评审。A公司主张采用PC机更新换代的方式进行改造,其主要的设备和报价如表2-2所示。
表2-2 A公司的改造方案
B公司主张以桌面云的方式对实验中心进行全面改造,其主要的设备和报价情况如表2-3所示。
表2-3 B公司的改造方案
实验中心组织多名专家召开论证会,会上专家对这两种方案进行了评审,最终采纳了B公司的改造方案。
【问题1】(7分)
桌面云方案的核心是虚拟化技术,请用200字以内的文字说明什么是虚拟化技术,并从应用角度列举3种虚拟化技术。
【问题2】(18分)
请以A公司方案中的机器性能为基准,从应用模式、投入成本、运维成本、安全性、能源消耗等5个方面对两种方案进行详细比较(其中投入成本与能源消耗要求量化比较),说明为什么专家采纳了B公司的改造方案。
【问题1】
虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化技术应用非常广泛,常见的包括:
1、使用VMware软件,在Windows平台下安装linux操作系统。
2、存储的虚拟化,在云存储中,就应用到了存储的虚拟化。
3、服务器虚拟化,目前多家公司推出了虚拟化服务器,这种服务器可以用一台硬件设备,虚拟出多台服务器对外提供服务。
【问题2】
应用模式:A公司方案是一种分散式的计算模式,这种模式每个节点都相对独立,每个节点都要求一定的运算能力,当节点运算能力不足时,便需要整体升级。而B公司方案是一种虚拟化的方案,他将服务器的运算能力按需求分配给各个节点使用,当运算能力不足时,可通过增加服务器的方式,方便的升级。
投入成本:
A公司方案的投入成本为:(3100+900)×200+1000×10=810000元。
B公司方案的投入成本为:30000×14+(500+900)×200+1000×11+10000×2=731000元。
所以B公司的方案投入成本较小。
运维成本:B公司方案维护成本比A公司方案低,因为A公司方案中,需要维护的计算机有200台之多,而B公司方案只需要维护14台服务器。
安全性:B公司方案安全性比A公司方案高,因为A公司方案中,200台主机都带存储,都是独立的系统,其中任何一台机器出现安全问题都可以影响到其他机器。而B公司方案中,只要维护好14台服务器即可,此时出安全问题的可能性会低很多。
能源消耗:
A公司方案的能源消耗为:((230W+25W)×200+30W×10)×8×200=82080000瓦时=82080千瓦时。
B公司方案的能源消耗为:(800W×14+(23W+25W)×200+30W×11)×8×200=33808000瓦时=33808千瓦时。
B公司的方案能源消耗远远低于A公司方案。
某市政府部门有近30个委、办、局,分别承担着法定的政府职能,这些部门都有信息中心,负责本单位信息系统的建设和信息资源的采集、维护等工作,同时向业务部门提供信息化技术支持。该市的电子政务建设发展很快,统一规划实施了政务内网,实现了各个政府部门百兆以上带宽的互联互通,并在此基础上规划信息资源网。该政务内网的运行维护成本较高,所以在政务内网开通之后,市财政逐渐削减了各个委办局自身信息系统的维护费用,市政府也要求尽快实现信息资源的共享,以发挥电子政务网的效益。
【问题1】(13分)
该市决定将各个委办局的信息系统采取物理集中的方式进行统一管理,一些部门对此提出了异议,主要理由是集中管理后,由于管理部门对业务应用不了解,难以保证对本单位业务进行有力支持。
请用300字以内文字,从技术角度论述该市实现信息系统统一管理是否可行。
【问题2】(6分)
该市在信息系统集中管理建设过程中,需要在信息系统中重点规划建设哪些内容?
【问题3】(6分)
发挥信息系统效益的关键是信息资源的有机共享,请给出该市政务信息资源共享的建议(200字以内)。
A 市经过软课题研究已经形成了一整套宏观经济指标体系,用于描述该市的经济状态,涉及包括区域GDP、人口与就业、城市建设与投资、财政收入和支出、土地、进出口贸易、社会保障、人民生活、制造业和高新技术产业等方面,并为主要指标建立了计算模型。与宏观经济指标有关的数据称为宏观经济数据,主要的宏观经济数据广泛地分布于政府统计部门、计划部门、财政部门、税收部门、教育部门、商业部门、物价部门、农业主管部门、工业信息化主管部门等等,还分布于金融部门、大中型企业等。这些部门针对自身业务,多数都有自己的管理信息系统或者办公自动化系统,主要的宏观经济数据都已经实现了电子化。
目前,A 市宏观经济指标的获得还采取传统方式,即通过有关部门逐级报表汇总宏观经济数据的方式和统计调查的方式得到。统计调查方式存在系统性的误差,而报表汇总方式则存在基础数据不准确、人为影响较大、指标分析灵活性差等问题。
为准确掌握经济动态信息,进一步规范各级经济信息资源管理行为,加快信息资源共享,提高政府的管理科学化和服务社会化水平,该市决定建设宏观经济数据库,将宏观经济数据统一管理。
【问题 1】(10 分)
为稳步推动 A 市宏观经济数据库建设,A 市市政府委托咨询公司 B 进行项目原型研究。B 公司经过调研,认为 A 市电子政务网络、存储和计算平台非常完善,为宏观经济数据库的建设奠定了良好的基础。请用200字以内文字指出此时 B 公司在进行原型分析的时候应重点做好哪几方面的工作?
【问题 2】(6 分)
经过分析比较,B 公司确定了“物理分散,逻辑集中”的建设思路,因此未来宏观经济数据库是一个分布式数据库系统。请用200字以内文字简要分析,除了数据交换机制外,是否还需要建设一个集中的数据库?并叙述理由。
【问题 3】(9 分)
小张是 B 公司的开发经理,在开发 A 市宏观经济数据库原型的时候,用前端分析工具按照指标计算模型,计算“宏观投资现状”指标,该指标计算模型的输入参数包括:
交易额,信息来源是市国税局和市地税局的税收征管系统;
项目立项信息,信息来源是市发改委的立项审批管理系统;
资金拨付信息,信息来源是市财政局的统一支付系统;
贷款信息,信息来源于银行的信贷管理系统等;
资源消耗信息,信息来源于电力公司、自来水公司等。
……
小张按照输入参数来源单位提供的数据接口说明取得了输入参数,经过计算得到了“宏观投资现状”指标,但发现该指标与传统方式得到的指标差别很大。
请用200字以内文字,指出存在差别的可能技术原因。
【问题1】
1.数据分布及状态详细调查(或者数据梳理)。
2.各政府部门业务流程以及信息系统使用情况调查。
3.统一的数据标准规范研究。
4.指标计算模型研究,确定各个指标的输入数据。
5.提出数据管理(采集、存储、使用、维护等)工作流程方案。
6.获取有关部门宏观经济数据的具体应用需求。
【问题2】
需要建设一个集中的数据库作为核心数据库。主要理由:
1.数据分布广,同一数据类或数据项存在信息冗余和不一致的情况,应用前需要比对和清洗,整理后的数据应存放于核心数据库。
2.宏观经济信息的实时性要求不高,以集中的统一的核心数据库为基础,提供经济信息服务,形成的经济指标更加科学。
【问题3】
1.输入参数的时间戳不一致,或者时间段口径不一致。
2.数据不符合统一的标准,或者数据标准不一致(如投资主体的代码在不同的系统中不一致)。
3.数据来源单位的数据没有及时更新,或者不全。
4.存在无效数据,如某个投资主体有误或不存在。
某商校拟开发一套图书馆管理系统,在系统分析阶段,系统分析师整理的核心业务流程与需求如下:
系统为每个读者建立一个账户,并给读者发放读者证(包含读者证号、读者姓名),账户中存储读者的个人信息、借阅信息以及预订信息等,挂有读者证可以借阅图书、返还图书、查询图书信息、预订图书、取消预订等。
在借阅图书时,需要输入读者所借阅的图书名、ISBN号,然后输入读者的读者证号,完成后提交系统,以进行读者验证,如果读者有效,借阅请求被接受,系统查询读者所借阅的图书是否存在,若存在,则读者可借出图书,系统记录借阅记录;如果读者所借的图书已被借出,读者还可预订该图书。读者如期还书后,系统清除借阅记录,否则需缴纳罚金,读者还可以选择续借图书。同时,以上部分操作还需要系统管理员和图书管理员参与。
【问题1】(6分)
采用面向对象方法进行软件系统分析与设计时,一项重要的工作是进行类的分析与设计。请用200字以内的文字说明分析类图与设计类图的差异。
【问题2】(11分)
设计类图的首要工作是进行类的识别与分类,该工作可分为两个阶段“”首先,采用识别与筛选法,对需求分析文档进行分析,保留系统的重要概念与属性,删除不正确或冗余的内容;其次,将识别出来的类按照边界类、实体类和控制类等三种类型进行分类。
请用200字以内的文字对边界类,实体类和控制类的作用进行简要解释,并对下面给出的候选项进行识别与筛选,将合适的候选项编号填入表2-1中的(1)~(3)空白处, 完成类的识别与分类工作。
表2-1图书管理系统类识别与分类表格
候选项:
a)系统管理员
b)图书管理员
c)读者
d)读者证
e)账户
f)图书
g)借阅
h)归还
i)预订
j)罚金
K)续借
I)借阅记录
【问题3】(8分)
根据类之间的相关性特点,可以将类之间的关系分为组合(composition),继承(inheritance),关联 (association),聚合(aggregation)和依赖 (dependency)等5种, 请用300字以内的文字分别对这5种关系的内涵进行叙述,并从封装性、动态组合和创建对象的方便性三个方面对组合和继承关系的优缺点进行比较。
【问题1】(6分)
分析阶段的类图主要是从业务领域获取信息的,在描述上更多使用了业务领域的语言和词汇。
设计阶段的类图是从编程实现角度来设计类图的,更多的是考虑类编码的实现。
【问题2】(11分)
(1) d)读者证
(2)a)系统管理员 b)图书管理员 c)读者
e)账户 f)图书
j)罚金 I)借阅记录
(3)g)借阅 h)归还 i)预订 k)续借
【问题3】(8分)
封装性:
组合:不破坏封装性,整体类与局部类之间松耦合,相对独立。
继承:破坏封装性,子类与父类紧耦合,子类缺独立性。
动态组合:
组合:支持动态组合。
继承:不支持动态组合。
创建对象:
组合:创建整体类时,需要创建所有局部类的对象。
继承:创建子类对象时,不需要创建父类对象。
(1)关联关系。关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。
(2)依赖关系。两个类A和B,如果B的变化可能会引起A的变化,则称类A依赖于类B。依赖可以由各种原因引起。
(3)继承关系。本质上就是泛化关系。继承是在某个类的层次关联中不同的类共享属性和方法的一种机制。父类与子类的关系是一般与特殊的关系,一个父类可以有多个子类,这些子类都是父类的特例。
(4)聚合关系。表示类之间的整体与部分的关系,其含义是“部分”可能同时属于多个“整体”,“部分”与“整体”的生命周期可以不相同。
(5)组合关系。表示类之间的整体与部分的关系。其中的“部分”只能属于一个“整体”,“部分”与“整体”的生命周期相同,“部分”随着“整体”的创建而创建,也随着“整体”的消亡而消亡。
------------------------
常见的类关系包括:
(1)关联关系。关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联体现的是对象实例之间的关系,而不表示两个类之间的关系。其余的关系涉及类元自身的描述,而不是它们的实例。
(2)依赖关系。两个类A和B,如果B的变化可能会引起A的变化,则称类A依赖于类B。依赖可以由各种原因引起,例如,一个类向另一个类发送消息、一个类是另一个类的数据成员、一个类是另一个类的某个操作参数等。
(3)泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说,子类继承了父类,而父类则是子类的泛化。
(4)继承关系。本质上就是泛化关系。继承是在某个类的层次关联中不同的类共享属性和方法的一种机制。父类与子类的关系是一般与特殊的关系,一个父类可以有多个子类,这些子类都是父类的特例。
(5)聚合关系。表示类之间的整体与部分的关系,其含义是“部分”可能同时属于多个“整体”,“部分”与“整体”的生命周期可以不相同。例如,汽车和车轮就是聚合关系,车子坏了,车轮还可以用;车轮坏了,可以再换一个。
(6)组合关系。表示类之间的整体与部分的关系。与聚合关系的区别在于,组合关系中的“部分”只能属于一个“整体”,“部分”与“整体”的生命周期相同,“部分”随着“整体”的创建而创建,也随着“整体”的消亡而消亡。例如,一个公司包含多个部门,它们之间的关系就是组合关系。公司一旦倒闭,也就无所谓部门了。
(7)实现关系。实现关系将说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。
某公司机电管理系列产品被广泛应用于飞行器后,外场事故频繁发生,轻则飞机座舱显示机电设备工作异常,重则系统预警,切入备份运行。这些事故给航空公司带来重大经济损失。
公司领导非常重视航空公司的问题反馈,责令公司王总带队到现场进行故障排查。经过一个多月的排查,故障现象始终未复现,同时,公司实验室内也在反复复现故障,结果未取得显著成效,但发现产品存在偶然丢失协议包的现象。随后,公司领导组织行业专家召开故障分析会。王总在会上对前期故障排查情况进行了说明,指出从外场现象看CCDL协议包丢失是引起系统报警、切换的主要原因。图3-1给出了机电管理产品的工作原理,机电管理系统主要承担了对飞行器的刹车、燃油和环控等子系统进行监视与控制,它对飞行器而言是安全攸关系统,因此,从系统结构上采用了双余度计算机系统。具体工作流程简要说明如下:
1.机电管理系统由1号计算机和2号计算机组成,双机互为余度备份;
2.双机中分别驻留了一个100ms周期的CCDL任务,完成双机间的交叉对比和实时监控等工作。10ms定时器作为任务的工作频率;
3.交叉对比协议包包含一组“AA55”报头、消息长度、数据和校验码;
4.2号机将协议包通过422总线发送给1号机(422总线接口芯片有8级缓冲);
5.1号机通过中断方式将422总线数据接收到大环形缓冲区中(大小为4096B);
6.100ms的CCDL定时任务将大环形缓冲区的数据以512B为单位拷贝到小环形缓冲区中(大小512B);
7.CCDL任务按照协议包格式解析小环形缓冲的数据,如果校验错误,丢弃当前协议包;
8.在协议包格式正确的情况下,进行数据交叉比对,比对正确则输出;比对不正确,并连续不正确超过门限,则报警。
【问题1】(12分)
王总汇报时指出,在设计安全攸关系统软件时,往往不重视安全攸关软件设计方法, 不遵守C语言安全编码规范,导致程序质量较差,代码中存在支全隐患。请简要说明表 3-1给出的C语言代码是C语言安全编码标准中(如:MISARC标准)不允许采用的代码 结构的原因。
表3-1 C语言代码实例
【问题2】(10分)
请根据自己对图3-1所示机电管理系统工作原理的分析,用300字以内的文字说明本实例中可能存在哪三方面数据传输时丢失协议包现象,并简要说明原因。
问题3(3分)
针对以上分析出的三种丢包原因,请举例给出两种以上的修改丢包bug的可能的方法。
本题问题1考查MISAR-C标准,大该标准中约定:
强制规则是对程序员的强制要求,编译会报错;
建议规则要求程序员在通常情况下都有遵守,编译会报警,应该遵守。
本题相关规则如下:
(建议)规则6.3: 必须用typedef显式标识出各数据类型的长度和符号特性,避免直接使用标准数据类型。如: typedef unsigned int uint32_t;
(强制)规则8.1:函数应当有原型说明,且原型在函数的定义和调用范围内都是可见的。
(强制)规则12.2:表达式的值在标准所允许的任何次序下应该都是相同的,
(强制)规则10.3: 危险的类型转换
(强制)规则15.3:switch语句的最后子句应当是default子句;
(强制)规则15.5:switch语句至少应有一个case子句;
近年来,多核技术已被广泛应用于众多安全关键领域(如:航空航天等)的电子设备中,面向多核技术的并行程序设计方法已成为软件人员急需掌握的主要技能之一。某宇航公司长期从事宇航电子设备的研制工作,随着宇航装备能力需求的提升,急需采用多核技术以增强设备的运算能力、降低功耗与体积,快速实现设备的升级与换代。针对面向多核开发,王工认为多核技术是对用户程序透明的,开发应把重点放在多核硬件架构和硬件模块设计上面,而软件方面,仅仅需要选择一款支持多核处理器的操作系统即可。而李工认为,多核架构能够使现有的软件更高效地运行,构建一个完善的软件架构是非常必要的。提高多核的利用率不能仅靠操作系统,还要求软件开发人员在程序设计 中考虑多进程或者多线程并行处理的编程问题。
【问题1】(12分)
请用300字以内文字说明什么是多核技术和多线程技术,并回答李工的意见是否正确,为什么?
【问题2】(6 分)
在多核环境下,线程的活动有并行和并发两种方式,请用300字以内的文字说明这两种方式的含义及差别。
【问题3】(7 分)
请根据自己所掌握的多核、多线程的知识,判别表 3-1给出的说法是否正确,并将答案写在答题纸上对应空白处(填写正确或错误)。
表3-1 关于多核和单核体系结构的说明
【问题1】
多核是多微处理器核的简称,是将两个或更多的独立处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片(也称为硅核),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在多个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。
多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。
李工的意见是正确的。多核处理器虽然带来了强大的计算能力,但如果无法实现程序的并行,那么,大量计算资源将被闲置,造成巨大的浪费。所以在开发中,要注重多核编程技术,从并行计算、共享资源分布式计算、任务分解与调度、Lock-Free编程等方面充分考虑相关问题,以便将多核处理器的性能充分发挥出来。
【问题2】
如果某个系统支持两个或者多个动作(Action)同时存在,那么这个系统就是一个并发系统,即系统中同时有多个线程,可以认为是并发的情况。
如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统。当系统中有多个线程,并在同一时刻有两个,或两个以上的线程在运行状态,可认为是并行系统。
问题3
(1)√ (2)√ (3)× (4)√ (5)× (6)× (7)√
某公司长期从事计算机产品的研制工作,公司领导为了响应国家军民融合的发展战略,决定要积极参与我国军用设备领域的研制工作,将本公司的计算机及软件产品通过提升和改造,应用到军用装备的安全关键系统中。公司为了承担军用产品的研发任务,公司领导将论证工作交给王工负责。王工经调研分析,提交了一份完整论证报告。
【问题1】 (12分)
论证报告指出:我们公司长期从事民用市场的计算机研制工作,在研制流程、管理方法以及环境试验等方面都不能达到军用设备相关技术要求。要承担武器装备生产研制工作,就必须建立公司的武器装备生产研制质量体系,需要拿到军方或政府部门颁发的资格认证。从技术上讲,军用设备产品大部分都属于安全关键系统,其计算机及软件的缺陷会导致武器装备失效,因此,公司技术人员应及早掌握相关安全性基本概念和相关设计知识。
1)企业要承担武器装备产品生产任务,需获得一些资格认证,请列举两种资格认证名称。
2)请说明安全关键系统的定义,并列举出两个安全关键系统的实例设备。
3)请简要说明安全性(safety)的具体含义,并给出产品设计时,安全性分析通常采用哪两种方法?
【问题2】(6分)
IEC 61508 (《电气/电子/可编程电子安全系统的功能要求》)是国际上对安全关键系统规定的一种较完整的安全性等级划分标准,本标准是由国际电工委员会(International Electronic Commission)正式发布的电气和电子部件行业标准(GB/T 20438等同于此标准)。本标准对设备或系统的安全完整性等级(SIL)划分为4个等级(SIL1、SIL2、SIL3、SIL4),SIL4是最高要求。
表3-1给出了本标准对安全功能等级和失效容忍概率的对应关系。请根据自己所掌握的安全功能等级相关知识,补充完善表3-1给出的(1)~(6)空格,并将答案写在答题纸上。
表3-1 安全功能等级(SIL)和失效容忍惯率对照表
【问题3】(7分)
实时调度是安全关键系统的关键技术。实时调度一般分为动态和静态两种。其中,静态调度是指在离线情况下计算出的任务的可调度性,静态调度必须保证所有任务的时限、资源、优先级和同步的需求。图3-1给出了一组分布式任务执行的优先级关系,请根据图3-1给出任务间的优先级关系实例,按静态调度算法的基本原理,补充完善图3-2给出的任务静态调度搜索树的(1) ~ (10)空白,并给出最佳调度路径。
图3-1分布式任务的优先权关系图
图3-2静态调度搜索树图
【问题1】
1)从事军工科研生产需先获得以下五种认证:
1、国军标质量管理体系认证,简称国军标认证(ISO-9001);
2、武器装备科研生产许可证认证,简称许可证认证;
3、武器装备科研生产单位保密资质认证,简称保密认证;
4、装备承制单位资格审查(装备承制单位资格名录认证和武器装备质量管理体系认证),检测名录认证;
5、军用软件研制能力成熟度模型资格认证,简称软件认证(GJB5000)。
2)安全关键系统是指系统功能一旦失效将引起生命、财产等重大损失以及环境可能遭到严重破坏的系统。
(如果计算机系统的失效可能引起灾难性的后果,如丧失生命、大量财产损失或环境遭到灾难性损失,则这个计算机系统能被称为“安全关键系统”。)
安全关键系统包括: 如战斗机的航空电子系统,火控雷达系统、火车控制系统 、核反应堆系统等。
3)安全性是指系统在发生关键失效状态下,系统可保持不会导致灾难性后果的时间间隔。安全性分析通常采用:故障树(Fault Tree)分析法;失效模式和影响域(FMEA)分析法。
【问题2】
【问题3】
(1)T6 (2)T5 (3)T7
(4)M1 (5)T1 (6)T3
(7)T4 (8)M2 (9)T6
(10)T5
最佳调度路径:T0,T2,(M1,T1),(T3,T4),(M2,T6),T5,T7
某软件公司长期从事移动智能终端设备等嵌入式软件研制工作,积累了丰富的嵌入式软件开发经验。某日,该公司经理派在嵌入式软件开发方面已具有很强经验的王工程师到某宇航设备研制单位洽谈一项软件合作项目,但是,在与对方洽谈需求时王工程师感觉沟通并不顺畅,许多概念较难达成一致。主要原因是王工程师长期从事移动智能终端的软件开发,开发平台主要是Android操作系统,开发语言是Java,而这次洽谈是王工程师第一次接触宇航系统软件,对于其特殊需求和要求缺少相关知识积累,不了解强实时、高安全和高可靠嵌入式软件设计等方面应用。
【问题1】(7分)
王工程师与某宇航设备研制单位洽谈的业务,涉及到了嵌入式系统的知识。根据你的理解请用100宇以内文字说明嵌入式系统的主要特点。
【问题2】(8分)
王工程师到某宇航设备研制单位洽谈软件项目时,宇航设备研制单位技术人员提出了以下需求:此宇航设备主要面向无人飞行器,用于飞行姿态控制,实现飞行器的自主起飞和着陆,要求应用软件按最高安全等级(即A级软件要求)开发。为了提高飞行器系统的安全性和可靠性,便于应用软件的可重用性,需要选择一款满足宇航设备要求的嵌入式操作系统,并在操作系统之上开发飞行器控制软件。请根据你对嵌入式操作系统选择方法的理解,判断表3-1给出的有关选择嵌入式操作系统的观点是否正确,将解答写在答题纸的对应栏内。
表3-1 选择嵌入式操作系统的8种观点
【问题3】(10分)
请用300字以内文字,说明宇航设备的嵌入式软件与移动智能终端嵌入式软件在安全性(safety)、实时性、交互性设计和编码方面的要求有何差异,请填写表3-2中的空格(1)~(8),将解答写在答题纸的对应栏内。
表3-2 两类软件的主要差异
【问题1】(7分)
嵌入式系统具有以下特点:
(1)系统专用性强。嵌入式系统是针对具体应用的专门系统。
(2)系统实时性强。很多嵌入式系统对外来事件要求在限定的时间内及时做出响应,具有实时性。
(3)软硬件依赖性强。嵌入式系统的专用性决定了其软硬件的互相依赖性很强,两者必须协同设计,以达到共同实现预定功能的目的,并满足性能、成本和可靠性等方面的严格要求。
(4)处理器专用。嵌入式系统的处理器一般是为某一特定目的和应用而专门设计的。
(5)多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术、机械技术与各行业的具体应用相结合的产物。
(6)系统透明性。嵌入式系统在形态上与通用计算机系统差异甚大。
(7)系统资源受限。嵌入式系统为了达到结构紧凑、高可靠性和低成本的目的,其存储容量、I/O设备的数量和处理器的处理能力都比较有限。
【问题2】(8分)
(1)√ (2)× (3)√ (4)√ (5)√ (6)√ (7)× (8)√
【问题3】(10分)
随着嵌入式系统智能化技术的持续发展,系统的能耗问题已成为亟待解决的难题。某宇航公司研发的一款手持式野外辅助装备,需要较长的巡航时间,由于设计时对功耗问题考虑不周,使得产品出现了批次责任事故。公司领导决定抽调王工等5人组建专门的攻关小组,要求在三个月内完成故障归零。王工接到任务后,经反复论证 与实验,给公司提交了一份基于软件动态节能的改进方案,得到了领导及专家的好评。
【问题1】(7分)
在嵌入式系统中节能技术一般分为静态节能和动态节能两种,请用300字以内文 字分别说明什么是静态节能技术和动态节能技术,并列举三种动态节能技术。
【问题2】(6分)
王工的方案得到认可后,他带领团队研究了调度方式和系统能耗之间的关系,请用150字以内的文字说明为了节约系统能耗而采用的设备调度策略的核心思路,并说明设备调度策略与任务实时性的关系。
【问题3】(12分)
根据上述设备有效调度时刻的策略,分析以下实例,并将答案写在答题纸上。
手持式野外辅助装备由三个实时任务和三个独立设备组成(分别表示为:t1、t2 和t3;s1、s2和s3),表3-1给出了手持式设备实时任务的时间参数表,这些任务使用独立的设备并且所有设备的特征一致,各设备待机超时可直接进入睡眠状态,处于睡眠状态的设备要经过转换状态后才能进入运行状态。假设初始状态(t=0)设备处于工作状态,且所有设备的工作状态功率为60mw/ms,转换功率为30mw/ms,睡眠功率 为10mv/ms。同时假设设备被唤醒的转换时间为10ms。设备待机后被关闭的超时值为10ms。
图3-1给出了未考虑节能需求时任务调度算法,在采用了设备有效时刻调度策略之后,三个设备100ms周期内将按一定顺序被依次关闭和唤醒。图3-2给出了采用设备有效时刻调度策略后s1的功率随时间的变化规律。请计算此时三个设备在100ms 周期内的功耗,并计算100ms周期内,每个设备的节能比。
节能比 = (未节能情况下的系统能耗 - 节能后系统能耗)÷ 未节能情况下的系统能耗
表3-1实时任务事件参数表
图3-1 任务调度算法
图3-2 设备s1的功率随时间变化情况
【问题1】
静态节能技术是在编译时刻对代码扫描,找出可以针对目标平台特性优化的部分进行代码重构。
动态节能技术是在设备运行时根据任务负载、功率与输入电压平方的线性关系等进行运行状态以达到节能的技术,主流的动态节能技术有动态电压调节、动态频率调节、动态电源管理、动态电压缩放、体偏压调节、自适应衬底偏置等。
【问题2】
在不违背时限,保证延迟的前提下,合理调度任何到各设备上,求得最佳调度以降低系统能耗。
设备调度策略是直接影响任务实时性能的因素。
【问题3】
s1、s2和s3在不考虑节能调度算法的情况下,100ms周期内的能耗都是60×100=6000mw。
根据图3-2,在考虑了节能调度算法的情况下:
s1的能耗:60×10+60×10+10×20+30×10+60×10+60×10+10×20+30×10 = 3400mw
s1的节能比:(6000-3400)/6000=0.43。
s2的能耗:60×10+60×20+60×10+10×30+30×10+60×20 = 4200mw
s2的节能比为:(6000-4200)/6000=0.3。
s3的能耗:60×10+10×10+30×10+60×30+60×10+60×10+60×10+10×10 = 4700mw
s3的节能比:(6000-4700)/6000=0.22。
某软件公司开发基于云计算的分布式文档协作平台(DDCP),系统部分需求如下所示:
(1)实现文档的分布式存储,客户端可随时随地上传和下载文档;
(2)支持多客户端并发编辑同一文档,某个客户端所做修改会实时显示在其他客户端;
(3)要求系统具有自我修复机制,当系统中某个节点失效时,无需人工干预能够自动实现节点替换并恢复到一致状态。
项目组经过讨论,决定采用现有的分布式文件系统作为基础架构,但在具体选用哪种设计方案时产生了分歧。王工建议采用Hadoop分布式文件系统HDFS作为系统参考架构,但张工认为Google分布式文件系统GFS更适合该系统需求。最后经过更为详细的分析和讨论,同意了张工的建议,采用GFS作为分布式文档协作平台的文件系统架构。
【问题1】(12分)
请用300字以内的文字说明GFS和HDFS有何异同,并针对系统需求,用200字以内的文字说明选择GFS的原因。
【问题2】 (8分)
针对图2-1所示DDCP基础架构,请分别说明一次数据读操作和一次并发写操作的过程。
图2-1 DDCP系统架构
【问题3】(5分)
请分别叙述采用GFS和HDFS架构,单点失效问题是如何解决的。
分布式数据存储系统是实现云计算和面向服务计算等分布式计算模型的基础,采用不同的分布式文件系统架构决定了分布式数据存储系统的运行效率、可伸缩性、容错能力及安全性等。分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,从而实现了数据的分布式存储和管理。Google的GFS文件系统和Hadoop分布式文件系统HDFS是当前最流行的两种分布式文件系统参考架构。
本题主要考查应试者对于分布式文件系统设计的掌握情况,特别是GFS和HDFS分布式文件系统架构的设计。本题结合一个典型的实际项目案例,首先要求分析GFS和HDFS之间的异同,然后针对系统需求分析采用GFS文件系统的原因;针对项目中所设计的DDCP基础架构,分析数据读写操作的过程;最后针对具体的单点失效问题,说明两种分布式文件系统架构所提供的解决方案。
【问题1】
本题要求考生针对GFS和HDFS两种分布式文件系统架构的特点展开分析并进行总结。
(1)GFS是一个面向大规模数据密集型应用的、可伸缩的分布式文件系统,虽然运行在多台普通硬件设备上,但是它提供了灾难冗余的能力,为大量客户机提供高性能的服务。一个GFS集群中包含了一个单独的Master节点、多台Chunk服务器,并且同时被多个客户端访问。GFS存储的文件被分割为固定大小的Chunk并分配标识,缺省提供3个存储复制节点,Master节点管理所有的文件系统元数据,GFS客户端代码以库的形式被链接到客户程序里,无论是客户端还是Chunk服务器都不需要缓存文件数据。
(2)HDFS是一个高度容错性的系统,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS采用Master/Slave架构,一个HDFS集群由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的命名空间以及客户端对文件的访问,集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。一个文件被分成一个或多个数据块,这些块存储在一组Datanode上,Namenode执行文件系统的命名空间操作并确定数据块到具体Datanode节点的映射,Datanode在Namenode的统一调度下负责处理文件系统客户端的读写请求。
【问题2】
本题要求考生认真分析图中给出的DDCP系统架构,依据图中节点之间的数据传输关系描述数据传输过程。
(1)读数据的过程:应用程序将读数据请求发送给客户端后,客户端访问主服务器请求所需数据位置信息,主服务器查询数据分块和地址信息返回给客户端,客户端根据地址信息向块服务器发送读数据请求,块服务器将所请求数据发送给客户端,客户端将数据转发给应用程序。
(2)写数据的过程:应用程序分别将数据和写数据请求发送给客户端,客户端依次访问主服务器请求所写数据位置信息,主服务器依次查询数据分块和地址信息发送给客户端,客户端将所要写入的数据重新组织,将属于同一个块服务器的数据按照分组报文和分组序列信息发送给块服务器数据缓存(Primary),客户端将所写数据按照分组报文发送给块服务器数据缓存(Secondary),块服务器数据缓存(Primary)按照分组序列将数据写入到块服务器数据块(Primary),块服务器(Primary)将分组序列发送给块服务器(Secondary),块服务器数据缓存(Secondary)按照分组序列将数据写入块服务器数据块(Secondary),块服务器(Secondary)将写入完成信息发送给块服务器(Primary),块服务器数据(Primary)将写数据完成信息发送给客户端。
【问题3】
本题要求应试者掌握单点失效问题产生的原因,并能够结合GFS和HDFS架构的特点进行分析,说明所采用的解决方案。
计算机虚拟化是一种型的计算模式,能够动态组织多种计算资源,隔离硬件体系结构和软件系统之间的依赖关系,实现透明化、可伸缩的计算系统构架,提高计算资源的使用效率和遗产软件的重用。
某公司是一家长期从事嵌入式软件研制的单位。随着虚拟化技术发展,公司决策层决定在公司原有嵌入式实时操作系统基础上,研制具备虚拟化能力的新一代嵌入式操作系统产品。公司将该项目的总体设计任务交给了王工,要求他充分调研用户需求,尽快拿出项目的计划书,并给出项目的技术实施途径。一个月后,王工向公司决策层提交了项目计划书和技术实施途径报告,在公司讨论会上引起技术争议,其焦点主要集中在两个方面:虚拟化体系架构问题和虚拟化中的安全因素问题。
【问题1】(14分)
当前虚拟化的实现技术主要有全虚拟化和半虚拟化两种,请用200字以内的文字说明两种虚拟化技术的主要差别,并用箭线指出图3-1所示的虚拟化特性分属哪种虚拟化技术。
图3-1 虚拟化技术特性归属关系
【问题2】(11分)
具有虚拟化能力的嵌入式实时操作系统目前仅支持单核处理器,而不支持多核,请用100字以内的文字说明其主要原因。表3-1给出如果采用虚拟化技术支持多核时存在的四种共享资源和四种潜在安全隐患,请用箭线指出这些潜在安全隐患分别会发生在哪种共享资源的环境下。
表3-1 四种共享资源和四种潜在的安全隐患
本题主要考查嵌入式软件系统虚拟化的知识,考查内容较新,需要考生对虚拟化知识的基本概念及其在嵌入式软件系统中的应用具有一定的理解和认识。
【问题1】
本题第一问主要考查半虚拟化技术和全虚拟化技术的差异,考生需要明确全虚拟化技术能够在硬件辅助虚拟化的支持下,运行任何不需要修改的客户操作系统;半虚拟化技术不需要硬件辅助虚拟化的支持,通过精心修改客户操作系统内核,在只改动有限量内核代码、替换为相应Hypercall的基础上实现虚拟化的。
本题第二问主要考查全虚拟化和半虚拟化的特点。全虚拟化需要硬件结构支持,通用性高、过程简洁,虚拟化性能低,不需要修改客户操作系统。半虚拟化技术虚拟化性能高,需要修改客户操作系统,使用范围受到一定制约,但不受CPU硬件限制。
【问题2】
本题第一问主要考查嵌入式实时操作系统不支持多核处理器的原因,其主要原因是由于多核存在共享资源访问,虚拟化后会影响分区化的安全性。
本题第二问主要考查采用虚拟化技术支持多核时,在共享引导逻辑、共享CACHE、共享I/O逻辑、结构的复杂性四个方面可能出现的问题。其中共享引导逻辑的情况下,执行影像的安全性受到潜在威胁;共享CACHE的情况下,潜在的旁路通道遭数据泄漏攻击;共享I/O逻辑的情况下,潜在的隐蔽通道攻击和服务拒绝攻击;结构的复杂性情况下,会存在潜在的故障注入攻击。
近年来,分区化(Partitioning)技术已被广泛应用于大型嵌入式系统,此项技术重在解决嵌入式系统中多类应用软件共享计算机资源的安全性问题,同时,也可降低软件开发成本,提高软件的可重用能力。某公司承担了一项宇航计算机系统研制任务,要求将以前采用的多处理机系统精简为由单个处理器系统完成,而整体功能应在原有功能不变的基础上,可灵活扩展,并要求原应用软件可被快速移植到新系统。公司将任务交给王工程师组织并承担总体设计工作。在采用何种嵌入式实时操作系统的选型问题上,王工认为宇航系统强调安全性,原系统应用软件功能分布在各自的处理机上,在保持功能不变的情况下,应适当地维持各个软件的相对独立性,因此采用具有分区能力的操作系统(如:VxWorks653)比较合适。
【问题1】(共9分)
图3-1给出了具有分区能力的操作系统架构,该架构支持分区和进程两类调度,并提供了分区的时间、空间隔离保障,保证了应用软件可安全共享计算机资源。请用300字以内文字说明该类操作系统中分区化技术的主要特点。
图3-1 具有分区能力的操作系统架构
【问题2】(共16分)
完成该项目总体设计后,王工将软件设计工作交给李工,要求李工在原有软件基础上,完成新环境下的软件设计。经分析,李工统计出了原系统的任务基本情况(见表3-1)。原系统包含三个子系统,为了保证各子系统软件间的相对独立性,将三个子系统移植到新系统的三个分区工作,假设将“显示子系统”、“雷达子系统”和“任务子系统”分别用P1、P2和P3表示,系统的最小时间计时(tick)设为1ms,调度表的主时间框架将是40ms。
根据表3-1给出的原系统各任务周期和最坏执行时间数据,新系统中的所有任务可被调度,请对此进行分析说明,完善表3-2所示的分区调度表的设计,在空(1)~(10)填写正确内容并将解答填入答题纸的对应栏内。
(注:WCET,Worst-Case Execution Time)。
表3-1 原系统软件任务情况
表3-2 分区调度表设计(时间单位:ms)
表3-2(续) 分区调度表设计(时间单位:ms)
【问题1】
图3-1给出的具有分区技术的操作系统架构已明确说明了此类操作系统的能力,通过本图考生就可以正确地回答该问题。
【问题2】
本题涉及到两方面的知识,其一是实时系统的周期任务的可调度分析方法;其二是正对问题1中提到的分区的时间表调度算法,完成对表3-1的实例进行可调度分配,使操作系统按照设置好的调度序列调度分区,一定会保证表3-1中所有任务在最坏情况下按其周期要求执行完成。在可调度分析时,表3-1给出的实例中,分区调度的主时间框架应是实例中所用任务周期的最大公约数,即40ms,这样可调度分析首先应分析在40ms时间范围内是否可保证表3-1中所有任务的最坏执行时间都被至少执行一次。在此前提下,依次类推,完成对20ms周期、10ms周期和5ms周期的所用任务的最坏执行时间都被至少执行一次,如果四分钟分析都可调度,则表3-1给出的实例是可调度的。具体公式如下:
1(P3T1)≤5ms;
1(P1T1)+1(P2T1)≤10ms;
2(P1T2)+1(P3T2)≤20ms
1(P3T1)×8+1(P1T1)×4+1(P2T1)×4+2(P1T2)×2+1(P3T2)×2+5(P1T3)×1+3(P2T2)≤40ms
如果上述分析是可调度的,那么完成表3-2的分区调度表就可很容易实现。调度表是分区操作系统调度分区的依据,调度表将时间框架分成若干个窗口,每一个窗口可定义分配给哪个分区运行,启动时间是指本窗口针对主时间框架的第一个窗体“0”的偏移量,持续时间是指分配给此窗口的实际可运行时间。考生在填写时必须清楚以下4点:
(1)分区时间表调度中某窗口的启动时间不一定必须等于上一窗口的启动时间加持续时间。也就是说,窗口间的启动时间可以不连续;
(2)分区时间表调度中的第一个窗口的启动时间一般都为0;
(3)操作系统调度程序在遇见主时间框架最后一个窗口运行完后,应在主时间框架结束时刻重新加载主时间框架,新周期开始从第一个窗口运行;
(4)空窗口(null)是指本时间段操作系统不做任何分区调度,系统运行一种称之为空分区的任务。
在传统的嵌入式系统中,由于应用背景的不同,架构风格存在着差异。某公司长期从事各类嵌入式电子产品的研发工作,为了扩展业务,拟承担安全关键嵌入式产品的研制,为了统一本公司嵌入式产品的架构,以兼顾安全关键系统和非安全关键系统,公司领导层提出了采用国外近年新的跨领域嵌入式系统架构,新架构主要有6个特点:
(1)面向构件化
(2)开放式
(3)支持多种安全级别
(4)服务的层次化
(5)确定性核心
(6)内部组合的标准化
图3-1给出了跨领域嵌入式系统架构,图中CS表示领域无关的核心服务、OS表示领域无关的选择性服务、DSC表示领域相关的中心服务、DSO表示领域相关的选择性服务。该架构通常称为“腰”型架构,将嵌入式系统分为核心服务层、域服务层和应用服务层三个层次,实现了应用间相对无关性设计,架构的腰部为与领域无关的核心服务。
图3-1 跨领域嵌入式系统架构
【问题1】(8分)
请用200字以内文字说明图3-1“腰”型架构的特点。
【问题2】(10分)
针对图3-1的“腰”部的核心层,表3-1中给出了10种服务,请判断这些服务中哪些属于核心服务(Core Services),哪些属于选择性服务(Optional Service),将结果填到表3-1中。
表3-1 10种服务类归属CS/OS两类服务
【问题3】(7分)
该公司遵从图3-1定义的嵌入式架构风格,梳理了现有产品序列,定义了公司产品中涉及的软件主要包括以下4类:
(1)基于分区化的嵌入式操作系统(如:VxWorks653)
(2)存储管理部件(如:文件系统)
(3)支持产品互联的多种网络协议部件(如:TCP/IP、ppp、CAN、1394等)
(4)应用软件
请根据你所掌握上述软件的相关知识,说明这些软件应归属图3-1中核心服务层、域服务层和应用服务层中的哪一层。并举例说明上述软件提供的服务中哪些归属于架构的OS、CS、DSC和DSO服务,填写表3-2。
表3-2 4类服务的服务举例
本题考查嵌入式系统新架构风格。
题目所涉及到的架构既然是一种新架构,那么必然大部分考生是未接触与使用过该架构的,所以在解题时,更多的是考查基本功与分析问题的能力。
【问题1】要求说明新架构的特点。从架构的示意图可知,架构是分层次的,所以它具备分层架构的一些特点,如:层与层之间进行了解耦,所以降低了耦合程度;上层可复用下层的功能。同时题目已明示,该架构有:面向构件化、开放式、支持多种安全级别、服务的层次化、确定性核心、内部组合的标准化等特点。
【问题2】要求分析给出的服务归属于哪种服务类型,这需要一定的经验,但同时也有技巧性。如,在题目给出的服务中,即有“基本***服务”也有“高级**服务”,这种情况,“基本***服务”必然是属于核心服务,而“高级**服务”属于选项服务。因为核心服务就有不可少的,最基本的服务的理念,而选择服务是可有可无的。依据该原则,已可解决半数问题。另外的服务类型则需要根据考生的经验进行判断。
【问题3】是把给出的软件产品进行分类,题目给出的分类有:核心服务层、域服务层和应用服务层。核心服务层对应着域无关的核心服务与选择服务,所以(1)(2)都属于这个层次,而(3)对应的是DSC层(配图中已标识),所以归属于域服务层,应用软件属于典型的应用服务层。
然后进一步划分,(1)属于CS,(2)属于OS,其中(4)应用软件是并不属于CS、OS、DSC、DSO这个范围,而是他们之上,所以无需填入。
甲公司承担了一项为宇航系统配套生产高性能嵌入式计算机系统的任务,用户要求该系统要具有高速并发处理能力、低功耗、高可靠性,并可以有效地防止系统故障的蔓延。根据用户对本项目的要求,甲公司成立了软/硬件两个项目组,总体设计由硬件组承担,负责高性能嵌入式计算机系统体系结构设计,软件组负责确定软件的技术需求和应用软件开发平台的软件设计工作。
在处理器选型方面, 硬件组王工与软件组张工在讨论采用哪种CPU体系结构方面发生争议。目前,流行的处理器结构包括了单核结构、多处理器结构、超线程结构、多核结构、共享Cache的多核结构和超线程。
【问题1】(11分)
王工提出,根据用户要求,本嵌入式系统应具有高速并行处理能力,采用多处理器结构比较适合,主要理由是多处理器结构设计简单、可支持多个进程在不同处理器上并发处理;而张工提出,必须分清“多处理器结构”与“多核结构”的优点和缺点,多处理器结构虽然支持多进程的并发处理,但没有直接实现多线程并发执行;多核结构可以直接实现多线程并发执行。要提高应用的并行性就必须利用多个硬件资源的并行工作,建议采用超线程技术的多核结构的处理器。请填写图3-1(f)中的(1)~(8),并用300字以内的文字对上述六种处理器结构的工作原理进行简要描述。
【问题2】(9分)
在本项目中,如果计算机采用了多线程技术实现应用程序的并发操作,程序设计人员将面临多种挑战,其主要原因在于:程序会同时发生多个动作,对这些同时发生的动作以及它们之间的交互进行管理将面临四方面的挑战,即同步、通信、负载均衡和可伸缩性,用 200 字以内的文字对上述四种挑战进行简要描述,并给出表 3-1 所述的常用并发程序设计模式的分解方式。
【问题3】(5分)
为了防止系统故障的蔓延,解决应用进程间的相互影响,在超线程技术的多核结构需要选择一种嵌入式操作系统作为本高性能嵌入式计算机系统的运行环境,请用200字以内的文字说明选择的操作系统应具备哪些主要功能。
某公司长期从事嵌入式商用软件的开发工作。随着业务范围的扩展,公司最近签署了一项大型客机信息综合处理的软件研制合同,作为机载软件,其可靠性和安全性直接影响着大型客机的安全特性。合同要求承制方在开展工作之前必须完成安全性、可靠性分析报告,在软件开发过程中应严格遵循相关工程化标准。
公司总经理将此项任务交给了张工程师,要求他尽快掌握航空软件研制的各项要求,并拿出项目的策划书。张工在深入研究了可信计算等相关知识的基础上,结合航空软件的特点,提出了一项项目实施策划方案。此方案在安全性设计方面借鉴了可信计算的相关技术,得到了甲方的认可,但是,针对此方案,公司领导层存在极大争议,问题主要焦点在于按此方案实施,公司的人员、成本和资源投入将远远超过本公司的承受能力,张工指出,传统商用软件的开发模式不能满是航空用户的需要,软件可信度太低,对后续发展不利。经过认真讨论,公司领导层形成了统一认识,按可信计算的技术要求,提升公司的整体软件开发水平。
【问题 1】(13 分)
ISO/IEC 15408 标准定义可信为:参与计算的组件,其操作或过程在任意的条件下是可预测的,并能够抵御病毒和物理干扰。而航空设备的基本特点就是要求设备工作的实体行为应该总是以预期的方式达到预期的目的(即行为、资源的确定性要求)。基于这种思想,张工依据可信计算组织定义的可信链模型(即可信测量根(RTM)—BIOS—OSLoader—OS 构成链式信任链模型)理论,给出了一种适应本项目的带数据恢复的星型信任模型(图 3-1)。该模型的中心思想是将可信测量根植入机载设备平台模块内部NVRAM(非易失存储器)中,在信任链中增加数据恢复功能,并将信任链延伸到应用。请根据张工设计思想,完善图3-1所示的带数据恢复星型信任模型的空白部分。并用100字以内的文字,解释该模型与链式信任链模型相比的特点。
图3-1 带数据恢复星型信任模型
【问题 2】(12 分)
交叉编译器是嵌入式软件开发必备的基础工具软件之一。目前比较流行的交叉编译器是 GNU 系列产品,它是一种开源软件。编译器生成代码正确与否严重影响机载设备的安全,因此,张工在方案中提出对本项目采用的交叉编译器开展可信技术研究。可信编译器包括两方面含义,其一是编译器自身的可信性,即必须保证整个编译操作的可信性,保证编译器在编译过程中不会给编译处理对象带来任何安全问题;其二是必须保证编译器编译所得程序可执行代码的可信,即编译器必须保证,通过其编译生成的程序代码是安全和可靠的。因此,张工提出在传统编译操作的基础上加入代码安全性加强机制、代码可信性验证机制和可执行代码保护机制。图3-2给出了可信编译系统的框架。
请说明三种可信机制在传统编译操作步骤中的位置,并给出图3-2的(a)~(c)对应的可信机制名称。
根据表3-1所示的信息流名称,给出图3-2中(d)~(h)对应的功能模块间的信息流编号。
图3-2 可信编译系统框架
【问题1】
(1)OSLoader (2)操作系统 (3)应用 (4)恢复
带数据恢复星型信任模型的特点:
(1)可信测量根被保护,安全性更高。
(2)具有数据恢复功能,安全性更高。
(3)都是一级测量,没有多级信任传递,信任损失少。
【问题2】
(见表3-2、表3-3所示)
可信计算的基本思想是:首先在计算机系统中建立一个信任根,再建立一条信任链,从信任根开始,经过硬件平台和操作系统,再到应用,一级测量认证一级,一级信任一级,从而把这种信任扩展到整个计算机系统。
【问题1】
可信计算组织的信任链采用了一种链式的信任测量模型,即由RTM(可信测量根)→BIOS→OSLoader→OS构成一个串行链。由于采用了一种迭代计算哈希值的方式,即将现值与新值相连,再计算哈希值并作为新的完整性度量值存储起来。
链式信任链具有如下缺点:信任链越长,信任损失的可能性就越大。在链中加入或删除一个部件,PCR的值需要重新计算,很麻烦。信任链中的软件部件可能会更新(如BIOS升级,OS打补丁等),而PCR的值也得重新计算,这样一来使得部件更新工作很麻烦。
带数据恢复的星型信任模型结构如图3-3所示。
图3-3
它将可信测量根置入可信平台模块内部NVRAM (Non-VolatileRandom Access Memory,非易失性随机访问存储器),在信任链中增加了数据恢复功能,并将信任链延伸到应用。与可信计算组织的链式信任链相比,该模型具有如下特点:可信测量根被保护,安全性更高;具有数据恢复功能,安全性更高;都是一级测量,没有多级信任传递,信任损失少。但是,所有测量都由可信测量根执行,可信测量根通过可信平台模块完成任务,这使得可信平台模块负担加重。
在可信计算的信任链中应当度量的是可信性。但是,由于可信性目前尚不易直接度量,所以可信计算组织在信任链中采用的是度量数据完整性,而且是通过校验数据哈希值的方法来度量数据的完整性。但是,可信≈可靠+安全,完整性≠可信性,完整性 可信性,即完整性只是可信性中的一个侧面。
由于可信计算组织在信任链中采用的是度量数据完整性,因此它能确保数据的完整性,确保BIOS,OSLoader和OS数据的完整性。但是完整性只能说明这些软件没有被修改,并不能说明这此软件没有安全缺陷,更不能确保这此软件在运行时的安全性。基于数据完整性的度量是一种静态度量,基于软件行为的动态度量更实用。
【问题2】
编译器作为重要的系统软件,其可信性对于整个计算机系统的可信具有重要意义。如果编译器不可信,则很难保证其他软件的可信性。软件的可信性很大程度上依赖于程序代码的可信性,影响软件可信性的主要因素包括来自软件内部的代码缺陷、代码错误、程序故障以及来自软件外部的病毒、恶意代码等。因此,从代码角度来保证软件的可信性是实现可信软件的重要途径之一。
可信编译的目标就是从编译的角度保证软件的可信性,主要包括两方面含义,一方面,必须保证编译器自身是可信的。即必须保证整个编译操作的可信性,保证编译器在编译过程中不会给编译处理对象带来任何安全性问题,防止恶意攻击者通过修改编译器,在编译过程中对代码的原始语义进行篡改,影响程序代码本身的可信性;另一方面,必须保证编译器编译所得程序可执行代码是可信的,即编译器必须保证,通过其编译生成的程序代码是安全和可靠的。
编译器自身的可信性主要是指其编译过程的正确性、安全性和可靠性。一般认为,通过形式化验证的系统具有较高的可信性,可将形式化方法用于编译器本身。通过在传统编译操作的基础下加入代码安全性加强机制、代码可信性验证机制及可执行代码保护机制等三种机制,来保证编译所产生代码的可信性。
(1)代码安全性加强机制:该机制主要用于识别和处理程序中常见的一些安全漏洞。目前已提出许多针对程序常见安全漏洞的编译处理技术,具有代表性的如针对缓冲区溢出攻击的StackGuard方法等。
(2)代码可信性验证:该机制不可能解决所有的代码安全性问题。对于可信性要求较高的程序代码,必须通过形式化方法对其进行可信性验证。因此,我们提出在代码安全性加强机制对代码进行安全加强之后,通过代码可信性验证机制对代码的可信属性进行验证,对未通过验证的非可信代码进行报警或其他处理。这样,通过代码安全性加强和可信性验证相结合的方法保证编译生成可执行代码的可信性。
(3)可执行代码保护机制:为了防止攻击者对可信编译器最终生成的可执行代码进行恶意攻击或修改,可信编译器在完成编译之后,对可执行代码实施保护机制,保护编译所得可执行代码的完整性、秘密性和可用性,从而确保系统最终执行代码的可信运行。
某大型企业在长期信息化建设过程中,面向不同应用,开发了各种不同类型的应用软件系统,以满足不同的业务需求,随着用户需求和市场的快速变化,要求企业应能快速地整合企业的各种业务能力。为不同类型的用户提供多种流程的业务服务。但现有各个独立的应用系统难以满足日益增长和快速变化的用户需求。
目前该企业各个应用系统主要存在以下问题:
(1)应用系统是异构的,运行在不同软硬件平台上的信息系统。
(2)应用系统的数据源彼此独立,相互封闭,使得数据难以在系统之间交互,共享和融合,即存在“信息孤岛”。
(3)系统是面向应用的、各个应用系统中的数据模型差异大,即使同一数据实体,其数据类型、长度均存在不一致甚至相互矛盾的问题,为此,该企业专门成立了研发团队,希望能尽快解决上述问题。
【问题1】
李工建议采用数据集成的方式来实现数据的整合,同时构建新系统来满足新的需求,针对题干中的问题(3),李工提出首先面向企业核心的业务主题,做好企业战略数据规划。建立企业的主题数据库,然后再进行集成系统的开发。
请用200字以内的文字简要说明主题数据库的设计要求和基本特征。
【问题2】
张工认为数据集成的方式难以充分利用已有应用系统的业务功能实现不同业务功能的组合,建议采用基于S0A的应用集成方式将原有系统的功能包装为多个服务,并给出了基本的集成架构,见图:
图4-1基于SOA的集成架构示意图
请补充实善图4-1中(1) - (3) 处空白的内容。
【问题3】
研发团队在对张工的方案进行分析后,发现该方案没有发挥SOA的核心理念,即松耦合的服务带来业务的复用通过服务的编排助力业务的快速响应和创新、未实现“快速整合企业业务的能力,不同类型用户提供各种不同功能,不同流程的业务服务的核心目标,目前方案仅仅是通过SOA实现了系统集成。
请用200字以内文字分析该方案未满足本项目核心目标的原因。
【问题1】
主题数据库的设计要求:
(1)应设计得尽可能的稳定,使能在较长时间内为企业的信息资源提供稳定的服务。
(2)要求主题数据库的逻辑结构独立于当前的计算机硬件和软件的物理实现过程,这样能保持在技术不断进步的情况下,主题数据库的逻辑结构仍然有效。
主题数据库具有以下基本特征:
(1)面向业务主题。主题数据库是面向业务主题的数据组织存储。
(2)信息共享。主题数据库是对各个应用系统“自建自用”的数据库的否定,强调建立各个应用系统“共建共用”的共享数据库。不同的应用系统统一调用主题数据库。
(3)一次一处输入系统。主题数据库要求调研分析企业各经营管理层次上的数据源,强调数据的就地采集,就地处理、使用和存储,以及必要的传输、汇总和集中存储。同一数据必须一次、一处进入系统,保证其准确性、及时性和完整性,但可以多次、多处使用。
(4)由基本表组成。主题数据库是由多个达到基本表规范(满足3NF)要求的数据实体构成的。
【问题2】
(1)业务流程编排(2)消息转换(3)应用程序接口
【问题3】
张工的方案在进行集成时,只是将原有的系统做了简单的对接,应把原来的业务功能模块拆分并做成服务,以单个服务的形式使用企业服务总线做集成。
新版章节练习,考前压卷,完整优质题库+考生笔记分享,实时更新,软件,
主题数据库应设计得尽可能的稳定,使能在较长时间内为企业的信息资源提供稳定的服务。稳定并非限制主题数据库永不发生变化,而是要求在变化后不会影响已有的应用项目的工作。要求主题数据库的逻辑结构独立于当前的计算机硬件和软件的物理实现过程,这样能保持在技术不断进步的情况下,主题数据库的逻辑结构仍然有效。
主题数据库具有以下基本特征:
(1)面向业务主题。主题数据库是面向业务主题的数据组织存储,例如,企业中需要建立的典型的主题数据库有产品、客户、零部件、供应商、订货、员工、文件资料、工程规范等。其中产品、客户、零部件等数据库的结构,是对有关单证和报表的数据项进行分析和整理而设计的,不是按单证和报表的原样建立的。这些主题数据库与企业管理中要解决的主要问题相关联,而不是与通常的信息系统应用项目相关联。
(2)信息共享。主题数据库是对各个应用系统“自建自用”的数据库的否定,强调建立各个应用系统“共建共用”的共享数据库。不同的应用系统统一调用主题数据库,例如,库存管理调用产品、零部件、订货数据,采购调用零部件、供应商、工程规范数据等。
(3)一次一处输入系统。主题数据库要求调研分析企业各经营管理层次上的数据源,强调数据的就地采集,就地处理、使用和存储,以及必要的传输、汇总和集中存储。同一数据必须一次、一处进入系统,保证其准确性、及时性和完整性,但可以多次、多处使用。
(4)由基本表组成。主题数据库是由多个达到基本表规范(满足3NF)要求的数据实体构成的。
某软件企业开发了一套新闻社交类软件,提供常见的新闻发布、用户关注、用户推荐、新闻点评、新闻推荐、热点新闻等功能,项目采用MySQL数据库来存储业务数据。系统上线后,随着用户数量的增加,数据库服务器的压力不断加大。为此,该企业设立了专门的工作组来解决此问题。
张工提出对MySQL数据库进行扩展,采用读写分离,主从复制的策略,好处是程序改动比较小,可以较快完成,后续也可以扩展到MySQL集群,其方案如图4-1所示。李工认为该系统的诸多功能,并不需要采用关系数据库,甚至关系数据库限制了功能的实现,应该采用NoSQL数据库来替代MySQL,重新构造系统的数据层。而刘工认为张工的方案过于保守,对该系统的某些功能,如关注列表、推荐列表、热搜榜单等实现困难,且性能提升不大;而李工的方案又太激进,工作量太大,短期无法完成,应尽量综合二者的优点,采用Key-Value数据库+MySQL数据库的混合方案。
经过组内多次讨论,该企业最终决定采用刘工提出的方案。
【问题1】(8分)
张工方案中采用了读写分离,主从复制策略。其中,读写分离设置物理上不同的主/从服务器,让主服务器负责数据的(a)操作,从服务器负责数据的(b)操作,从而有效减少数据并发操作的(c),但却带来了(d)。因此,需要采用主从复制策略保持数据的(e)。
MySQL数据库中,主从复制是通过binary log来实现主从服务器的数据同步,MySQL数据库支持的三种复制类型分别是(f) 、 g) 、(h)。
请将答案填入(a)~(h)处的空白,完成上述描述。
【问题2】(8分)
李工方案中给出了关系数据库与NoSQL数据的比较,如表4-1所示,以此来说明该新闻社交类软件更适合采用NoSQL数据库。请完成表4-1中的(a) ~ (d)处空白。
表4-1关系数据库与NoSQL数据库特征比较
【问题3】(9分)
刘工提出的方案采用了Key-Value数据库+MySQL数据库的混合方案,是根据数据的读写特点将数据分别部署到不同的数据库中。但是由于部分数据可能同时存在于两个数据库中,因此存在数据同步问题。请用200字以内的文字简要说明解决该数据同步问题的三种方法。
【问题1】
(a)写
(b)读
(c)延迟
(d)数据不一致风险
(e)一致性
(f)(g)(h) 基于SQL语句的复制(statement-based replication, SBR)
(g)基于行的复制(row-based replication, RBR)
(h)混合模式复制(mixed-based replication, MBR)
【问题2】
(a)弱一致性
(b)非结构化
(c)弱事务性
(d)海量数据
【问题3】
1、通过定时任务机制做定期数据更新。
2、通过触发器完成数据同步。
3、通过数据库插件完成数据同步。
某电子商务企业随着业务不断发展,销售订单不断增加,每月订单超过了50万笔,急需开发一套新的互联网电子订单系统。同时该电商希望建立相应的数据中心,能够对订单数据进行分析挖掘,以便更好地服务用户。
王工负责订单系统的数据库设计与开发,初步设计的核心订单关系模式为:
orders(order_no,customer_no ,order_date,product_no,price,……);
考虑订单数据过多,单一表的设计会对系统性能产生较大影响,仅仅采用索引不足以解决性能问题。因此,需要将订单表拆分,按月存储。
王工采用反规范化设计方法来解决,给出了相应的解决方案。李工负责数据中心的设计与开发。李工认为王工的解决方案存在问题,建议采用数据物理分区技术。在解决性能问题的同时,也为后续的数据迁移、数据挖掘和分析等工作提供支持。
【问题1】(8分)
常见的反规范化设计包括增加冗余列、增加派生列、重新组表和表分割。为解决题干所述需求,王工采用的是哪种方法?请用300字以内的文字解释说明该方法,并指出其优缺点。
【问题2】(8 分)
物理数据分区技术一般分为水平分区和垂直分区,数据库中常见的是水平分区。水平分区分为范围分区、哈希分区、列表分区等。请阅读下表,在(1)~(8) 中填写不同分区方法在数据值、数据管理能力、实施难度与可维护性、数据分布等方面的特点。
表4-1 水平分区比较表
【问题 3】(9 分)
根据需求,李工宜选择物理水平分区中的哪种分区方法?请用300字以内的文字分别解释说明该方法的优缺点。
【问题1】
王工采用的是表分割的方式进行反规范化设计。
表分割包括水平分割与垂直分割两种形式:
水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。
垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。
优点:
(1)表分割的方式将数据分布到多个逻辑与物理上均独立的不同的表。对于电子商务中的订单,最频繁的操作针对的是当月的订单表,表分割后有效地减少了操作表(即当月订单表)的记录数,可有效提升性能。同时按月进行表分割后,也可以针对各月份数据进行管理,有利于数据迁移、备份和管理。
缺点:
(1)表分割的方式从逻辑上破坏了关系概念的完整性,由一个关系变为多个关系。因此,进行历史数据的数据挖掘和分析时,必须执行多表集合并操作,相对于单表形式,复杂度较高,增加了数据维护的难度,应用软件设计和实现也更为复杂。
【问题2】
(1)连续(2)离散(3)弱(4)强(5)好(6)好(7)不均匀(8)均匀
【问题3】
李工宜选择范围分区方式。
范围分区优点包括:实现容易、数据管理能力强、提高查询效果、利于维护如备份恢复时间都可缩短、利于做过期处理。
范围分区缺点包括:数据分布不均匀所以可以与哈希分区组合应用。
某软件企业开发一套类似于淘宝网上商城业务的电子商务网站。该系统涉及多种用户角色,包括购物用户、商铺管理员,系统管理员等。
在数据库设计中,该系统数据库的核心关系包括:
产品(产品编码,产品名称,产品价格,库存数量,商铺编码)
商铺(商铺编码,商铺名称,商铺地址,商铺邮箱,服务电话)
用户(用户编码,用户名称,用户地址,联系电话)
订单(订单编码,订单日期,用户编码,商铺编码,产品编码,产品数量,订单总价)
不同用户角色有不同的数据需求,为此该软件企业在基本数据库关系模式的基础上,定制了许多视图。其中,有很多视图涉及到多表关联和聚集函数运算。
【问题1】 (8分)
商铺用户需要实时统计本商铺的货物数量和销售情况,以便及时补货,或者为商铺调整销售策略。为此专门设计了可实时查看当天商铺中货物销售情况和存货情况的视图,商铺产品销售情况日报表(商铺编码,产品编码,日销售产品数量,库存数量,日期)。
数据库运行测试过程中,发现针对该视图查询性能比较差,不满足用户需求。
请说明数据库视图的基本概念及其优点,并说明本视图设计导致查询性能较差的原因。
【问题2】(8分)
为解决该视图查询性能比较差的问题,张工建议为该数据建立单独的商品当天货物销售、存货情况的关系表。但李工认为张工的方案造成了数据不一致的问题,必须采用一定的手段来解决。
1)说明张工方案是否能够对该视图查询性能有所提升,并解释原因。
2)解释说明李工指出的数据不一致问题产生的原因。
【问题3】(9分)
针对李工提出的问题,常见的解决手段有应用程序实现,触发器实现和物化视图实现等,请用300字以内的文字解释说明这三种方案。
【问题1】
视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
视图的优点:
1、视图能简化用户的操作
2、视图机制可以使用户以不同的方式查询同一数据
3、视图对数据库重构提供了一定程度的逻辑独立性
4、视图可以对机密的数据提供安全保护
查询性能较差的原因是视图中“日销售产品数量”需要针对订单表做统计分析,订单表中有数量庞大的历史销售记录,所以这种操作极为耗时。
【问题2】
1)张工方案能够对该视图查询性能有所提升,因为这样做能极大的减少统计分析的数据量,对小数据量进行统计,性能是能得以保障的。
2)由于当日订单数据既存储在订单表中,又存储在单独的当天货物销售、存货情况表中。同一数据存储了两份,一旦出现修改,未同步修改,则会造成数据不一致。
【问题3】
应用程序实现:在进行订单的添加、修改、删除操作时,从应用程序中,控制对两个数据表都进行相关操作,以保障数据的一致性。
触发器实现:在应用程序中,只对订单表进行操作。但写触发器,当订单表发生变化时,把当日订单内容同步更新到当天货物销售、存货情况表中。
物化视图实现:建立“当天货物销售、存货情况”的物化视图,物化视图会把相应的数据物理存储起来,而且在订单表发生变化时,会自动更新。
随着信息化的发展,某银行的中心账务系统,从城市中心、省中心模式已经升级到全国中心模式。但是处理各种代收代付业务的银行中间业务系统,目前仍然采用省中心模式,由各省自行负责,使得全国中间业务管理非常困难。因此总行计划将银行中间业务系统全部升级到全国中心模式,对各省中间业务进行统一管理。
各省行采用的银行中间业务系统,均为各省自建,或者自行开发,或者自行采购,系统的硬件平台、软件系统、数据模式等均有非常大的差异。同时,对一些全国性的代收代付业务的处理方式,各省行也存在很大的差异。为统一管理,总行决定重新开发一套全国中心模式的银行中间业务系统,用来替代各省自建的中间业务系统,但要求能够支持目前各省的所有中间业务。
【问题1】(9分)
各省已建的银行中间业务系统属于遗留系统,在如何对待遗留系统上,设计组存在两种不同的策略:淘汰策略和继承策略。请简要解释这两种策略,并说明新开发的银行中间业务系统适合采用哪种策略及其原因。
【问题2】(10分)
遗留系统和新系统之间的转换策略常见的有直接转换、并行转换和分段转换。请简要说明达三种转换策略的含义;并请结合银行中间业务的特点,说明该银行新开发的中间业务系统上线时适合采用哪种策略?为什么?
【问题3】(6分)
银行中间业务系统中,最为核心的是业务数据。因此在新旧系统切换时存在一项重要的工作:数据迁移。考虑到各省中间业务系统的巨大差异,因此需要做好数据迁移前的准备工作。请简要说明数据迁移准备工作的内容。
【问题1】(9分)
继承策略,原因:新开发的系统要求“能够支持目前各省的所有中间业务”,淘汰策略无法达到此要求。
【问题2】(10分)
直接转换就是在原有系统停止运行的某一时刻,新系统立即投入运行,中间没有过渡阶段。
并行转换就是新系统和现有系统并行工作一段时间,经过这段时间的试运行后,再用新系统正式替换下现有系统。
分段转换策略也称为逐步转换策略,这种转换方式是直接转换方式和并行转换方式的结合,采取分期分批逐步转换。
以目前该银行的情况来看,适合采用分段转换策略,因为各省行采用的银行中间业务系统,均为各省自建,或者自行开发,或者自行采购,系统的硬件平台、软件系统、数据模式等均有非常大的差异。对这些子系统的支持可分段一个一个处理,降低风险的同时不让成本开支过大。
【问题3】(6分)
数据迁移准备工作包括:
(1)待迁移数据源的详细说明,包括数据的存放方式、数据量和数据的时间跨度。
(2)建立新旧系统数据库的数据字典,对现有系统的历史数据进行质量分析,以及新旧系统数据结构的差异分析。
(3)新旧系统代码数据的差异分析。
(4)建立新旧系统数据库表的映射关系,对无法映射字段的处理方法。
(5)开发或购买、部署ETL工具。
(6)编写数据转换的测试计划和校验程序。
(7)制定数据转换的应急措施。
某航空公司要开发一个订票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下:
航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,剩余票数,票价)
代理商(代理商编号,代理商名称,客服电话,地址,负责人)
机票代理(代理商编号,航班编号,票价)
旅客(身份证号,姓名,性别,出生日期,电话)
购票(购票单号,身份证号,航班编号,搭乘日期,购票金额)
在提供给用户的界面上,其核心功能是当用户查询某航班时,将该航班所有的代理商信息及其优惠票价信息,返回给用户,方便用户购买价格优惠的机票。在实现过程中发现,要实现此功能,需要在代理商和机票代理两个关系模式上进行连接操作,性能很差。为此开发小组将机票代理关系模式进行了扩充,结果为:
机票代理(代理商编号,航班编号,代理商名称,客服电话,票价)
这样,用户在查找信息时只需对机票代理关系模式进行查询即可,提高了查询效率。
【问题1】(6分)
机票代理关系模式的修改,满足了用户对代理商机票价格查询的需求,提高了查询 效率。但这种修改导致机票代理关系模式不满足3NF,会带来存储异常的问题。
1)请具体说明其问题,并举例说明。
2)这种存储异常会造成数据不一致,请给出解决该存储异常的方案。
【问题2】(9分)
在机票销售信息处理系统中,两个代理商的售票并发执行,可能产生的操作序列如表4-1所示。
表4-1 两个代理商可能的操作序列
假设两个代理商执行之前,该航班仅剩1张机票。
1)请说明上述两个代理商操作的结果。
2)并发操作会带来数据不一致的问题,请具体说明3种问题。
【问题3】(10分)
为了避免问题2中的问题,开发组使用库的读写锁机制,操作序列变为表4-2所示。
表4-2 加入读写锁机制后,两个代理商可能的操作序列
请填写表中的空白项,并用150字以内的文字说明读写锁机制的缺点。
【问题1】
1)不满足3NF的关系模式存在存储异常问题,包括数据冗余和修改异常。
(1)数据冗余:如果某代理商代理100个航班的售票,那么在机票代理的关系模式中就要出现100个元组,该代理商的名称、客服电话也随之重复出现100次。
(2)修改异常:由于上述冗余问题,当需要修改该代理商的客服电话时,就要修改100个元组中的客服电话值,否则就会出现客服电话值不一致的现象。
2)解决存储异常的典型方案是进行模式分解,但在本题中机票代理已是逆规范化的产物,故可使用触发器在修改时,检查并更新对应数据的方式来解决数据不一致的问题。
【问题2】
1)2个代理商都成功售出1张票,剩余票数为0。
2)数据库的并发操作会带来一些数据不一致问题,例如,丢失修改、读脏数据和不可重复读等。
(1)丢失修改。事务A与事务B从数据库中读入同一数据并修改,事务B的提交结果破坏了事务A提交的结果,导致事务A的修改被丢失。
(2)读脏数据。事务A修改某一数据,并将其写回磁盘,事务B读取同一数据后,事务A由于某种原因被撤消,这时事务A已修改过的数据恢复原值,事务B读到的数据就与数据库中的数据不一致,是不正确的数据。
(3)不可重复读。事务A读取数据后,事务B执行了更新操作,事务A使用的仍是更新前的值,造成了数据不一致性。
【问题3】
(1)加写锁
(2)加读锁
(3)加写锁
(4)等待
(5)得到通知
(6)加写锁
采用封锁的方法虽然可以有效防止数据的不一致性,但封锁本身也会产生一些麻烦,最主要就是死锁问题。也就是说,多个事务申请不同封锁,由于申请者均拥有一部分封锁权,而又需等待另外事务拥有的部分封锁而引起的永无休止的等待。
某软件公司欲开发一个社交网络系统,该系统能够接收多个不同种类客户端发送的信息,并将这些信息实时显示在每个客户端的页面上供客户阅读。该系统将为数以百万计的用户服务,因此,要求采用的数据库能够支持大量信息存储,能够满足并发读写要求,并要求随着数据规模的扩大,数据库系统要易于进行扩充。关于数据库架构的设计,王工和张工提出了两种模式:王工提出基于传统的关系型数据库模式,通过向上扩展(Scale-up)以满足数据库的可扩展性要求;李工提出利用新兴的NoSQL数据库模式,通过向外扩展(Scale-out)以满足数据库的可扩展性要求。项目组经过讨论,决定采用李工提出的设计方案。
【问题1】(11分)
请指出关系数据库模式和NoSQL模式在并发支持、存储与查询、扩展方式、索引方式和应用领域五个方面各自的特点,结果填入表4-1中(1)~(10);并针对应用需求,说明项目组选择李工提出的设计方案的原因。
表 4-1 关系数据库模式和NoSQL模式之间的比较
【问题2】(8分)
与传统的关系型数据库相比,NoSQL数据库所支持的典型数据存储类型有哪些?
【问题3】(6分)
在实际应用中,NoSQL数据库存在的问题有哪些?
传统关系型数据库在需要处理大规模并发数据访问的社交网络应用场景下,暴露出了很多问题,例如需要很高的实时插入性能;需要海量的数据存储能力同时还需要非常快的查询和检索速度;需要将数据存储无缝扩展到整个集群环境下,并且能够支持在线扩展等。NoSQL数据库模式打破了传统关系型数据库的范式约束、SQL查询语言和事务一致性,实现了以键值数据格式存储的Hash数据库。
本题主要考查应试者对于关系型数据库和NoSQL数据模式的掌握情况,特别是关系型数据库和NoSQL数据库模式的特点和实现方式。本题结合一个典型的实际项目案例,首先要求应试者分析关系型数据库和NoSQL模式之间的异同,然后针对系统需求分析采用NoSQL数据库模式的原因;针对NoSQL数据库模式的典型应用,列举出其能够支持的数据存储方式及其特点;最后分析在实际应用中还需要在哪些方面进行改进以提升其应用效果。
【问题1】
本题要求考生针对关系数据库模式和NoSQL模式的特点进行分析。关系数据库利用加锁机制支持并发操作,执行效率较低,利用关系表的方式存储数据,通过SQL语言和数据库进行交互,主要通过提升硬件配置等向上扩展方式提升性能,B树和哈希是常用的索引结构,其能够广泛应用于多个领域;NoSQL作为新兴的数据库模式处理并发的效率较高,支持海量数据存储和查询,利用增加分布存储的数据库节点数目扩展性能,主要以键值方式存储数据,在对于大规模并发数据处理的分布式应用中有更好的表现。根据项目的实际应用需求,所以采用NoSQL模式更为合适。
【问题2】
本题要求考生掌握NoSQL数据模式所支持的数据类型。常见的数据类型包括表格/列存储、文档存储、图像存储、键值存储、对象和多值存储等。
【问题3】
本题要求应试者分析NoSQL数据库模式在实际应用中的不足之处。作为一种新兴的数据库模式,其实现的完整性、应用范围和专业知识等与成熟的关系型数据库相比还有一定的差距。
某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。
目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:
问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;
问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。
这些问题导致新来的维护人员需要直接面对大量流程、结构复杂的源程序,维护困难,往往一次改动需要设计大量的软件模块。
为解决应用系统维护部门面对的问题,企业信息部门组织了专门的专家讨论会。各位专家一致认为,逆向工程与重构工程是目前预防性维护采用的主要技术,应该采用逆向工程的技术方法,重构相关应用系统文档,同时采用软件重构来降低软件代码的复杂性,最终降低维护成本。
【问题1】(8分)
软件的逆向工程是分析已有程序,寻求比源代码更高级的抽象表现形式。与之相关的概念包括软件重构、设计恢复、重构工程等。请说明设计恢复中常见的恢复信息的4种级别。
【问题2】(11分)
重构是对软件内部结构的一种调整,目的是不改变软件功能的前提下,提高其可理解性,降低其修改成本。请说明软件重构的三个类别,并简要说明常见的重构方法。针对题干中的问题(1)和问题(2),宜采用何种重构方法?
【问题3】(6分)
软件重构做出的修改可能导致程序运行变慢,但也更容易进行软件的性能优化和调整,请分析原因。
【问题1】
(1)实现级:过程的设计模型。
(2)结构级:程序和数据结构信息。
(3)功能级:对象模型、数据和控制流模型。
(4)领域级:UML状态图和部署图。
【问题2】
软件重构的三个类别:
代码重构、设计重构、架构重构。
常见的重构方法:
(1)提取方法(Extract method)
(2)用委托来代替继承(Replace Inheritance witch Delegation)
(3)用子类代替型别码(Replace Type with Subclasses)
(4)用多态来代替条件判断(Replace conditional with polymorphism)
(5)模板函数
(6)提取类
(7)提取接口
问题(1)可采用提取方法的重构方法解决,问题(2)可采用提取接口的方法解决。
【问题3】
为了使软件更容易理解,同时又需要考虑到各种兼容性,在重构时,可能需要在代码中增加冗余的判断、冗余的代码或结构;也可能需要修改已有的数据库结构和索引等,导致程序运行变慢。
但从长远来看,由于重构以后的软件结构更加清晰,代码复杂性更低,更易于理解,在性能调优时更容易分析瓶颈之所在,然后加以解决,因此,软件重构也更容易进行软件的性能优化和调优。
某集团公司在各省均设有分公司,现欲建立全国统一的销售管理信息系统,以便总公司及时掌握各分公司的销售情况。公司成立专门的项目组进行该系统的研发工作,其中张工负责其中的数据库设计工作。
张工和需求分析小组紧密合作,在设计出数据流图和数据字典的基础上,给出了数据库关系模式和相应的索引设计。同时考虑到未规范化关系模式可能引起的各类数据错误,对关系模式进行了全面的规范化处理,使所有关系模式均达到了3NF或BCNF。
在项目实施过程中,应用开发小组认为该设计方案未考虑应用功能的实际需求。如果严格按照设计方案实施,会对应用系统中整体性能产生较大影响。主要的原因在于进行数据查询时,会产生大量的多表连接操作,影响性能。而设计方案中的索引设计,并不能完全满足数据查询的性能要求。
应用开发小组还认为,该设计方案未考虑到信息系统中核心销售数据处理的特点:各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其他分公司的销售数据;只有总公司有权利操作所有销售数据,以便进行统计分析。
应用开发小组要求,在数据库设计方案中,必须针对实际应用功能的实现来考虑关系模式的规范化,必要时需要采用逆规范化或解除规范化的方法来保证性能要求。
【问题1】(8分)
系统需要管理供应商和货物等信息,具体包括供应商姓名、地址以及货物名称、价格等,供应商可以提供0~n种货物,其公司地址也可能发生变化。请以供应商关系模式supplier(name,address,product,price)为例,解释不规范的关系模式存在哪些问题。
【问题2】(6分)
应用开发小组认为张工的规范化设计虽然解决了未规范化关系模式带来的问题,但实际实现功能时会造成系统性能的下降,请解释其原因。
【问题3】(5分)
请解释逆规范化方法,说明其优缺点。
【问题4】(6分)
针对该信息系统中核心销售数据处理的特点,如采用关系表水平分割的逆规范化方法,请给出具体的解决方案,并说明该方案存在的问题。
【问题1】(8分)
(1)数据冗余:关系模式中多次重复记录了同一供应商的地址。
(2)插入异常:如果还未确定一个供应商有哪些货物,只是想添加一个供应商的地址信息,则会产生产品与价格均为空的记录。
(3)修改异常:当修改一个供应商的地址时,需要将多条记录同时更新,若未同时更新,则数据产生不一致。
(4)删除异常:当删除一个供应商的货物时,其地址信息被一并删除。
【问题2】(6分)
数据库规范化的过程,实际是对数据表的不断拆分,以达到更高的规范程度。这样处理,带来的问题是:系统中大量查询不能通过单表完成,而需要将多表进行连接查询,所以表拆分得越多,查询性能也就越差。
【问题3】(5分)
逆规范化方法优点:提高统计、查询效率。
逆规范化方法缺点:增加了数据冗余,浪费存储空间,增、删、改操作的效率降低,可能导致数据不一致,可能产生添加、修改、删除异常。
【问题4】(6分)
解决方案:将各省的数据存放于各省分公司。
该方案主要问题:
(1)在于总公司进行全国数据统计时,需要从各省服务器调取数据,效率较低。
(2)执行应用功能时需要动态选择分公司的数据库表,增加了应用程序的复杂度。
某企业欲研制某宇航控制系统。该系统对软件的可靠性要求很高,分配给软件的可靠性指标为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割集的失效概率。
银行金融系统对数据库中的数据安全要求很高,必须在技术层面上采用必要的措施,以保证数据的有效和不丢失。数据库的备份与恢复是保证数据安全的一种基本方法,一般将数据库备份划分为冷备份、热备份和数据导出,而数据导出根据导出数据的范围,又可以分为完全导出、增量导出和累计导出。
该金融系统上线初期,整个业务系统采用了内网方式运行,不与外网发生联系。为了保证数据库内部数据的安全,该银行信息中心的刘工提出的备份方案如表4-1所示。
信息中心的李工对刘工的方案提出了异议,认为数据库一旦发生故障,刘工的方案无法做到数据库的实时恢复,会导致业务数据的丢失,银行应该采用数据库冷备份和热备份相结合的方式来完成数据库的备份。
【问题1】(3分)
针对金融数据库安全,从技术层面上分析应重点考虑哪些因素?
【问题2】(4分)
请用200字以内的文字评价刘工的备份策略的优缺点。
【问题3】(10分)
请分别说明冷备份和热备份的概念,并补充表4-2中的空(1)~(6)。
【问题4】(8分)
银行金融系统需要支持数据库的实时/秒级恢复(即恢复到故障之前的时间点上),请设计合理的备份策略,并说明其基本恢复过程。
某互联网销售企业需要建立自己的电子商务平台,将所有产品信息集中在一起,为用户提供全方位的产品信息检索服务。但产品供应商大多数已经建有自己的电子商务平台,且数据独立存储,而且数据格式和数据平台有较大差异,有的供应商甚至没有采用数据库来存储商品信息。为此该企业专门成立专家组来论证其数据集成方案。
李工提出采用集中式集成方式把产品供应商的数据集中在一起,采用数据仓库技术来实现与各家供应商的数据集成。而王工提出采用松耦合的联邦数据库集成方案。专家组经过激烈讨论,认为王工方案更为合理,建议采用王工提出的集成方案。
【问题 1】(10 分)
请结合数据仓库和联邦数据库集成方案各自的特点,简要说明专家组采用王工提出的集成方案的原因。
【问题 2】(7 分)
部分供应商的产品信息没有相应的数据库,而是直接嵌入在 WEB 页面中供用户浏览。数据集成时需要直接从供应商电子商务平台的网页上获取其产品信息。请简要给出此类数据集成的方法和基本步骤。
【问题 3】(8 分)
在方案评审会上,项目组针对李工和王工的方案展开了激烈的讨论。刘工指出两种方案在实施的过程中,都存在数据源之间的语义映射和转换问题,都会带来数据集成的不确定。请简要说明产生不确定的原因。
【问题1】
数据仓库集成是把多种来源的数据集中在一起,建立数据仓库,所有数据都驻留在单个数据库服务器上,配置大型处理器和存储容量。数据仓库主要用于决策支持,在数据处理过程中强调分析。其特点是:
(1)集成的数据。
(2)面向主题。
(3)数据相对稳定。
(4)包含历史信息。
联邦数据库集成是把多个数据库系统联合在一起,构成“联邦数据库系统”,数据库之间通过接口查询,互相通信,数据分布在不同地方的计算机或数据库服务器上,通过网络连接。其特点是:
(1)联邦数据库提供集成的数据格式,对用户提供统一的访问,屏蔽了各个数据库的复杂性和分布情况,简化了开发数据库查询和对数据统一理解的工作。这种分布式的数据集成,更加符合应用系统的实际情况。
(2)异构数据源不仅仅是数据库系统,通过中间件,可以扩展到传感器、文件和应用程序等。
【问题2】
此类数据往往是非结构化或者半结构化的,但同一个数据源往往有统一的页面模式,因此应该采用Web内容提取(挖掘/文本挖掘)的集成方法来获取对应供应商的产品信息。
其基本步骤为:
(1)分析页面,确定其页面中的数据模式。
(2)抓取页面,通过爬虫技术获取对应的网页。
(3)特征提取与处理,获取相应数据。
(4)数据清洗,根据规则进行判断,抛弃异常数据。
(5)数据转换,根据预先定义好的语义映射关系,将数据转换为统一格式。
【问题3】
数据集成系统依靠模式映射来指明数据源中的数据和中介所用数据之间的语义关系,但映射过程中可能发生不确定性,其原因有:
(1)数据源与中介模式之间的语义映射可能是近似的。
(2)用户不熟悉模式或系统的域太宽,不能提供基于表单式的查询接口,需要使用关键字查询,但将关键字查询转换成一组候选的结构化查询时,会带来不确定性。
(3)数据常常是使用信息获取技术从非结构化数据源获取的,而这些获取技术一般只是“大致可用”,所取得的数据可能是不确定的。
本题主要考查数据集成中的数据仓库方案和联邦数据库方案的内容。
【问题1】
本问题考查数据仓库和联邦数据库集成方案的基本概念。数据仓库集成是把多种来的数据集中在一起,建立数据仓库,所有数据都驻留在单个数据库服务器上,配置大型处理器和存储容量。数据仓库主要用于决策支持,在数据处理过程中强调分析。其特点是:①集成的数据;②面向主题;③数据相对稳足;④包含历史信息。但是此种集成方法中需要将数据源的数据转换为数据仓库中的语义,而且需要定期的数据复制和数据更新。数据源往往指的是数据库系统。
联邦数据库集成是把多个数据库系统联合在一起,构成“联邦数据库系统”,数据之间通过接口查询,互相通信,数据分布在不同地方的计算机或数据库服务器上,通过网络连接。其特点是:①联邦数据库提供集成的数据格式,对用户提供统一的访问,屏蔽了各个数据库的复杂性和分布情况,简化了开发数据库查询和对数据统一理解的工作。这种分布式的数据集成,更加符合应用系统的实际情况。②异构数据源不仅仅是数据库系统,通过中间件,可以扩展到传感器、文件和应用程序等。
两种方式都需要将数据源中的数据语义转换为统一数据语义,这种转换往往存在不定性。
【问题2】
本问题考查Web内容提取或Web数据挖掘的相关知识。Web信息系统中的数据往住是非结构化或者半结构化的,但同一个数据源往往有统一的页面模式,但是其数据呈现是嵌入在页面中。因此需要采用Web内容提取(挖掘/文本挖掘)的集成方法来获取对应供应商的产品信息。
其基本的步骤是:
(1)分析页面,确定其页面中的数据模式。制定数据挖掘的特征和提取规则,编写特定的页面分析和数据提取程序。
(2)抓取页面,通过爬虫技术获取对应的网页。将远端的页面下载到本地进行存储,为后续数据提取做准备。
(3)特征提取与处理,获取相应数据,依据的原则是分析页面阶段所形成的特征和提取规则。
(4)数据清洗,根据规则进行判断,抛弃异常数据。
(5)数据转换,根据预先定义好的语义映射关系,将数据转换为统一格式。
Web内容提取的算法程序本身是近似的,因此在获取数据的内容上存在不确定性。
【问题3】
本问题考查在数据集成过程存在的不确定性问题。问题1和问题2中实际已经明确了集成过程中存在不确定性。主要的原因在于数据集成系统依靠模式映射来指明数据源中的数据和中介所用数据之间的语义关系,但映射过程中可能发生不确定性。具体原因有:
(1)数据源与中介模式之间的语义映射可能是近似的。实际系统中往往很难有非常精确、完整的语义映射。
(2)用户不熟悉模式或系统的域太宽,不能提供基于表单式的查询接口,需要使用关键字查询,但将关键字查询转换成一组候选的结构化查询时,会带来不确定性。
(3)数据常常是使用信息获取技术从非结构化数据源获取的,而这些获取技术一般只是“大致可用”,所取得的数据可能是不确定的。
因此,在本试题中,无论采用数据仓库或者联邦数据库集成方案,都存在数据源之间的语义映射和转换问题,都会带来数据集成的不确定。
某公司拟开发一个基于web的远程康复系统,该系统的主要功能要求如下:
(1)康复设备可将患者的康复训练数据实时传入云数据库。
(2)医生可随时随地的通过浏览器获取患者康复训练数据并进行康复训练的结果评估和康复处方的更新。
(3)患者可通过此系统查看自己的康复训练记录和医生下达的康复训练处方,并可随时与医生进行在线沟通交流。
(4)平台管理员可借助此系统实现用户的管理和康复设备的监控与管理,及时获悉设备的数据信息,便于设备维护和更新。
该公司针对上述需求组建了项目组,并召开了项目开发研讨会,会上,张工建议云数据库采用关系型数据库来实现数据存储;李工提出来用三层架构实现该远程康复系统。
【问题1】(6分)
请用200字以内文容说明什么是云数据库以及云数据库特点。
【问题2】(9分)
根据该系统的功能需求,列举该系统中存在的实体,以辅助张工进行关系数据库设计。
【问题3】(10分)
根据李工建议,该系统采用三层架构,请用300字以内的文字分析层次型架构优势,并从下面给出的(a)-(i)候选项中进行选择,补充完善图5- 1中(1)-(6)处空白的内容,完成该系统的架构设计方案。
候选项:
(a)治疗仪
(b)接入层
(c)Socket
(d)Spring
(e)应用层
(f)MySQL
(g)MVC
(h)无线通信
(i)网络层
【问题1】
王工采用的是表分割的方式进行反规范化设计。
表分割包括水平分割与垂直分割两种形式:
水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。
垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。
优点:
(1)表分割的方式将数据分布到多个逻辑与物理上均独立的不同的表。对于电子商务中的订单,最频繁的操作针对的是当月的订单表,表分割后有效地减少了操作表(即当月订单表)的记录数,可有效提升性能。同时按月进行表分割后,也可以针对各月份数据进行管理,有利于数据迁移、备份和管理。
缺点:
(1)表分割的方式从逻辑上破坏了关系概念的完整性,由一个关系变为多个关系。因此,进行历史数据的数据挖掘和分析时,必须执行多表集合并操作,相对于单表形式,复杂度较高,增加了数据维护的难度,应用软件设计和实现也更为复杂。
【问题2】
(1)连续(2)离散(3)弱(4)强(5)好(6)好(7)不均匀(8)均匀
【问题3】
李工宜选择范围分区方式。
范围分区优点包括:实现容易、数据管理能力强、提高查询效果、利于维护如备份恢复时间都可缩短、利于做过期处理。
范围分区缺点包括:数据分布不均匀所以可以与哈希分区组合应用。
某公司因业务需要,拟在短时间内同时完成“小型图书与音像制品借阅系统”和“大学图书馆管理系统”两项基于B/S的Web应用系统研发工作。
小型图书与音像制品借阅系统向某所学校的所有学生提供图书与音像制品借阅服务。所有学生无需任何费用即可自动成为会员,每人每次最多可借阅5本图书和3个音像制品。图书需在1个月之内归还,音像制品需在1周之内归还。如未能如期归还,则取消其借阅其他图书和音像制品的权限,但无需罚款。学生可通过网络查询图书和音像制品的状态,但不支持预定。
大学图书馆管理系统向某所大学的师生提供图书借阅服务。有多个图书存储地点,即多个分馆。搜索功能应能查询所有的分馆的信息,但所有的分馆都处于同一个校园内,不支持馆际借阅。本科生和研究生一次可借阅16本书,每本书需在1个月内归还。教师一次可借阅任意数量的书,每本书需在2个月内归还,且支持教师预定图书。如预定图书处于被借出状态,系统自动向借阅者发送邮件提醒。借阅期限到达前3天,向借阅者发送邮件提醒。超出借阅期限1周,借阅者需缴纳罚款2元/天。存在过期未还或罚款待缴纳的借阅者无法再借阅其他图书。图书馆仅向教师和研究生提供杂志借阅服务。
基于上述需求,该公司召开项目研发讨论会。会议上,李工建议开发借阅系统产品线,基于产品线完成这两个Web应用系统的研发工作。张工同意李工观点,并提出采用 MVP(Model View Presenter)代替MVC的设计模式研发该产品线。
【问题1】(6分)
软件产品线是提升软件复用的重要手段,请用300字以内的文字分别简要描述什么是软件复用和软件产品线。
【问题2】(16分)
产品约束是软件产品线核心资产开发的重要输入,请从以下已给出的(a)~(k)各项内容,分别选出产品的相似点和不同点填入表5-1中(1)~(8)处的空白,完成该软件产品线的产品约束分析。
(a)项目当前状态;(b)项目操作;(c)预定策略;(d)会员分类;(e)借阅项目数量;(f)项目的类型和属性;(g)检索功能;(h)与支付相关的用户信息;(i)图书 编号;(j)教师;(k)学生
表5-1产品约束分析
【问题3】(3分)
MVP模式是由MVC模式派生出的一种设计模式。请说明张工建议借阅系统产品线采用MVP模式代替MVC模式的原因。
【问题1】
软件复用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。
软件产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足特定领域的特定需求。软件产品线是一个十分适合专业的开发组织的软件开发方法,能有效地提高软件生产率和质量,缩短开发时间,降低总开发成本。
【问题2】
(1)h(2)a(3)b(4)g(5)f(6)e(7)c(8)d
【问题3】
MVP与MVC相比,最在的差异在于层次之类的耦合度不一样。MVP将M与V彻底分离,所有交互均通过P传达,这样,有利于软件构件及架构的重用,也利于修改,有良好的可扩展性。
某公司开发的 B2C 商务平台因业务扩展,导致系统访问量不断增大,现有系统访问速度缓慢,有时甚至出现系统故障瘫痪等现象。面对这一情况,公司召开项目组讨论会议,寻求该商务平台的改进方案。讨论会上,王工提出可以利用镜像站点、CDN内容分发等方式解决并发访问量带来的问题。而李工认为,仅仅依靠上述外网加速技术不能完全解决系统现有问题,如果访问量持续增加,系统仍存在崩溃的可能。李工提出应同时结合Web内网加速技术优化系统改进方案,如综合应用负载均衡、缓存服务器、Web应用服务器、分布式文件系统、分布式数据库等。经过讨论,公司最终决定采用李工的思路,完成改进系统的设计方案。
【问题 1】(10分)
针对李工提出的改进方案,从 a ~j 中分别选出各技术的相关描述和对应常见支持软件填入表 5-1 中的(1) ~(10) 处。
表5-1 技术描述与常见支持软件
(a)保存静态文件,减少网络交换量,加速响应请求
(b) 可采用软件级和硬件级负载均衡实现分流和后台减压
(c) 文件存储系统,快速查找文件
(d) FastDFS
(e) HAProxy
(f) JBoss
(g) Hadoop Distributed File System(HDFS)
(h) Apache Tomcat
(i) Squid
(j) MongoDB
【问题 2】(9 分)
请用100字以内的文字解释分布式数据库的概念,并给出提高分布式数据库系统性能的 3 种常见实现技术。
【问题3】(6 分)
针对 B2C 商务购物平台的数据浏览操作远远高于数据更新操作的特点,指出该系统应采用的分布式数据库实现方式,并分析原因。
【问题1】
(1)(b)
(2)(e)
(3)(a)
(4)(i)
(5)(c)
(6)(7)(d)(g)
(8)(9)(f)(h)
(10)(j)
【问题2】
分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力(称为场地自治),它可以执行局部应用,同时,每个节点也能通过网络通信子系统执行全局应用。
分布式数据库系统性能提升策略:
1.全局查询树的变换
2.副本的选择与多副本的更新策略
3.查询树的分解
4.半连接与直接连接
【问题3】
在本题所涉及到的环境中,由于读取数据的需求非常强烈,涉及到的数据量极大,而更新较少,可以在分布式数据库中采用一主多从的机制来分散读取数据的压力。更新数据时,操作主库,从主库再同步到从库,从库只负责读取数据。
某汽车配件销售厂商拟开发一套网上销售与交易系统,以扩大产品销量,提升交易效率。项目组经过讨论与分析,初步确定该系统具有首页、商品列表、商品促销、商品库存、商品价格、订单中心、订单结算、支付、用户管理、频道(用于区分不同类别的商品)、搜索、购物车等主要功能。
【问题1】(6分)
根据业务逻辑切分系统功能是进行系统功能分解的一项重要原则。项目组目前已经将该系统分解为网站、交易和业务服务三个子系统,请将题干中已经确定的系统功能归入这三个子系统中,填写表5-1中的空白,将解答写在答题纸的对应栏内。
表5-1 系统功能分解
【问题2】(12分)
商品实时价格查询是该系统一个重要的业务场景,其完整业务流程如图5-1所示。其中商品实时价格由采销人员在后台设置,包括基础价格与促销信息(例如直降、打折等);用户在前台商品详情页面请求实时价格;商品实时价格则由商品的基础价格与促销信息计算得出。
基于上述流程,系统设计人员进一步将业务流程细分为商品价格写逻辑流程、商品价格读逻辑流程和回源写逻辑流程三个部分。根据图5-1所示的业务流程和题干描述,从备选答案中选择正确的选项填写表5-2中的空(a)~(h),将解答写入答题纸的相应栏内。
表5-2 业务流程详细描述
【问题3】(7分)
在设计实现商品实时价格查询业务流程时,项目组的分析师王工向系统设计师和实现人员提出了一些原则,请分析并判断这些原则的正确性,将应填入表5-3中(a)~(d)处的解答写在答题纸的相应栏内。
表5-3
【问题1】(6分)
【问题2】(12分)
(a)异步
(b)价格发布子系统
(c)商品价格数据时间戳
(d)商品从价格库
(e)回源写逻辑流程
(f)促销信息库
(g)商品信息库
(h)商品从价格库
【问题3】(7分)
(a) ×
(b) √
(c) ×
(d) √
某软件企业拟开发一套基于Web的云平台配置管理与监控系统,该系统按租户视图、系统管理视图以及业务视图划分为多个相应的Web应用,系统需求中还包含邮件服务、大文件上传下载、安全攻击防护等典型Web系统基础服务需求。
【问题1】(5分)
在选择系统所采用的Web开发框架时,项目组对Alibaba开发的WebX框架与轻量级Spring MVC框架进行了对比分析,最终决定采用WebX框架进行开发。请用300字以内文字,从多应用支持、基础服务支持以及可扩展性这三个方面对WebX与Spring MVC框架进行对比。
【问题2】(12分)
在确定系统采用的持久层技术方案时,项目组梳理了系统的典型持久化需求,对照需求对比分析了 Hibernate和MyBatis两种持久化方案,请分析两种持久化方案对表 5-1中所列项目需求的支持情况,将候选答案序号A或B填入表5-1相应位置。
表5-1 两种持久化方案对项目需求的支持情况
【候选答案:A 支持 B 不支持或支持差】
问题3(8分)
系统实现相应的配置管理与监控功能时,需要集成云平台侧提供的大量服务以实现配置数据的读取写入与不同视图监测数据的获取。项目组在确定服务集成方案时,对比了REST风格RPC与SOAP RPC两种方案,经过分析讨论,项目组最终决定采用REST风格RPC机制实现服务集成,请判断表5-2中给出的选择REST方案的理由是否合理。
表5-2 选择REST方案的理由及判断
【问题1】
(1)基础服务支持:因为WebX在阿里巴巴和淘宝用了很多年,对于超大访问量的电子商务网站,WebX经受了考验,被证明是成熟可靠的。
(2)多应用支持:WebX和Spring MVC一样,完全建立在Spring框架之上,可以使用Spring的所有特性。WebX被设计成多个层次,层次间的分界线很清晰,每个层次都足够开放和易于扩展。
(3)可扩展性:WebX对Spring做了扩展,一个组件可以扩展另一个组件,也可以被其他组件扩展。这种机制使WebX具有较好的扩展性,且比未经扩展的Spring更易使用。
【问题2】
(1)A (2)B (3)B (4)A (5)A (6)B
【问题3】
(1)√ (2)× (3)× (4)√
某电子商务公司进行机构重组后,业务规模和用户规模不断扩大,现有的在线销售系统已经无法满足公司的发展要求。公司决策层对现有系统的不足进行了认真分析,决定提高现有系统客户端访问速度,增强客户端的动态交互能力,并提高整个系统代码的模块化和重用性,最终完成网上交易系统的改造与升级。在对该系统的升级方案进行设计和讨论时,公司的系统分析师王工提出采用开发浏览器插件的方式提高客户端访问速度并增强访问体验,通过重写服务端代码提高系统的模块化和重用性。另外一位系统分析师李工则提出采用Ajax技术提高客户端性能,采用JavaScript技术进一步增强客户端的动态交互能力,并在服务端采用JavaScript技术提高系统代码的模块化和重用性。公司的分析师和架构师对这两种思路进行讨论与评估,最终采纳了李工的方法。
【问题1】(8分)
请从系统的客户端开发和服务端开发两个方面说明为何没有采用王工提出的方法。
【问题2】 (9分)
请说明什么是Ajax 技术,并从信息表示、动态显示及交互、数据交换和异步数据交换四个功能特点说明Ajax包含的基本技术,对应填入表5-1中的(1)、(2)、(3)、(4)空白中。
表5-1 Ajax技术包含的基本技术
【问题3】(8分)
在论证服务端实现策略时,李工以“用户身份验证”和“客户请求信息传递与返回”两个应用场景为例说明在服务端采用JavaScript技术的优势。请给出李工可能的论证过程。
本题考查的是Web应用系统的分析与设计,主要考查JavaScript在Web应用系统中的作用。
【问题1】
本题考查Web应用系统升级时的方案选择问题。根据题干描述,系统升级的目的是提高现有系统客户端访问速度,增强客户端访问体验,并提高整个系统代码的模块化和重用性。因此需要根据问题描述,从客户端开发和服务端开发两个方面,结合三个升级目标进行全面论述。
从客户端开发方面来看,在线交易系统是一个典型的B/S系统,采用浏览器插件的客户端增强方法与基于Ajax技术的客户端增强方法相比,存在两个明显的缺陷:第一,客户端功能增强插件必须下载并安装到浏览器上,对客户端要求较高且不方便;而采用Ajax技术对客户端进行增强时只要求浏览器支持JavaScript,这一要求目前所有的浏览器都能够直接满足。第二,现有浏览器都定义了符合自身要求、互不兼容的插件开发标准与运行形态,采用浏览器插件的增强方式需要针对不同浏览器开发对应的插件,这样存在重复开发的问题且工作量巨大。而Ajax技术则基于所有浏览器都支持的标准技术体系,不存在重复开发和互不兼容的问题。
从服务端开发方面来看,王工提出的“重写服务端代码”的方式虽然可能解决服务端模块化和重用性的要求,但是开发的风险和代价太大,在进行企业应用系统升级时一般不考虑完全重写,特别是服务端代码完全重写的方案。另一方面,李工提出的“服务端JavaScript技术”能够与采用Ajax技术的客户端进行无缝集成,并且能够利用JavaScript与现有系统功能模块的互操作技术,采用JavaScript实现系统现有业务功能模块的动态组合和调用,增强系统功能模块的重用性。
综合上述两个方面,可以看出应该采用李工的解决方案。
【问题2】
主要考查对Ajax技术涵盖的基本技术的理解与掌握。
Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。Ajax所包含的基本技术有:
使用XHTML+CSS来表示信息;
使用JavaScript操作DOM(Document Object Model)进行动态显示及交互;
使用XML和XSLT进行数据交换及相关操作;
使用XMLHttpRequest对象与Web服务器进行异步数据交换;
使用JavaScript将所有的东西绑定在一起。
Ajax技术的优点包括:
(1)能在不更新整个页面的前提下维护数据。使得Web应用程序更为迅捷地响应用户动作,并避免在网络上发送没有改变过的信息;
(2)通过将部分计算转移到客户端,减轻了服务器的处理量,增强了用户体验;
(3)Ajax不需要浏览器插件支持,辅助开发工具与开发库较多;
Ajax技术的缺点包括:
(1)可能破坏浏览器后退按钮的正常行为;
(2)使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中;
(3)一些手持设备(如手机、PDA等)目前还不能很好的支持Ajax;
(4)对流媒体的支持没有Flash和Java Applet等技术好。
【问题3】
主要考查服务端JavaScript的实际应用和分析。
在“用户身份验证”这一应用场景中,需要同时在客户端与服务端同时对用户的输入进行验证:在客户端,需要判断用户的输入是否满足基本的格式要求,目前通常采用JavaScript代码实现验证功能;在服务端,需要验证用户输入的密码是否与后端数据库中存储的密码匹配。如果采用服务端JavaScript功能,则可以实现相似或相同代码的重用,提高系统的可维护性。
在“客户请求信息传递与返回”这一应用场景中,如果客户端与服务端采用不同的技术实现,则当客户端发出的请求数据传递到服务端后,服务端需要进行数据解析与格式转换,之后才能调用业务功能,得到运算结果后还需要将其转换为客户端需要的数据格式。整个过程需要涉及两次应用层的数据格式解析与转换,效率较低。如果采用服务端JavaScript技术,可以采用JSON等客户端与服务端同时支持的数据格式进行传递,能够降低服务端的复杂度,提高运行效率。
服务端JavaScript的主要缺点有:
(1)缺乏成熟的类库。在数据操作,数据存储等方面能力较弱。
(2)对标准的支持不够。目前的服务端引擎对CommonJS的支持有待加强。
开发和执行效率较低。在服务端缺少良好的开发环境和类库支持,执行效率也较为低下。
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应用系统开发的知识,考生需要区分.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维护的事务可以跨越方法的边界。
某企业两年前自主研发的消防集中控制软件系统在市场上取得了较好的业绩,目前已成功应用到国内外众多企业用户的消防管理控制系统中。该软件系统通过不同型号消防控制器连接各种消防器件,实现集中式消防告警信息显示与控制。日前该软件系统的系统维护主管组织召开会议,对近期收集到的该软件系统的如下维护申请进行了讨论:
(1)将系统目前的专用报表功能改成通用报表生成功能,以适应未来用户可能提出的报表格式变化需求;
(2)在界面语言中增加德文支持,以满足新增的两个德国企业用户的使用要求;
(3)修正系统在与控制器通信时由于硬件网络故障导致的与控制器之间的连接失效,而控制器后续无法重新连接的问题;
(4)完成因某已支持型号消防控制器通信协议改变而导致的相应软件修改;
(5)增加与某新型号消防控制器的互连通信功能,以支持在后续推广过程中与该型号消防控制器进行互连;
(6)修正用户报告的由于系统从Win7平台迁移到最新发布的Win8平台而导致的部分显示功能失效的问题;
(7)修正用户报告的系统自动切换消防平面图形时部分器件位置显示错误的问题;
(8)改进系统历史消防告警记录的检索算法,以提高系统在处理大量消防报警记录时的效率;
(9)将系统目前针对某一特定数据库管理系统的数据库访问方式改成基于数据源的通用数据库访问方式,以适应用户可能提出的使用其他数据库管理系统的需求。
【问题1】(6分)
软件维护的内容通常分为正确性维护、适应性维护、完善性维护以及预防性维护四类,请用300字以内文字说明这4类软件维护内容的特点与区别。
【问题2】(9分)
请根据不同类型软件维护的特点,将上述(1)~(9)的维护申请填入表5-1相应的类别中。
表5-1 维护申请分类表
【问题3】(4分)
对于软件维护申请的处理,首先需要确定维护工作的类型,不同类型的维护工作,其处理流程往往不同,图5-1是区分不同维护类型的典型处理流程,请将表5-1中代表维护类型的序号(1)~(4)填入图5-1的(a)~(d)。
【问题4】(6分)
在讨论第(4)项维护工作的方案时,项目组发现与相应的消防控制器通信的子模块重用了企业之前淘汰的某款软件中实现相应功能的源代码,而现有技术人员没有参加过该代码的开发工作,并且重用的这部分代码开发不规范,其数据和代码结构设计都很差,相应的文档极不完整,维护记录也很简略。针对上述情况,项目组一致认为在原有代码基础上进行修改维护难度很大,因此决定采用软件工程的方法对该子模块进行重新设计、编码和测试,请从可行性和该模块后续可维护性两个方面简要分析采取这种方案的原因。
在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下四种:
(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
【问题2】的维护申请分类可参看上述维护定义进行分类。
【问题3】中的申请流程,主要区分原则是:有错误,需要修正的维护类型,其维护操作是必然的,只是依据严重性来分析是立即修改,还是添加到队列中,等待修改,所以(d)应填(1)。适应性维护类型往往是在环境发生变化时,带来的一些小毛病,这样的维护也是必须进行的,但没有严重的正确性维护那么迫切,直接进队列即可,所以(a)应填(2)。而完善性维护与预防性维护并不见得都必须进行,而需要进行评估与分类,并有可能淘汰一些维护申请,所以(b)(c)填:(3)(4)。
【问题4】是一个现实生活中常见的问题,对于过时的,无文档的模块,最佳方案是重新开发。重新开发带来的好处的多方面的:省时,省力,为以后的维护打下良好的基础。
某软件公司拟为其客户开发一套基于Web的电子商务系统,该系统向终端用户提供在线购物功能。近期,项目组召开会议对以下两项需求进行了重点讨论:
(1)系统终端用户的界面呈现应提供丰富的多媒体信息,包括文本、图片、动画、视频及语音消息。
(2)系统上线后需应对大量客户端并发请求处理,商家促销活动时,并发用户数可能会达到20万的规模;系统预期用户呈明显地地域集中分布特征。
【问题1】(12分)
项目组在讨论实现需求(1)的技术方案时,首先确定了以下技术原则:
(a)应在开发阶段容易获得良好的协作开发环境支持;
(b)应考虑客户端浏览器的兼容性;
(c)应尽可能使系统具有良好的可维护性;
(d)应考虑公司开发人员的技术学习成本。
项目组就Flex与HTML5两种技术方案进行了论证,综合考虑上述技术原则要求,最终采用了基于Flex的技术方案,请结合需求(1)及上述技术原则,对比Flex与HTML5两种技术方案的优劣,说明采用基于Flex的技术方案的原因。
【问题2】(13分)
项目组在讨论实现需求(2)的技术方案时,首先确定了以下技术原则:
(a)系统中商品信息及用户信息按类别划分不同数据库或表存放;
(b)系统应提供热备份机制以防止服务器意外失效;
(c)为满足大规模并发处理要求,系统软硬件投入可根据需要追加。
项目组经过集思广益,抽取了HTML静态化、缓存、库表散列、集群与镜像、负载均衡等候选技术手段。请结合需求(2)及相应技术原则,分析上述技术手段在本项目中的可行性,将结果填入表格5-1中。
表5-1 技术手段可行性分析
【问题1】
Flex的优势:大量控件支持、完整的企业化开发流程及工作流、多种框架可供选择。
Flex的劣势:生成的SWF过大、效率问题、较差的图文混排支持。
HTML 5的优势:真正意义上全平台支持、可以胜任后台,比Flex拥有更大、更全面、更活跃的社区。
HTML 5的劣势:缺乏良好的协作开发环境,缺乏完整的开发流程;要编写CSS与JavaScript,学习成本高;浏览器兼容问题、效率问题、保密性及安全性、AJAX跨域通讯等问题。
基于以上比较,在本案例中,由于HTML5缺乏良好的协作开发环境、学习成本高、各种浏览器不兼容,缺乏完整的开发流程,系统可维护性差。因此,选择基于Flex的方案。
【问题2】
E-Mall是一家电子商务公司,其主要业务是在线购物,包括书籍、服装、家电和日用品等。随着公司业务规模不断增大,公司决策层决定重新设计并实现其网上交易系统,公司负责系统开发的王工和李工分别给出了两种不同的设计方案,如图5-1和5-2所示。
公司的架构师和开发者针对这两种设计方案,从服务器负载情况、业务逻辑的分离性、系统可靠性、实现简单性等方面进行讨论与评估,综合考虑最终采用了李工给出的方案。
【问题1】(8分)
请分析比较王工、李工两种方案的优点和不足,完成表5-1中的空白部分。
【问题2】(8分)
对数据库的访问是该系统开发中需要特别注意的一个问题,O/R 映射是一种常用的数据库访问编程技术。请用200字以内的文字说明O/R映射的含义,并指出采用O/R映射的三个主要好处。
【问题3】(9分)
性能是Web应用系统的一个重要质量属性。请用200字以内的文字说明三个主要影响Web应用系统性能的因素,针对每个因素提出解决方案以提高系统性能。
某电子商务公司的主要业务是书籍、服装、家电和日用品的在线销售。随着公司业务发展和用户规模的不断扩大,现有的网上交易系统无法正常处理日益增大的请求流量,公司决策层决定升级其网上交易系统。在对该系统的升级方案进行设计和讨论时,公司的系统分析师王工提出采用基于高性能主机系统的方法进行系统升级,另外一位系统分析师李工则提出采用基于负载均衡集群的方法进行系统升级。公司的分析师和架构师对这两种思路进行讨论与评估,最终采纳了李工的方法。
【问题 1】(9 分)
请从系统的可用性、可伸缩性和应用特点三个方面说明公司为何没有采用王工提出的方法。
【问题 2】(8 分)
负载均衡通常分为传输层负载均衡和应用层负载均衡两类。请基于这种分类方式,说明基于 DNS 的负载均衡方法和基于 HTTP 重定向服务器的负载均衡方法分别属于哪类负载均衡方法,并用200字以内的文字说明这两种方法实现负载均衡的方式。
【问题 3】(8 分)
在确定使用基于负载均衡集群的系统升级方法后,李工给出了一个基于LVS(Linux Virtual Server)的负载均衡集群实现方案。公司的系统分析师在对现有系统进行深入分析的基础上,认为以下两个实际情况对升级方案影响较大,需要对该方案进行改进。
1.系统需要为在线购物提供购物车功能,用来临时存放选中的产品。
2.系统需要保证向所有的VIP 用户提供高质量的服务。
针对上述描述,首先说明每种情况分别会引入哪些与负载均衡相关的问题,并用 200字以内的文字说明针对不同的问题,应该如何改进李工的解决方案。
【问题1】
王工提出的方案是采用高性能的主机系统实现系统升级。从可用性角度看,采用高性能的主机系统很难实现系统的冗余机制,当发生故障后会导致整个系统会失去响应能力,从而无法保证系统的高可用性;从可伸缩性角度看,采用高性能的主机系统,升级服务器的成本与获得的相应能力不成比例,整个系统的可扩展性较差;从应用特点来看,Internet中的Web应用绝大多数是简单任务、高强度的并发处理,而主机系统只是对于复杂单一任务和有限的并发处理具有高性能,不能同时处理大量的并发请求。因此,公司没有采用王工的方案。
【问题2】
基于DNS的负载均衡属于传输层负载均衡技术,其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
基于HTTP重定向服务器的负载均衡属于应用层负载均衡技术,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新路由到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
【问题3】
第一种情况的描述说明系统需要提供应用会话数据支持。通常采用会话服务器机制在服务器端存放应用会话数据。但需要注意的是,应用会话数据大多数情况下是不可恢复的,因此采用支持应用会话数据容错的解决方案非常重要。
第二种情况的描述要求保证特定用户的服务质量。当数据量不断增长时,由于在会话服务器或缓存服务器,业务服务器和会话(或缓存)服务器之间可能会反复移动较大量的数据,从而无法保证服务质量。因此,通常的做法是基于应用层负载均衡器实现客户端联系,将某个客户端的所有请求转发到相同的服务器,使得一个用户会话的所有请求被同一服务器实例处理,从而保证服务质量。
您目前分数偏低,基础较薄弱,建议加强练习。