第1章 软件体系结构概论 1
1.1软件体系结构产生的背景 1
1.2软件体系结构 4
1.2.1软件体系结构的定义 5
1.2.2软件体系结构的重要性 7
1.3软件重用 9
1.3.1软件重用概述 9
1.3.2软件重用的类型 11
1.3.3软件重用的特点 13
1.4软件构件 14
1.4.1构件的分类 15
1.4.2构件识别技术 16
1.4.3构件的检索、匹配与获取 17
1.4.4构件模型与基于构件的软件开发 19
第2章 软件体系结构建模 21
2.1软件体系结构建模概述 21
2.2软件体系结构建模语言 22
2.2.1基于ADL的软件体系结构描述 23
2.2.2 UML与ADL之间的关系 34
2.2.3基于UML的软件体系结构描述 35
2.3基于UML体系结构描述方式的案例分析 49
2.4软件体系结构的生命周期 54
2.5基于体系结构的软件开发过程 56
第3章 软件体系结构风格 58
3.1软件体系结构风格概述 58
3.2常用的软件体系结构风格 59
3.2.1管道/过滤器体系结构风格 59
3.2.2面向对象体系结构风格 61
3.2.3分层体系结构风格 63
3.2.4客户机/服务器体系结构风格 65
3.2.5浏览器/服务器体系结构风格 72
3.2.6事件驱动体系结构风格 75
3.2.7数据共享体系结构风格 77
3.2.8解释器体系结构风格 79
3.2.9 C2体系结构风格 81
3.2.10 MVC体系结构风格 82
3.2.11反馈控制环体系结构风格 83
3.2.12公共对象请求代理体系结构风格 85
3.2.13层次消息总线体系结构风格 86
3.3新型软件体系结构风格 89
3.3.1正交体系结构风格 89
3.3.2富互联网应用体系结构风格 90
3.3.3表述性状态转移体系结构风格 92
3.3.4插件体系结构风格 99
3.3.5面向服务体系结构风格 106
3.3.6异构体系结构风格 106
第4章 特定领域软件体系结构 109
4.1特定领域软件体系结构概述 109
4.2特定领域软件体系结构的定义及组成 109
4.3特定领域软件体系结构的领域工程 113
4.3.1领域分析 115
4.3.2领域设计 119
4.3.3领域实现 122
4.4特定领域软件体系结构的应用工程 124
4.4.1特定领域软件体系结构的应用工程概述 124
4.4.2领域工程与应用工程的关系 125
4.5特定领域软件体系结构的生命周期 126
4.6特定领域软件体系结构的建立 128
4.7基于特定领域软件体系结构的开发过程 132
4.8基于特定领域软件体系结构的应用实例 135
4.9特定领域软件体系结构对软件开发的意义 140
第5章 Web Services与SOA 141
5.1 Web Services概述 141
5.2 Web Services技术 143
5.2.1 Web Services体系结构模型 143
5.2.2 Web Services工作机制 145
5.3 SOA 149
5.3.1 SOA概述 149
5.3.2 IBM SOA解决方案 155
5.4网格服务体系结构 162
5.4.1网格概述 162
5.4.2五层沙漏结构 163
5.4.3 OGSA与W SRF 165
5.5 Web Services实现技术 169
5.5.1 Web Services的.NET实现 169
5.5.2 Web Services的JavaEE实现 175
第6章 软件产品线技术 182
6.1软件产品线概述 182
6.1.1软件产品线的发展 182
6.1.2软件产品线的定义 184
6.1.3软件产品线产生的原因 185
6.2软件产品线的工程方法 187
6.3软件产品线体系结构 192
6.4软件产品线的开发过程 194
6.4.1软件产品线的建立方式 194
6.4.2软件产品线的需求分析 196
6.4.3软件产品线的开发 199
6.4.4软件产品线的可变性管理 202
6.4.5软件产品线的测试 204
6.4.6软件产品线设计实例 204
6.5软件产品线的研究方法 208
6.5.1 FAST 208
6.5.2 PuLSE 208
6.5.3 KobrA 208
6.6软件产品线的演化 209
6.7软件产品线在ERP开发中的应用 209
6.7.1 ERP库存管理子系统设计案例 210
6.7.2应用软件产品线的ERP产业链模式案例——零售业模式 213
第7章 软件演化 215
7.1软件演化概述 215
7.1.1软件演化的基本概念 215
7.1.2软件演化和软件维护 216
7.1.3软件演化和软件再工程 217
7.1.4软件演化和软件复用 217
7.1.5软件演化的发展及现状 218
7.2软件演化的分类 218
7.2.1从总体划分 218
7.2.2从演化的时机划分 219
7.2.3从实现方式和粒度划分 220
7.2.4从演化的复杂程度划分 223
7.3静态演化 223
7.3.1静态演化技术分析 224
7.3.2设计模式对静态演化的支持 225
7.3.3重构技术对静态演化的支持 226
7.3.4静态演化应用实例 227
7.4动态演化 231
7.4.1动态演化技术分析 232
7.4.2动态软件体系结构 235
7.4.3软件的并行性演化 241
7.4.4动态演化的解决方案 242
第8章 软件体系结构评估 244
8.1软件体系结构评估概述 244
8.1.1软件体系结构分析和评估的基本术语 244
8.1.2软件体系结构评估的时机 247
8.1.3软件体系结构评估的必要性 247
8.2软件体系结构的主要评估方法 247
8.3基于场景的软件体系结构评估方法 250
8.3.1 SAAM 250
8.3.2 SAAMCS 251
8.3.3 ATAM 253
8.3.4基于场景的其他评估方法 257
8.3.5基于场景的软件体系结构评估方法比较 258
8.3.6基于场景的评估应用实例 259
8.4基于度量的软件体系结构评估方法 267
8.4.1度量 267
8.4.2几种基于度量的评估方法 268
8.4.3面向对象软件体系结构的度量技术 270
8.5软件体系结构评估存在的问题与现状 271
第9章 软件设计原则与模式 273
9.1模式概述 273
9.1.1模式的应用背景 274
9.1.2模式的发展过程 277
9.1.3模式的刻画 278
9.1.4模式的分类 278
9.1.5 MVC架构模式 279
9.1.6模式与框架的关系 282
9.2软件设计原则 283
9.2.1开闭原则 283
9.2.2里氏代换原则 284
9.2.3依赖倒置原则 285
9.2.4接口隔离原则 287
9.2.5组合/聚合复用原则 288
9.2.6迪米特法则 288
9.2.7单一职责原则 289
9.3创建型设计模式 289
9.3.1工厂方法设计模式 290
9.3.2抽象工厂设计模式 292
9.3.3单例设计模式 295
9.4结构型设计模式 298
9.4.1代理设计模式 298
9.4.2适配器设计模式 301
9.5行为型设计模式 304
9.5.1模板方法设计模式 304
9.5.2观察者设计模式 306
9.5.3责任链设计模式 310
9.5.4状态设计模式 312
第10章 云计算 316
10.1云计算概述 317
10.1.1云计算的定义 317
10.1.2云存储 319
10.1.3云计算的特点 320
10.1.4云服务的种类 322
10.1.5云计算体系结构 324
10.2云计算的发展与应用 325
10.2.1云计算产生的背景 325
10.2.2云计算的应用现状 328
10.3云计算核心技术简介 332
10.3.1海量数据文件系统 332
10.3.2海量数据编程模型 334
10.3.3海量数据的一致性问题 338
10.3.4海量数据的管理与存储 339
10.4云计算的实施技术与平台 340
10.5安全问题 346
10.5.1潜在的安全风险 346
10.5.2云计算的安全性保障方案 349
10.6云计算应用实例 353
10.7云计算的研究和发展方向 357
参考文献 359