ONEPSOFT | 软考学习知识库
speedrun18|第12章软件架构设计(风格质量属性评估)速通
一、章节定位
一句话概括:本章讲 " 系统的骨架怎么搭 "——用什么结构风格、满足哪些质量属性、怎么评估这个骨架合不合理。
二、本章在讲什么(系统性阐述)
软件架构像大楼的主体结构方案:是构件 (房间)、连接件 (走廊/管线)、集成模式 (怎么拼) 和约束 (规范) 的高级抽象。选不同 " 结构风格 " 就像选框架结构/钢结构/装配式——各有适用场景。
本章三块:
三、教材原文精摘(原封不动,逐子章节全覆盖)
12.1 架构定义 原文:软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。
12.3 架构风格定义 原文:软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式,定义一个词汇表和一组约束。
12.3.2 数据流风格 原文:批处理——每步是独立程序,前一步结束才启动下一步,数据整体传递;管道 - 过滤器——数据源源产生,步骤间由管道传输,过滤器读输入流、写输出流。
12.3.3 调用/返回风格 原文:主程序/子程序(单线程、层次性)、面向对象、层次型、客户端/服务器(二层 C/S、三层 C/S、B/S)。
12.3.4 以数据为中心 原文:仓库风格(中央数据结构 + 独立构件操作);黑板风格(解决复杂非结构化问题,知识源分级)。
12.3.6 独立构件 原文:进程通信(消息传递);事件系统/隐式调用(触发/广播事件,注册过程被自动调用,不直接通信以降低耦合)。
12.6 质量属性 原文:软件架构重点关注质量属性(功能属性之外)。开发期质量属性:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性。运行期质量属性:性能、安全性、可伸缩性、互操作性、可靠性、可用性、健壮性。
12.6.1 质量属性权衡 原文:在系统设计过程中应根据具体情况对各种特性进行折中(如安全性和效率就是负相关的,它们之间是一对矛盾体)。
12.6.3 质量属性场景 原文:质量属性场景是一个具体的质量属性需求,由六部分组成——刺激源、刺激、环境、制品、响应、响应度量。
架构评估(12.6)原文:在确定软件系统架构,精确描述质量属性场景后,就需要对系统架构进行评估。软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。
逐段讲解:
四、核心知识树
第 12 章 软件架构设计
├── 架构定义
│ ├── 构件 + 连接件 + 约束
│ └── 高级抽象
├── 架构风格 (5+SOA)
│ ├── 数据流 (批/管滤)
│ ├── 调用返回 (主子/OO/层/C-S/B-S)
│ ├── 数据中心 (仓库/黑板)
│ ├── 虚拟机 (解释器/规则)
│ ├── 独立构件 (进程/事件)
│ └── SOA
├── 质量属性
│ ├── 开发期 (可维护等)
│ └── 运行期 (性能/可用/安全)
└── 架构评估
├── 质量属性场景 (六要素)
└── SAAM/ATAM
五、知识脑图总结
思维导图(结构化呈现)
六、关键概念速解
| 概念 | 教材定义(原文关键词) | 大白话速解 | 考试怎么考 |
|---|---|---|---|
| 软件架构 | 构件 + 连接件 + 约束的高级抽象 | 系统骨架图 | 选择:架构组成要素 |
| 管道 - 过滤器 | 流式数据,过滤器读入写出 | 像自来水管道串联 | 选择:场景选风格 |
| 仓库/黑板 | 中央数据 + 独立构件 | 共享大黑板 | 选择:风格辨析 |
| 事件系统 | 隐式调用,广播降耦 | 订阅号推送 | 选择:低耦合场景 |
| 质量属性 | 功能外的性能/可用/安全等 | 非功能要求 | 选择:开发期 vs 运行期 |
| 质量属性场景 | 六要素描述质量需求 | 质量的 " 需求模板 " | 选择:六要素组成 |
| ATAM | 架构权衡分析方法 | 多质量属性取舍评估 | 选择/案例:评估方法 |
七、记忆口诀 & 类比
八、易混淆点对比
| 易混项 A | 易混项 B | 核心区别 |
|---|---|---|
| 管道 - 过滤器 | 批处理 | 前者流式逐步处理;后者整体传输、前步完才启后步 |
| 仓库风格 | 黑板风格 | 仓库通用中央数据;黑板用于复杂非结构化问题、知识源分级 |
| 二层 C/S | 三层 C/S/B-S | 二层胖客户;三层分表示/功能/数据,B-S 零客户端 |
| 开发期质量属性 | 运行期质量属性 | 开发期=好不好改 (可维护);运行期=跑得咋样 (性能/可用) |
| SAAM | ATAM | SAAM 分析对质量属性支持;ATAM 强调多属性权衡 |
九、与其他章节的关联
十、考试出题方式