系统架构设计师 | VIP课程 | 知识精讲 专栏

ONEP软考智能体年卡VIP付费专属内容:涵盖速通课程、项目背景、优质范文、论文精批、知识拓展六大类内容,提供全流程备考支持。

本篇内容摘要

论文1 软件架构设计(架构风格选型论证)精讲(VIP专享):对应清单条目:1 论文·软件架构设计(架构风格选型论证:分层/管道 过滤器/事件驱系统梳理该考点的核心定义、原理与高频易错点,配真题示例与记忆口诀,从原理到实战一次吃透,稳拿对应分值。

❤️‍🔥 266
2026/08/02
☆
▶

deepread1|论文1 软件架构设计(架构风格选型论证)详解

ONEPSOFT | 软考学习知识库


deepread1|论文1 软件架构设计(架构风格选型论证)详解

对应清单条目:#1 论文·软件架构设计(架构风格选型论证:分层/管道 - 过滤器/事件驱动/微服务/CQRS)

教材来源:《系统架构设计师教程(第 2 版)》第 1 章 1.1、第 7 章 7.1–7.3

一、知识点定位

  • 主要教材出处:第 7 章 系统架构设计基础知识(7.1 软件架构概念、7.2 基于架构的软件开发方法 ABSD、7.3 软件架构风格);延伸:第 1 章 1.1 系统架构概述
  • 在考试中的角色:论文第一高频方向。论文常要求 " 结合项目论述你选用的架构风格及理由 ",本质就是 " 架构风格选型论证 ";选择题也考各风格特点对比,案例与质量属性评估紧密挂钩。
  • 与 speedrun 关联:若看过第 6 章(架构设计基础)速通,这里会把 " 架构风格 " 从名词展开成可论证的工具箱。

一句话定位:软件架构设计的核心动作之一,就是从一组 " 惯用组织模式(架构风格)" 里,挑出最贴合业务场景的那个,并讲清楚为什么选它、不选别的。


二、教材原文精摘(跨章节,原封不动)

【第 1 章 1.1 系统架构概述】原文:

系统架构 (System Architecture) 是系统的一种整体的高层次的结构表示,是系统的骨架和根基……架构设计在系统开发过程中起着关键性作用,架构设计的优劣决定了系统的健壮性和生命周期的长短。

架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系及指导它的设计和发展的原则。

【第 7 章 7.1.1 软件架构的定义】原文:

Bass、Clements 和 Kazman 对于……软件体系结构给出了如下的定义:一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。

体系结构并非可运行软件。确切地说,它是一种表达,使软件工程师能够:(1) 分析设计在满足所规定的需求方面的有效性;(2) 在设计变更相对容易的阶段,考虑体系结构可能的选择方案;(3) 降低与软件构造相关联的风险。

【第 7 章 7.3.1 软件架构风格概述】原文:

软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。

对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。例如,如果某人把系统描述为 " 客户/服务器 " 模式,则不必给出设计细节,人们立刻就会明白系统是如何组织和工作的。

【第 7 章 7.3.2 数据流体系结构风格】原文:

数据流体系结构风格主要包括批处理风格和管道 - 过滤器风格。

批处理风格:每个处理步骤是一个单独的程序,每一步必须在前一步结束后才能开始,并且数据必须是完整的,以整体的方式传递。

管道 - 过滤器风格:把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入。每个处理步骤由一个过滤器 (Filter) 实现……管道 (Pipe) 负责数据传输。

【第 7 章 7.3.2 层次型 / C-S】原文(同属 " 调用 - 返回 " 大类):

层次系统组成一个层次结构,每一层为上层提供服务,并作为下层的客户……由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,这同样为软件重用提供了强大的支持。

三层 C/S 结构增加了一个应用服务器。整个应用逻辑驻留在应用服务器上……表示层、功能层和数据层三层逻辑上独立。

【第 7 章 7.3.4 以数据为中心(黑板)风格】原文:

黑板体系结构风格适用于解决复杂的非结构化的问题,能在求解过程中综合运用多种不同知识源……它将问题的解空间组织成一个或多个应用相关的分级结构。黑板系统的传统应用是信号处理领域,如语音识别和模式识别。

【第 7 章 7.3.5 虚拟机风格】原文:

虚拟机体系结构风格的基本思想是人为构建一个运行环境,在这个环境之上,可以解析与运行自定义的一些语言,这样来增加架构的灵活性。虚拟机体系结构风格主要包括解释器风格和规则系统风格……解释器通常被用来建立一种虚拟机以弥合程序语义与硬件语义之间的差异。其缺点是执行效率较低。典型的例子是专家系统。

【第 7 章 7.3.6 独立构件风格】原文:

独立构件风格主要强调系统中的每个构件都是相对独立的个体,它们之间不直接通信,以降低耦合度,提升灵活性。主要包括进程通信和事件系统风格。

事件系统风格……基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。

【第 7 章 7.2 ABSD 体系结构设计(选型落点)】原文:

在建立体系结构的初期,选择一个合适的体系结构风格是首要的。在这个风格的基础上,开发人员通过体系结构模型,可以获得关于体系结构属性的理解。

体系结构设计是一个迭代过程……提出软件体系结构模型 → 把已标识的构件映射到软件体系结构中 → 分析构件之间的相互作用 → 产生软件体系结构 → 设计评审。


三、系统解读(逐段讲透)

  • 针对第 1 章原文:先立根本——架构不是代码,是 " 骨架和根基 ",是组件 + 关系 + 与环境关系 + 指导原则的整体高层次结构。这句话是论文开篇最好的定调:你写的不是 " 我用了 Spring",而是 " 我为这个系统选了这样一种组织方式,它决定了系统能活多久、好不好改 "。
  • 针对 7.1.1 定义:Bass 的定义点出三件事——①架构 = 构件 + 外部可见属性 + 关系;②架构是 " 表达 " 不是 " 能跑的软件 ";③它的最大价值是在变更还便宜的早期,让你比较多种方案、降低风险。选型论证的精髓就在第 (2) 点:选错风格,后期改造成本极高。
  • 针对 7.3.1 风格概述:这是全章灵魂。" 风格 = 词汇表 + 约束 "。一旦你说 " 这是 CS 架构 ",听者立刻脑补出结构,无需解释细节。所以论文里你先亮明风格,再论证,阅卷人秒懂你的组织方式。风格的本质是设计重用——别人踩过的坑、验证过的组织方式,你直接套。
  • 针对数据流风格(批处理/管道 - 过滤器):特点是数据驱动、步骤串行、前步输出是后步输入。批处理要 " 等上一步全跑完、数据整体传 ";管道 - 过滤器是 " 数据源源不断流式处理 "。适合 ETL、编译器、日志处理链。缺点是交互性差、不适合需频繁人机交互的系统。
  • 针对调用 - 返回(层次/C-S):层次结构是 " 上层调下层、层间只认相邻接口 ",改一层不影响其他层,重用性强;C/S(尤其三层)把表示/功能/数据分开,功能层独立成应用服务器,瘦客户机便于集中维护。这是企业系统最常用底盘。
  • 针对以数据为中心(黑板):多个 " 知识源 " 围绕一块共享 " 黑板 " 工作,谁有进展就写上去,别人来读。适合问题本身非结构化、没有固定求解顺序的场景(语音识别、复杂推理)。一般业务系统很少用,但论文若写 AI/信号处理类项目可套。
  • 针对虚拟机风格:自己造一个 " 运行环境 " 去解释自定义语言,灵活性极高但效率低。专家系统、规则引擎是典型。论文里若写 " 可配置业务规则平台 ",这就是你的风格。
  • 针对独立构件(事件系统):构件互相不直接调用,而是发事件、别人订阅。耦合极低、扩展极容易(加个监听器就行)。缺点是 " 谁被影响了你不知道 ",调试难、顺序不可控。GUI、调试器断点、微服务里的事件总线都属此类(事件驱动 ≈ 独立构件风格的现代形态)。
  • 针对 7.2 ABSD 选型落点:教材把 " 选风格 " 放在体系结构设计的第一步——先定风格,再映射构件、分析作用、出架构、评审。这正好对应论文 " 选型论证 " 的骨架:先选,再落地,再评审反思。

核心一句话总结:架构风格选型,就是给系统选一套 " 已经被验证过的组织套路 ",选对了后期改起来便宜、质量属性有保障,选错了就是推倒重来——所以论文要你 " 论证 ",本质是逼你想清楚 " 为什么是它而不是别的 "。


四、工程实践举例(土木工程视角)

最直观的对照就是盖楼时选 " 结构体系 ":

  • 一栋 30 层住宅,你要选剪力墙结构还是框架 - 核心筒?这跟选架构风格一模一样——剪力墙抗侧刚度高、适合高层住宅;框架灵活、适合商场大空间。你不会在住宅里用纯框架(刚度不够晃),也不会在商场用纯剪力墙(没法开大洞)。这就是 " 风格选型要匹配场景 "。
  • 数据流风格 ↔ 混凝土拌合运输线:水泥、砂、石进搅拌站(过滤器 1)→ 出拌合物经罐车(管道)运到泵车(过滤器 2)→ 浇筑(过滤器 3)。前一步产出是后一步输入,整条线 " 数据/物料 " 顺序流,不能倒灌。这跟管道 - 过滤器如出一辙。
  • 调用 - 返回(层次/C-S) ↔ 总包 - 分包 - 劳务分层:业主(数据层)↔ 总包(功能层)↔ 分包/劳务(表示层),每层只跟相邻层打交道,换劳务队不影响总包合同结构——正是三层 C/S 的 " 层间接口稳定、内部可替换 "。
  • 以数据为中心(黑板) ↔ BIM 协同平台:设计、造价、施工、监理各参建方都围绕同一个 BIM 模型(黑板)读写,谁更新了进度/变更,别人来读。非结构化、多方协作,正是黑板风格的场景。
  • 虚拟机 ↔ 设计院通用制图与规则引擎:设计院有一套 " 制图标准 + 参数化规则 ",输入项目参数就能自动出图,相当于在通用环境上 " 解释运行 " 自定义规则——虚拟机风格的思想。
  • 独立构件(事件) ↔ 工地事件广播:安监发 " 停工令 " 事件,各班组(订阅者)各自触发自己的停工动作;安监不知道具体谁动了、怎么动——正是事件系统的 " 触发者不知被影响者 "。

知识点 ↔ 工程实践 对照表

教材知识点要素你的实践场景对应映射说明
架构风格(惯用组织模式)建筑结构体系(框架/剪力墙/钢结构)都是 " 解决某类问题的典型、被验证过的组织方式 "
数据流风格(管道 - 过滤器)混凝土拌合→运输→泵送→浇筑流水线前步产出是后步输入,数据/物料顺序流
调用 - 返回(层次/C-S)业主—总包—分包/劳务 三层管理层间只认相邻接口,内部可替换,重用性强
以数据为中心(黑板)BIM 协同平台(多方围绕共享模型)多知识源围绕共享数据工作,适合非结构化协作
虚拟机风格设计院参数化制图规则引擎构建运行环境 " 解释 " 自定义语言,灵活但效率折损
独立构件(事件系统)工地 " 停工令 " 事件广播构件不直接调用,发事件、订阅者各自响应,耦合低
ABSD:先选风格再落地评审先定结构体系→出图→图审选型在第一步,后期变更成本随阶段指数上升

当知识点涉及顺序流程时,补充流程对比(ABSD 体系结构设计 ↔ 土木工程结构选型落地):

流程图(结构化呈现)

教材ABSD流程

  1. 提出软件体系结构模型\n首选合适风格
  2. 已标识构件映射到架构
  3. 分析构件相互作用
  4. 产生软件体系结构
  5. 设计评审

土木工程实践

  1. 确定结构体系\n框架/剪力墙/钢结构
  2. 划分单体与构件\n柱梁板墙
  3. 确定构件受力关系\n传力路径
  4. 出结构施工图
  5. 施工图审查

对应关系

节点A关系节点B
提出软件体系结构模型\n首选合适风格对应确定结构体系\n框架/剪力墙/钢结构
已标识构件映射到架构对应划分单体与构件\n柱梁板墙
分析构件相互作用对应确定构件受力关系\n传力路径
产生软件体系结构对应出结构施工图
设计评审对应施工图审查

运维视角提示:风格选错对 " 运维服务 " 伤害最大。例如用 " 调用 - 返回单体 " 硬扛高并发,后期要做成 " 独立构件/事件驱动 " 去解耦扩容,改造量等于重建;而一开始按质量属性(可用性、可修改性)选对风格,运维期的故障隔离、灰度发布会轻松得多——这正好呼应第 8 章质量属性与 ATAM。

相关VIP内容推荐......

⤴️分享
⬅️返回
1
2026/08/02
deepread1|论文1 软件架构设计(架构风格选型论证)详解
2
2026/08/02
deepread2|论文2 质量属性与架构评估(ATAM效用树场景权衡)详解
3
2026/08/02
deepread3|论文3 云原生架构设计(容器 / 微服务 / Serverless / 服务网格)详解
4
2026/08/02
deepread4|论文4 大数据处理架构(Lambda / Kappa 对比与选型)详解
5
2026/08/02
deepread5|论文5 安全架构设计(BLP / Biba / Chinese Wall / WPDRRC)详解
6
2026/08/02
deepread6|论文6 面向服务架构 SOA(ESB / Web Service / REST / 微服务演进)详解
7
2026/08/02
deepread7|论文7 软件架构演化与维护(大型网站10阶段演化可维护性)详解
8
2026/08/02
deepread8|论文8 软件可靠性设计(定义 / 定量描述 / 容错三技术)详解
9
2026/08/02
deepread9|论文9 系统建模(结构化 DFD / UML 13 图·4+1 视图 / ER 图)详解
10
2026/08/02
deepread10|案例10 信息系统架构设计(ISA框架CSF-SST-BSP规划架构风格)详解
11
2026/08/02
deepread11|案例11 层次式架构设计(分层MVCBS-CS污水池反模式)详解
12
2026/08/02
deepread12|案例12 云原生架构设计(六原则微服务生态中台案例)详解
13
2026/08/02
deepread13|案例13 面向服务架构SOA(服务识别三法ESB集成治理案例)详解
14
2026/08/02
deepread14|案例14 嵌入式系统架构设计(特点实时性层次化HAL鸿蒙)详解
15
2026/08/02
deepread15|案例15 通信系统架构设计(OSI-TCP-IP分层5G-SBA-SDN高可用)详解
16
2026/08/02
deepread16|案例16 安全架构设计(CIA三防线WPDRRC-AAA混合云五安全)详解
17
2026/08/02
deepread17|案例17 大数据处理架构设计(Lambda-Kappa-4V主数据集)详解
18
2026/08/02
deepread18|案例18 质量属性与架构评估(场景六要素-效用树-ATAM敏感权衡点)详解
19
2026/08/02
deepread19|案例19 系统性能与高可用优化(Amdahl-缓存集群-冗余-可用度)详解
20
2026/08/02
deepread20|案例20 高质量属性实战(效用树量化-权衡分析-可靠度计算)详解
21
2026/08/02
deepread21|案例21 性能容量规划(并发-TPS-Little定律-Amdahl上限)详解
ONEPSOFT品牌标识
ONEP软考 | 年卡VIP知识库
© 2025 ONEPSOFT. All rights reserved.