13.2软件架构风格

张开发
2026/4/10 7:26:08 15 分钟阅读

分享文章

13.2软件架构风格
一、软件架构风格 00:101. 软件体系结构风格概述 01:101软件体系结构风格定义 01:16领域特定模式描述特定应用领域中系统组织方式的惯用模式如穿衣风格日系/韩系/中式或建筑风格哥特式/中式园林系统家族定义包含架构定义、词汇表构件和连接件类型和组合约束三要素复用基础反映领域内众多系统共有的结构特性和语义特性如中式园林的共同元素核心目标实现架构级软件复用即直接复用整个架构设计方案2架构风格的作用与意义 01:47设计指导提供模块和子系统的有效组织方式如CS/BS架构风格混合应用允许系统采用多种风格组合类似穿衣混搭或装修混搭术语统一定义系统描述术语表和构建规则每种风格明确构件类型和连接方式实践验证经过验证的解决方案可可靠解决新问题如MVC风格的广泛应用3架构风格的核心要素 04:23构件与连接件明确系统功能单元构件及其交互方式连接件组合约束规定构件如何合法组合如管道过滤器风格的线性连接约束语义特性包含系统行为的含义层面特征区别于单纯结构特征领域共性捕获特定领域系统的共同设计特征如电商系统的购物车模式4架构风格的实践与理解 05:04考试重点定义中标注内容可能成为填空题考点如特定应用领域、语义特性等学习建议先建立形象理解通过穿衣/建筑类比再记忆标准定义分类体系基础分为数据流、调用返回、独立构件、虚拟机和仓库五大类扩展内容需补充学习层次风格CS/BS/MVC和面向服务架构等现代变体2. 软件架构风格分类 07:001数据流风格 07:47数据流风格的特点 07:50执行方式: 面向数据流按照固定顺序从前向后执行程序构建之间通过数据传递交互典型特征: 前一个构建执行完毕才能开始下一个构建的执行类似数据流图的走向应用场景: 适用于需要逐步处理数据的系统如编译器、流媒体处理等数据流风格的代表风格 08:09批处理序列: 构建为固定顺序的计算单元数据以整体方式传递管道-过滤器: 构建通过输入输出数据流连接前一个输出作为后一个输入2批处理序列 12:18构建特征: 由一系列固定顺序的计算单元组成每个处理步骤是独立程序执行要求: 必须前一步完全结束后才能开始下一步数据必须完整传递交互方式: 构建之间仅通过数据传递交互耦合度低典型示例: Windows批处理文件(.bat)、Linux shell脚本应用限制: 不适合需要实时处理或部分结果即可开始后续处理的场景3管道-过滤器 13:16构建组成: 过滤器(构建)通过管道(连接件)相连数据流动: 前一个过滤器的输出作为后一个过滤器的输入执行特点: 不需要等待前一个过滤器完全执行完毕可部分执行就开始后续处理典型应用:早期编译器架构流媒体处理(如视频边缓存边播放)与批处理区别:批处理: 构建前后不一定关联数据整体传递管道-过滤器: 前后数据流明确关联支持部分执行优势: 提高处理效率适用于实时性要求高的场景4调用/返回风格 16:04主程序/子程序 16:09控制方式: 采用单线程控制将问题划分为若干个处理步骤构件组成: 主程序和子程序作为构件子程序可合成为模块交互机制: 过程调用作为连接件通过参数和返回值传递数据调用特点: 属于显式调用主程序主动调用子程序完成功能典型示例: 函数调用过程如C语言中的main()函数调用其他子函数面向对象 17:06构件定义: 构件是对象即抽象数据类型的实例连接方式: 通过对象间的函数/过程调用实现交互调用特点: 对象通过方法调用实现功能如new对象后调用其方法封装特性: 对象封装数据和方法通过接口暴露功能典型示例: Java/C中的类实例化后调用成员方法层次结构 17:39结构特点: 构件组成层次结构如OSI七层模型交互规则: 只能与相邻层交互通过协议定义层间交互方式服务关系: 每层为上层提供服务使用下层服务修改影响: 修改某层最多影响相邻两层通常只影响上层抽象级别: 越靠近底层抽象级别越高如通用数据结构层优点问题分解: 支持基于可增加抽象层的设计分解复杂问题为增量步骤抽象隔离: 不同层次处于不同抽象级别底层更通用复用支持: 接口一致时允许各层独立实现支持软件复用维护便利: 修改影响范围可控只需保证接口不变缺点划分难度: 不是所有系统都容易分层需找到合适的抽象方法性能损耗: 调用需逐层传递如OSI模型数据封装/解封装设计挑战: 难以完美实现层间独立和单向服务关系效率问题: 分层越多调用链越长执行效率相应降低5独立构件风格 22:11进程通信 22:25构件特性: 构件是独立进程拥有独立PCB和资源连接机制: 通过消息传递实现交互区别于线程资源共享通信方式: 包括点对点、异步/同步、RPC等典型示例: 分布式系统中的进程间通信独立性: 强调进程间的完全独立不共享地址空间事件驱动系统隐式调用 23:26调用方式: 通过事件触发而非直接过程调用隐式调用注册机制: 构件过程在事件中注册事件触发时自动调用典型示例: 中断处理机制、GUI事件处理交互特点: 构件间无直接调用关系通过事件中介匿名特性: 构件是匿名过程通过事件隐式连接独立构件风格的主要优点 24:41复用支持: 为软件复用提供强大支持构件可独立演化维护便利: 构件可独立修改而不影响其他部分松耦合: 构件间依赖关系弱系统更灵活扩展性: 新构件只需注册事件即可加入系统独立构件风格的缺点 25:01控制缺失: 构件放弃对系统计算的控制权响应被动: 只能被动响应事件无法主动控制流程调试困难: 隐式调用导致执行流程难以追踪时序问题: 事件触发顺序可能影响系统行为6虚拟机风格 25:17解释器风格核心组件包含解释引擎执行解释工作、代码存储区存放待解释代码、状态记录器记录引擎工作状态和执行进度跟踪器记录源代码执行进度本质特征通过虚拟机仿真硬件执行过程与设计模式中的解释器模式概念相似但属于更高层次的架构抽象典型应用JVM虚拟机是典型案例实现Java语言的跨平台特性效率缺陷执行效率较低类比在Windows系统中运行虚拟机时性能下降的现象基于规则的系统系统组成包含规则集、规则解释器、规则/数据选择器和工作内存四大组件应用领域主要应用于人工智能领域和决策支持系统DSS区分要点与解释器风格相似但更强调规则驱动考试中通过人工智能、决策支持等关键词识别7仓库风格 28:01数据库系统核心架构中央共享数据源保存系统状态 多个独立处理单元操作数据元素运作特点所有操作围绕中心数据库展开体现以数据为中心的设计思想黑板系统三大组件知识源类似教师角色提供独立计算单元和解决方案知识黑板作为全局数据库展示问题域全部状态类比教室黑板展示知识控制模块协调知识源对黑板状态的响应和修改适用场景信号处理、问题规划和编译器优化等无确定性算法的领域超文本系统结构特征网状链接的节点组织方式支持非线性跳转类似HTTP超文本传输应用领域互联网领域的典型架构风格现代编译器实现开发风格现代IDE如Eclipse、VS采用数据仓库风格核心数据以程序语法树作为中心数据架构8闭环控制 30:43基本概念工作原理通过反馈循环接受输入→产生输出→监测环境状态→持续调节典型示例空调温控系统设定目标温度后持续监测调节、汽车巡航系统系统组成核心组件控制器、执行器、被控对象、反馈环节构成完整控制回路对比开环与开环系统的本质区别在于存在实时反馈调节机制9C2体系结构风格 33:16基本规则连接规范构件必须通过连接件交互禁止直接连接构件顶部连连接件底部底部连连接件顶部连接件间连接必须底部→顶部拓扑特征形成并行构件网络所有交互严格遵循预定规则3. 总结 35:071架构风格概述与重要性 35:15定义特性: 反映领域中众多系统共有的结构和语义特性强调对架构设计的重用解题技巧: 掌握各风格的关键字和简介即可应对大部分选择题这些关键字均来自历年真题高频考点2数据流风格批处理与管道-过滤器 36:00共同特征: 都用于传统编译器场景表现为一个接一个的处理流程前阶段输出作为后阶段输入区分要点:批处理以整体为单位处理管道-过滤器前一个输出必定是后一个输入典型应用: 编译器开发词法分析→语法分析→语义分析→代码生成的链式处理3调用/返回风格主程序/子程序与面向对象 36:29主程序/子程序: 显示的直接调用关系如函数显式调用面向对象: 通过对象调用封装的方法和属性考试出现频率较低层次结构: 每层最多影响上下两层具有明确的调用关系4独立构件风格 36:58事件驱动(隐式调用):特征通过事件触发动作而非直接调用实例IDE语法错误实时提示如VS Code的错误标记、语法高亮显示进程通信: 进程间独立的消息传递机制支持同步/异步方式5虚拟机风格解释器与规则系统 38:15共同特点: 支持自定义流程和灵活规则定义规则系统:适用场景DSS决策支持系统、人工智能专家系统实例机器人规则集、规则解释器解释器:组成解释引擎、存储区、数据结构业务场景自定义业务流程解释6仓库风格 38:44核心特征: 以数据为中心的数据共享风格黑板系统:适用语音识别、知识推理等复杂问题组成黑板、知识源、控制系统数据库: 现代编译器的集成开发环境典型应用超文本: 网状链接结构多用于IDE和互联网7闭环风格过程控制 39:14工作原理: 循环反馈调节发出控制命令→接收反馈→调整参数典型应用: 汽车定速巡航、空调温度自动调节系统8C2风格 39:25核心结构: 通过连接件绑定的并行构件网络运作特点: 构件分顶部和底部按规则运作且构件间禁止直接交互4. 考试真题 39:561例题:架构风格定义题目解析正确答案: 第一空A语义特性第二空B设计考点提示: 架构风格定义强调组织方式和惯用模式这两个词常作为填空考点2例题:架构风格与系统性能 40:44题目解析层次化风格: 层次越多性能越差正确隐式调用: 可通过并发调用提高性能正确面向对象: 添加对象管理层会降低性能错误选项解释器: 预编译部分代码可提升性能正确3例题:VIP管理系统风格选择 42:16题目解析关键需求: 不定期更新审核标准和折扣规则排除法:管道-过滤器无流水线特征分层无层次需求过程控制无反馈调节正确选择: A规则系统因需动态修改业务规则4例题:C2风格识别 43:20题目解析迷惑选项: 规则系统虽提及规则但非核心特征核心特征: 连接件绑定的并行构件网络正确答案: AC2风格5例题:编译器开发风格 44:37题目解析典型特征: 阶段间数据传递前输出作为后输入排除选项:规则系统无规则自定义数据仓储非中心化数据解释器无流程解释需求正确答案: A管道-过滤器6例题:业务组合需求 45:14题目解析需求本质: 业务功能灵活组合风格对比:规则系统侧重智能决策解释器支持自定义流程组合正确答案: D解释器二、知识小结知识点核心内容考试重点/易混淆点难度系数软件架构风格概述架构风格是描述特定应用领域中系统组织方式的惯用模式反映众多系统共有的结构和语义特性区分“架构”与“体系结构”为同一概念英文均为architecture⭐⭐五大基础架构风格1. 数据流风格批处理/管道过滤器; 2. 调用返回风格主程序子程序/面向对象/层次结构; 3. 独立构建风格进程通信/事件驱动; 4. 虚拟机风格解释器/基于规则; 5. 仓库风格数据库/黑板/超文本数据流风格强调顺序执行调用返回风格含显式调用独立构建风格为隐式调用如事件触发⭐⭐⭐⭐数据流风格- 批处理整体执行前一步完成才能开始下一步; - 管道过滤器流式处理如边缓存边播放前一个输出为后一个输入批处理 vs 管道过滤器的核心区别是否以整体为单位执行⭐⭐⭐调用返回风格- 主程序子程序函数显式调用; - 面向对象对象间方法调用; - 层次结构分层调用如OSI七层模型下层为上层服务层次结构的缺点效率降低跨层调用开销、分层难度高⭐⭐⭐独立构建风格- 事件驱动通过事件隐式触发如语法错误实时提示; - 进程通信独立进程通过消息传递交互事件驱动的关键字隐式调用、异步触发⭐⭐⭐⭐虚拟机风格- 解释器自定义执行流程如JVM; - 基于规则适用于AI/决策系统如动态更新VIP审核规则解释器效率低基于规则系统需关联人工智能/DSS场景⭐⭐⭐⭐仓库风格- 数据库系统以数据为中心; - 黑板系统知识源黑板控制如语音识别; - 超文本系统网状结构如HTTP黑板系统特点知识推理、问题空间大⭐⭐⭐其他风格- 闭环控制反馈调节如空调温控; - C2风格构件通过连接件绑定顶部/底部规则C2风格关键词构件不能直接连接、并行构建网络⭐⭐真题高频考点- 数据流风格编译器阶段处理; - 虚拟机风格业务灵活组合; - 仓库风格IDE开发环境易错点规则系统 vs 解释器前者需AI/决策场景⭐⭐⭐⭐⭐

更多文章