Linux系统架构师考试:主程序-子程序与管道-过滤器对比

版权申诉
0 下载量 93 浏览量 更新于2024-06-29 收藏 536KB DOCX 举报
在2010年的系统架构师考试科目二中,考生面临的是关于Linux操作系统下KWIC检索系统的设计案例。这个系统的核心功能是根据用户输入的关键字提供相关帮助文档,并支持循环滚动阅读。在需求分析阶段,尽管初始的需求是通过重复剪切并插入单词实现滚动,但后续可能会有更多展示方式。 在架构设计环节,公司的两位架构师,王工和李工,提出了不同的解决方案。王工倾向于采用主程序-子程序的架构风格,这种风格强调所有计算组件作为子程序协同工作,由主程序按照顺序调用,数据通过共享存储区传递。然而,这种风格在灵活性上有所欠缺,算法或功能变更可能导致整个系统的重新编译,数据表示变更也会影响程序结构,性能方面可能因为整体程序的耦合而受限。 相反,李工提出的管道-过滤器架构风格更为灵活。在这个架构中,每个组件作为过滤器独立处理数据,输入和输出之间通过管道连接。这种设计允许独立的组件升级和修改,降低了算法和功能变更的影响,同时数据表示的变化不会直接影响整个程序,有利于性能优化和扩展。因此,考虑到系统的可维护性、灵活性和性能,会议最终选择了李工的管道-过滤器架构风格。 问题1的答案着重介绍了软件架构风格的定义,即一种描述软件系统组织方式的惯用模式,它定义了组件及其交互方式。主程序-子程序风格以顺序调用为主,数据共享,但在应对变化时显得僵化;而管道-过滤器风格则是模块化的,利于灵活扩展和数据流处理,更适合复杂系统的构建。 问题2的答案要求考生填写一个表格,对比评估两种架构风格在算法变更、功能变更、数据表示变更和性能方面的优劣。根据上述分析,应填写: - 算法变更:主程序-子程序 - (-);管道-过滤器 - (+) - 功能变更:主程序-子程序 - (-);管道-过滤器 - (+) - 数据表示变更:主程序-子程序 - (-);管道-过滤器 - (+) - 性能:主程序-子程序 - (-);管道-过滤器 - (+) 综合考虑,李工的管道-过滤器架构风格在灵活性和性能方面具有明显优势,所以被选为项目的最终方案。这体现了在软件开发中,适应变化和优化系统性能的重要性。