所属篇章:上篇·综合知识预估分值:2~3 分考查重点:系统架构设计师的角色定位、职责范围、能力要求难度等级:★★☆(记忆为主,理解为辅)
一、本章知识图谱
绪论├── 1.1 系统架构的概念与演进├── 1.2 系统架构设计师的角色与职责├── 1.3 架构师应具备的知识结构├── 1.4 软件架构的发展脉络└── 1.5 考试概述与题型分布二、核心考点详解
考点 1:系统架构的概念
架构(Architecture) 一词最早源自建筑学领域,由 Vitruvius 在其著作《建筑十书》中提出建筑的三要素:坚固(Firmitas)、实用(Utilitas)、美观(Venustas)。这一思想被引入软件工程领域后,演化为软件系统的基本结构定义。
系统架构的核心定义(考试高频表述):
- IEEE 1471 定义
架构是一个系统的基本组织,体现为系统的组件、组件之间的关系以及组件与环境之间的关系,以及指导其设计和演化的原则。 - Bass 定义
架构是关于系统计算结构和组件交互的一组决策。 - 实践理解
架构是系统在较高层次上的设计决策,关注的是"做什么"和"怎么组织",而不是"怎么做"的细节。
易混淆点:架构 ≠ 设计。架构关注宏观结构和关键决策,设计关注微观实现细节。架构决策具有不易变更的特性。
考点 2:系统架构设计师的角色定位
系统架构设计师是介于需求分析与详细设计之间的关键角色,承担从"问题空间"到"解空间"的桥梁职能。
2.1 架构师在开发流程中的位置
需求分析 → 【架构设计】→ 详细设计 → 编码实现 → 测试验证 ↑ ↑ 需求分析师 架构设计师2.2 架构师的核心职责(高频考点)
2.3 架构师的知识结构(T 型人才)
架构师应具备 "T"字型知识结构:
- 横轴(广度)
了解广泛的技术领域,包括网络、安全、数据库、中间件、操作系统等 - 纵轴(深度)
在某一特定领域有深入的专业知识
考试要点:架构师不是"全栈工程师",重点在于系统级的设计能力和决策能力,而非编码能力。
考点 3:架构风格的分类(了解层次)
虽然详细分类在后续章节展开,但绪论中需要了解架构风格的基本分类框架:
考点 4:软件架构的发展阶段
三、历年真题解析
【真题 2021 年·综合知识】
题目:系统架构设计师在进行架构设计时,首先需要关注的是( )。
A. 代码的可读性B. 系统的功能需求和非功能需求C. 开发团队的编码能力D. 第三方组件的许可证
答案:B
解析:架构设计的出发点是对需求的全面理解,尤其是非功能需求(性能、安全、可用性等)往往是架构决策的主要驱动力。代码可读性属于详细设计层面的考虑,编码能力和许可证是实施约束而非设计出发点。
【真题 2022 年·综合知识】
题目:以下关于系统架构设计师职责的叙述中,不正确的是( )。
A. 架构设计师应参与需求分析阶段的工作B. 架构设计师负责制定系统的技术路线C. 架构设计师应负责编写所有的详细设计文档D. 架构设计师需要评估候选架构方案
答案:C
解析:编写"所有的详细设计文档"是详细设计人员和开发人员的工作,架构设计师关注的是高层设计和关键决策。架构设计师需要参与需求分析(A 正确)、制定技术路线(B 正确)、评估候选方案(D 正确)。
【真题 2023 年·综合知识】
题目:IEEE 1471 标准中,架构的定义强调了三个核心要素,分别是( )。
A. 组件、连接件、约束B. 模块、接口、协议C. 组件、关系、原则D. 结构、行为、属性
答案:C
解析:IEEE 1471(ISO/IEC/IEEE 42010)将架构定义为"系统的基本组织,体现为组件、组件间关系以及组件与环境间关系,以及指导设计和演化的原则"。选项 A 是 Perry & Wolf 的经典架构定义,注意区分。
考点 5:架构利益相关者与架构文档
利益相关者(Stakeholder):对系统有兴趣或受系统影响的个人、团队或组织。
架构文档化:架构设计的重要输出物,应包括:
架构愿景和目标 架构设计决策及其理由 系统分解和组件关系 接口定义和约束条件 质量属性实现策略
考点 6:架构与开发过程的关系
架构驱动的开发(ADD):
架构设计是开发过程的核心活动 架构决策影响后续所有开发活动 架构需要在开发过程中持续验证和演化
架构在项目中的活动序列:
需求获取 → 识别架构驱动因素(关键功能需求和质量需求) 架构设计 → 选择架构风格、划分组件、定义接口 架构评审 → 使用 ATAM/SAAM 等方法评估架构 架构文档化 → 形成架构文档,作为开发团队的共识 架构实现 → 按架构设计进行详细设计和编码 架构符合性检查 → 确保实现不偏离架构设计
三、补充历年真题解析
【真题 2019 年·综合知识】
题目:软件架构设计的主要输出物不包括( )。
A. 架构设计文档B. 详细设计规格说明C. 架构视图D. 技术选型方案
答案:B
解析:详细设计规格说明是详细设计阶段的输出物,不属于架构设计的输出。架构设计输出包括架构文档、架构视图、技术选型方案、风险清单等。
【真题 2020 年·综合知识】
题目:以下关于架构决策的叙述中,正确的是( )。
A. 架构决策一旦做出就不能更改B. 架构决策只关注功能需求C. 架构决策应记录其理由和约束条件D. 架构决策不影响系统的非功能属性
答案:C
解析:架构决策应记录决策的理由(rationale)和约束条件,以便于后续维护和演化。架构决策可以更改但代价大(A 错),架构决策需关注功能和非功能需求(B 错),架构决策直接影响质量属性(D 错)。
【真题 2022 年·综合知识】
题目:在架构风格中,黑板系统属于( )风格。
A. 数据流B. 调用/返回C. 独立组件D. 仓库
答案:D
解析:黑板系统以共享知识库为中心,多个知识源协作求解,属于仓库风格。仓库风格的典型代表包括数据库系统、黑板系统和超文本系统。
【真题 2023 年·综合知识】
题目:以下不属于架构师核心职责的是( )。
A. 确定系统架构的关键设计决策B. 编写单元测试代码C. 评估候选架构方案的优劣D. 指导开发团队按照架构设计实施
答案:B
解析:编写单元测试代码属于开发人员的工作。架构师的核心职责是架构决策(A)、方案评估(C)和指导开发(D),而非具体的编码和测试工作。
考点 7:软件架构的常用分类及建模方法
架构分类:
架构建模方法:
| 4+1 视图 | ||
| ADME | ||
| ABSD | ||
| DSSA |
考点 8:软件架构的应用场景
典型应用场景:
- 企业信息系统
ERP、CRM、OA 等系统的架构设计 - 互联网应用
电商、社交、视频等平台的高并发架构 - 嵌入式系统
汽车电子、医疗设备、工业控制 - 分布式系统
云计算、大数据、微服务 - 实时系统
金融交易、航空航天、工业控制
三、补充历年真题解析
真题 2020 年·综合知识
题目:以下关于软件架构建模方法的叙述中,正确的是( )。
A. 4+1 视图模型只关注技术层面B. ADME 是一种架构评估方法C. ABSD 强调以架构为中心驱动开发D. DSSA 只适用于特定编程语言
答案:C
解析:ABSD(基于架构的软件开发)的核心思想是以架构为中心驱动整个开发过程。4+1 视图关注多个利益相关者的视角(A 错),ADME 是架构决策建模(B 错),DSSA 与编程语言无关(D 错)。
真题 2019 年·综合知识
题目:软件架构在软件生命周期中的角色是( )。
A. 仅在需求分析阶段发挥作用B. 贯穿软件生命周期的全过程C. 仅在编码和测试阶段发挥作用D. 仅在维护阶段发挥作用
答案:B
解析:架构设计贯穿软件生命周期的全过程,从需求分析、设计、实现、测试到维护,架构决策持续影响。这是架构设计的重要特征之一。
真题 2021 年·综合知识
题目:以下关于架构利益相关者(Stakeholder)的叙述中,不正确的是( )。
A. 客户是架构的利益相关者B. 开发人员是架构的利益相关者C. 架构师只需考虑技术团队的诉求D. 运维人员也是架构的利益相关者
答案:C
解析:架构的利益相关者包括客户、用户、开发人员、测试人员、运维人员、项目经理、管理层等。架构师需要平衡所有利益相关者的诉求,而不仅是技术团队。
真题 2022 年·综合知识
题目:架构师应具备的知识结构中,“T 型人才”的含义是( )。
A. 只精通一个技术领域B. 广泛了解所有领域,但不深入C. 在一个领域深入,同时具有广泛的知识面D. 只关注管理技能
答案:C
解析:T 型人才指在一个领域深入(纵向深度),同时具有广泛的知识面(横向广度)。架构师需要在技术深度和业务广度之间取得平衡。
真题 2023 年·综合知识
题目:以下关于架构文档的叙述中,正确的是( )。
A. 架构文档只需在架构设计完成后编写一次B. 架构文档应根据不同利益相关者的需求提供不同视图C. 架构文档只关注技术实现细节D. 架构文档不需要更新
答案:B
解析:架构文档应根据不同利益相关者的需求提供不同视图(如业务视图、技术视图、部署视图等)。架构文档是活文档,需要随系统演化而更新(A/D 错),不仅关注技术实现(C 错)。
考点 9:架构师的职责与能力要求
架构师核心职责:
| 架构决策 | |
| 架构评估 | |
| 技术指导 | |
| 沟通协调 | |
| 风险管理 | |
| 技术演进 |
架构师能力模型:
| 技术能力 | |
| 业务能力 | |
| 软技能 | |
| 管理能力 |
考点 10:五种架构风格详解
| 数据流 | ||
| 调用/返回 | ||
| 独立组件 | ||
| 虚拟机 | ||
| 仓库 |
架构风格选择原则:
数据流处理 → 管道-过滤器 复杂系统分层 → 层次式架构 异步交互 → 事件驱动 多专家协作 → 黑板系统 业务规则引擎 → 规则系统
三、补充考点
考点 11:架构描述语言(ADL)
ADL 核心元素:组件(Component)、连接器(Connector)、配置(Configuration)
考点 12:架构视图与 4+1 视图模型
4+1 视图模型核心思想:用多个视图从不同角度描述架构,场景视图用于验证其他视图
考点 13:系统架构师考试概述
三科必须同时达到 45 分才能通过
真题 2022 年·综合知识
题目:在 4+1 视图模型中,进程视图主要关注( )。
A. 功能需求和业务逻辑B. 并发、同步、性能等非功能需求C. 代码模块的组织与分层D. 硬件部署和网络拓扑
答案:B
解析:进程视图关注系统的并发、同步、性能、可伸缩性等运行时问题。功能需求是逻辑视图(A 错),代码组织是开发视图(C 错),硬件部署是物理视图(D 错)。
真题 2020 年·综合知识
题目:以下关于 ADL(架构描述语言)的叙述中,正确的是( )。
A. ADL 只能描述软件架构,不能描述硬件架构B. ADL 的核心元素是组件、连接器和配置C. 所有 ADL 都支持代码自动生成D. ADL 与 UML 完全等价
答案:B
解析:ADL 的核心元素是组件(Component)、连接器(Connector)和配置(Configuration)。ADL 也可描述硬件架构(A 错),不是所有 ADL 都支持代码生成(C 错),ADL 和 UML 是不同层次的语言(D 错)。
考点 14:Perry & Wolf 架构定义
Perry & Wolf 经典定义:
- Elements(元素)
组件(Component)和连接器(Connector) - Forms(形式)
元素之间的关系和约束 - Rationale(理由)
架构决策的依据和动机
与 IEEE 1471 的对比:
考点 15:架构与设计的区别
架构决策的特征:
- 全局性
影响系统整体结构 - 不易变更
变更代价高,需审慎决策 - 权衡性
需要在多个质量属性之间权衡 - 指导性
为后续设计和实现提供约束和方向
考点 16:架构质量属性概览
质量属性与架构的关系:质量属性是架构决策的主要驱动因素,架构决策直接影响质量属性的实现程度。
考点 17:架构框架对比概览
TOGAF ADM 八阶段:
A:架构愿景 B:业务架构 C:信息系统架构 D:技术架构 E:机会与解决方案 F:迁移规划 G:实施治理 H:架构变更管理
考点 18:软件架构重要性
架构的重要性体现在:
- 早期设计决策
架构是最早的设计决策,影响后续所有开发活动 - 风险管控
通过架构评审和原型验证降低技术风险 - 沟通工具
架构是各利益相关者沟通的共同语言 - 复用基础
良好的架构支持组件和模式复用 - 演化框架
架构为系统演化提供稳定的基础结构
架构失败常见原因:
真题 2021 年·综合知识
题目:以下关于 Perry & Wolf 架构定义的叙述中,正确的是( )。
A. Perry & Wolf 定义中不包括决策理由(Rationale)B. Perry & Wolf 定义的核心元素是组件和连接器C. Perry & Wolf 定义只关注系统结构D. Perry & Wolf 定义与 IEEE 1471 完全相同
答案:B
解析:Perry & Wolf 架构定义的核心元素是组件(Component)和连接器(Connector),并且包含 Forms 和 Rationale。Perry & Wolf 明确包含 Rationale(A 错),不仅关注结构还有理由(C 错),与 IEEE 1471 有不同的侧重点(D 错)。
真题 2023 年·综合知识
题目:以下关于架构决策的叙述中,不正确的是( )。
A. 架构决策应记录决策理由B. 架构决策具有不易变更的特点C. 架构决策只影响局部模块D. 架构决策需要在多个质量属性之间权衡
答案:C
解析:架构决策具有全局性,影响系统整体结构,不是只影响局部模块。架构决策应记录理由(A 正确),变更代价高(B 正确),需要权衡多个质量属性(D 正确)。
真题 2020 年·综合知识
题目:在 TOGAF ADM 方法中,紧接在“技术架构”之后的阶段是( )。
A. 业务架构B. 信息系统架构C. 机会与解决方案D. 架构愿景
答案:C
解析:TOGAF ADM 八阶段顺序为 A架构愿景→B业务架构→C信息系统架构→D技术架构→E机会与解决方案→F迁移规划→G实施治理→H架构变更管理。技术架构(D)之后是机会与解决方案(E)。
真题 2022 年·综合知识
题目:以下关于软件架构重要性的叙述中,不正确的是( )。
A. 架构是最早的设计决策,影响后续所有开发活动B. 架构是各利益相关者沟通的共同语言C. 架构确定后就不需要再修改D. 良好的架构支持组件和模式复用
答案:C
解析:架构是“活”的,需要随系统演化而调整。架构确定后仍需要根据需求变化、技术演进等因素进行修改。其他选项都是架构重要性的正确表述。
真题 2019 年·综合知识
题目:以下不属于软件架构失败常见原因的是( )。
A. 需求理解不足B. 过度设计C. 严格按照架构设计执行D. 缺乏架构评审
答案:C
解析:严格按照架构设计执行是正确的做法,不是架构失败的原因。架构失败常见原因包括需求理解不足、过度设计、技术选型失误、缺乏评审和架构腐化等。
真题 2023 年·综合知识
题目:架构师应具备的“T 型人才”知识结构,其中“T”的横向代表( )。
A. 单一技术领域的深度B. 广泛的技术知识面C. 管理技能的深度D. 编码能力的深度
答案:B
解析:T 型人才的横向(横轴)代表广泛的技术知识面,包括网络、安全、数据库、中间件、操作系统等多个领域。纵向(纵轴)代表在某一特定领域的深入专业知识。
真题 2021 年·综合知识
题目:以下关于架构与设计关系的叙述中,正确的是( )。
A. 架构和设计是相同的概念B. 架构关注宏观结构和关键决策,设计关注微观实现细节C. 架构设计不需要考虑非功能需求D. 详细设计先于架构设计进行
答案:B
解析:架构关注宏观结构和关键决策(如组件划分、技术选型),设计关注微观实现细节(如类的设计、算法选择)。架构和设计粒度不同(A 错),架构必须考虑非功能需求(C 错),架构设计先于详细设计(D 错)。
真题 2020 年·综合知识
题目:以下关于架构质量属性的叙述中,不正确的是( )。
A. 质量属性是架构决策的主要驱动因素B. 可用性和可靠性是相同的质量属性C. 性能、安全性、可修改性都是重要的质量属性D. 架构决策直接影响质量属性的实现程度
答案:B
解析:可用性关注“系统是否可服务”,可靠性关注“系统是否不出错”,两者是不同的质量属性。虽然有关联但关注点不同。其他选项都是正确的表述。
四、高频易错点归纳
五、本章小结
绪论章节虽然分值不高,但为后续章节奠定了重要的概念基础。核心要点:
- 架构定义
多种表述(IEEE 1471、Bass、Perry & Wolf),能够准确区分 - 架构师角色
位于需求分析与详细设计之间,核心是“决策者”而非“实现者” - 知识结构
T 型人才,广度与深度并重 - 架构风格
基本分类框架(五大类) - ADL
架构描述语言,核心元素是组件/连接器/配置 - 4+1 视图模型
逻辑/开发/进程/物理/场景视图 - 考试科目
综合知识+案例分析+论文,三科均需≥45分 - Perry & Wolf
Elements + Forms + Rationale,强调决策理由 - 架构 vs 设计
宏观/高层/不易变更 vs 微观/低层/易变更 - 质量属性概览
性能/可用性/安全性/可修改性/可测试性/易用性 - 架构框架
Zachman/TOGAF/FEA/DoDAF 的区分 - 架构重要性
早期决策、风险管控、沟通工具、复用基础、演化框架