高级系统分析师下午试题(Ⅰ)-13
(总分:25.01,做题时间:90分钟)
一、试题一(总题数:1,分数:1.00)
1.(1)软件配置管理的一个重要内容就是对变更加以控制,使变更对成本、工期和质量的影响降到最小。用150字以内文字,说明软件配置管理中“变更管理”的主要任务。
(2)为了有效地进行变更控制,通常会借助“配置数据库”。请用200字以内文字,说明配置数据库的主要作用及其分类。
(分数:1.00)
__________________________________________________________________________________________ 正确答案:(变更管理的任务包括:①分析变更,根据成本—效益和涉及到的技术等因素判断变更实施的必要性,确定是否实施变更;②记录变更信息,并追踪变更信息:③确保变更在受控条件下进行。 (2)配置数据库的主要作用:①用于收集与配置有关的所有信息;②评价系统变更的效果;③提供配置管理过程的管理信息。
配置数据库可以分为3类:①开发库,专供开发人员使用,其中的信息可能进行频繁的修改,对其控制相当宽松;②受控库,在生存期某一阶段工作结束时释放的阶段产品,这些是与软件开发工作相关的计算机可读信息和人工可读信息;⑧产品库,在开发的软件产品完成系统测试后,作为最终产品存入产品库中,等待交付用户或现场安装。) 解析:
二、试题二(总题数:1,分数:-1.00)
某互联网销售企业需要建立自己的电子商务平台,将所有产品信息集中在一起,为用户提供全方位的产品信息检索服务。但产品供应商大多数已经建有自己的电子商务平台,且数据独立存储,而且数据格式和数据平台有较大差异,有的供应商甚至没有采用数据库来存储商品信息。为此该企业专门成立专家组来论证其数据集成方案。
李工提出采用集中式集成方式把产品供应商的数据集中在一起,采用数据仓库技术来实现与各家供应商的数据集成。而王工提出采用松耦合的联邦数据库集成方案。专家组经过激烈讨论,认为王工方案更为合理,建议采用王工提出的集成方案。
(分数:-0.99)
(1).请结合数据仓库和联邦数据库集成方案各自的特点,简要说明专家组采用王工提出的集成方案的原因。(分数:-0.33)
__________________________________________________________________________________________ 正确答案:(数据仓库集成是把多种来源的数据集中在一起,建立数据仓库,所有数据都驻留在单个数据库服务器上,配置大型处理器和存储容量。数据仓库主要用于决策支持,在数据处理过程中强调分析。其特点是:
(1)集成的数据。 (2)面向主题。 (3)数据相对稳定。 (4)包含历史信息。
联邦数据库集成是把多个数据库系统联合在一起,构成“联邦数据库系统”,数据库之间通过接口查询,互相通信,数据分布在不同地方的计算机或数据库服务器上,通过网络连接。其特点是:
(1)联邦数据库提供集成的数据格式,对用户提供统一的访问,屏蔽了各个数据库的复杂性和分布情况,简化了开发数据库查询和对数据统一理解的工作。这种分布式的数据集成,更加符合应用系统的实际情况。 (2)异构数据源不仅仅是数据库系统,通过中间件,可以扩展到传感器、文件和应用程序等。)
解析:[解析] 本问题考查数据仓库和联邦数据库集成方案的基本概念。数据仓库集成是把多种来源的数据集中在一起,建立数据仓库,所有数据都驻留在单个数据库服务器上,配置大型处理器和存储容量。数据仓库主要用于决策支持,在数据处理过程中强调分析。其特点是:①集成的数据;②面向主题;③数据相对稳定;④包含历史信息。但是此种集成方法中需要将数据源的数据转换为数据仓库中的语义,而且需要定期的数据复制和数据更新。数据源往往指的是数据库系统。
联邦数据库集成是把多个数据库系统联合在~起,构成“联邦数据库系统”,数据库之间通过接口查询,互相通信,数据分布在不同地方的计算机或数据库服务器上,通过网络连接。其特点是:①联邦数据库提供集成的数据格式,对用户提供统一的访问,屏蔽了各个数据库的复杂性和分布情况,简化了开发数据库查询和对数据统一理解的工作。这种分布式的数据集成,更加符合应用系统的实际情况。②异构数据源不仅仅是数据库系统,通过中间件,可以扩展到传感器、文件和应用程序等。
两种方式都需要将数据源中的数据语义转换为统一数据语义,这种转换往往存在不确定性。
(2).部分供应商的产品信息没有相应的数据库,而是直接嵌入在Web页面中供用户浏览。数据集成时需要直接从供应商电子商务平台的网页上获取其产品信息。请简要给出此类数据集成的方法和基本步骤。(分数:-0.33)
__________________________________________________________________________________________ 正确答案:(此类数据往往是非结构化或者半结构化的,但同一个数据源往往有统一的页面模式,因此应该采用Web内容提取(挖掘/文本挖掘)的集成方法来获取对应供应商的产品信息。 其基本步骤为:
(1)分析页面,确定其页面中的数据模式。 (2)抓取页面,通过爬虫技术获取对应的网页。 (3)特征提取与处理,获取相应数据。
(4)数据清洗,根据规则进行判断,抛弃异常数据。
(5)数据转换,根据预先定义好的语义映射关系,将数据转换为统一格式。)
解析:[解析] 本问题考查Web内容提取或Web数据挖掘的相关知识。Web信息系统中的数据往往是非结构化或者半结构化的,但同一个数据源往往有统一的页面模式,但是其数据呈现是嵌入在页面中。因此需要采用Web内容提取(挖掘/文本挖掘)的集成方法来获取对应供应商的产品信息。 其基本的步骤是:
(1)分析页面,确定其页面中的数据模式。制定数据挖掘的特征和提取规则,编写特定的页面分析和数据提取程序。
(2)抓取页面,通过爬虫技术获取对应的网页。将远端的页面下载到本地进行存储,为后续数据提取做准备。 (3)特征提取与处理,获取相应数据,依据的原则是分析页面阶段所形成的特征和提取规则。 (4)数据清洗,根据规则进行判断,抛弃异常数据。
(5)数据转换,根据预先定义好的语义映射关系,将数据转换为统一格式。 Web内容提取的算法程序本身是近似的,因此在获取数据的内容上存在不确定性。
(3).在方案评审会上,项目组针对李工和王工的方案展开了激烈的讨论。刘工指出两种方案在实施的过程中,都存在数据源之间的语义映射和转换问题,都会带来数据集成的不确定。请简要说明产生不确定的原因。(分数:-0.33)
__________________________________________________________________________________________ 正确答案:(数据集成系统依靠模式映射来指明数据源中的数据和中介所用数据之间的语义关系,但映射过程中可能发生不确定性,其原因有:
(1)数据源与中介模式之间的语义映射可能是近似的。
(2)用户不熟悉模式或系统的域太宽,不能提供基于表单式的查询接口,需要使用关键字查询,但将关键字查询转换成一组候选的结构化查询时,会带来不确定性。
(3)数据常常是使用信息获取技术从非结构化数据源获取的,而这些获取技术一般只是“大致可用”,所取得的数据可能是不确定的。)
解析:[解析] 本问题考查在数据集成过程存在的不确定性问题。问题1和问题2中实际已经明确了集成过程中存在不确定性。主要的原因在于数据集成系统依靠模式映射来指明数据源中的数据和中介所用数据之间的语义关系,但映射过程中可能发生不确定性。具体原因有:
(1)数据源与中介模式之间的语义映射可能是近似的。实际系统中往往很难有非常精确、完整的语义映射。
(2)用户不熟悉模式或系统的域太宽,不能提供基于表单式的查询接口,需要使用关键字查询,但将关键字查询转换成一组候选的结构化查询时,会带来不确定性。
(3)数据常常是使用信息获取技术从非结构化数据源获取的,而这些获取技术一般只是“大致可用”,所取得的数据可能是不确定的。
因此,在本试题中,无论采用数据仓库或者联邦数据库集成方案,都存在数据源之间的语义映射和转换问题,都会带来数据集成的不确定。
三、试题三(总题数:1,分数:9.00)
某软件公司承担了某中小型企业应用软件开发任务,进度要求紧迫。为了按时完成任务,选择合适的企业应用系统开发架构非常重要。项目组在进行方案论证时,项目组成员提出了两种开发思路。
(1)刘工建议采用J2EE 5.0和EJB 3.0进行开发。理由是J2EE定义了标准的应用开发体系结构和部署环境,EJB是J2EE的基础和核心。J2EE 5.0主要目标是简化开发,相比EJB 2.1,EJB 3.0具有很多改进和提高。 (2)杜工建议采用Struts,Spring和Hibernate轻量级开源框架相结合的方式。理由是随着Java开源项目阵营的发展壮大,一些基于POJOs (Plan Old Java Objects)的开源框架被广泛地引入到Java企业应用开发中来,与重量级的EJB框架相比,这些轻量级的框架有很多优点。
项目组仔细比较分析了两种方案的特点、优点和不足之处。认为杜工和刘工的建议都合理,但是从结合当前项目实际情况出发,最后决定采用杜工的建议。
(分数:9.00) (1).【问题1】
Java企业应用框架一般被划分为三个层次,请用150字以内文字说明都有哪三个层次?功能分别是什么?(分数:3.00)
__________________________________________________________________________________________ 正确答案:(表现层、业务逻辑组件层和持久层。 表现层用来建立应用系统的界面,对应视图(View)。
业务逻辑组件层来开发应用逻辑,对应控制器(Controller)。 持久层是实现持久化存储,对应模型(Model)。)
解析:[解析] Java企业应用框架一般被划分为三个层次:表现层、业务逻辑组件层和持久层。 表现层用来建立应用系统的界面,对应视图(View)。例如,表现层采用JSF(Java Server Face),JSF的开发流程的核心是事件驱动,组件和标签的封装程度非常高,很多典型应用已经不需要开发者去处理HTTP,整个过程是通过IoC(依赖注入)来实现的。
业务逻辑组件层用来开发应用逻辑,对应控制器(Controller)。例如,业务逻辑组件层采用EJB3.0的Session Bean。EJB3.0允许开发者使用耦合松散的组件来开发应用,实现一个EJB所有使用的类和接口都减少了。
持久层是实现持久化存储,对应模型(Model)。例如,采用EJB3.0实体Bean持久化模型,吸收了Hibernate的一些思想采用O/R Mapping模式。 (2).【问题2】
请用200字以内的文字叙述Struts,Spring和Hibernate开源框架特点和结合方式。(分数:3.00) __________________________________________________________________________________________ 正确答案:(1.Struts框架
Struts是基于模型一视图一控制器(MVC)模式的开源框架,主要用于企业应用中表示层的实现。 借助于Struts,开发人员可以把主要精力集中在业务处理上,简化遵循MVC设计模式的Web应用开发工作,很好地实现代码重用,提高开发效率。 2.Spring框架
Spring是业务组件层轻量级框架。
Spring框架是一个基于IoC(依赖注入)和AOP(面向方面编程)的构架。 3.Hibernate框架
Hibernate属于持久层框架。Hibernate是一个开源的O/R Mapping框架,它对JDBC进行了非常轻量级的对象封装。可以在应用EJB的J2EE框架中取代CMP,完成数据持久化的重任。
Struts框架+Spring框架+Hibernate框架实现了表现层、业务逻辑组件层和持久层的结合。)
解析:[解析] Struts是基于模型—视图—控制器(MVC)模式的开源框架,主要用于企业应用中表示层的实现。借助于Struts,开发人员可以把主要精力集中在业务处理上,简化遵循 MVC设计模式的Web应用开发工作,很好地实现代码重用,提高开发效率。Struts框架包括:①模型(Model)。Struts中模型是一个Action类,开发者通过其实现商业逻辑,同时用户请求通过控制器向Action的转发过程是基于由
struts-config.xml文件描述的配置信息的。②视图(View)。视图是由与控制器配合工作的一整套JSP定制标签库构成,利用它们可以快速建立应用系统的界面。⑧控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。④一堆用来做XML文件解析的工具包。
Spring是业务组件层轻量级框架。Spring框架是一个基于loc(依赖注入)和AOP (面向方面编程)的构架。用户可以通过Spring来利用普通Java对象(POJO)编程,使用依赖注入解析POJO问的依赖性,然后使用面向方面编程(AOP)将服务与它们相关联。采用依赖注入使得它可以很容易地实现bean的装配,提供了简洁的AOP并据此实现事务管理等。Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。这样的对象可似在不同J2EE环境(Web或EJB)、独立应用程序、测试环境之间重用。 Hibernate属于持久层框架。Hibernate是一个开源的O/R Mapping框架,它对JDBC进行了非常轻量级的对象封装。可以在应用EJB的J2EE框架中取代CMP,完成数据持久化的重任。
Struts框架+Spring框架+Hibernate框架实现了表现层、业务逻辑组件层和持久层的结合。 (3).【问题3】
请用200字以内的文字说明基于Struts,Spring和Hibernate的轻量级框架与基于EJB的重量级框架解决问题的侧重点有什么不同?(分数:3.00)
__________________________________________________________________________________________ 正确答案:(轻量级框架侧重于减小开发的复杂度,相应的它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发中小型企业应用。
采用轻量框架后,一方面因为采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于项目的快速开发。
而作为重量级框架EJB框架则强调高可伸缩性,适合于开发大型企业应用。
在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外,EIB容器通过减少数据库访问次数以及分布式处理等方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。
轻量级框架的产生并非是对重量级框架的否定,可以说二者是互补的。轻量级框架旨在开发具有更强大,功能更完备的企业应用;而新EIB 3.0则在努力简化J2EE从而使 EJB不仅仅是擅长处理大型企业系统,也利用开发中小型系统,这也是EJB轻量化的一种努力。对于大型企业应用以及将来可能涉及到能力扩展的中小型应用采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案。)
解析:[解析] 作为重量级框架EJB框架则强调高可伸缩性,适合于开发大型企业应用。在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由容器来处理。另外,EJB容器通过减少数据库访问次数以及分布式处理等方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。
轻量级框架侧重于减小开发的复杂度,相应地它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发中小型企业应用。采用轻量框架后,一方面因为采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率:另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于项目的快速开发。 轻量级框架的产生并非是对重量级框架的否定,可以说二者是互补的。轻量级框架旨在开发具有更强大,功能更完备的企业应用;而新EJB 3.0则在努力简化J2EE从而使 EJB不仅仅是擅长处理大型企业系统,也利用开发中小型系统,这也是EJB轻量化的一种努力。对于大型企业应用以及将来可能涉及到能力扩展的中小型应用采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案。
四、试题四(总题数:1,分数:1.00)
2.虽然不同的分布式软件体系结构采用的具体实现方式不尽相同,但它们都支持客户端透明地访问分布式对象,即客户端可以像访问本地对象一样访问分布式对象。试用 200字以内文字,说明实现这种透明性的基本原理。
(分数:1.00)
__________________________________________________________________________________________ 正确答案:(通信模型:
客户端和服务端不是直接进行交互,而是利用客户端存根和服务端框架来间接进行通信,这样客户程序和服务程序就不需考虑底层的通信细节问题。
客户端存根和服务端框架一般由平台自动生成,不需程序员手工编写,所以这种通信模型的最大好处是可以省去程序员自己写程序来处理底层通信问题。) 解析:[解析]
全球性网络使联机的所有设备和软件成为全球共享的浩瀚的资源,计算机环境也从集中式发展到分布式。开放式系统的发展使用户能够透明地应用由不同厂商制造的不同机型、不同平台所组成的异构型计算资源,因此,分布式处理和应用集成自然而然地成为人们的共同要求。
分布式系统的主要特点包括资源共享、开放性、并发性、可伸缩性、容错性以及透明性。实现分布式系统的体系结构主要包括2种,一是客户机/服务器体系结构,系统被看作是提供一组服务供客户机使用,服务器和客户机被区别对待;二是分布式对象体系结构,不区分服务器和客户机,将系统当成交互的一组对象,它们的位置是无关紧要的,服务提供者和消费者之间没有界限。 第一步:总结问题的要点
这是一道与分布式系统相关的题目,主要考查应试者是否掌握分布式系统中各个子系统之间进行交互的2种方式(利用底层通信协议、基于某种成熟的分布式软件体系结构),并要求能够了解这2种方式分别适用于什么场合,以及它们的实现基础。 说明客户端能够透明访问分布式对象的原理。
五、试题五(总题数:1,分数:15.00)
阅读以下关于网上交易系统的叙述,回答问题。
某电子商务公司进行机构重组后,业务规模和用户规模不断扩大,现有的在线销售系统已经无法满足公司的发展要求。公司决策层对现有系统的不足进行了认真分析,决定提高现有系统客户端访问速度,增强客户端的动态交互能力,并提高整个系统代码的模块化和重用性,最终完成网上交易系统的改造与升级。在对该系统的升级方案进行设计和讨论时,公司的系统分析师王工提出采用开发浏览器插件的方式提高客户端访问速度并增强访问体验,通过重写服务端代码提高系统的模块化和重用性。另外一位系统分析师李工则提出采用Ajax技术提高客户端性能,采用.JavaSciipt技术进一步增强客户端的动态交互能力,并在服务端采用JavaScript技术提高系统代码的模块化和重用性。公司的分析师和架构师对这两种思路进行讨论与评估,最终采纳了李工的方法。
(分数:15.00)
(1).请从系统的客户端开发和服务端开发两个方面说明为何没有采用王工提出的方法。(分数:5.00) __________________________________________________________________________________________ 正确答案:(从客户端开发方面来看,由于现有浏览器都定义了符合自身要求、互不兼容的插件开发标准与运行形态,王工提出的“浏览器插件的增强方式”需要针对不同浏览器开发对应的插件,这样存在重复开发的问题且工作量巨大;另一方面,客户端功能增强插件必须下载并安装到浏览器上,对客户端要求较高且不方便。李工提出的“基于Ajax的客户端增强方式”只要求浏览器支持JavaScript,这一要求目前所有的浏览器都能够直接满足;另一方面,而Ajax技术则基于所有浏览器都支持的标准技术体系,不存在重复开发和互不兼容的问题。
从服务端开发方面来看,王工提出的“重写服务端代码”的方式虽然可能解决服务端模块化和重用性的要求,但是开发的风险和代价太大,在进行企业应用系统升级时一般不考虑完全重写,特别是服务端代码完全重写的方案。另一方面,李工提出的“在服务端采用JavaScript技术”能够与采用Ajax技术的客户端进行无缝集成,并且能够利用JavaScript与现有系统功能模块的互操作技术,采用JavaScript实现系统现有业务功能模块的动态组合和调用,增强系统功能模块的重用性。 综合上述两个方面,可以看出应该采用李工的解决方案。)