试题三 (25 分)
阅读以下关于 Java 企业级应用系统开发架构选择方面的叙述,在答题纸上回答问题 1 至问题 3。
某软件公司承担了某中小型企业应用软件开发任务,进度要求紧迫。为了按时完成任务,选择合适的企业应用系统开发架构非常重要。项目组在进行方案论证时,项目组成员提出了两种开发思路。
(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 框架相比,这些轻量级的框架有很多优点。 项目组仔细比较分析了两种方案的特点、优点和不足之处。认为杜工和刘工的建议都合理,但是从结合当前项目实际情况出发,最后决定采用杜工的建议。
【问题 1】 (6 分)
Java 企业应用框架一般被划分为三个层次,请用 150 字以内文字说明都有哪三个层次?功能分别是什么?
【问题 2】 (12 分)
请用 200 字以内的文字叙述 Struts,Spring 和 Hibernate 开源框架特点和结合方式。
【问题 3】 (7 分)
请用200字以内的文字说明基于Struts, Spring和Hibernate的轻量级框架与基于EJB的重量级框架解决问题的侧重点有什么不同?
第1题:
阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。
[说明]
阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。
windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。
Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。
(1)
第2题:
试题三(共 15 分)
阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。
第3题:
第4题:
试题四(共15分)
阅读以下说明,回答问题l至问题3,将解答填入答题纸的对应栏内。
【说明】
赵新锐是一名大学生,他申请了学校的大学生创新创业项目,计划建立一个网上商
店,他制定的工作计划如表4-1所示。
【问题2](5分)
项目在第14天时进行了检查,工作代码为G、I、H的检查情况见表4-3。请计算工
作代码为G、I、H任务的进度状况并填空。
【问题3](5分)
在答题纸对应位置完成项目里程碑甘特图(注:答题纸上的时间为每方格一天)。
第5题:
试题一(共25分)
阅读以下关于软件系统架构选择的说明,在答题纸上回答问题1至问题 3。
【说明】
某公司欲针对 Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其它方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、 功能变更、 数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。
【问题 1】(7分)
在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用 200 字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。
【问题 2】(12分)
请完成表1-1 中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。
【问题 3】(6分)
图1-1 是李工给出的架构设计示意图, 请将恰当的功能描述填入图中的(1)~(4)。
试题一分析
【问题1】
本题主要考查软件架构风格的定义,并考查对两种与本题相关的架构风格的定义。软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。
管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。
【问题2】
本问题是一道填表题,其核心是对两种架构风格在算法变更、功能变更、数据表示变更和性能等方面的特点进行比较。其中共享数据的主程序-子程序在算法变更方面灵活性较差,算法变更时一般需要重新编译整个系统;在功能变更方面也比较差;在数据表示方面,当需要变更时,也意味着程序传递参数的变化以及整个程序的调整,表现比较差;在性能方面,由于整个程序处在一个紧耦合的状态,因此性能较高。管道-过滤器架构风格在算法变更方面实现比较简单,只需要修改过滤器的实现即可;在功能变更方面也比较简单;在数据表示方面,需要同时改变数据格式和过滤器的结构,相对比较复杂;在性能方面,由于整个系统是松耦合连接在一起的,因此性能不高。
根据题干描述:“用户后续还有可能采用其它方式展示帮助内容”,因此KWIC系统对功能变更要求较高;根据题干描述:“…,后续还将采用其它的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高;KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高;KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。针对这些考虑,可以看出应该采用管道-过滤器的架构风格。
【问题3】
本问题是一道读图题,考查用户对系统架构的理解程度。根据题干中的关键描述“…接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读…”和“…公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动…”,可以看出整个系统的流程是:输入→文档检索→查询结果按字母排序→剪切行首单词→单词插入行尾→输出。
解答要点
【问题1】
软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。
管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。
根据题干描述:“用户后续还有可能采用其它方式展示帮助内容”,因此KWIC系统对功能变更要求较高;
根据题干描述:“…,后续还将采用其它的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高。
KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高。
KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。
综合上述分析,可以看出应该采用李工提出的管道-过滤器架构风格。