系统架构设计师备考站2027 上半年 · 通勤版 ⌕搜索
本页目录 · 12 节
  1. 一、分值定位
  2. 二、概念关系图(先理清"谁包含谁")
  3. 三、ABSD / ABSDM
  4. 3.1 ABSD 的三个理论基础
  5. 3.2 ABSDM 六个子过程(必背,顺序不能乱)
  6. 3.3 体系结构演化 6 步(论文高频,必背)
  7. 四、DSSA(特定领域软件架构)
  8. 4.1 定义与三活动
  9. 4.2 四类参与角色
  10. 4.3 垂直域 vs 水平域(最高频辨析)
  11. 4.4 DSSA 建立过程(5 步)
  12. 五、软件复用与软件产品线
  13. 5.1 复用的层次与类型
  14. 5.2 软件产品线
  15. 5.3 构件分类方法(三种,常考匹配)
  16. 六、构件与构件组装
  17. 6.1 构件的三个基本特征(教材原话)
  18. 6.2 构件模型三要素
  19. 6.3 构件组装三层次(必背)
  20. 6.4 主流构件技术对照
  21. 七、逆向工程与再工程
  22. 7.1 逆向工程的四个抽象层次(由低到高)
  23. 7.2 重构 / 逆向工程 / 再工程
  24. 7.3 遗留系统演化策略(四象限,必考)
  25. 八、跨年真题定位索引
  26. 九、典型陷阱
  27. 十、答题模板
  28. 模板 A:综合知识"某活动属于哪个子过程"(10 秒)
  29. 模板 B:案例/论文"构件化改造"论述骨架
  30. 模板 C:论文"论软件体系结构演化"
  31. 十一、自测清单
  32. 十二、来源与可信度

知识域 03 · 架构设计方法、构件复用与演化

题号指向 ../01-年份索引/<年份>-套卷.md。标记:〔核〕/〔推〕/〔存疑〕。


一、分值定位

科目频率形态
综合知识每套 4—8 题ABSD 六子过程、DSSA 三活动/角色/垂直域、构件特征与组装、逆向工程、演化 6 步、遗留系统策略
案例分析中低频(2018 下案例五 SOA 属 05 域;本域多在综合知识考)偶见"构件化改造"类问
论文高频备选(2022 下论文一"论基于构件的软件开发方法"、2018 下论文二"论软件体系结构演化")必须准备一套"构件化"项目素材

本域最大的特点是:名词密集、极易张冠李戴(ABSD / ABSDM / DSSA / 领域工程 / 产品线 五个概念互相套娃)。复习策略是画一张关系图,而不是逐条背。


二、概念关系图(先理清"谁包含谁")

软件复用
 ├─ 水平式复用(跨领域通用:标准函数库、中间件)
 └─ 垂直式复用(特定领域:医学词汇表、电子商务标准)
        └─ 领域工程(领域分析 → 领域设计 → 领域实现)
               ├─ DSSA(特定领域软件架构):产出领域参考架构
               └─ 软件产品线:核心资源 + 产品集合 + 生产方式

基于架构的软件设计(ABSD)
 └─ ABSDM 六子过程:需求 → 设计 → 文档化 → 复审 → 实现 → 演化
                                                    └─ 演化 6 步

构件化开发:构件(可独立部署)→ 构件模型(构件/容器/接口)→ 组装(定制/集成/扩展)
逆向工程 → 再工程(重构 + 逆向 + 前向)

三、ABSD / ABSDM

3.1 ABSD 的三个理论基础

  1. 功能的分解——用模块化把功能拆开;
  2. 通过选择体系结构风格来实现质量属性与商业需求;
  3. 软件模板的使用——复用架构骨架(对应产品线思想)。

3.2 ABSDM 六个子过程(必背,顺序不能乱)

序号子过程主要工作产出
1体系结构需求从需求中提取质量属性与商业需求,确定优先级需求列表、质量属性场景
2体系结构设计选择风格、划分构件、定义接口与连接件体系结构模型
3体系结构文档化编写体系结构文档、视图架构文档、多视图
4体系结构复审由外部人员评审,识别风险与潜在问题复审报告
5体系结构实现按架构开发构件、组装、测试可运行系统
6体系结构演化需求变化后按 6 步调整架构新版本架构

真题:2023 下 52(ABSD 六阶段)、2024 下 36、2025 下 40、2022 下 46—47、2021 下 44—45、2026 上 59—60、2019 下 51—53(ABSDM 六子过程)。

3.3 体系结构演化 6 步(论文高频,必背)

  1. 需求变动归类——把新需求与已有构件对应,找不到对应的做标记;
  2. 制订体系结构演化计划——作为后续工作的指南;
  3. 修改、增加或删除构件——并对改动的构件做功能测试;
  4. 更新构件的相互作用——更新控制流与接口;
  5. 构件组装与测试——组装成新架构,做整体功能与性能测试;
  6. 技术评审——确认新架构反映需求变化;不符合则在 2—6 步间迭代。

真题:2018 下论文二(原题直接问"系统演化的 6 个步骤")、2024 上 20、2025 下 11(变更分类)、2024 下 61。


四、DSSA(特定领域软件架构)

4.1 定义与三活动

DSSA:在一个特定应用领域中,为支持一组应用系统的生成而开发的、具有普遍适用性的软件架构。

活动目标主要产出
领域分析获得领域模型领域模型、领域需求
领域设计获得DSSA(领域参考架构)参考架构
领域实现开发和组织可重用信息,对基础架构进行实现可复用构件、领域实现

母题(2018 下 45—46,〔推〕答案 B、C):领域设计的目标是获得特定领域软件架构;领域实现是为了开发和组织可重用信息、对基础软件架构进行实现。

4.2 四类参与角色

角色职责
领域专家提供领域知识、需求与经验,确认领域模型
领域分析师领域建模、提炼共性与可变性
领域设计人员设计 DSSA 参考架构
领域实现人员开发可复用构件、实现架构

4.3 垂直域 vs 水平域(最高频辨析)

概念含义举例
垂直域限定在一个特定领域内的共性银行清算系统的共性架构
水平域多个领域共享的共性部分日志、安全、通信中间件

真题:2026 下 24、2021 下 49—50、2023 下 37。

4.4 DSSA 建立过程(5 步)

  1. 定义领域范围;
  2. 定义领域特定的元素;
  3. 定义领域特定的设计和实现需求约束;
  4. 定义领域模型和体系结构;
  5. 产生、搜集可重用的产品单元。

真题:2026 下 28、2025 下 13、2022 下 53。


五、软件复用与软件产品线

5.1 复用的层次与类型

维度类型例子
范围水平式复用标准函数库、中间件、通用框架
范围垂直式复用医学词汇表、电子商务标准、网银支付接口
层次代码复用 < 设计复用 < 架构复用 < 领域复用 < 产品线复用层次越高收益越大、难度越大

母题(2018 下 35,〔推〕答案 B):标准函数库是典型的水平式复用(医学词汇表、电子商务标准是垂直式)。

5.2 软件产品线

  • 三个基本成分:核心资源(架构 + 可复用构件)、产品集合、生产方式(框架/设计模式/构件)。
  • 与 DSSA 的关系:DSSA 提供参考架构,产品线在此之上批量生产产品。
  • 真题:2025 上 27、2024 上 31—32。

5.3 构件分类方法(三种,常考匹配)

方法机制特点
关键字分类法按层次化关键字(术语表)组织简单,受限于术语表
刻面分类法(Faceted)用多个"刻面"(如功能、对象、算法)描述,每刻面有术语空间灵活、支持多维检索,最常用
超文本组织方法用链接把构件文档连成网适合浏览、不利于精确检索

真题:2019 下 35—37、2020 下 35、2023 下 62(构件库管理)。


六、构件与构件组装

6.1 构件的三个基本特征(教材原话)

  1. 独立部署单元——可独立打包、部署;
  2. 作为第三方组装单元——由第三方按契约组装,不需了解内部实现;
  3. 没有外部可见状态——对外只暴露接口,不暴露内部状态。

真题:2024 上 35、2023 下 61(外部可见性)、2022 下 35、2021 下 35。

6.2 构件模型三要素

构件(Component)+ 容器(Container)+ 构件接口(Interface)。

  • 接口分离原则:构件对外只暴露接口,实现细节隐藏。
  • 契约式接口:用前置条件/后置条件(契约)描述构件行为,是"设计即文档"的手段。真题 2023 下 67。

6.3 构件组装三层次(必背)

层次含义
定制(Customization)通过参数/配置调整构件行为
集成(Integration)通过胶水代码/适配器把构件连接
扩展(Extension)通过继承/包装增加新能力

母题(2018 下 39,〔推〕答案 C):定制、集成和扩展。

组装失败的常见原因(2024 上 34):接口不匹配、语义不一致、构件版本冲突、质量属性不达标。

6.4 主流构件技术对照

技术构件形态关键概念
EJB会话 Bean(业务交互)/ 实体 Bean(持久化)/ 消息驱动 Bean(异步)容器管理事务与生命周期
CORBA伺服对象(Servant)是对象的真正实现,负责完成客户端请求ORB、对象适配器
COM/DCOM对象复用:包容(containment)/ 聚合(aggregation)接口 IUnknown
J2EE五种构件:Applet、Servlet、JSP、EJB、Application Client多层应用

真题:2018 下 36—41(EJB 三类、CORBA Servant、J2EE 五构件)、2021 下 37—38(COM 组装)、2022 下 37(服务端构件模型)。


七、逆向工程与再工程

7.1 逆向工程的四个抽象层次(由低到高)

层次恢复的信息
实现级语法树、符号表、过程设计表示
结构级构件间调用关系、依赖关系、程序结构
功能级程序段与功能(语义)的对应
领域级程序实体与领域概念的对应

真题:2025 下 23、2025 上 39、2019 下 39—41(常问"恢复调用关系属于哪一级"→结构级)。

7.2 重构 / 逆向工程 / 再工程

概念定义是否改变架构
重构(Refactoring)不改变外部行为,改善内部结构否
逆向工程(Reverse Engineering)从代码恢复设计与需求信息否(只产出信息)
再工程(Reengineering)逆向 + 重构 + 前向工程,重建系统是

7.3 遗留系统演化策略(四象限,必考)

高业务价值低业务价值
高技术质量改造(Evolution)继承(Maintenance)
低技术质量集成(Integration)淘汰(Elimination)

真题:2022 下 43、2023 下(遗留系统)、2024 下 12(软件维护)。


八、跨年真题定位索引

年份题号考点
2026 下24 / 27 / 28DSSA 垂直域/水平域、软件动态性、DSSA 建立过程
2026 上46 / 59—62软件复用、ABSD、领域工程
2025 下11 / 13 / 23 / 40 / 60架构演化变更分类、DSSA 领域分析、逆向工程、ABSD、软件复用
2025 上27 / 39软件产品线、逆向工程
2024 下12 / 36 / 53 / 61软件维护、ABSD、软件复用、体系结构演化
2024 上20 / 31—35体系结构演化、可复用资产、领域模型、构件组装方式、组装失败原因、构件基本特征
2023 下21 / 37 / 43—44 / 52—54 / 61—64 / 67—69架构复用、DSSA、ABSD、ABSD 六阶段、领域工程、构件外部可见性、构件库、构件类型、契约式接口、构件质量特性
2022 下35—38 / 43 / 46—47 / 50—53构件特征/接口/服务端模型/构件演化、遗留系统、ABSD、架构复用、DSSA
2021 下35—38 / 44—45 / 49—50构件特征、构件交互问题、COM 组装、ABSD、DSSA 垂直域/水平域
2020 下35构件分类
2019 下35—41 / 51—53构件分类方法、构件组装、逆向工程、ABSDM 六子过程
2018 下35—41 / 45—46软件重用、EJB、构件组装层次、CORBA、J2EE、DSSA
2018 下论文二体系结构演化 6 步
2022 下论文一基于构件的软件开发方法

九、典型陷阱

  1. ABSD ≠ ABSDM:ABSD 是"方法",ABSDM 是其"模型/过程"(六子过程)。
  2. DSSA 三活动的产出:领域分析→领域模型;领域设计→DSSA;领域实现→可复用构件。三者错位是最高频失分点。
  3. 垂直域 vs 水平域:垂直=领域内共性,水平=跨领域共性。别按"上下"字面理解。
  4. 逆向工程四层次顺序:实现级 < 结构级 < 功能级 < 领域级。"恢复调用关系"是结构级,不是功能级。
  5. 构件"没有外部可见状态":这是教材原话,选项若改成"构件必须无状态"则是错误表述(构件内部可有状态,只是不对外可见)。
  6. 组装三层次是"定制/集成/扩展",不是"初始化/互连/集成"(后者是干扰项)。
  7. 遗留系统四象限:技术质量高+价值低→继承;技术质量低+价值高→集成(不是"改造")。
  8. 产品线 ≠ DSSA:DSSA 产出参考架构,产品线是"批量生产产品"的组织方式。
  9. 演化 6 步的第 1 步是"需求变动归类",不是"制订计划";第 6 步是"技术评审",不是"部署上线"。

十、答题模板

模板 A:综合知识"某活动属于哪个子过程"(10 秒)

出现"提取质量属性/优先级"        → 体系结构需求
出现"选风格/划分构件/定义接口"   → 体系结构设计
出现"写文档/视图"                → 文档化
出现"外部专家评审/风险识别"      → 复审
出现"按架构开发构件/组装"        → 实现
出现"需求变化后调整架构"         → 演化

模板 B:案例/论文"构件化改造"论述骨架

① 现状痛点:单体系统、模块耦合、复用率低(给量化:复用率 <20%,新增功能平均 X 人日)
② 领域分析:识别共性(水平域:日志/权限/通信)与可变性(垂直域:业务规则)
③ 参考架构:按 DSSA 定义分层与构件边界,明确契约式接口(前置/后置条件)
④ 组装策略:定制(配置化)→ 集成(适配器/ESB)→ 扩展(插件)
⑤ 治理:构件库 + 刻面分类 + 版本管理 + 质量认证
⑥ 效果:复用率提升至 X%,新业务上线周期从 X 周降到 Y 周

模板 C:论文"论软件体系结构演化"

一、项目背景(300 字)
二、演化 6 步逐条展开(600 字,每步给一句"我们做了什么")
三、重点讲 2 步(600 字):建议选"需求变动归类"和"构件组装与测试",
   前者体现需求—构件映射能力,后者体现工程落地能力
四、效果与不足(300 字)

十一、自测清单

  • [ ] 默写 ABSDM 六子过程并各说一句主要工作
  • [ ] 默写体系结构演化 6 步
  • [ ] 说出 DSSA 三活动、四角色、垂直域/水平域区别
  • [ ] 说出构件三个基本特征、构件模型三要素、组装三层次
  • [ ] 说出三种构件分类方法及各自优缺点
  • [ ] 说出逆向工程四层次并举例
  • [ ] 画出遗留系统四象限并给出四种策略
  • [ ] 区分水平式复用与垂直式复用,各举两例

十二、来源与可信度

  • 概念表述以《系统架构设计师教程》"基于架构的软件设计""软件复用""构件技术"章节为准。
  • 2018 下 35/39/45/46 题为〔推〕,已与教材定义交叉验证;EJB/CORBA/J2EE 三题为常识性技术事实,可信度高。
  • 部分年份(2018 下、2024 上、2023 下)为考点还原而非完整题面,细节以套卷标注为准。