ONEPSOFT | 软考学习知识库
speedrun7|第7章 系统架构设计基础
文件名约定:speedrun_ 第 7 章 系统架构设计基础.md(教材准确章名:系统架构设计基础知识)
一、章节定位
一句话概括:本章是架构师考试的 " 总纲章 "——讲清架构是什么、如何用 ABSD 方法开发、有哪些架构风格可选、如何复用架构资产、以及特定领域架构 DSSA,是后续所有架构章节的基石。
二、本章在讲什么(系统性阐述)
如果说前面几章是零散的建筑材料,本章就是把材料组织成 " 楼 " 的方法论。它先回答 " 架构是什么 "——一组描述构件及其关系的结构;再给出 " 怎么做架构 " 的成熟方法 ABSD(基于架构的软件开发),其核心是用功能分解 + 架构风格 + 软件模板三层驱动;接着是考试的重中之重:架构风格分类,相当于 " 现成的户型模板 "(管道 - 过滤器、分层、C/S、仓库、事件系统等),选型是案例与论文的核心能力;最后是 " 站在别人肩膀上 " 的架构复用与面向特定领域的 DSSA。
类比:架构风格就像工程的 " 专业分包模式 "——你可以选 " 流水线分包 "(管道 - 过滤器,一道工序接一道)、" 总包 + 分包分层 "(层次结构)、" 指挥部 + 各个独立施工队靠广播协调 "(事件系统/独立构件)、" 中央资料室 + 各专员取放 "(仓库风格)。选错风格,就像用家装队去盖摩天楼,必然出问题。
三、教材原文精摘(原封不动,逐子章节全覆盖)
下列段落直接摘自官方教材,未做任何改写,逐子章节给出最关键原文并作解析。
【7.1 软件架构概念 原文】" 一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。"(Bass 等定义,出自:第 7 章 7.1.1 节)
" 软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。"(出自:第 7 章 7.1.3 节)
【7.2 基于架构的软件开发方法 ABSD 原文】" 基于体系结构的软件设计 (Architecture-Based Software Design, ABSD) 方法是由体系结构驱动的,即指由构成体系结构的商业、质量和功能需求的组合驱动的。"(出自:第 7 章 7.2.1 节)
"ABSD 方法有 3 个基础。第 1 个基础是功能的分解……第 2 个基础是通过选择体系结构风格来实现质量和商业需求。第 3 个基础是软件模板的使用 "(出自:第 7 章 7.2.1 节)
"ABSD 模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化,复审、实现和演化 6 个子过程 "(出自:第 7 章 7.2.3 节)
" 体系结构演化……主要包括以下 6 个步骤:1.需求变动归类 2.制订体系结构演化计划 3.修改、增加或删除构件 4.更新构件的相互作用 5.构件组装与测试 6.技术评审 "(出自:第 7 章 7.2.9 节)
【7.3 软件架构风格 原文】" 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。"(出自:第 7 章 7.3.1 节)
" 管道 - 过滤器风格的基本构件是过滤器,连接件是数据流传输管道,将一个过滤器的输出传到另一过滤器的输入。"(出自:第 7 章 7.3.2 节)
" 层次系统组成一个层次结构,每一层为上层提供服务,并作为下层的客户。"(出自:第 7 章 7.3.3 节)
" 在仓库风格中,有两种不同的构件:中央数据结构说明当前数据的状态以及一组对中央数据进行操作的独立构件 "(出自:第 7 章 7.3.4 节)
" 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件……一个事件的触发就导致了另一模块中的过程的调用。"(出自:第 7 章 7.3.6 节)
【7.4 软件架构复用 原文】" 软件复用是指系统化的软件开发过程:开发一组基本的软件构造模块,以覆盖不同的需求/体系结构之间的相似性,从而提高系统开发的效率、质量和性能。"(出自:第 7 章 7.4.1 节)
" 复用的基本过程主要包括 3 个阶段:首先构造/获取可复用的软件资产,其次管理这些资产,最后针对特定的需求,从这些资产中选择可复用的部分,以开发满足需求的应用系统 "(出自:第 7 章 7.4.4 节)
【7.5 特定领域软件体系结构 DSSA 原文】"DSSA 就是专用于一类特定类型的任务 (领域) 的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。"(Hayes Roth 定义,出自:第 7 章 7.5.1 节)
"DSSA 的基本活动:1.领域分析……获得领域模型。2.领域设计……获得 DSSA。3.领域实现……开发和组织可重用信息。"(出自:第 7 章 7.5.2 节)
"DSSA 的建立过程分为 5 个阶段……(1) 定义领域范围。(2) 定义领域特定的元素。(3) 定义领域特定的设计和实现需求约束。(4) 定义领域模型和体系结构。(5) 产生、搜集可重用的产品单元。"(出自:第 7 章 7.5.4 节)
逐段讲解(紧贴上面原文,一段一解):
四、核心知识树
第 7 章 架构设计基础
├── 架构概念
│ ├── 定义与重要性
│ └── 生命周期
├── ABSD 方法
│ ├── 三基础
│ └── 六子过程
├── 架构风格
│ ├── 数据流
│ ├── 调用返回
│ ├── 数据中心
│ ├── 虚拟机
│ └── 独立构件
├── 架构复用
│ └── 三步过程
└── DSSA
└── 五阶段
五、知识脑图总结
思维导图(结构化呈现)
六、关键概念速解
| 概念 | 教材定义(原文关键词) | 大白话速解 | 考试怎么考 |
|---|---|---|---|
| 软件架构 | 构件 + 外部可见属性 + 相互关系 | 楼的构件与连接关系图 | 选择/案例 |
| ABSD | 由商业/质量/功能需求组合驱动 | 需求驱动的架构法 | 选择/论文 |
| 管道 - 过滤器 | 过滤器为构件,管道传数据 | 流水线工序 | 风格选型 |
| 层次结构 | 每层为上层服务、为下层客户 | 分层分包 | 风格选型 |
| 仓库风格 | 中央数据结构 + 独立操作构件 | 中央资料室 | 风格选型 |
| 事件系统 | 触发/广播事件隐式调用 | 广播协调施工队 | 风格选型 |
| 架构复用 | 系统化构造可复用模块提效 | 用标准构件拼装 | 选择 |
| DSSA | 专用于某领域的标准构件集合 | 某行业的专用图集 | 选择/定义 |
七、记忆口诀与类比
八、易混淆点对比
| 易混项 A | 易混项 B | 核心区别 |
|---|---|---|
| 仓库风格 | 黑板风格 | 黑板是仓库的特例,专解复杂非结构化问题(语音/模式识别),多知识源协作 |
| 主程序 - 子程序 | 面向对象 | 前者过程调用、模块合成;后者数据 + 操作封装在对象中 |
| 层次结构 | C/S | 层次是同向服务链;C/S 基于资源不对等、为共享而生(B/S 是三层 C/S) |
| 架构复用 (机会) | 架构复用 (系统) | 机会复用=碰巧遇到相似就复用;系统复用=有计划地建立复用资产库 |
九、与其他章节的关联
十、考试出题方式