目录 3
第1部分 软件体系结构 3
第1章 绪论 3
1.1 不同语境中的软件体系结构 3
1.1.1 作为设计规划的软件体系结构 4
1.1.2 作为抽象的软件体系结构 5
1.1.3 软件体系结构术语 7
1.2 4种视图是从哪里来的 10
1.2.1 视图间的松散连接 12
1.2.2 不同视图强调的不同工程关注点 13
1.3 使用4种视图 15
1.4 表示法 18
补充阅读 19
第2部分 设计、描述和使用软件体系结构 25
第2章 IS2000:高级成像解决方案 25
2.1 系统概述 25
2.2 产品特点 26
2.3 系统交互 27
2.4 IS2000的未来 27
第3章 全局分析 29
3.1 全局分析概述 30
3.1.1 分析因素 31
3.1.2 制订策略 33
3.2 分析组织因素 35
3.3 开始制订策略 39
3.4 分析技术因素 42
3.5 继续制订策略 46
3.6 分析产品因素 49
3.7 继续制订策略 52
3.8 全局分析总结 55
补充阅读 57
第4章 概念体系结构视图 59
4.1 概念体系结构视图的设计活动 60
4.1.1 全局分析 61
4.1.2 核心设计任务 62
4.1.3 最终设计任务:资源预算 66
4.2.1 全局分析 67
4.2 IS2000的概念体系结构视图设计 67
4.2.2 核心设计任务:构件、连接子及配置 69
4.2.3 最终设计任务:资源预算 88
4.2.4 IS2000概念视图的设计总结 89
4.3 概念体系结构视图的总结 91
4.3.1 可追踪性 93
4.3.2 概念体系结构视图的应用 93
补充阅读 94
第5章 模块体系结构视图 95
5.1 模块体系结构视图的设计活动 96
5.1.1 全局分析 98
5.1.2 核心设计任务 98
5.1.3 最终设计任务:接口设计 101
5.2 IS2000模块体系结构视图的设计 102
5.2.1 全局分析 102
5.2.2 核心设计任务:模块化和分层 103
5.2.3 最终设计任务:接口设计 116
5.2.4 IS2000模块视图的设计总结 117
5.3 模块体系结构视图总结 118
5.3.1 可追踪性 121
5.3.2 模块体系结构视图的应用 121
补充阅读 122
第6章 执行体系结构视图 123
6.1 执行体系结构视图的设计活动 124
6.1.1 全局分析 126
6.1.2 核心设计任务 127
6.1.3 最终设计任务:资源分配 130
6.2 IS2000执行体系结构视图的设计 131
6.2.1 全局分析 131
6.2.2 核心设计任务:运行时间实体、通信路径和配置 137
6.2.3 最终设计任务:资源分配 149
6.2.4 IS2000执行视图的设计总结 152
6.3 执行体系结构视图的总结 154
6.3.1 可追踪性 155
6.3.2 执行体系结构视图的应用 156
补充阅读 156
第7章 代码体系结构视图 159
7.1 代码体系结构视图的设计活动 160
7.1.1 全局分析 161
7.1.2 核心设计任务 162
7.1.3 最终设计任务 165
7.2 IS2000的代码体系结构视图的设计 166
7.2.1 全局分析 166
7.2.2 核心设计任务:源代码构件、中间构件和部署构件 175
7.2.3 最终设计任务:构造过程和配置管理 182
7.2.4 IS2000代码体系结构视图的设计概述 183
7.3 代码体系结构视图的总结 185
7.3.1 可追踪性 187
7.3.2 代码体系结构视图的应用 188
补充阅读 188
第8章 安全视境 197
第3部分 软件体系结构的最佳实践 197
8.1 全局分析 199
8.1.1 分析产品因素 199
8.1.2 分析技术因素 202
8.1.3 分析组织因素 203
8.1.4 开发策略 204
8.2 概念体系结构视图 212
8.2.1 软件规约中的构件 216
8.2.2 软件规约中的连接子 218
8.2.3 概念配置 218
8.2.4 资源预算 219
8.3 模块体系结构视图 219
8.3.1 应用软件层 221
8.3.2 平台软件层 223
8.4 执行体系结构视图 227
8.4.1 处理器 227
8.4.2 通信路径 232
8.4.3 执行配置 232
8.5 代码体系结构视图 233
8.6 软件体系结构的应用 235
8.6.1 项目的软件过程 236
8.6.2 项目测试 236
8.7 总结 237
第9章 健康视境 241
9.1 全局分析 243
9.1.1 分析产品因素 243
9.1.2 分析技术因素 246
9.1.3 分析组织因素 247
9.1.4 开发策略 249
9.2 概念体系结构视图 257
9.3 模块体系结构视图 260
9.3.1 应用软件分解 260
9.3.2 平台软件的分解 262
9.3.3 层次结构 264
9.3.4 错误日志 265
9.4.1 定义运行时实体 266
9.4 执行体系结构视图 266
9.4.2 通信通道 268
9.4.3 概念视图和模块视图回顾 269
9.4.4 执行配置 270
9.5 代码体系结构视图 272
9.5.1 开发环境 272
9.5.2 配置管理和构造策略 274
9.6 软件体系结构的用途 274
9.6.1 评估 275
9.6.2 进度规划 275
9.6.3 实现 275
9.6.4 需求追踪 276
9.7.1 软件体系结构概念 277
9.7 总结 277
9.7.2 经验 278
第10章 中心视境 281
10.1 全局分析 282
10.1.1 分析产品因素 283
10.1.2 分析技术因素 285
10.1.3 分析组织因素 286
10.1.4 开发策略 288
10.2 概念体系结构视图 292
10.3 模块体系结构视图 297
10.3.1 分解和分层 297
10.3.2 分解 300
10.4.1 定义运行时实体 301
10.4 执行体系结构视图 301
10.4.2 定义通信路径 304
10.4.3 定义执行配置 305
10.4.4 资源配置 307
10.5 代码体系结构视图 308
10.5.1 核心设计任务 308
10.5.2 构造过程和配置管理 309
10.6 软件体系结构的使用 310
10.7 总结 311
10.7.1 软件体系结构概念 311
10.7.2 经验 312
第11章 通信视境 315
11.1 全局分析 317
11.1.1 分析产品因素 317
11.1.2 分析技术因素 319
11.1.3 分析组织因素 321
11.1.4 开发策略 322
11.2 概念体系结构视图 328
11.3 模块体系结构视图 330
11.3.1 分解 330
11.3.2 SPU接口和SPU之间的相互依赖 332
11.3.3 分层结构或shell模型 332
11.4 执行体系结构视图 334
11.4.1 定义执行体和配置文件 334
11.4.3 恢复组耐恢复时通信 336
11.4.2 通信 336
11.4.4 资源分配 337
11.5 代码体系结构视图 337
11.5.1 源代码构件 338
11.5.2 中间构件 338
11.5.3 配置管理 340
11.6 软件体系结构的用途 340
11.6.1 模拟和代码生成 341
11.6.2 软件开发的高生产率 341
11.6.3 Shell的层进开发检查 341
11.6.4 体系结构控制过程 341
11.7.1 软件体系结构概念 342
11.7 总结 342
11.7.2 经验 343
第4部分 软件体系结构规划未来 349
第12章 软件架构师的角色 349
12.1 创建前景 349
12.2 架构师是关键技术顾问 350
12.3 架构师做决策 352
12.4 架构师指导 353
12.5 架构师协调 355
12.6 架构师实现 355
12.7 架构师倡导 356
12.8 把软件体系结构当做一项事业 357
附录A 4视图快速参考 359
术语表 369