2017系统架构设计师案例分析:主程序-子程序 vs 管道-过滤器
需积分: 16 104 浏览量
更新于2024-09-14
收藏 428KB DOCX 举报
"2017年的系统架构设计师案例分析试题及答案文档,包含了高级资格考试中的案例分析部分,旨在帮助考生备考。"
在软件开发中,【软件架构风格】是至关重要的,它定义了特定软件系统的基本结构和组织原则。【主程序-子程序架构风格】强调了一个中心控制组件(主程序)依次调用各个子程序来执行任务,子程序之间通过共享内存区域进行通信。这种风格适用于任务流程清晰,且数据交换频繁的系统,但可能因过度依赖共享数据而导致并发控制复杂。
相反,【管道-过滤器架构风格】将系统分解为一系列独立的构件(过滤器),每个构件都有自己的输入和输出,通过数据流(管道)进行连接。这种风格适合处理线性数据流,如文本处理或数据分析,它允许各组件独立工作,提高了系统的可扩展性和可维护性,但可能不适合需要复杂交互或即时反馈的系统。
在案例中,希赛公司开发KWIC检索系统,面临的需求是循环滚动显示帮助文档内容。【王工】提议使用主程序-子程序架构,这种风格在处理循环滚动时可能需要频繁的共享数据修改,可能导致效率下降和并发问题。而【李工】建议的管道-过滤器架构,可以更自然地处理数据流,易于添加新的过滤器来实现不同的显示方式,适应未来功能扩展的需求。
在评估表格中,我们可以看到两种架构风格的对比:
| | 主程序-子程序 | 管道-过滤器 |
| --- | --- | --- |
| 算法变更 | - | + |
| 功能变更 | - | + |
| 数据表示变更 | - | + |
| 性能 | - | + |
采用李工的方案是因为管道-过滤器架构在处理数据流和功能扩展方面具有显著优势,尤其是在未来可能需要改变算法或增加新功能的情况下,其灵活性和可扩展性更强。李工的架构设计示意图中,(1)可能是负责读取数据的输入模块,(2)可能是处理数据的过滤器,(3)可能是实现循环滚动的组件,而(4)则可能是输出结果给用户的界面或接口。
选择合适的架构风格对于软件项目的成功至关重要,因为它影响着系统的可维护性、可扩展性和性能。在实际项目中,应根据具体需求和预期变化灵活选择。在这个案例中,管道-过滤器架构因其适应未来需求的能力和良好的性能表现,成为更优的选择。
2021-12-14 上传
2021-05-22 上传
2021-12-14 上传
2023-01-16 上传
2019-01-15 上传
2018-12-13 上传
staybye
- 粉丝: 0
- 资源: 2
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程