科目 综合知识/案例分析 · 考频 ★★★★★ · 场景:知识域→一、架构风格:先会分类再谈选择,刷真题→五、架构评估(ATAM/SAAM/CBAM),案例答题→八、案例分析怎么用这张表

一句话:这是全卷分值最大的一块(软件架构设计 16~28 分,见 重点分布与分值),也是案例必答题和论文的地基。这篇把「风格 → 模式 → 质量属性 → 评估 → 视图 → 构件」这条主线一次理清。

学习地图

你在哪一步看哪节
分不清架构风格一、架构风格:先会分类再谈选择 → 二、架构风格逐个拆
质量属性怎么答场景题四、质量属性与战术
案例常考评估方法五、架构评估(ATAM/SAAM/CBAM)
4+1 视图与文档六、4+1 视图与架构文档
构件/中间件/演化七、构件、中间件与架构演化
临考冲刺八、案例分析怎么用这张表

一、架构风格:先会分类再谈选择

架构风格(architectural style)是一组约束,限定了一类系统中构件的类型与组织方式。考题两种问法:给描述让你识别风格,或给需求让你选风格。

五大类(教科书分类):

大类子风格一句话特征
数据流批处理、管道-过滤器数据沿管道流动,每级过滤器变换后交给下一级
调用/返回主程序-子程序、面向对象、层次结构显式调用,控制流清晰
独立构件进程通信、事件驱动(隐式调用)构件独立运行,通过消息/事件松耦合
虚拟机解释器、规则系统把「语义」参数化,程序=数据+解释引擎
仓库数据库系统、黑板系统共享数据中心,构件围绕仓库协作

考点直觉:

  • 数据流 → 强调可重用、可扩展,性能瓶颈在管道
  • 事件驱动 → 强调松耦合、新增构件不改旧构件,但执行顺序难保证、调试难
  • 虚拟机 → 灵活、可移植,但性能差(解释器逐条翻译)
  • 黑板 → 适合没有确定算法的问题(语音识别、专家系统)

二、架构风格逐个拆

风格优点缺点适用场景
管道-过滤器重用、易扩展、可并发性能开销大、难以动态交互编译、图像处理、数据流处理
主程序-子程序简单直观复用差、变化敏感小型系统
面向对象封装、继承、多态对象间耦合、性能开销业务系统
层次结构每层职责单一、可替换层间调用开销、层间耦合网络协议栈、OS
事件驱动松耦合、易扩展顺序不确定、调试难GUI、物联网
解释器灵活、可移植性能差脚本、DSL
规则系统知识可增删规则冲突、性能专家系统
仓库/黑板集中、适合复杂问题中心瓶颈、并发控制难AI、编译器符号表
C/S结构简单客户端负担重、扩展性差局域网应用
B/S/三层部署简单、集中管理服务器压力、交互体验弱Web 系统
SOA服务复用、松耦合治理复杂、性能损耗企业应用集成
微服务独立部署、技术异构分布式复杂度高大型业务系统

三、架构模式与架构风格的关系

  • 风格 = 粗粒度「体系结构级」;模式 = 细粒度「设计级」(MVC/MVP/MVVM、微内核、代理、Broker、管道等)
  • 同一风格下可以套多个模式;考题会把两者混在一起让你区分
  • 高频模式:MVC(视图/模型/控制器职责分离)、微内核(核心 + 插件热插拔)、代理/Broker(中间层透明转发)、客户端-服务器分层
  • 考点:MVC 的三层职责、微内核的插件机制、Broker 的透明调用

四、质量属性与战术

质量属性场景六要素(必考,案例必答题核心)

一个质量属性场景由六要素构成:刺激源(来源)、刺激、环境、构件(制品)、响应、响应度量。 真题问法:把一段描述拆成六要素,或判断「xx 与哪个质量属性相关、用什么战术」。

四大质量属性与战术

质量属性战术方向典型战术
性能资源需求/资源管理/资源仲裁引入并发、减少计算量、缓存、调度策略、负载均衡
可用性错误检测/恢复/预防心跳、冗余(主动/被动)、故障转移、重试、超时
安全性抵抗/检测/恢复攻击认证授权、加密、审计追踪、入侵检测
可修改性局部化修改/防连锁反应/推迟绑定高内聚低耦合、接口隔离、配置化、插件化

考点:给你场景让你选质量属性 + 战术(如「主站断电 20 秒内切换备用站点」→ 可用性 + 主动冗余)。


五、架构评估(ATAM/SAAM/CBAM)

  • SAAM:最早的场景化评估,用场景衡量架构(以可修改性为主)
  • ATAM:质量属性权衡分析方法——效用树 + 场景 + 敏感点/权衡点,识别架构决策对多个质量属性的影响(当前考试主力)
  • CBAM:在 ATAM 基础上加成本/收益分析,从候选架构中选 ROI 最高的
  • 四个概念必背:
    • 敏感点:构件特性的变化会影响某个质量属性的点
    • 权衡点:影响多个质量属性、需要权衡取舍的敏感点
    • 风险点:存在潜在问题、可能导致质量属性不达标的决策
    • 非风险点:被验证没有问题的决策
  • 真题考法:给架构决策表,让你标出敏感点/权衡点/风险点,或问 ATAM 的步骤

六、4+1 视图与架构文档

  • 4+1 视图(Kruchten/RUP):逻辑视图(功能)、进程视图(并发与同步)、开发视图(模块组织)、物理视图(部署)+ 场景(用例串联四个视图)
  • 每个视图回答一类 stakeholder 的问题;场景是最小集成单元
  • 架构文档(SAD):记录视图、架构决策与理由、质量属性场景;文档是评审与演化的基础
  • 考点:给一组图判断属于哪个视图;UML 各图与视图的对应(类图→逻辑视图,部署图→物理视图,序列图→进程/场景)

ADL 与 ABSD

  • ADL(架构描述语言):用形式化语言描述构件、连接件与配置(如 ACME/Wright/Darwin),把架构从「图」变成可分析、可验证的模型
  • ABSD(基于架构的软件开发):以架构为核心驱动开发过程——架构需求 → 架构设计 → 架构文档化 → 架构复审 → 架构实现 → 架构演化,迭代进行
  • 考点:ABSD 步骤排序、ADL 的作用(描述 + 分析,不只是画图)

七、构件、中间件与架构演化

构件技术

  • 构件 = 可独立部署、接口明确、可复用的软件单元;三大特性:可重用、可替换、接口标准化
  • 经典规范:COM/DCOM、CORBA、EJB、.NET(近年考得少,但概念题仍会出现)
  • 构件与对象的区别:构件粗粒度、二进制级复用,对象细粒度、源码级

中间件分类(高频)

中间件作用
RPC(远程过程调用)透明调用远程函数
MOM(消息中间件)异步解耦、削峰填谷
ORB(对象请求代理)分布式对象透明调用(CORBA 核心)
TP Monitor(事务处理)事务管理、负载均衡
数据访问中间件屏蔽异构数据库差异

架构演化

  • 演化动机:需求变化、技术升级、质量缺陷
  • 三类演化:修改(小改动)、重构(优化结构不改功能)、重新架构(推倒重来)
  • 架构漂移/侵蚀:实现偏离架构决策 → 靠架构评审 + 文档 + 自动化约束拦截

八、案例分析怎么用这张表

  • 必答题大概率是「质量属性场景 + 战术/评估」:先写六要素,再答战术,最后说权衡
  • 风格识别题:找特征词(管道→逐级处理;事件→异步通知;黑板→无确定算法)
  • 权衡题:答「敏感点/权衡点」而不是只列优点——阅卷看的是架构决策的权衡意识
  • 重点分布与分值 的 P0 策略对应:这篇消化完,综合知识最大的分值块就稳了一半

相关