本页目录 · 5 节
- 一、知识框架
- 二、必背要点
- 2.1 软件架构的定义(三种表述,考选择题)
- 2.2 软件架构发展历程(6 个阶段)
- 2.3 四类架构(企业架构视角,案例题会用)
- 2.4 架构描述语言(ADL,选择题偶考)
- 2.5 架构师职责与知识结构
- 三、易混淆概念对比
- 四、常见考法与出题角度
- 五、速记与自测
第 1 章 绪论#
对应大纲:科目 1 前置认知内容|教材 P3–P23|优先级 ★★|综合知识估分 0~1 分|论文:职业认知可用
读法:通读一遍即可,不要背。本章唯一的实用价值是——论文开头那句「我作为系统架构设计师,负责……」写得像内行。
一、知识框架#
绪论
├─ 1.1 系统架构概述
│ ├─ 定义与发展历程(模块化→结构化→OO→构件→SOA→云原生)
│ ├─ 常用分类(业务/应用/数据/技术 四类架构)
│ ├─ 建模方法(结构化、面向对象、形式化、ADL)
│ ├─ 应用场景
│ └─ 发展未来(云原生、智能化、服务化)
├─ 1.2 系统架构设计师概述
│ ├─ 定义、职责、任务
│ ├─ 专业素质
│ └─ 知识结构
└─ 1.3 如何成为好的架构设计师
├─ 优秀架构师的衡量标准
└─ 从工程师到架构师的演化
二、必背要点#
2.1 软件架构的定义(三种表述,考选择题)#
| 表述来源 | 核心内容 | 记忆抓手 |
|---|
| 组成派 | 架构 = 构件 + 构件之间的关系 + 约束规则 | 三个词:构件、关系、约束 |
| 决策派 | 架构 = 一系列重要设计决策的集合 | 决策 = 权衡的结果 |
| ISO/IEC 42010(IEEE 1471) | 架构是系统的基础组织,体现在构件、构件间及与环境的关系,以及指导其设计与演化的原则 | 组织 + 关系 + 原则 |
通用记忆句:架构描述的是「有哪些部分、怎么连、受什么约束、为什么这么定」。
2.2 软件架构发展历程(6 个阶段)#
| 阶段 | 时间 | 标志 | 关键词 |
|---|
| 模块化 | 1960s–70s | 高内聚低耦合、信息隐藏 | Parnas |
| 结构化 | 1970s–80s | 自顶向下、功能分解 | DFD、SA/SD |
| 面向对象 | 1980s–90s | 封装、继承、多态 | UML |
| 基于构件 | 1990s | 构件复用、CBD | CORBA、EJB、COM |
| 面向服务 | 2000s | 松耦合、服务编排 | SOA、Web Service、ESB |
| 云原生/微服务 | 2010s– | 容器、微服务、Serverless | K8s、Service Mesh |
2.3 四类架构(企业架构视角,案例题会用)#
| 架构类型 | 回答什么问题 | 产出物举例 |
|---|
| 业务架构 | 业务做什么、流程怎么走 | 业务流程图、业务能力地图 |
| 应用架构 | 系统分成哪几个应用、如何交互 | 应用全景图、接口清单 |
| 数据架构 | 数据从哪来、存哪、怎么流 | 数据模型、数据分布图 |
| 技术架构 | 用什么技术栈、部署在哪 | 部署图、技术选型清单 |
2.4 架构描述语言(ADL,选择题偶考)#
| ADL | 特点(一句话) |
|---|
| Wright | 用 CSP 形式化描述连接件,强于行为约束 |
| C2 | 支持层次消息总线风格,构件间只通过连接件异步消息通信 |
| ACME | 通用交换语言,用于不同 ADL 之间的互操作 |
| UniCon | 面向构件与连接件的配置,强调可执行 |
| Rapide | 基于事件,支持并发与因果关系分析 |
| Darwin | 支持分布式、动态架构的描述 |
2.5 架构师职责与知识结构#
| 维度 | 内容 |
|---|
| 职责 | 需求分析 → 架构设计 → 架构文档化 → 架构评审 → 指导实现 → 架构演化与维护 |
| 任务 | 确定非功能需求、技术选型、划分模块与接口、制定技术规范、识别技术风险 |
| 专业素质 | 技术广度(T 型)、业务理解力、抽象能力、沟通协调、决策与权衡、持续学习 |
| 知识结构 | 技术(软硬件/网络/数据/安全)+ 业务(行业领域)+ 工程(方法/标准)+ 管理(项目/团队) |
三、易混淆概念对比#
| A | B | 区别 |
|---|
| 架构(Architecture) | 架构风格(Architecture Style) | 架构是某个系统的具体组织;风格是可复用的设计惯用法族 |
| 架构设计 | 详细设计 | 架构关注全局、非功能、边界;详细设计关注模块内部算法与数据结构 |
| 架构师 | 系统分析师 | 分析师偏需求与业务建模;架构师偏技术方案与质量属性权衡 |
| 架构师 | 项目经理 | 架构师对技术决策负责;项目经理对进度、成本、资源负责 |
| 架构描述(AD) | 架构描述语言(ADL) | 前者是文档本身;后者是写文档所用的形式化语言 |
四、常见考法与出题角度#
| 题型 | 出题方式 | 答题/得分要点 |
|---|
| 单选 | 给出架构定义,问「不属于架构描述要素的是」 | 记死三要素:构件、关系、约束 |
| 单选 | 给出某 ADL 的特征,问是哪种语言 | Wright→CSP/连接件;C2→层次消息总线;ACME→交换 |
| 单选 | 架构师在项目中的职责边界 | 不负责具体编码、不负责排期 |
| 论文 | 开头需要交代角色定位 | 用「负责系统技术方案设计与关键技术决策」这类表述 |
五、速记与自测#
速记
- 架构三要素:件、系、约(构件、关系、约束)
- 发展六段:模、结、对、构、服、云
- 四类架构:业、应、数、技
- ADL 口诀:W 连接、C2 层次、ACME 交换、Rapide 事件、Darwin 动态
自测
- 用一句话说明「架构」与「架构风格」的差别。
- 架构师的 6 项主要职责按时间顺序说出来。
- 若某 ADL 强调「连接件的显式形式化描述」,最可能是哪一个?
答案:1. 架构是具体系统的组织,风格是可复用的设计惯用法族;2. 需求分析→架构设计→文档化→评审→指导实现→演化维护;3. Wright。