第1章 软件体系结构的起源与背景 1
1.1 软件危机 1
1.2 软件工程的兴起 2
1.3 软件体系结构层次 5
1.4 软件体系结构的理想与现实 6
1.4.1 软件体系结构的理想效果 6
1.4.2 现存软件复用的层次 7
1.5 相关软件的失败案例 8
1.5.1 瑞典船的故事 8
1.5.2 集团通信业务系统项目 9
1.5.3 邮政信息管理系统的开发 9
1.6 软件体系结构的发展历程 10
1.7 本书导读 11
第2章 软件体系结构的原理与模型 13
2.1 软件体系结构的基本概念 13
2.1.1 什么是体系结构 13
2.1.2 什么是软件体系结构 13
2.2 软件体系结构建模 14
2.2.1 建模的目的 14
2.2.2 建模的工具及方法 14
2.3 多维软件体系结构的模型与视图 25
2.3.1 软件体系结构“4+1”视图概述 25
2.3.2 “4+1”视图举例说明 26
小结 31
习题 32
第3章 软件体系结构风格 33
3.1 软件体系结构风格概述 33
3.2 经典软件体系结构风格 33
3.2.1 管道过滤器风格 33
3.2.2 调用返回风格 36
3.2.3 正交与分层风格 37
3.2.4 共享数据风格 39
3.3 现代软件体系结构风格 40
3.3.1 C/S模式与B/S模式 40
3.3.2 消息总线结构 42
3.3.3 公共对象请求代理技术 45
3.3.4 基于SOA的体系架构 49
3.3.5 基于REST的体系架构 58
小结 61
习题 61
第4章 质量属性 62
4.1 质量属性与功能属性 62
4.2 质量属性定义及分类 62
4.3 质量属性详解 63
4.4 各类质量属性分析举例 64
4.4.1 易用性举例 64
4.4.2 可修改性举例 67
4.4.3 可用性举例 69
4.4.4 性能举例 70
4.4.5 安全性举例 73
4.4.6 可测试性举例 75
小结 75
习题 75
第5章 质量属性场景及性能战术 77
5.1 质量属性场景 77
5.1.1 质量属性场景的定义 77
5.1.2 一般场景与具体场景 78
5.2 质量属性战术(Tactics) 78
5.3 性能的质量属性场景及战术 79
5.3.1 资源需求类战术 80
5.3.2 资源管理类战术 82
5.3.3 资源仲裁类战术 97
小结 104
习题 104
第6章 可用性的质量属性场景及战术 105
6.1 可用性的关注点 105
6.2 可用性的一般场景 106
6.3 可用性战术 107
6.3.1 错误检测战术 107
6.3.2 错误恢复战术 116
6.3.3 错误预防战术 125
小结 142
习题 142
第7章 可修改性的质量属性场景及战术 143
7.1 可修改性关注点 143
7.2 可修改性的一般场景 143
7.3 可修改性战术 144
7.3.1 局部化修改战术 144
7.3.2 防止连锁反应战术 151
7.3.3 推迟绑定时间战术 174
小结 186
习题 186
第8章 分析与设计软件体系结构 187
8.1 软件分析一般过程 187
8.1.1 Log4J的工程分析 187
8.1.2 IMSDroid工程分析 191
8.2 软件设计方法 192
8.2.1 ADD方法概述 192
8.2.2 回顾标准RUP 194
8.2.3 ADD方法与RUP的关系 195
8.2.4 ADD方法实例 196
小结 206
习题 206
第9章 软件体系结构描述语言 207
9.1 ACME 207
9.2 Wright语言 211