软考架构师复习站

架构基础:先知道“架构师在设计什么”

本页覆盖经典架构风格、ABSD、DSSA、视图视角、架构设计活动和架构演化。它们是选择题和论文理论部分的底座。

本页脑图:架构基础怎么串

架构基础

风格

  • 分层
  • 事件驱动
  • 管道过滤器
  • 仓库/黑板

方法

  • ABSD
  • 需设文审实演
  • 视角与视图
  • 用例与质量场景

复用

  • DSSA
  • 领域分析
  • 参考架构
  • 组件复用

演化

  • 单体
  • 缓存/队列
  • 微服务
  • 云原生

经典架构风格

必考选择题论文理论

架构风格是系统组织方式的“套路”。选择题考定义和适用场景,案例题考为什么选这个风格,论文考你能否把风格和业务痛点绑定。

风格核心思想优势劣势适用场景考试记忆
分层表示层、业务层、数据层等按职责分层。职责清晰、便于维护、便于替换。跨层调用会破坏结构,层层调用可能有性能损耗。企业管理系统、传统 Web 应用。像公司部门,各层只和相邻层协作。
管道-过滤器数据依次经过多个过滤器处理。组件复用好,处理链清晰。不适合强交互,数据格式转换有成本。编译器、日志清洗、ETL。像流水线,每站只做一件事。
仓库/黑板多个组件共享一个中心数据仓库。数据共享方便,适合复杂协作。仓库可能成为瓶颈,组件围绕数据耦合。专家系统、数据平台、AI 推理。像会议白板,所有人围着同一份信息。
事件驱动事件发布者和消费者异步协作。解耦、削峰、扩展性好。调试复杂,要处理消息丢失、重复、乱序。订单、审计、通知、日志处理。看到“异步、解耦、事件”就想到它。
解释器定义一套语言或规则,由解释器执行。灵活,用户可配置规则。性能较低,规则复杂后难维护。规则引擎、脚本、游戏地图/行为定义。用户自己定义规则或脚本,优先解释器。
C/S 与 B/S客户端/服务器或浏览器/服务器。C/S 体验强,B/S 部署维护方便。C/S 升级麻烦,B/S 依赖网络和浏览器。办公系统、管理平台、跨区域访问。装客户端是 C/S,打开浏览器是 B/S。
论文写法:不要只说“采用微服务/分层/事件驱动”,要写“业务主链路采用同步分层保证事务清晰,审计和通知采用事件驱动异步处理,避免日志写入阻塞登录主流程”。

考试细化:架构风格怎么判断

题干关键词优先想到为什么常见干扰项
数据依次处理、每步独立、可组合管道-过滤器处理流程像流水线,每个过滤器只做一种转换。分层也有层次,但分层强调职责依赖,不强调数据流。
大量组件共享同一份数据、中心数据结构仓库/黑板核心是共享数据中心,组件围绕它读写。数据库不等于仓库风格,必须看是否是架构协作中心。
异步通知、解耦、削峰、发布订阅事件驱动生产者不直接调用消费者,通过事件或消息协作。消息队列是实现技术,事件驱动是架构风格。
表现、业务、数据职责清晰,上层依赖下层分层架构按抽象层次组织系统,提升可维护性。微服务也可内部使用分层,二者不是互斥。
规则可配置、脚本、语言解释执行解释器风格核心是定义语法/规则并解释执行。策略模式是局部设计模式,不是完整架构风格。

论文细化:风格选型必须写取舍

架构风格题最怕“我采用了某风格”一句带过。架构师论文要体现决策过程:候选方案、为什么不用、为什么选、带来什么质量属性收益、有什么副作用。

风格选型句式:针对【业务痛点】,我比较了【方案A】和【方案B】。方案A优势是【优势】,但在【约束】下存在【问题】;最终选择【方案B】,因为它能提升【质量属性】,同时通过【补偿措施】控制【副作用】。

ABSD:基于架构的软件开发

ABSD 强调由商业需求、质量需求和功能需求共同驱动架构设计。它不是先写代码再补架构,而是先识别架构驱动力,再设计、评审、实现和演化。

六个阶段

  1. 需求:识别功能需求、质量属性和约束。
  2. 设计:选择架构风格,确定构件和连接件。
  3. 文档化:用视图、接口、约束记录架构。
  4. 复审:通过评审发现风险和权衡点。
  5. 实现:按架构约束开发构件。
  6. 演化:随着业务和技术变化调整架构。

怎么记

需、设、文、审、实、演

像盖楼:先明确用途和约束,再出结构图,再形成图纸,再找专家审,再施工,最后维护改造。

ABSD 各阶段输入/输出

阶段输入主要活动输出常考点
架构需求业务目标、质量目标、功能需求、约束需求获取、标识构件、识别质量属性场景架构需求说明、初始构件用例描述功能需求,质量场景描述质量需求。
架构设计架构需求、候选风格、约束选择风格、映射构件、定义连接件、分析相互作用候选架构、接口、约束设计构件关系,不是编码实现构件。
架构文档化架构设计结果用视图记录结构、行为、部署和约束架构规格说明、质量属性说明架构用视角与视图描述。
架构复审架构文档、质量场景评审风险、评估质量属性、发现缺陷评审意见、风险清单可与 ATAM 结合考。
架构实现通过复审的架构构件实现、组装、系统测试可运行系统实现阶段才真正写代码。
架构演化变更需求、运行反馈影响分析、更新构件和交互、回归验证演化后的架构演化要控制兼容性和风险。

架构设计活动:设计构件,但不实现构件

错题高频

软件架构设计包括提出架构模型、产生架构设计、进行设计评审等活动,是迭代过程。这里很爱考“哪些属于架构设计,哪些已经进入实现”。

活动是否属于架构设计说明
选择合适架构风格属于早期需要根据质量属性和业务约束选择风格。
将已识别构件映射到架构并分析关系属于明确构件、连接件、依赖关系和接口。
设计构件属于架构设计会规定构件职责、接口、约束。
实现构件不属于实现是详细设计/编码阶段,不是架构设计活动本身。
邀请独立人员评审属于架构评审需要相对独立的视角发现风险。
选错点:选项里出现“设计并实现这些构件”,通常错在“实现”。架构师定义构件职责和关系,不在架构设计活动中完成编码实现。

视图与视角

架构不是一张图能讲清的。不同干系人关心不同问题,所以需要从多个视图描述同一系统。

逻辑视图

面向最终用户和分析人员,关注系统功能和核心抽象。

开发视图

面向程序员,关注模块划分、包结构、代码组织。

进程视图

面向性能和并发,关注线程、进程、通信和同步。

物理/部署视图

面向运维和系统工程师,关注节点、网络、部署拓扑。

场景视图

用关键用例串起其他视图,验证架构能否满足业务。

记忆

用户看功能,程序员看代码,运维看部署,性能人员看进程。

DSSA:特定领域软件架构

DSSA 是为某个特定应用领域提供的标准化、可复用架构。它适合论文,因为它天然可以写“领域分析、架构设计、组件复用、验证优化”。

三步理解

  1. 领域分析:找共性需求、变化点、领域对象。
  2. 领域设计:形成参考架构、标准组件、接口规范。
  3. 领域实现:把参考架构落到具体项目并复用组件。

用户认证系统例子

领域对象包括用户、角色、权限、资源、Token、审计事件。参考架构可拆成认证服务、权限服务、Token 服务、审计服务,并统一接口、日志格式和安全策略。

DSSA 深度记忆:三类角色与三类产物

角色

领域专家提供业务共性和变化点;领域分析师抽象领域模型;架构师/开发者把参考架构实现为可复用组件。

产物

领域模型描述核心概念;参考架构描述标准结构;组件库/框架支撑具体应用快速构建。

DSSA 论文句式:通过领域分析识别共性与变化点,形成参考架构和可复用组件,在具体项目中通过配置和扩展完成实例化。

架构演化:从能用到能扛

架构演化题要按时间线讲:每一步都是为了解决新的业务压力或质量属性问题。

  1. 单体阶段:开发快,适合早期业务,但模块耦合、部署慢。
  2. 分层优化:拆出表示层、业务层、数据层,提高可维护性。
  3. 缓存和读写分离:解决热点读和数据库压力。
  4. 消息队列:削峰填谷,异步处理审计、通知、积分等非主链路。
  5. 微服务拆分:按业务域独立部署和扩展,提高迭代效率。
  6. 云原生:用容器、K8s、CI/CD、可观测性提升交付和恢复能力。

架构演化论文:原架构问题 → 演化目标 → 分阶段改造 → 风险控制 → 量化效果 → 后续优化。