2010 年系统架构师考试科目二:案例分析
1. 阅读以下关于软件系统架构选择的说明,在答题纸上回答问题 1 至问题 3。
【题目】
某公司欲针对 Linux 操作系统开发一个 KWIC(Key Word in Context)检索系统。该系统接收用
户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。
在对 KWIC 系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其它方式展
示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并
将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功
能。
在对 KWIC 系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子
程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从
系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用
了李工的方案。
【问题 1】(7 分)
在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用 200 字以内的文字
说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描
述。
【问题 1 解析】
软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构
件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺
序地调用这些子程序,构件通过共享存储区交换数据。
管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内
部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的
管道。
【问题 2】(13 分)
请完成表 1-1 中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评
价,并指出采用李工方案的原因。
表 1-1 王工与李工的架构风格评价
【问题 2 解析】
本问题是一道填表题,其核心是对两种架构风格在算法变更、功能变更、数据表示变更
和性能等方面的特点进行比较。
其中共享数据的主程序-子程序在算法变更方面灵活性较差,算法变更时一般需要重新