阅读以下关于软件系统架构选择的说明,在答题纸上回答问题1至问题3。
博学公司欲针对Linux操作系统开发一个KWIC(KeyWordinContext)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其他方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其他的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序.子程序的架构风格,而李工则主张采用管道.过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。
在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。
第1题:
论软件系统架构风格 系统架构风格(System Architecture Style)是描述某一特定应用领域中系统组织方式的惯用模式.架构风格定义了一个词汇表和一组约束,词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的口软件系统架构风格反映了领域中众多软件系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。软件系统架构风格的共有部分可以使得不同系统共享同一个实现代码,系统能够按照常用的、规范化的方式来组织,便于不同设计者很容易地理解系统架构。
请以“软件系统架构风格”论题,依次从以下三个方面进行论述: 1.概要叙述你参与分析和开发的软件系统开发项目以及你所担任的主要工作。 2.分析软件系统开发中常用的软件系统架构风格有哪些?详细阐述每种风格的具体含义。 3.详细说明在你所参与的软件系统开发项目中,采用了哪种软件系统架构风格,具体实施效果如何。
第2题:
第3题:
第4题:
试题一(共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系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。
综合上述分析,可以看出应该采用李工提出的管道-过滤器架构风格。
第5题: