<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>软件架构 on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84/</link><description>Recent content in 软件架构 on Liangweidong's blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 01 Jan 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://liangweidonggood.github.io/tags/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>09-软件架构概念</title><link>https://liangweidonggood.github.io/p/09-ruan-jian-jia-gou-gai-nian/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://liangweidonggood.github.io/p/09-ruan-jian-jia-gou-gai-nian/</guid><description>&lt;h1 id="09-软件架构概念基于第9小时"&gt;09-软件架构概念（基于第9小时）
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;软考-系统架构设计师 | 第3篇 架构设计高级知识
出题形式：单项选择题 + 下午案例分析题
分值占比：约 3-5 分（选择），案例题常涉及&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="0-考点分析"&gt;0. 考点分析
&lt;/h2&gt;&lt;p&gt;本小时是软考系统架构设计师考试&lt;strong&gt;最核心、最常考&lt;/strong&gt;的基础章节。主要内容涵盖：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;软件架构定义与重要性&lt;/li&gt;
&lt;li&gt;软件架构设计与生命周期&lt;/li&gt;
&lt;li&gt;基于架构的软件开发方法（ABSD / ABSDM）&lt;/li&gt;
&lt;li&gt;软件架构风格（核心重点）&lt;/li&gt;
&lt;li&gt;软件架构复用&lt;/li&gt;
&lt;li&gt;特定领域软件架构（DSSA）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;考试特点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择题必考（架构风格、ADL、视图模型等概念）&lt;/li&gt;
&lt;li&gt;案例分析题高频考点（架构风格选择、复用策略）&lt;/li&gt;
&lt;li&gt;论文题素材来源（ABSDM 六过程、风格选择）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="1-核心知识点"&gt;1. 核心知识点
&lt;/h2&gt;&lt;h3 id="11-软件架构定义"&gt;1.1 软件架构定义
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定义&lt;/strong&gt;：系统的一个或多个结构，包括&lt;strong&gt;构件&lt;/strong&gt;（程序模块/类/中间件）、构件的&lt;strong&gt;外部可见属性&lt;/strong&gt;及其&lt;strong&gt;相互关系&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;架构设计包括：数据库设计 + 软件结构设计&lt;/li&gt;
&lt;li&gt;关注点：通过多种视图全面描述&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-软件架构与生命周期"&gt;1.2 软件架构与生命周期
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;作用和意义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;需求分析阶段&lt;/td&gt;
					&lt;td&gt;有利于各阶段参与者的交流，易于维护可追踪性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;设计阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;关注的最早和最多的阶段&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;实现阶段&lt;/td&gt;
					&lt;td&gt;有效实现从架构设计向实现的转换&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;构件组装阶段&lt;/td&gt;
					&lt;td&gt;可复用构件组装提高实现效率&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;部署阶段&lt;/td&gt;
					&lt;td&gt;组织和展示部署软硬件架构，评估部署方案&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;后开发阶段&lt;/td&gt;
					&lt;td&gt;主要围绕维护、演化、复用&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;设计阶段重点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;组成 SA 模型的基本概念（构件和连接子建模）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;体系结构描述语言 ADL&lt;/strong&gt;：Unicon、Rapide、Darwin、Wright、C2SADL、Acme、XADLOL、XYZ/ADL、ABC/ADL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多视图模型&lt;/strong&gt;：4+1 模型、Hofmesiter 的 4 视图模型、CMU-Sei 的 Views and Beyond 模型&lt;/li&gt;
&lt;li&gt;视图标准：IEEE 1471-2000、RM-ODP、UML、IBM Zachman&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;部署阶段两大作用&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提供高层体系结构视图描述部署阶段的软硬件模型&lt;/li&gt;
&lt;li&gt;基于架构模型分析部署方案的质量属性&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;后开发阶段研究方向&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;动态软件体系结构&lt;/li&gt;
&lt;li&gt;体系结构恢复与重建（手工重建、工具支持、查询语言、数据挖掘）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="13-软件架构重要性8-大作用"&gt;1.3 软件架构重要性（8 大作用）
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;满足系统品质&lt;/li&gt;
&lt;li&gt;使受益人达成一致目标&lt;/li&gt;
&lt;li&gt;支持计划编制过程&lt;/li&gt;
&lt;li&gt;对系统开发的指导性&lt;/li&gt;
&lt;li&gt;有效管理复杂性&lt;/li&gt;
&lt;li&gt;为复用奠定基础&lt;/li&gt;
&lt;li&gt;降低维护费用&lt;/li&gt;
&lt;li&gt;支持冲突分析&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="14-基于架构的软件开发方法absd"&gt;1.4 基于架构的软件开发方法（ABSD）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;全称&lt;/strong&gt;：Architecture-Based Software Design&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;驱动&lt;/strong&gt;：构成体系结构的商业、质量和功能需求的组合驱动&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;三大基础&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;功能的分解&lt;/li&gt;
&lt;li&gt;通过选择体系结构风格来实现质量和商业需求&lt;/li&gt;
&lt;li&gt;软件模板的使用&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：自顶向下、递归细化、迭代每步定义清晰，降低随意性&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="15-absdm-开发模型六子过程"&gt;1.5 ABSDM 开发模型（六子过程）
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;体系结构需求 → 体系结构设计 → 体系结构文档化 → 体系结构复审 → 体系结构实现 → 体系结构演化
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;各子过程要点&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;子过程&lt;/th&gt;
					&lt;th&gt;关键活动&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;体系结构需求&lt;/td&gt;
					&lt;td&gt;需求获取（来自质量目标/商业目标/开发人员商业目标）+ 标识构件（生成类图→分组→打包）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;体系结构设计&lt;/td&gt;
					&lt;td&gt;提模型→映射构件→分析相互作用→设计评审（必须有外部人员）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;体系结构文档化&lt;/td&gt;
					&lt;td&gt;输出：体系结构规格说明 + 测试质量设计说明书&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;体系结构复审&lt;/td&gt;
					&lt;td&gt;外部人员（用户代表、领域专家）参与，标识风险，可搭最小化系统评估&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;体系结构实现&lt;/td&gt;
					&lt;td&gt;分析与设计→构件实现→构件组装→系统测试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;体系结构演化&lt;/td&gt;
					&lt;td&gt;需求变化归类→演化计划→构件变动→更新相互作用→组装测试→技术评审→演化后体系结构&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="16-软件架构风格-核心重点"&gt;1.6 软件架构风格（⭐⭐⭐ 核心重点）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;风格定义要素&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;词汇表&lt;/strong&gt;：包含构件和连接件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;约束&lt;/strong&gt;：定义构件和连接件的组合方式&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="数据流风格"&gt;数据流风格
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;风格&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;批处理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;每个处理步骤是独立程序，必须前一步结束后才能开始，数据以&lt;strong&gt;整体&lt;/strong&gt;方式传递&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;管道-过滤器&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;系统分为序贯处理步骤，步骤间通过数据流连接，前一步输出是后一步输入&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="调用返回风格"&gt;调用/返回风格
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;风格&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;主程序/子程序&lt;/td&gt;
					&lt;td&gt;单线程控制，构件即主程序和子程序&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;面向对象&lt;/td&gt;
					&lt;td&gt;构件是对象（抽象数据类型的实例）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;层次型&lt;/td&gt;
					&lt;td&gt;每层为上层服务并作为下层接口，&lt;strong&gt;仅相邻层间&lt;/strong&gt;具有层接口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二层 C/S&lt;/td&gt;
					&lt;td&gt;客户应用程序 + 数据库服务器 + 网络；缺点：开发成本高、移植困难、维护升级难&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;三层 C/S&lt;/td&gt;
					&lt;td&gt;表示层 + 功能层 + 数据层（瘦客户端）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;B/S&lt;/td&gt;
					&lt;td&gt;浏览器 + Web 服务器 + 数据库服务器（三层应用结构实现）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;B/S 相对 C/S 的不足&lt;/strong&gt;：动态页面支持弱、扩展能力差、安全难控、响应速度不足、数据交互性不强&lt;/p&gt;
&lt;h4 id="以数据为中心风格"&gt;以数据为中心风格
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;风格&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;仓库&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;中央数据结构（说明当前数据状态）+ 一组独立构件（对中央数据操作）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;黑板&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;问题求解模型，组织推理步骤、控制状态数据和问题求解知识；典型应用：信号处理（语音识别、模式识别）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="虚拟机风格"&gt;虚拟机风格
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;风格&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;解释器&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;构建虚拟机弥合程序语义与硬件语义差异；&lt;strong&gt;缺点是执行效率较低&lt;/strong&gt;；典型：专家系统&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;规则系统&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;知识库 + 规则解释器 + 规则/数据选择器 + 工作内存&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="独立构件风格"&gt;独立构件风格
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;进程通信&lt;/strong&gt;：构件是独立过程，连接件是消息传递&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;事件系统&lt;/strong&gt;：构件不直接调用过程，而是&lt;strong&gt;触发或广播&lt;/strong&gt;一个或多个事件&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="c2-风格"&gt;C2 风格
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;通过&lt;strong&gt;连接件&lt;/strong&gt;连接构件或构件组&lt;/li&gt;
&lt;li&gt;构件与构件之间&lt;strong&gt;无直接连接&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="17-软件架构复用"&gt;1.7 软件架构复用
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;要点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;复用类型&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;机会复用（开发中发现可复用就复用） / 系统复用（开发前规划决定复用）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;复用原因&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;减少开发工作/时间、降低成本、提高生产力、提高产品质量、更好互操作性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可复用资产&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;需求、架构设计、元素、建模分析、测试、项目规划、过程+方法+工具、人员、样本系统、缺陷消除&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;复用形式&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;函数复用、库复用、面向对象中的类/接口/包复用&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;复用基本过程&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;构建/获取可复用资产→管理可复用资产→使用可复用资产&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="18-特定领域软件架构dssa"&gt;1.8 特定领域软件架构（DSSA）
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;要点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;定义&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;特定应用领域中为一组应用提供组织结构参考的标准软件体系结构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;特征&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;领域性、普遍性、抽象性、可复用性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;三大基本活动&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;领域分析、领域设计、领域实现&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;参与人员&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;领域专家、领域分析师、领域设计人员、领域实现人员&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;三层系统模型&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;① 领域开发环境 ② 领域特定应用开发环境（&lt;strong&gt;应用工程师&lt;/strong&gt;在此工作） ③ 应用执行环境&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;建立过程（5 阶段）&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;① 定义领域范围 ② 定义领域特定元素 ③ 定义领域特定设计和实现约束 ④ 定义领域模型和体系结构 ⑤ 产生、搜集可重用的单元&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="2-关键概念速查"&gt;2. 关键概念速查
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;定义/说明&lt;/th&gt;
					&lt;th&gt;常见考点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;软件架构&lt;/td&gt;
					&lt;td&gt;构件 + 外部可见属性 + 相互关系&lt;/td&gt;
					&lt;td&gt;概念辨析&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ABSD&lt;/td&gt;
					&lt;td&gt;基于架构的软件设计方法&lt;/td&gt;
					&lt;td&gt;方法论三基础&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ABSDM&lt;/td&gt;
					&lt;td&gt;ABSD 的六子过程开发模型&lt;/td&gt;
					&lt;td&gt;六过程名称与顺序&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;架构风格&lt;/td&gt;
					&lt;td&gt;描述特定领域中系统组织方式的惯用模式（&lt;strong&gt;词汇表 + 约束&lt;/strong&gt;）&lt;/td&gt;
					&lt;td&gt;风格三要素（&lt;strong&gt;约束&lt;/strong&gt;）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;批处理&lt;/td&gt;
					&lt;td&gt;数据必须&lt;strong&gt;整体&lt;/strong&gt;传递，串行无并发&lt;/td&gt;
					&lt;td&gt;与管道-过滤器区别&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;管道-过滤器&lt;/td&gt;
					&lt;td&gt;数据流式，步骤间通过数据流连接&lt;/td&gt;
					&lt;td&gt;Unix Shell 是经典例子&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二层 C/S&lt;/td&gt;
					&lt;td&gt;客户应用 + 数据库服务器&lt;/td&gt;
					&lt;td&gt;缺点：维护升级难&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;三层 C/S&lt;/td&gt;
					&lt;td&gt;表示层 + 功能层 + 数据层&lt;/td&gt;
					&lt;td&gt;瘦客户端&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;B/S&lt;/td&gt;
					&lt;td&gt;浏览器 + Web 服务器 + 数据库&lt;/td&gt;
					&lt;td&gt;相对 C/S 的不足&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;仓库风格&lt;/td&gt;
					&lt;td&gt;中央数据 + 独立构件&lt;/td&gt;
					&lt;td&gt;数据为中心&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;黑板风格&lt;/td&gt;
					&lt;td&gt;知识源 + 黑板 + 控制&lt;/td&gt;
					&lt;td&gt;信号处理应用&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;解释器风格&lt;/td&gt;
					&lt;td&gt;虚拟机，执行效率低&lt;/td&gt;
					&lt;td&gt;专家系统&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;规则系统风格&lt;/td&gt;
					&lt;td&gt;知识库 + 规则解释器 + 工作内存&lt;/td&gt;
					&lt;td&gt;包含要素&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;事件系统风格&lt;/td&gt;
					&lt;td&gt;触发或广播事件，不直接调用&lt;/td&gt;
					&lt;td&gt;与调用-返回区别&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;C2 风格&lt;/td&gt;
					&lt;td&gt;通过连接件连接，构件间无直接连接&lt;/td&gt;
					&lt;td&gt;关键特征&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ADL&lt;/td&gt;
					&lt;td&gt;体系结构描述语言，&lt;strong&gt;关注构件间互联机制（连接子）&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;与建模语言区别&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;4+1 视图&lt;/td&gt;
					&lt;td&gt;多视图模型代表&lt;/td&gt;
					&lt;td&gt;视图名称&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DSSA&lt;/td&gt;
					&lt;td&gt;特定领域软件架构&lt;/td&gt;
					&lt;td&gt;三大活动、特征、参与人员&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;机会复用&lt;/td&gt;
					&lt;td&gt;开发中发现可复用就复用&lt;/td&gt;
					&lt;td&gt;vs 系统复用&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;体系结构恢复&lt;/td&gt;
					&lt;td&gt;手工/工具/查询语言/数据挖掘&lt;/td&gt;
					&lt;td&gt;四种方法&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="3-典型例题"&gt;3. 典型例题
&lt;/h2&gt;&lt;h3 id="例题-1架构风格定义"&gt;例题 1（架构风格定义）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一类架构所共有的特征，主要包括架构定义、架构词汇表和架构（ ）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. 描述&lt;/li&gt;
&lt;li&gt;B. 组织&lt;/li&gt;
&lt;li&gt;C. 约束&lt;/li&gt;
&lt;li&gt;D. 接口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：C&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：软件架构风格三要素：架构定义、架构词汇表、&lt;strong&gt;架构约束&lt;/strong&gt;。约束定义构件和连接件的组合方式。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="例题-2软件架构作用"&gt;例题 2（软件架构作用）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：以下叙述中，（ ）不是软件架构的主要作用。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. 在设计变更相对容易的阶段，考虑系统结构的可选方案&lt;/li&gt;
&lt;li&gt;B. 便于技术人员与非技术人员就软件设计进行交互&lt;/li&gt;
&lt;li&gt;C. 展现软件的结构、属性与内部交互关系&lt;/li&gt;
&lt;li&gt;D. 表达系统是否满足用户的功能性需求&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：软件架构与用户的功能性需求&lt;strong&gt;没有直接的对应关系&lt;/strong&gt;。功能性需求由需求分析决定，架构关注质量属性和非功能特性。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="例题-3dssa-三层模型"&gt;例题 3（DSSA 三层模型）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：DSSA 通常是一个具有三个层次的系统模型，包括（1）环境、领域特定应用开发环境和应用执行环境，其中（2）主要在领域特定应用开发环境中工作。&lt;/p&gt;
&lt;p&gt;（1）A. 领域需求 B. 领域开发 C. 领域执行 D. 领域应用
（2）A. 操作员 B. 领域架构师 C. 应用工程师 D. 程序员&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：B（领域开发环境）、C（应用工程师）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：DSSA 三层为：① 领域开发环境 ② 领域特定应用开发环境（应用工程师在此工作） ③ 应用执行环境。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="例题-4absdm-过程"&gt;例题 4（ABSDM 过程）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：在 ABSDM 模型中，把整个基于体系结构的软件开发过程划分为六个子过程，正确的顺序是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. 需求→设计→实现→文档化→复审→演化&lt;/li&gt;
&lt;li&gt;B. 需求→设计→文档化→复审→实现→演化&lt;/li&gt;
&lt;li&gt;C. 设计→需求→文档化→复审→实现→演化&lt;/li&gt;
&lt;li&gt;D. 需求→设计→复审→文档化→实现→演化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：B&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：ABSDM 六过程顺序：需求→设计→文档化→复审→实现→演化。复审必须在文档化之后、实现之前。&lt;/p&gt;
&lt;h2 id="4-高频考点"&gt;4. 高频考点
&lt;/h2&gt;&lt;h3 id="41-必须记住的核心要点"&gt;4.1 必须记住的核心要点
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;架构风格三要素&lt;/strong&gt;：架构定义、词汇表、&lt;strong&gt;约束&lt;/strong&gt;（必考）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ABSDM 六过程顺序&lt;/strong&gt;：需求→设计→文档化→复审→实现→演化（必考）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DSSA 三层模型 + 人员对应&lt;/strong&gt;：领域开发环境、领域特定应用开发环境（应用工程师）、应用执行环境&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;C2 风格关键特征&lt;/strong&gt;：连接件连接、构件间无直接连接&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;黑板风格典型应用&lt;/strong&gt;：信号处理（语音识别、模式识别）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解释器风格缺点&lt;/strong&gt;：执行效率低&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ADL 关注点&lt;/strong&gt;：构件间互联机制（连接子）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;常用多视图模型&lt;/strong&gt;：4+1、4 视图、Views and Beyond&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;视图标准&lt;/strong&gt;：IEEE 1471-2000、RM-ODP、UML、Zachman&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后开发阶段研究方向&lt;/strong&gt;：动态软件体系结构、体系结构恢复与重建&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="42-易混淆对比"&gt;4.2 易混淆对比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;对比项&lt;/th&gt;
					&lt;th&gt;区别&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;批处理 vs 管道-过滤器&lt;/td&gt;
					&lt;td&gt;批处理是&lt;strong&gt;整体&lt;/strong&gt;传递，管道是&lt;strong&gt;流式&lt;/strong&gt;处理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二层 C/S vs 三层 C/S&lt;/td&gt;
					&lt;td&gt;二层无功能层，三层分表示/功能/数据层&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;C/S vs B/S&lt;/td&gt;
					&lt;td&gt;B/S 浏览器作为客户端，跨平台但交互性差&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;仓库 vs 黑板&lt;/td&gt;
					&lt;td&gt;仓库是数据存储，黑板是问题求解（带控制）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;解释器 vs 规则系统&lt;/td&gt;
					&lt;td&gt;解释器是通用虚拟机，规则系统包含知识库和工作内存&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;机会复用 vs 系统复用&lt;/td&gt;
					&lt;td&gt;机会是开发中发现，系统是开发前规划&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;进程通信 vs 事件系统&lt;/td&gt;
					&lt;td&gt;进程通信是消息传递，事件系统是&lt;strong&gt;广播/触发&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>10-系统质量属性与架构评估</title><link>https://liangweidonggood.github.io/p/10-xi-tong-zhi-liang-shu-xing-yu-jia-gou-ping-gu/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://liangweidonggood.github.io/p/10-xi-tong-zhi-liang-shu-xing-yu-jia-gou-ping-gu/</guid><description>&lt;h1 id="10-系统质量属性与架构评估基于第10小时"&gt;10-系统质量属性与架构评估（基于第10小时）
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;软考-系统架构设计师 | 第3篇 架构设计高级知识
出题形式：单项选择题 + 下午案例分析题
分值占比：约 8-15 分（选择），案例分析 25 分&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="0-考点分析"&gt;0. 考点分析
&lt;/h2&gt;&lt;p&gt;本小时是软考&lt;strong&gt;分值最高、案例题最常考&lt;/strong&gt;的章节之一。涵盖三大主题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;软件系统质量属性&lt;/strong&gt;（开发期 + 运行期）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统架构评估&lt;/strong&gt;（方法、ATAM/SAAM 对比）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;质量属性场景描述&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;考试特点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择题 8-15 分（概念必考）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;案例分析题核心&lt;/strong&gt;（ATAM 评估、效用树、风险/敏感点/权衡点识别）&lt;/li&gt;
&lt;li&gt;论文题素材来源（架构评估方法、ATAM 实践）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="1-核心知识点"&gt;1. 核心知识点
&lt;/h2&gt;&lt;h3 id="11-软件系统质量属性开发期--运行期"&gt;1.1 软件系统质量属性（开发期 + 运行期）
&lt;/h3&gt;&lt;h4 id="开发期质量属性"&gt;开发期质量属性
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;属性&lt;/th&gt;
					&lt;th&gt;作用及要点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;易理解性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;指设计被开发人员理解的难易程度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可扩展性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件因适应新需求/需求变化而增加新功能的能力，也称灵活性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可重用性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;重用软件系统或某一部分的难易程度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可测试性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;对软件测试以证明其满足需求规范的难易程度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可维护性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;当需要修改缺陷、增加功能、提高质量属性时，识别修改点并实施修改的难易程度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可移植性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="运行期质量属性"&gt;运行期质量属性
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;属性&lt;/th&gt;
					&lt;th&gt;作用及要点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;性能&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件系统及时提供相应服务的能力（速度、吞吐量、容量）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;安全性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件系统同时兼顾向合法用户提供服务，以及阻止非授权使用的能力&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可伸缩性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;当用户数和数据量增加时，软件系统维持高服务质量的能力&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;互操作性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件系统与其他系统交换数据和相互调用服务的难易程度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可靠性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件系统在一定时间内持续无故障运行的能力&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;可用性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;系统在一定时间内正常工作的时间所占比例&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;鲁棒性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件系统在非正常情况（非法操作、软硬件故障）下仍正常运行的能力（也称健壮性/容错性）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="12-面向架构评估的质量属性"&gt;1.2 面向架构评估的质量属性
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;评估关注的核心属性&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类别&lt;/th&gt;
					&lt;th&gt;属性&lt;/th&gt;
					&lt;th&gt;关键点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;性能&lt;/td&gt;
					&lt;td&gt;性能&lt;/td&gt;
					&lt;td&gt;效率指标：处理任务所需时间或单位时间内的处理量&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可靠性&lt;/td&gt;
					&lt;td&gt;容错&lt;/td&gt;
					&lt;td&gt;出现错误后仍能保证系统正确运行，且自行修正错误&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;健壮性&lt;/td&gt;
					&lt;td&gt;错误不对系统产生影响，按既定程序忽略错误&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;可用性&lt;/td&gt;
					&lt;td&gt;正常运行的时间比例&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;安全性&lt;/td&gt;
					&lt;td&gt;系统向合法用户提供服务并阻止非法用户的能力&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可维护性&lt;/td&gt;
					&lt;td&gt;可维护性&lt;/td&gt;
					&lt;td&gt;局部修复使故障对架构的负面影响最小化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可修改性&lt;/td&gt;
					&lt;td&gt;可扩展性&lt;/td&gt;
					&lt;td&gt;因松散耦合更易实现新特性/功能，不影响架构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;结构重组&lt;/td&gt;
					&lt;td&gt;不影响主体进行的灵活配置&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;可移植性&lt;/td&gt;
					&lt;td&gt;适用于多样的环境（硬件平台、语言、操作系统等）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;其他&lt;/td&gt;
					&lt;td&gt;功能性&lt;/td&gt;
					&lt;td&gt;需求的满足程度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;可变性&lt;/td&gt;
					&lt;td&gt;总体架构可变&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;互操作性&lt;/td&gt;
					&lt;td&gt;通过可视化或接口方式提供更好的交互操作体验&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="13-提升质量属性的策略-案例分析重点"&gt;1.3 提升质量属性的策略（⭐⭐⭐ 案例分析重点）
&lt;/h3&gt;&lt;h4 id="可用性策略"&gt;可用性策略
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;错误检测&lt;/strong&gt;：心跳、Ping/Echo、异常&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;错误恢复&lt;/strong&gt;：表决、主动冗余、被动冗余、重新同步、内测、检查点/回滚&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;错误避免&lt;/strong&gt;：服务下线、事务、进程监控器&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="性能策略"&gt;性能策略
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;资源的需求&lt;/strong&gt;：减少处理时间对资源的占用、减少处理事件数量、控制资源使用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源管理&lt;/strong&gt;：并发机制、增加资源&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源仲裁&lt;/strong&gt;：先来先服务、固定优先级、动态优先级、静态调度&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="可修改性策略"&gt;可修改性策略
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;局部化修改&lt;/strong&gt;：高内聚低耦合、预测变更、使模块通用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;防止连锁反应&lt;/strong&gt;：信息隐藏、维持现有接口、限制通信路径、使用中介&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推迟绑定时间&lt;/strong&gt;：运行时注册、多态、配置文件&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="安全性策略"&gt;安全性策略
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;抵抗攻击&lt;/strong&gt;：用户身份验证、用户授权、维护数据机密性与完整性、限制暴露、限制访问&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检测攻击&lt;/strong&gt;：入侵检测系统&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;从攻击中恢复&lt;/strong&gt;：恢复状态、识别攻击者&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="14-质量属性场景描述6-要素"&gt;1.4 质量属性场景描述（6 要素）
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;要素&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;刺激源&lt;/strong&gt;（Source）&lt;/td&gt;
					&lt;td&gt;某个生成该刺激的实体（人、计算机系统或任何其他刺激器）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;刺激&lt;/strong&gt;（Stimulus）&lt;/td&gt;
					&lt;td&gt;指当刺激到达系统时需要考虑的条件&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;环境&lt;/strong&gt;（Environment）&lt;/td&gt;
					&lt;td&gt;该刺激在某些条件内发生（系统可能处于过载、运行等情况）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;制品&lt;/strong&gt;（Artifact）&lt;/td&gt;
					&lt;td&gt;某个制品被激励，可能是整个系统，也可能是系统的一部分&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;响应&lt;/strong&gt;（Response）&lt;/td&gt;
					&lt;td&gt;在激励到达后所采取的行动&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;响应度量&lt;/strong&gt;（Measurement）&lt;/td&gt;
					&lt;td&gt;当响应发生时，应当能够以某种方式对其进行度量&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="15-系统架构评估方法分类"&gt;1.5 系统架构评估方法分类
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;方法&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;缺点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;基于调查问卷或检查表&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;简单易行&lt;/td&gt;
					&lt;td&gt;很大程度上依赖评估人员的主观判断&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;基于场景&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;应用在 ATAM 和 SAAM 中&lt;/td&gt;
					&lt;td&gt;场景选择影响结果&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;基于度量&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;建立质量属性和度量之间的映射&lt;/td&gt;
					&lt;td&gt;难以建立映射原则&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;基于度量的步骤&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;建立质量属性和度量之间的映射原则&lt;/li&gt;
&lt;li&gt;在软件文档中获取度量信息&lt;/li&gt;
&lt;li&gt;分析推导系统质量属性&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="16-架构评估重要概念-必考"&gt;1.6 架构评估重要概念（⭐⭐⭐ 必考）
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;定义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;敏感点&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;实现质量目标时应注意的点，是一个或多个构件的特性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;权衡点&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;影响&lt;strong&gt;多个质量属性&lt;/strong&gt;的敏感点&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;风险承担者/利益相关人&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;影响体系结构或被体系结构影响的群体&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;场景&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;确定架构质量评估目标的交互机制（&lt;strong&gt;刺激 + 环境 + 影响&lt;/strong&gt;）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;风险点&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;存在问题的架构设计决策，可能导致问题&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;非风险点&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;良好的架构设计决策&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;记忆口诀&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;风险点 = 有问题&lt;/li&gt;
&lt;li&gt;非风险 = 良好&lt;/li&gt;
&lt;li&gt;敏感点 = 单个构件特性&lt;/li&gt;
&lt;li&gt;权衡点 = &lt;strong&gt;影响多个质量属性&lt;/strong&gt;的敏感点&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="17-saam-评估方法"&gt;1.7 SAAM 评估方法
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;全称&lt;/strong&gt;：Software Architecture Analysis Method&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提出&lt;/strong&gt;：1983 年，卡耐基梅隆大学软件工程研究所 Kazman 等人&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：最早形成文档并得到广泛应用的非功能质量属性架构分析方法&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输入&lt;/strong&gt;：问题描述、需求说明、架构描述&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;过程&lt;/strong&gt;：场景开发 → 架构描述 → 单个场景评估 → 场景交互 → 总体评估&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特定目标&lt;/strong&gt;：通过程序文档验证体系结构，&lt;strong&gt;注重发现潜在问题&lt;/strong&gt;，可用于单系统评价或多系统比较&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主要质量属性&lt;/strong&gt;：&lt;strong&gt;可修改性&lt;/strong&gt;是主要分析内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;架构描述&lt;/strong&gt;：围绕功能、结构和分配描述&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="18-atam-评估方法-案例题核心"&gt;1.8 ATAM 评估方法（⭐⭐⭐ 案例题核心）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;全称&lt;/strong&gt;：Architecture Tradeoff Analysis Method（架构权衡分析法）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：系统开发之前，针对&lt;strong&gt;性能、可用性、安全性和可修改性&lt;/strong&gt;等质量属性进行评价和折中&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;现代 ATAM&lt;/strong&gt;：采用&lt;strong&gt;效用树&lt;/strong&gt;对质量属性进行分类和优先级排序&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="传统-atam-四活动阶段"&gt;传统 ATAM 四活动阶段
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;需求收集&lt;/li&gt;
&lt;li&gt;架构视图描述&lt;/li&gt;
&lt;li&gt;属性模型构造和分析&lt;/li&gt;
&lt;li&gt;架构决策与折中&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="现代-atam-评估实践四阶段"&gt;现代 ATAM 评估实践四阶段
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;步骤&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;演示（Presentation）&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;① 介绍 ATAM ② 介绍业务驱动因素 ③ 介绍要评估的体系结构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;调查和分析&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;① 确定架构方法 ② 生成质量属性效用树 ③ 分析体系结构方法&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;测试&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;① 头脑风暴和优先场景 ② 分析架构方法&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;报告 ATAM&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;提供评估期间收集的所有信息，呈现给利益相关者&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;分析体系结构方法的 4 个主要阶段&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;调查架构方法&lt;/li&gt;
&lt;li&gt;创建分析问题&lt;/li&gt;
&lt;li&gt;分析问题的答案&lt;/li&gt;
&lt;li&gt;找出风险、非风险、敏感点和权衡点&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="19-saam-与-atam-对比-案例分析重点"&gt;1.9 SAAM 与 ATAM 对比（⭐ 案例分析重点）
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;项目&lt;/th&gt;
					&lt;th&gt;SAAM&lt;/th&gt;
					&lt;th&gt;ATAM&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;特定目标&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;通过程序文档验证体系结构，注重发现潜在问题，可用于评价单系统或进行多系统比较&lt;/td&gt;
					&lt;td&gt;确定在&lt;strong&gt;多个质量属性之间折中&lt;/strong&gt;的必要性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;评估技术&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;场景技术&lt;/td&gt;
					&lt;td&gt;场景技术 + 启发式分析方法&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;质量属性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;可修改性&lt;/strong&gt;是主要分析内容&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;性能、可用性、安全性和可修改性&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;风险承担者&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;所有参与者&lt;/td&gt;
					&lt;td&gt;场景和需求收集过程中的相关人&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;架构描述&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;围绕功能、结构和分配描述&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;五个基本结构&lt;/strong&gt;及其映射关系&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;方法活动&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;场景开发、体系结构描述、单个场景评估、场景交互和总体评估&lt;/td&gt;
					&lt;td&gt;场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;知识库可复用性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;不涉及&lt;/td&gt;
					&lt;td&gt;有基于属性的体系模型，可复用&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;方法验证&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;空中交通管制系统、嵌入式音频系统、修正控制系统&lt;/td&gt;
					&lt;td&gt;仍处于研究中&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="110-其他评估方法"&gt;1.10 其他评估方法
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;方法&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;CBAM&lt;/strong&gt;（成本效益分析法）&lt;/td&gt;
					&lt;td&gt;整理场景→对场景进行求精→确定场景的优先级→分配效用→架构策略涉及哪些质量属性及响应级别→使用内插法确定&amp;quot;期望的&amp;quot;质量属性响应级别的效用→计算各架构策略的总收益→根据受成本限制影响的 ROI 选择架构策略&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;SAEM&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;将软件架构看作最终产品以及涉及过程中的中间产品，从外部质量属性和内部质量属性阐述评估模型&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;SAABNet&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;辅助架构的定性评估，诊断软件问题可能原因，度量对象：架构属性、质量准则、质量因素&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;SACMM&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件架构修改的度量方法，基于内核定义差异度量准则计算两个软件架构之间的距离&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;SASAM&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;通过对预期架构和实际架构进行映射和比较来静态评估软件架构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;ALRRA&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件架构可靠性风险评估方法，使用动态复杂度准则和动态耦合度准则&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;AHP&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;把定性分析和定量计算相结合，对各种决策因素进行处理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;COSMIC+UML&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;针对不同表达方式的软件架构，采用统一的软件度量 COSMIC 方法&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="2-关键概念速查"&gt;2. 关键概念速查
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;定义/说明&lt;/th&gt;
					&lt;th&gt;常见考点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;易理解性&lt;/td&gt;
					&lt;td&gt;设计被开发人员理解的难易程度&lt;/td&gt;
					&lt;td&gt;开发期属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可维护性&lt;/td&gt;
					&lt;td&gt;识别修改点并实施修改的难易程度&lt;/td&gt;
					&lt;td&gt;开发期 vs 运行期辨析&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;性能&lt;/td&gt;
					&lt;td&gt;速度、吞吐量、容量&lt;/td&gt;
					&lt;td&gt;运行期核心属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;安全性&lt;/td&gt;
					&lt;td&gt;合法服务 + 阻止非授权&lt;/td&gt;
					&lt;td&gt;三大策略（抵抗/检测/恢复）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可用性&lt;/td&gt;
					&lt;td&gt;正常运行时间比例&lt;/td&gt;
					&lt;td&gt;三大策略（检测/恢复/避免）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;鲁棒性&lt;/td&gt;
					&lt;td&gt;非正常情况仍正常运行（健壮性/容错性）&lt;/td&gt;
					&lt;td&gt;vs 容错的区别&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;敏感点&lt;/td&gt;
					&lt;td&gt;一个或多个构件的特性&lt;/td&gt;
					&lt;td&gt;单个属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;权衡点&lt;/td&gt;
					&lt;td&gt;影响&lt;strong&gt;多个&lt;/strong&gt;质量属性的敏感点&lt;/td&gt;
					&lt;td&gt;多个属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;风险点&lt;/td&gt;
					&lt;td&gt;存在问题的架构设计决策&lt;/td&gt;
					&lt;td&gt;vs 非风险&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SAAM&lt;/td&gt;
					&lt;td&gt;1983 年 CMU 提出，最早的架构评估方法&lt;/td&gt;
					&lt;td&gt;主要分析可修改性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ATAM&lt;/td&gt;
					&lt;td&gt;架构权衡分析法&lt;/td&gt;
					&lt;td&gt;性能/可用性/安全性/可修改性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CBAM&lt;/td&gt;
					&lt;td&gt;成本效益分析法&lt;/td&gt;
					&lt;td&gt;基于 ROI&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;效用树&lt;/td&gt;
					&lt;td&gt;对质量属性进行分类和优先级排序&lt;/td&gt;
					&lt;td&gt;现代 ATAM 工具&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;质量属性场景 6 要素&lt;/td&gt;
					&lt;td&gt;刺激源/刺激/环境/制品/响应/响应度量&lt;/td&gt;
					&lt;td&gt;6 个不能漏&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="3-典型例题"&gt;3. 典型例题
&lt;/h2&gt;&lt;h3 id="例题-1风险敏感权衡点辨析"&gt;例题 1（风险/敏感/权衡点辨析）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：识别风险、非风险、敏感点和权衡点是进行软件架构评估的重要过程。&amp;ldquo;改变业务数据编码方式会对系统的性能和安全性产生影响&amp;quot;是对（1）的描述，&amp;ldquo;假设用户请求的频率为每秒 1 个，业务处理时间小于 30 毫秒，则将请求响应时间设定为 1 秒钟是可以接受的&amp;quot;是对（2）的描述。&lt;/p&gt;
&lt;p&gt;（1）A. 风险点 B. 非风险 C. 敏感点 D. 权衡点
（2）A. 风险点 B. 非风险 C. 敏感点 D. 权衡点&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：D（权衡点）、B（非风险）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;改变业务数据编码方式&lt;strong&gt;同时影响性能和安全性&lt;/strong&gt;两个属性→权衡点&lt;/li&gt;
&lt;li&gt;请求频率 1/秒、业务时间 30ms、响应 1s 是&lt;strong&gt;良好&lt;/strong&gt;的架构决策（无问题）→非风险&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="例题-2效用树案例"&gt;例题 2（效用树案例）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：某电子商务公司升级在线交易系统，需要构建质量属性效用树。题干描述中（a）-（m）各对应不同质量属性场景。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;已知&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(a) 正常负载 0.5s 内响应&lt;/li&gt;
&lt;li&gt;(b) 信用卡支付 99.999% 安全性&lt;/li&gt;
&lt;li&gt;(d) 网络失效 2 分钟内发现并启用备用&lt;/li&gt;
&lt;li&gt;(e) 高峰负载 10s 内完成支付&lt;/li&gt;
&lt;li&gt;(h) 30 人·月添加事务中间件&lt;/li&gt;
&lt;li&gt;(j) 主站点断电 3s 内重定向备用&lt;/li&gt;
&lt;li&gt;(k) 用户信息数据库 99.999% 可用&lt;/li&gt;
&lt;li&gt;(l) 4 人·月完成 Web 界面修改&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;编号&lt;/th&gt;
					&lt;th&gt;质量属性&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;(1)&lt;/td&gt;
					&lt;td&gt;性能&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;(2)&lt;/td&gt;
					&lt;td&gt;可修改性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;(3)&lt;/td&gt;
					&lt;td&gt;(e) 高峰负载 10s 内完成&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;(4)&lt;/td&gt;
					&lt;td&gt;(j) 主站点断电 3s 内重定向&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;(5)&lt;/td&gt;
					&lt;td&gt;(l) Web 界面修改 4 人·月&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;(6)&lt;/td&gt;
					&lt;td&gt;(k) 数据库 99.999% 可用&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：效用树主要关注&lt;strong&gt;性能、可修改性、可用性、安全&lt;/strong&gt; 4 个方面。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="例题-3风险敏感权衡点识别"&gt;例题 3（风险/敏感/权衡点识别）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：题干描述中，关于风险/敏感/权衡点的描述：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(f) 系统拟采用新的加密算法，会提高安全性，但会降低性能&lt;/li&gt;
&lt;li&gt;(g) 对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计&lt;/li&gt;
&lt;li&gt;(i) 现有架构设计中的支付部分与第三方支付平台紧耦合，当系统需要支持新的支付平台时，会导致支付部分代码的修改，影响系统的可修改性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(f) → &lt;strong&gt;权衡点&lt;/strong&gt;（同时影响安全性和性能）&lt;/li&gt;
&lt;li&gt;(g) → &lt;strong&gt;敏感点&lt;/strong&gt;（对处理时间的要求影响多个构件的设计）&lt;/li&gt;
&lt;li&gt;(i) → &lt;strong&gt;风险&lt;/strong&gt;（紧耦合导致修改困难，存在问题的架构决策）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="例题-4saam-与-atam-区别"&gt;例题 4（SAAM 与 ATAM 区别）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：以下关于 SAAM 和 ATAM 的描述中，错误的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. SAAM 是最早形成文档的架构分析方法&lt;/li&gt;
&lt;li&gt;B. ATAM 主要分析性能、可用性、安全性和可修改性&lt;/li&gt;
&lt;li&gt;C. SAAM 主要分析可修改性&lt;/li&gt;
&lt;li&gt;D. ATAM 的质量属性评估比 SAAM 少&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：ATAM 评估&lt;strong&gt;多个&lt;/strong&gt;质量属性（性能/可用性/安全性/可修改性），SAAM 主要分析可修改性，ATAM 评估范围&lt;strong&gt;更广&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="4-高频考点"&gt;4. 高频考点
&lt;/h2&gt;&lt;h3 id="41-必须记住的核心要点"&gt;4.1 必须记住的核心要点
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;质量属性分类&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;开发期：易理解、可扩展、可重用、可测试、可维护、可移植&lt;/li&gt;
&lt;li&gt;运行期：性能、安全性、可伸缩、互操作性、可靠性、可用性、鲁棒性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;三大质量策略&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;可用性：检测/恢复/避免&lt;/li&gt;
&lt;li&gt;性能：资源需求/管理/仲裁&lt;/li&gt;
&lt;li&gt;可修改性：局部化/防连锁/推迟绑定&lt;/li&gt;
&lt;li&gt;安全性：抵抗/检测/恢复&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;场景 6 要素&lt;/strong&gt;：刺激源/刺激/环境/制品/响应/响应度量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;风险/敏感/权衡点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;风险 = 有问题&lt;/li&gt;
&lt;li&gt;非风险 = 良好&lt;/li&gt;
&lt;li&gt;敏感点 = 单个构件特性&lt;/li&gt;
&lt;li&gt;权衡点 = 影响&lt;strong&gt;多个&lt;/strong&gt;质量属性的敏感点&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SAAM vs ATAM 关键区别&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;SAAM：1983 年、场景技术、可修改性、多系统比较&lt;/li&gt;
&lt;li&gt;ATAM：性能/可用/安全/可修改、效用树、五个基本结构、可复用知识库&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;现代 ATAM 四阶段&lt;/strong&gt;：演示→调查和分析→测试→报告&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;效用树关注 4 大属性&lt;/strong&gt;：性能、可修改性、可用性、安全&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="42-易混淆对比"&gt;4.2 易混淆对比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;对比项&lt;/th&gt;
					&lt;th&gt;区别&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;敏感点 vs 权衡点&lt;/td&gt;
					&lt;td&gt;敏感点影响&lt;strong&gt;一个&lt;/strong&gt;属性，权衡点影响&lt;strong&gt;多个&lt;/strong&gt;属性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;风险 vs 非风险&lt;/td&gt;
					&lt;td&gt;风险是&lt;strong&gt;有问题&lt;/strong&gt;的决策，非风险是&lt;strong&gt;良好&lt;/strong&gt;的决策&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SAAM vs ATAM&lt;/td&gt;
					&lt;td&gt;SAAM 主分析可修改性，ATAM 分析 4 大属性（含权衡）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;容错 vs 健壮性&lt;/td&gt;
					&lt;td&gt;容错是错误后&lt;strong&gt;修正&lt;/strong&gt;，健壮性是错误&lt;strong&gt;不影响系统&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;性能 vs 可伸缩性&lt;/td&gt;
					&lt;td&gt;性能是单次响应能力，可伸缩是负载增加时维持服务质量&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可用性 vs 可靠性&lt;/td&gt;
					&lt;td&gt;可用性是&lt;strong&gt;时间比例&lt;/strong&gt;，可靠性是&lt;strong&gt;无故障运行能力&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可维护性 vs 可修改性&lt;/td&gt;
					&lt;td&gt;可维护性是修复缺陷的难易，可修改性是&lt;strong&gt;架构层面&lt;/strong&gt;的修改难易&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>12-软件架构演化与维护</title><link>https://liangweidonggood.github.io/p/12-ruan-jian-jia-gou-yan-hua-yu-wei-hu/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://liangweidonggood.github.io/p/12-ruan-jian-jia-gou-yan-hua-yu-wei-hu/</guid><description>&lt;h1 id="12-软件架构演化与维护基于第12小时"&gt;12-软件架构演化与维护（基于第12小时）
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;软考-系统架构设计师 | 第3篇 架构设计高级知识
出题形式：单项选择题 + 下午案例分析题
分值占比：约 3-5 分（选择），案例分析 25 分&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="0-考点分析"&gt;0. 考点分析
&lt;/h2&gt;&lt;p&gt;本小时专注于软件架构的演化和维护，包括基本概念、演化类型、原则、评估方法和维护手段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;考试特点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择题 3-5 分（演化原则、动态/静态演化、原子操作）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;案例分析题核心&lt;/strong&gt;（大型网站架构演化路径、演化评估）&lt;/li&gt;
&lt;li&gt;论文题高频素材（架构演化、维护管理）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="1-核心知识点"&gt;1. 核心知识点
&lt;/h2&gt;&lt;h3 id="11-软件架构演化的重要性"&gt;1.1 软件架构演化的重要性
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;保障软件系统具备诸多好的特性&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有效管控软件系统的整体复杂性和变化性&lt;/strong&gt;，降低软件检修和修改成本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保证软件系统演化的一致性和正确性&lt;/strong&gt;，增加便捷性&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="12-演化和定义的关系"&gt;1.2 演化和定义的关系
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;软件架构包括&lt;strong&gt;组件、连接件和约束&lt;/strong&gt;三大要素&lt;/li&gt;
&lt;li&gt;架构演化主要关注这三大要素的&lt;strong&gt;添加、修改和删除&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="13-面向对象软件架构演化过程4-类操作"&gt;1.3 面向对象软件架构演化过程（4 类操作）
&lt;/h3&gt;&lt;h4 id="对象演化"&gt;对象演化
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;操作&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;触发场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;AO&lt;/strong&gt;（Add Object）&lt;/td&gt;
					&lt;td&gt;添加新对象&lt;/td&gt;
					&lt;td&gt;系统需要添加新功能或增加架构灵活性时&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;DO&lt;/strong&gt;（Delete Object）&lt;/td&gt;
					&lt;td&gt;删除对象&lt;/td&gt;
					&lt;td&gt;系统需要移除现有功能或降低架构复杂度时&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="消息演化5-种操作"&gt;消息演化（5 种操作）
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;操作&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;触发场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;AM&lt;/strong&gt;（Add Message）&lt;/td&gt;
					&lt;td&gt;增添一条新消息&lt;/td&gt;
					&lt;td&gt;对象之间需要增加新的交互行为&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;DM&lt;/strong&gt;（Delete Message）&lt;/td&gt;
					&lt;td&gt;删除当前消息&lt;/td&gt;
					&lt;td&gt;需要移除某交互行为&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;SMO&lt;/strong&gt;（Swap Message Order）&lt;/td&gt;
					&lt;td&gt;交换两条消息的时间顺序&lt;/td&gt;
					&lt;td&gt;需要改变两个交互行为之间顺序&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;OM&lt;/strong&gt;（Overturn Message）&lt;/td&gt;
					&lt;td&gt;反转消息的发送对象与接收对象&lt;/td&gt;
					&lt;td&gt;需要修改某个交互行为本身&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;CMM&lt;/strong&gt;（Change Message Module）&lt;/td&gt;
					&lt;td&gt;改变消息的发送或接收对象&lt;/td&gt;
					&lt;td&gt;需要修改某个交互行为本身&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="复合片段演化4-种操作"&gt;复合片段演化（4 种操作）
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;操作&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;触发场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;AF&lt;/strong&gt;（Add Fragment）&lt;/td&gt;
					&lt;td&gt;新增复合片段&lt;/td&gt;
					&lt;td&gt;需要增添新的控制流&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;DF&lt;/strong&gt;（Delete Fragment）&lt;/td&gt;
					&lt;td&gt;删除复合片段&lt;/td&gt;
					&lt;td&gt;需要移除某段控制流&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;FTC&lt;/strong&gt;（Fragment Type Change）&lt;/td&gt;
					&lt;td&gt;改变复合片段类型&lt;/td&gt;
					&lt;td&gt;需要改变某段控制流&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;FCC&lt;/strong&gt;（Fragment Condition Change）&lt;/td&gt;
					&lt;td&gt;改变复合片段内部执行条件&lt;/td&gt;
					&lt;td&gt;改变当前控制流的执行条件&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="约束演化"&gt;约束演化
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;操作&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
					&lt;th&gt;触发场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;AC&lt;/strong&gt;（Add Constraint）&lt;/td&gt;
					&lt;td&gt;添加新约束&lt;/td&gt;
					&lt;td&gt;需判断当前设计是否满足新约束&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;DC&lt;/strong&gt;（Delete Constraint）&lt;/td&gt;
					&lt;td&gt;移除约束&lt;/td&gt;
					&lt;td&gt;去除某些不必要条件&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="14-软件架构演化方式的分类"&gt;1.4 软件架构演化方式的分类
&lt;/h3&gt;&lt;h4 id="按演化时期分4-类"&gt;按演化时期分（4 类）
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;时机&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;设计时演化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;体系结构模型与代码&lt;strong&gt;编译之前&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;早期阶段&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;运行前演化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;编译之后、执行之前&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;中间阶段&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;有限制运行时演化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;特定约束满足时&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;受限运行&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;运行时演化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;运行时不能满足要求时&lt;/td&gt;
					&lt;td&gt;动态调整&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;记忆口诀&lt;/strong&gt;：&lt;strong&gt;设计时→运行前→有限制运行时→运行时&lt;/strong&gt;（从早到晚）&lt;/p&gt;
&lt;h4 id="静态演化-vs-动态演化"&gt;静态演化 vs 动态演化
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;静态演化&lt;/th&gt;
					&lt;th&gt;动态演化&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;需求&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;设计时演化、运行前演化&lt;/td&gt;
					&lt;td&gt;软件内部执行导致架构改变、外部请求重配置&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;过程&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件理解→需求变更分析→演化计划→系统重构→系统测试&lt;/td&gt;
					&lt;td&gt;实时调整&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;动态性等级&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;-&lt;/td&gt;
					&lt;td&gt;交互动态性、结构动态性、架构动态性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;演化内容&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;-&lt;/td&gt;
					&lt;td&gt;属性改名、行为变化、拓扑结构改变、风格变化&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：动态演化不包括&amp;quot;&lt;strong&gt;格式变化&lt;/strong&gt;&amp;quot;（考题陷阱）&lt;/p&gt;
&lt;h4 id="静态演化的原子操作"&gt;静态演化的原子操作
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;与可维护性相关&lt;/strong&gt;（7 种）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMD（Add Module Dependence）— 添加模块依赖&lt;/li&gt;
&lt;li&gt;RMD（Remove Module Dependence）— 移除模块依赖&lt;/li&gt;
&lt;li&gt;AMI（Add Module Interface）— 添加模块接口&lt;/li&gt;
&lt;li&gt;RMI（Remove Module Interface）— 移除模块接口&lt;/li&gt;
&lt;li&gt;AM（Add Module）— 添加模块&lt;/li&gt;
&lt;li&gt;RM（Remove Module）— 移除模块&lt;/li&gt;
&lt;li&gt;SM（Split Module）— 拆分模块&lt;/li&gt;
&lt;li&gt;AGM（Aggregate Modules）— 聚合模块&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;与可靠性相关&lt;/strong&gt;（10 种）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMS（Add Message）— 添加消息&lt;/li&gt;
&lt;li&gt;RMS（Remove Message）— 移除消息&lt;/li&gt;
&lt;li&gt;AO（Add Object）— 添加对象&lt;/li&gt;
&lt;li&gt;RO（Remove Object）— 移除对象&lt;/li&gt;
&lt;li&gt;AF（Add Fragment）— 添加片段&lt;/li&gt;
&lt;li&gt;RF（Remove Fragment）— 移除片段&lt;/li&gt;
&lt;li&gt;CF（Change Fragment）— 改变片段&lt;/li&gt;
&lt;li&gt;AU（Add Use Case）— 添加用例&lt;/li&gt;
&lt;li&gt;RU（Remove Use Case）— 移除用例&lt;/li&gt;
&lt;li&gt;AA（Add Actor）— 添加参与者&lt;/li&gt;
&lt;li&gt;RA（Remove Actor）— 移除参与者&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="15-动态软件架构dsa"&gt;1.5 动态软件架构（DSA）
&lt;/h3&gt;&lt;h4 id="实现动态演化的基本原理"&gt;实现动态演化的基本原理
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;运行时刻&lt;strong&gt;体系结构相关信息的改变&lt;/strong&gt;可用来触发、驱动系统自身的动态调整&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="dsa-描述语言按视角分"&gt;DSA 描述语言（按视角分）
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;视角&lt;/th&gt;
					&lt;th&gt;语言&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;行为视角&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;π-ADL&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;反射视角&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;Pilar&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;协调视角&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;LIME&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="dsa-演化工具4-种"&gt;DSA 演化工具（4 种）
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;使用反射机制&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;基于组件操作&lt;/li&gt;
&lt;li&gt;基于 π 演算&lt;/li&gt;
&lt;li&gt;利用外部的体系结构演化管理器&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="动态软件架构应用实例--pkuas"&gt;动态软件架构应用实例 — PKUAS
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;4 种类型：&lt;strong&gt;容器系统、公共服务、工具和微内核&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="动态重配置"&gt;动态重配置
&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;4 种模式&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;主从模式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中央控制模式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;客户端/服务器模式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布式控制模式&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;应用实例&lt;/strong&gt;：可重用、可配置的产品线架构&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动态配置难点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;约束定义困难&lt;/li&gt;
&lt;li&gt;性能约束难以静态衡量&lt;/li&gt;
&lt;li&gt;难以管理所有方面&lt;/li&gt;
&lt;li&gt;需同时保证组件系统完整性和重配置策略的正确和安全性&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="16-软件结构演化原则18-大原则"&gt;1.6 软件结构演化原则（18 大原则）
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;#&lt;/th&gt;
					&lt;th&gt;原则&lt;/th&gt;
					&lt;th&gt;关键点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;演化成本控制&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;演化成本要控制在预期范围内&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;进度可控&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;架构演化要在预期时间内完成&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;风险可控&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;经济/时间/人力/技术/环境风险在可控范围内&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;4&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;主体维持&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件演化的平均增量增长须保持平稳，主体行为稳定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;5&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;系统总体结构优化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;演化后整体结构（布局）更加合理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;6&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;平滑演化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件的演化&lt;strong&gt;速率趋于稳定&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;7&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;目标一致&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;阶段目标和最终目标要一致&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;8&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;模块独立演化&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;各模块自身的演化最好相互独立&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;9&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;影响可控&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;一个模块变更给其他模块带来的影响在可控范围&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;10&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;复杂性可控&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;必须控制架构的复杂性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;11&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;有利于重构&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;演化后软件架构便于重构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;12&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;有利于重用&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;维持或提高整体架构的可重用性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;13&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;设计原则遵循性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;演化不与架构设计原则冲突&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;14&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;适应新技术&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;软件独立于特定技术手段，可运行于不同平台&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;15&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;环境适应性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;演化后软件版本容易适应新硬件/软件环境&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;16&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;标准依从性&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;演化不违背相关质量标准（国际/国家/行业）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;17&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;质量向好&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;所关注的质量指标综合效果变更好&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;18&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;适应新需求&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;很容易适应新的需求变更&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;关键原则对比&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;原则&lt;/th&gt;
					&lt;th&gt;vs&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;主体维持&lt;/td&gt;
					&lt;td&gt;平均增量&lt;strong&gt;平稳&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;平滑演化&lt;/td&gt;
					&lt;td&gt;演化&lt;strong&gt;速率趋于稳定&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;目标一致&lt;/td&gt;
					&lt;td&gt;阶段目标和最终目标&lt;strong&gt;一致&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;系统总体结构优化&lt;/td&gt;
					&lt;td&gt;整体&lt;strong&gt;结构布局&lt;/strong&gt;合理&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="17-软件架构演化评估方法"&gt;1.7 软件架构演化评估方法
&lt;/h3&gt;&lt;h4 id="演化过程已知的评估"&gt;演化过程已知的评估
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;流程：将架构度量应用到演化过程中&lt;/li&gt;
&lt;li&gt;通过对&lt;strong&gt;演化前后的不同版本&lt;/strong&gt;的架构分别进行度量&lt;/li&gt;
&lt;li&gt;得到度量结果的&lt;strong&gt;差值及其变化趋势&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;计算架构间质量属性距离，对相关质量属性进行评估&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="演化过程未知的评估"&gt;演化过程未知的评估
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;教材图 12.3 展示评估过程&lt;/li&gt;
&lt;li&gt;通过反向工程等技术恢复架构信息&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="18-大型网站系统架构演化实例10-阶段"&gt;1.8 大型网站系统架构演化实例（10 阶段）
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;阶段&lt;/th&gt;
					&lt;th&gt;架构&lt;/th&gt;
					&lt;th&gt;关键点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第一阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;单体架构&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;应用程序、数据库、文件等所有资源都在&lt;strong&gt;一台服务器&lt;/strong&gt;上&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第二阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;垂直架构&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;应用和数据分离，&lt;strong&gt;3 台服务器&lt;/strong&gt;：应用、文件、数据&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第三阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;使用缓存改善性能&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;本地缓存 + 远程&lt;strong&gt;分布式缓存&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第四阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;使用服务集群改善并发&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;负载均衡调度服务器，分发请求到集群&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第五阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;数据库读写分离&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;主库写、从库读，&lt;strong&gt;主从复制&lt;/strong&gt;机制同步&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第六阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;反向代理和 CDN 加速&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;CDN 部署在网络提供商机房（距离最近）；反向代理部署在中心机房&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第七阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;分布式文件系统和分布式数据库&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;业务分库&lt;/strong&gt;，不同业务部署不同物理服务器&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第八阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;使用 NoSQL 和搜索引擎&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;解决海量数据检索&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第九阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;业务拆分&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;一个网站拆分成多个应用，独立部署&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;第十阶段&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;分布式服务&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;服务化、SOA/微服务&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;核心演化逻辑&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;解决性能 → 缓存、集群、读写分离&lt;/li&gt;
&lt;li&gt;解决高可用 → 集群、读写分离、CDN&lt;/li&gt;
&lt;li&gt;解决扩展性 → 业务拆分、分布式服务&lt;/li&gt;
&lt;li&gt;解决海量数据 → 分布式文件系统、NoSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="19-软件架构维护"&gt;1.9 软件架构维护
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;维护过程&lt;/strong&gt;（3 大内容）：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;软件架构知识管理&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;软件架构修改管理&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;软件架构版本管理&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="软件架构知识管理"&gt;软件架构知识管理
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;架构知识 = 架构设计 + 架构设计决策&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;含义：侧重于软件开发和实现过程所涉及的架构&lt;strong&gt;静态演化&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;在架构文档等信息来源中捕捉架构知识&lt;/li&gt;
&lt;li&gt;提供架构的质量属性及其设计依据进行记录和评价&lt;/li&gt;
&lt;li&gt;需求：防止关键的设计知识&amp;quot;沉没&amp;quot;在软件架构中&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="软件架构修改管理"&gt;软件架构修改管理
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;主要是建立一个&lt;strong&gt;隔离区域&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;保障该区域中任何修改对其他部分影响&lt;strong&gt;最小&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="软件架构版本管理"&gt;软件架构版本管理
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;为软件架构演化的&lt;strong&gt;版本演化控制、使用和评价&lt;/strong&gt;提供可靠依据&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="架构可维护性度量6-指标"&gt;架构可维护性度量（6 指标）
&lt;/h4&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;指标&lt;/th&gt;
					&lt;th&gt;缩写&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;圈复杂度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;CNN&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;扇入扇出度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;FFC&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;模块间耦合度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;CBO&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;模块的响应&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;RFC&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;紧内聚度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;TCC&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;松内聚度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;LCC&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="2-关键概念速查"&gt;2. 关键概念速查
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;定义/说明&lt;/th&gt;
					&lt;th&gt;常见考点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;AO/DO&lt;/td&gt;
					&lt;td&gt;对象的添加/删除&lt;/td&gt;
					&lt;td&gt;对象演化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AM/DM/SMO/OM/CMM&lt;/td&gt;
					&lt;td&gt;消息的增/删/换序/反转/改模块&lt;/td&gt;
					&lt;td&gt;消息演化 5 种&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AF/DF/FTC/FCC&lt;/td&gt;
					&lt;td&gt;复合片段的增/删/改类型/改条件&lt;/td&gt;
					&lt;td&gt;复合片段演化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AC/DC&lt;/td&gt;
					&lt;td&gt;约束的添加/删除&lt;/td&gt;
					&lt;td&gt;约束演化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;设计时演化&lt;/td&gt;
					&lt;td&gt;编译之前&lt;/td&gt;
					&lt;td&gt;4 时期最早&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;运行前演化&lt;/td&gt;
					&lt;td&gt;编译之后、执行之前&lt;/td&gt;
					&lt;td&gt;4 时期&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;有限制运行时演化&lt;/td&gt;
					&lt;td&gt;特定约束满足时&lt;/td&gt;
					&lt;td&gt;4 时期&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;运行时演化&lt;/td&gt;
					&lt;td&gt;运行时不能要求时&lt;/td&gt;
					&lt;td&gt;4 时期最晚&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;主体维持&lt;/td&gt;
					&lt;td&gt;平均增量&lt;strong&gt;平稳&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;18 原则&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;平滑演化&lt;/td&gt;
					&lt;td&gt;演化&lt;strong&gt;速率趋于稳定&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;18 原则&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;目标一致&lt;/td&gt;
					&lt;td&gt;阶段目标和最终目标一致&lt;/td&gt;
					&lt;td&gt;18 原则&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;系统总体结构优化&lt;/td&gt;
					&lt;td&gt;整体结构布局&lt;strong&gt;合理&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;18 原则&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DSA 描述语言&lt;/td&gt;
					&lt;td&gt;π-ADL（行为）/Pilar（反射）/LIME（协调）&lt;/td&gt;
					&lt;td&gt;3 种视角&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;动态重配置 4 模式&lt;/td&gt;
					&lt;td&gt;主从/中央控制/C-S/分布式控制&lt;/td&gt;
					&lt;td&gt;4 种模式&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;大型网站 10 阶段&lt;/td&gt;
					&lt;td&gt;单体→垂直→缓存→集群→读写分离→CDN→分布式→NoSQL→业务拆分→分布式服务&lt;/td&gt;
					&lt;td&gt;演化路径&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;架构维护 3 内容&lt;/td&gt;
					&lt;td&gt;知识/修改/版本管理&lt;/td&gt;
					&lt;td&gt;必考&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;架构可维护性 6 指标&lt;/td&gt;
					&lt;td&gt;CNN/FFC/CBO/RFC/TCC/LCC&lt;/td&gt;
					&lt;td&gt;缩写含义&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="3-典型例题"&gt;3. 典型例题
&lt;/h2&gt;&lt;h3 id="例题-1演化原则辨析"&gt;例题 1（演化原则辨析）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：在软件系统的生命周期里，软件的演化速率趋于稳定，如相邻版本的更新率相对稳定。此描述是软件架构演化的（ ）原则。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. 主体维持&lt;/li&gt;
&lt;li&gt;B. 系统总体结构优化&lt;/li&gt;
&lt;li&gt;C. 平滑演化&lt;/li&gt;
&lt;li&gt;D. 目标一致&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：C&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主体维持：平均增量增长平稳&lt;/li&gt;
&lt;li&gt;系统总体结构优化：整体结构布局合理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平滑演化：演化速率趋于稳定&lt;/strong&gt; ✓&lt;/li&gt;
&lt;li&gt;目标一致：阶段目标和最终目标一致&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="例题-2架构维护内容"&gt;例题 2（架构维护内容）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：软件架构维护过程不包括（ ）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. 架构知识管理&lt;/li&gt;
&lt;li&gt;B. 架构修改管理&lt;/li&gt;
&lt;li&gt;C. 架构版本管理&lt;/li&gt;
&lt;li&gt;D. 架构构件管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：软件架构维护过程包括&lt;strong&gt;架构知识管理、架构修改管理、架构版本管理&lt;/strong&gt;，&lt;strong&gt;不包括&lt;/strong&gt;架构构件管理。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="例题-3演化时期辨析"&gt;例题 3（演化时期辨析）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：下列软件架构演化时期，（ ）是在系统设计时规定了演化的具体条件，将系统置于&amp;quot;安全&amp;quot;模式下，演化只发生在某些特定约束满足时，可以进行一些规定好的演化操作。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. 设计时演化&lt;/li&gt;
&lt;li&gt;B. 运行前演化&lt;/li&gt;
&lt;li&gt;C. 有限制运行时演化&lt;/li&gt;
&lt;li&gt;D. 运行时演化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：C&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;设计时演化：编译之前&lt;/li&gt;
&lt;li&gt;运行前演化：编译之后、执行之前&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有限制运行时演化：只发生在某些特定约束满足时&lt;/strong&gt; ✓&lt;/li&gt;
&lt;li&gt;运行时演化：运行时不能满足要求时&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="例题-4动态演化内容"&gt;例题 4（动态演化内容）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;题目&lt;/strong&gt;：根据所修改的内容不同，软件的动态演化不包括（ ）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A. 属性改名&lt;/li&gt;
&lt;li&gt;B. 行为变化&lt;/li&gt;
&lt;li&gt;C. 拓扑结构改变&lt;/li&gt;
&lt;li&gt;D. 格式变化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;答案&lt;/strong&gt;：D&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解析&lt;/strong&gt;：动态演化的内容包括：&lt;strong&gt;属性改名、行为变化、拓扑结构改变、风格变化&lt;/strong&gt;。&lt;strong&gt;格式变化&lt;/strong&gt;不属于动态演化内容。&lt;/p&gt;
&lt;h2 id="4-高频考点"&gt;4. 高频考点
&lt;/h2&gt;&lt;h3 id="41-必须记住的核心要点"&gt;4.1 必须记住的核心要点
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;架构 3 要素&lt;/strong&gt;：组件、连接件、约束（演化关注这 3 要素的增删改）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对象演化 2 种&lt;/strong&gt;：AO、DO&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;消息演化 5 种&lt;/strong&gt;：AM、DM、SMO、OM、CMM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复合片段演化 4 种&lt;/strong&gt;：AF、DF、FTC、FCC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;约束演化 2 种&lt;/strong&gt;：AC、DC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;演化 4 时期&lt;/strong&gt;（从早到晚）：设计时→运行前→有限制运行时→运行时&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态演化 4 内容&lt;/strong&gt;：属性改名、行为变化、拓扑结构改变、风格变化（&lt;strong&gt;不含格式变化&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DSA 描述语言 3 视角&lt;/strong&gt;：行为（π-ADL）/反射（Pilar）/协调（LIME）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态重配置 4 模式&lt;/strong&gt;：主从/中央控制/C-S/分布式控制&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PKUAS 4 类型&lt;/strong&gt;：容器系统、公共服务、工具、微内核&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;架构 4 大演化原则对比&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;主体维持：平均增量&lt;strong&gt;平稳&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;平滑演化：演化&lt;strong&gt;速率稳定&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;目标一致：阶段目标和最终目标&lt;strong&gt;一致&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;系统总体结构优化：整体结构&lt;strong&gt;合理&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大型网站 10 阶段演化路径&lt;/strong&gt;（必考）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;架构维护 3 内容&lt;/strong&gt;：知识/修改/版本管理（&lt;strong&gt;不含构件管理&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可维护性 6 指标&lt;/strong&gt;：CNN/FFC/CBO/RFC/TCC/LCC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;架构知识 = 架构设计 + 架构设计决策&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="42-易混淆对比"&gt;4.2 易混淆对比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;对比项&lt;/th&gt;
					&lt;th&gt;区别&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;AO vs AM&lt;/td&gt;
					&lt;td&gt;AO 是&lt;strong&gt;对象&lt;/strong&gt;的添加，AM 是&lt;strong&gt;消息&lt;/strong&gt;的添加&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AC vs AF&lt;/td&gt;
					&lt;td&gt;AC 是&lt;strong&gt;约束&lt;/strong&gt;的添加，AF 是&lt;strong&gt;复合片段&lt;/strong&gt;的添加&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;主体维持 vs 平滑演化&lt;/td&gt;
					&lt;td&gt;主体维持强调&lt;strong&gt;增量稳定&lt;/strong&gt;，平滑演化强调&lt;strong&gt;速率稳定&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;目标一致 vs 系统总体结构优化&lt;/td&gt;
					&lt;td&gt;目标一致是&lt;strong&gt;目标&lt;/strong&gt;，结构优化是&lt;strong&gt;布局&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;静态演化 vs 动态演化&lt;/td&gt;
					&lt;td&gt;静态是&lt;strong&gt;预先规划&lt;/strong&gt;的演化，动态是&lt;strong&gt;运行时刻&lt;/strong&gt;的演化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;设计时 vs 运行前&lt;/td&gt;
					&lt;td&gt;设计时是&lt;strong&gt;编译之前&lt;/strong&gt;，运行前是&lt;strong&gt;编译之后&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;双机热备 vs 服务集群&lt;/td&gt;
					&lt;td&gt;热备是&lt;strong&gt;2 台服务器&lt;/strong&gt;，集群是&lt;strong&gt;多节点&lt;/strong&gt;通过 LAN 互连&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;架构知识管理 vs 修改管理&lt;/td&gt;
					&lt;td&gt;知识管理是&lt;strong&gt;捕捉记录&lt;/strong&gt;，修改管理是&lt;strong&gt;隔离变更&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</description></item></channel></rss>