第7章 系统架构设计基础知识

⚠️ 本章是考试最核心章节,案例第1题必考,论文高频

核心知识点

1. 软件架构概述

  • 定义:软件系统的高层抽象,定义了系统的组织结构、组成元素及其交互关系
  • 作用
    • 风险承担者之间的沟通工具
    • 早期设计决策的体现
    • 可传递和可复用的模型
  • 架构 ≠ 设计:架构是系统级高层结构,设计是具体实现

2. 架构风格分类(必考核心)

2.1 数据流风格

  • 管道-过滤器
    • 特点:数据在管道中传输,每个过滤器独立处理数据
    • 优点:高内聚低耦合、可复用
    • 缺点:不适合交互式应用、共享数据困难
    • 考试关键词:过滤器(处理数据的节点)、管道(数据传输通道)
  • 批处理序列
    • 每个处理步骤独立,整体顺序执行
  • 特点:数据在组件间流动,每个组件对数据进行增量处理

2.2 调用/返回风格

  • 主程序/子程序:最经典,层次化调用
  • 面向对象风格:封装、继承、多态
  • 层次架构(分层系统)
    • 每层为上层提供服务,使用下层服务
    • 优点:可替换、标准化
    • 缺点:性能损失(跨层调用)
    • 典型:三层C/S(表示层在客户机)、MVC

2.3 独立构件风格

  • 进程通信:独立进程通过消息传递通信
  • 事件驱动系统
    • 隐式调用:组件不直接调用,通过事件触发
    • 优点:松耦合、可扩展
    • 缺点:难以推理系统行为
    • 典型:发布-订阅模式

2.4 虚拟机风格

  • 解释器
    • 四大组件:被解释的程序、控制组件(解释引擎)、内存/状态、用户界面
    • 适用:需要灵活解释执行的场景(如训练平台、规则引擎)
    • 2024上、2025上连续两年案例第1题考此风格
  • 规则系统:基于规则的推理

2.5 以数据为中心风格(仓库风格)

  • 数据库系统:以中央数据仓库为中心
  • 黑板系统
    • 三大组件:知识源、黑板(共享数据结构)、控制器
    • 属于以数据为中心风格的子风格
    • 适用:信号处理、模式识别
  • 超文本系统:以文档为中心

2.6 闭环控制风格

  • 过程控制:持续监控和调节

3. 架构风格对比(案例常考)

| 风格 | 数据处理 | 组件关系 | 适用场景 | |------|---------|---------|---------| | 管道-过滤器 | 流式数据 | 单向流动 | 编译器、数据处理 | | 调用/返回 | 请求-响应 | 层次调用 | 企业应用、MIS | | 独立构件 | 事件驱动 | 松耦合 | GUI、实时系统 | | 解释器 | 动态执行 | 引擎驱动 | 脚本引擎、规则引擎 | | 黑板 | 共享数据 | 知识源协作 | 信号处理、AI | | 层次架构 | 分层调用 | 上下层依赖 | Web应用 |

4. 架构描述语言ADL

  • 三大要素:构件、连接件、架构配置
  • 常见ADL:UniCon、Rapide、Darwin、Wright
  • 考试角度:选择题常考哪些属于ADL

5. 4+1视图

  • 逻辑视图:系统功能(面向最终用户)
  • 开发视图:程序组织(面向程序员)
  • 进程视图:并发和同步(面向系统集成者)
  • 物理视图:系统部署(面向系统工程师)
  • +1 场景视图:用例场景(统一四个视图)
  • ⚠️ 不包含测试视图(2024上考)

6. 特定领域软件架构DSSA

  • 三个基本活动
    1. 领域分析:获得领域模型(目标)
    2. 领域设计:获得DSSA
    3. 领域实现:开发和组织可复用构件
  • 三个层次:领域开发环境→领域特定应用开发环境→应用执行环境
  • 参与人员:领域专家、领域分析师、领域设计人员、领域实现人员
  • 考试角度:选择题常考"领域分析阶段的主要目标"

7. 基于架构的软件开发ABSD

  • 核心:架构驱动,由商业、质量、功能需求组合驱动
  • 六个步骤:架构需求→架构设计→文档化→复审→实现→演化
  • 架构需求:来自系统质量目标、系统功能、商业目标、开发组织需求

8. 构件与中间件

  • 构件特征
    • 可组装型(通过公开接口交互)
    • 可部署性(二进制形式,自包含)
    • 文档化
    • 独立性
  • 构件组装方式:连接、包含、扩展(不含循环)
  • 操作完备性:提供接口是请求接口子集→操作不完备
  • 中间件:位于操作系统之上,屏蔽底层差异
    • 分类:消息中间件、交易中间件(OLTP)、对象中间件(CORBA/DCOM)、数据库中间件

9. MVC架构

  • Model:数据和业务逻辑
  • View:用户界面展示
  • Controller:接收请求、调用Model、选择View
  • 优点:解耦、多视图、可维护
  • 常与三层架构对比:MVC关注表示层,三层架构关注整个系统

10. ESB企业服务总线

  • 核心功能:消息路由、协议转换、数据转换、服务注册发现、安全控制、监控管理、负载均衡
  • 特点:松耦合、标准化接口、动态路由
  • 2023下案例第1题考ESB

真题考点映射

| 真题 | 考点 | 章节 | |------|------|------| | 2024上选择题第25题 | 数据流风格特点(管道传输) | 07-架构设计 | | 2024上选择题第26题 | 管道-过滤器处理节点(过滤器) | 07-架构设计 | | 2024上选择题第27题 | 黑板属于以数据为中心风格 | 07-架构设计 | | 2024上选择题第29题 | 最早文档化的架构分析方法SAAM | 07-架构设计 | | 2024上选择题第30题 | ADL(UniCon/Rapide/Darwin/Wright) | 07-架构设计 | | 2024上选择题第31题 | 4+1视图不包含测试视图 | 07-架构设计 | | 2024上选择题第37题 | 构件可配置 | 07-架构设计 | | 2024上选择题第39题 | 构件组装不含循环 | 07-架构设计 | | 2024上选择题第40题 | 操作不完备 | 07-架构设计 | | 2024上选择题第59题 | DSSA领域分析→领域模型 | 07-架构设计 | | 2024上案例题一 | 解释器风格+质量属性识别 | 07-架构设计 | | 2025上案例题一 | 解释器风格+质量属性识别 | 07-架构设计 | | 2023下案例题一 | ESB企业服务总线 | 07-架构设计 | | 2024下案例题一 | 架构风格+质量属性 | 07-架构设计 |

易错点/陷阱

  • 黑板系统属于以数据为中心风格,不是独立构件风格
  • 4+1视图不包含测试视图——经典陷阱
  • 构件组装方式不含"循环"
  • 管道-过滤器中处理数据的节点叫过滤器,不是处理器
  • 解释器风格的四大组件要能画出来(2024/2025连续考)
  • SAAM是最早形成文档并广泛使用的架构分析方法,ATAM关注4种质量属性

记忆口诀

  • 架构风格分类:数调独虚仓闭(数据流、调用返回、独立构件、虚拟机、仓库、闭环)
  • 4+1视图:逻开进物+场景(逻辑、开发、进程、物理+场景)
  • DSSA三活动:分设实(领域分析→领域设计→领域实现)
  • 解释器四组件:程序、引擎、状态、界面
  • ADL三要素:构连配(构件、连接件、架构配置)